package com.jspxcms.core.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import com.jspxcms.common.util.RowSide;
import com.jspxcms.core.domain.GlobalMail;
import com.jspxcms.core.domain.Site;
import com.jspxcms.core.domain.User;
import com.jspxcms.core.domain.UserDetail;
/**
* UserService
*
* @author liufang
*
*/
public interface UserService {
public Page<User> findPage(Integer rank, Integer[] type,
Map<String, String[]> params, Pageable pageable);
public RowSide<User> findSide(Integer rank, Integer[] type,
Map<String, String[]> params, User bean, Integer position, Sort sort);
public List<User> findByUsername(String[] usernames);
public User findByUsername(String username);
public User findByValidation(String type, String key);
public boolean usernameExist(String username);
public User getAnonymous();
public Integer getAnonymousId();
public User get(Integer id);
public void updatePassword(Integer userId, String rawPassword);
public void updateEmail(Integer userId, String email);
public void sendVerifyEmail(Site site, User user, GlobalMail mail,
String subject, String text);
public User verifyMember(User user);
public void sendPasswordEmail(Site site, User user, GlobalMail mail,
String subject, String text);
public User passwordChange(User user, String rawPassword);
public User save(User bean, UserDetail detail, Integer[] roleIds,
Integer orgId, Integer groupId, Integer creatorRank, String ip,
Integer type);
public User register(String ip, int groupId, int orgId, int status,
String username, String password, String email, String gender,
Date birthDate, String bio, String comeFrom, String qq, String msn,
String weixin);
public User update(User bean, UserDetail detail, Integer[] roleIds,
Integer orgId, Integer groupId, Integer creatorRank, Integer type);
public User update(User user, UserDetail detail);
public User deletePassword(Integer id);
public User[] deletePassword(Integer[] ids);
public User check(Integer id);
public User[] check(Integer[] ids);
public User lock(Integer id);
public User[] lock(Integer[] ids);
public User unlock(Integer id);
public User[] unlock(Integer[] ids);
public User delete(Integer id);
public User[] delete(Integer[] ids);
}