163 lines
3.7 KiB
Java
163 lines
3.7 KiB
Java
package com.nis.web.service;
|
||
|
||
import java.util.ArrayList;
|
||
import java.util.Date;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Service;
|
||
|
||
import com.nis.domain.Page;
|
||
import com.nis.domain.SysUser;
|
||
import com.nis.exceptions.ServiceException;
|
||
import com.nis.util.CacheUtils;
|
||
import com.nis.util.StringUtil;
|
||
import com.nis.util.StringUtils;
|
||
import com.nis.web.dao.UserDao;
|
||
import com.nis.web.security.UserUtils;
|
||
|
||
@Service
|
||
public class UserService extends BaseService {
|
||
/**@Resource**/
|
||
@Autowired
|
||
private UserDao userDao;
|
||
|
||
|
||
/**
|
||
* 获取用户
|
||
* @param id
|
||
* @return
|
||
*/
|
||
public SysUser getUser(String id) {
|
||
return UserUtils.get(id);
|
||
}
|
||
|
||
|
||
|
||
public Page<SysUser> findUser(Page<SysUser> page, SysUser user) {
|
||
// 生成数据权限过滤条件(dsf为dataScopeFilter的简写,在xml中使用 ${sqlMap.dsf}调用权限SQL)
|
||
user.getSqlMap().put("dsf", dataScopeFilter(user.getCurrentUser(), "o", "u"));
|
||
// 设置分页参数
|
||
user.setPage(page);
|
||
// 执行分页查询
|
||
page.setList(userDao.findList(user));
|
||
return page;
|
||
}
|
||
|
||
|
||
|
||
public SysUser getUserById(Long id) {
|
||
return userDao.getUserById(id);
|
||
}
|
||
|
||
public SysUser getUserByLoginName(String loginName) {
|
||
return userDao.getUserByLoginName(loginName);
|
||
}
|
||
|
||
|
||
public SysUser getUserByIdWithRelation(Long userId) {
|
||
return userDao.getUserWithRelation(new SysUser(userId, null));
|
||
}
|
||
|
||
|
||
|
||
|
||
public void saveOrUpdate(SysUser user) {
|
||
|
||
if (StringUtil.isEmpty(user.getId())) {
|
||
user.setCreateTime(new Date());
|
||
user.setStatus(1);
|
||
userDao.insert(user);
|
||
} else {
|
||
SysUser oldUser = userDao.getUserWithRelation(user);
|
||
// 清除原用户机构用户缓存
|
||
if (!StringUtil.isEmpty(oldUser.getOffice())) {
|
||
CacheUtils.remove(UserUtils.USER_CACHE, UserUtils.USER_CACHE_LIST_BY_OFFICE_ID_ + oldUser.getOffice().getId());
|
||
}
|
||
|
||
userDao.update(user);
|
||
userDao.deleteUserRole(user.getId());
|
||
|
||
//userDao.deleteUserOffice(user.getId());
|
||
|
||
}
|
||
|
||
|
||
/*if (!StringUtil.isEmpty(user.getOffice())) {
|
||
user.addOffice(user.getOffice());
|
||
userDao.insertUserOffice(user);
|
||
}else {
|
||
throw new ServiceException(user.getLoginId() + "没有设置部门!");
|
||
}*/
|
||
|
||
if (!StringUtil.isEmpty(user.getUserRoleList())) {
|
||
userDao.insertUserRole(user);
|
||
} else {
|
||
throw new ServiceException(user.getLoginId() + "没有设置角色!");
|
||
}
|
||
|
||
// 将当前用户同步到Activiti
|
||
//saveActivitiUser(user);
|
||
UserUtils.clearCache(user);
|
||
// 清除权限缓存
|
||
//systemRealm.clearAllCachedAuthorizationInfo();
|
||
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
public void deleteUser(SysUser user) {
|
||
userDao.delete(user);
|
||
// 同步到Activiti
|
||
//deleteActivitiUser(user);
|
||
// 清除用户缓存
|
||
UserUtils.clearCache(user);
|
||
// // 清除权限缓存
|
||
// systemRealm.clearAllCachedAuthorizationInfo();
|
||
}
|
||
|
||
|
||
public void updatePasswordById(Long id, String loginId, String newPassword) {
|
||
SysUser user = new SysUser(id,loginId);
|
||
user.setPassword(StringUtils.entryptPassword(newPassword));
|
||
userDao.updatePasswordById(user);
|
||
UserUtils.clearCache(user);
|
||
// // 清除权限缓存
|
||
// systemRealm.clearAllCachedAuthorizationInfo();
|
||
}
|
||
|
||
|
||
|
||
|
||
public List<SysUser> findUserByRoleId(Long id) {
|
||
return userDao.findUserByRoleId(id);
|
||
}
|
||
|
||
|
||
|
||
public List<SysUser> findUserByOfficeId(Long id) {
|
||
return userDao.findUserByOfficeId(id);
|
||
}
|
||
|
||
|
||
|
||
public void updateUserInfo(SysUser user) {
|
||
userDao.updateUserInfo(user);
|
||
// 清除用户缓存
|
||
UserUtils.clearCache(user);
|
||
// // 清除权限缓存
|
||
// systemRealm.clearAllCachedAuthorizationInfo();
|
||
|
||
|
||
}
|
||
|
||
public List<Map> findDeptLeader(Integer DeptementId){
|
||
return userDao.findDeptLeader(DeptementId);
|
||
}
|
||
|
||
|
||
}
|