package com.landtool.lanbase.modules.org.service.impl; import com.landtool.lanbase.common.utils.Md5Util; import com.landtool.lanbase.modules.org.entity.OrgUserJoinUnit; import com.landtool.lanbase.modules.org.entity.OrgUserWithUnitCell; import com.landtool.lanbase.modules.org.redis.OrgUserRedis; import org.apache.commons.lang.RandomStringUtils; import org.apache.commons.lang.StringUtils; import org.apache.shiro.crypto.hash.Sha256Hash; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.landtool.lanbase.modules.org.dao.OrgUserDao; import com.landtool.lanbase.modules.org.entity.OrgUser; import com.landtool.lanbase.modules.org.service.OrgUserService; import com.landtool.lanbase.modules.sys.dao.SysResourceDao; import com.landtool.lanbase.modules.sys.entity.SysResource; import com.landtool.lanbase.modules.sys.redis.SysUserTokenRedis; import com.landtool.lanbase.common.utils.CoderUtils; @Service("OrgUserService") public class OrgUserServiceImpl implements OrgUserService { @Autowired private OrgUserDao userDao; @Autowired private OrgUserRedis orgUserRedis; @Autowired private SysResourceDao sysResourceDao; @Override public OrgUser queryObject(Long userid){ return userDao.queryObject(userid); } @Override public List queryList(Map map){ return userDao.queryListWithUnitNames(map); } @Override public int queryTotal(Map map){ return userDao.queryTotalWithUnitNames(map); } @Override public void save(OrgUser user){ try { user.setPassword(Md5Util.reverse(CoderUtils.lantuEncryptMD5(user.getPassword()).toLowerCase())); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } userDao.save(user); } @Override public void update(OrgUser user){ if(StringUtils.isBlank(user.getPassword())){ user.setPassword(null); } else{ OrgUser olduser = new OrgUser(); olduser = userDao.queryObject(user.getUserid()); if(olduser!= null && !olduser.getPassword().equals(user.getPassword())){ try { user.setPassword(CoderUtils.lantuEncryptMD5(user.getPassword())); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //判断当前修改的用户是否缓存,如果是则删除该用户的缓存再重新缓存修改后的信息 // alert ykm 2019/03/21 OrgUser redisuser = orgUserRedis.get(user.getUserid()); if(redisuser != null) { orgUserRedis.delete(user); orgUserRedis.saveOrUpdate(user); } userDao.update(user); } @Override public void updateStatus(OrgUser user) { userDao.updateStatus(user); } @Override public OrgUserJoinUnit queryObjectJoinUnitByChineseName(String chineseName) { return userDao.queryObjectJoinUnitByChineseName(chineseName); } @Override public void updateStatusByUserId(Long userId, Long userStatus) { userDao.updateStatusByUserId(userId,userStatus); } @Override public void delete(Long userid){ userDao.delete(userid); } @Override public void deleteBatch(Long[] userids){ userDao.deleteBatch(userids); } /** * @Description: 条件查询行政区划用户列表 {@link OrgUserService} * @Author: zimao.guo * @Date: 11:28 2018/1/31 * @return: List * @see OrgUser * @param xzqhId */ @Override public List queryListByXzqhId(Long xzqhId) { Map paramMap = new HashMap(); paramMap.put("xzqhId",xzqhId); return userDao.queryListForBareAPIwithUnit(paramMap); } /** * @Description: 条件查询某个单位用户列表 {@link OrgUserService} * @Author: zimao.guo * @Date: 11:46 2018/1/31 * @return: List * @see OrgUser * @param unitId */ @Override public List queryListByUnitId(long unitId) { Map paramMap = new HashMap(); paramMap.put("unitId",unitId); return userDao.queryListForBareAPIwithUnit(paramMap); } /** * @Description: 查询系统可访问用户列表 {@link OrgUserService} * @Author: zimao.guo * @Date: 13:53 2018/1/31 * @return: List * @see OrgUser * @param appId */ @Override public List queryListByAppId(long appId) { Map paramMap = new HashMap(); paramMap.put("appId",appId); return userDao.queryListForBareAPIwithRole(paramMap); } /** * @Description: 根据时间戳获取信息 {@link OrgUserService} * @Author: zimao.guo * @Date: 14:52 2018/1/31 * @return: List * @see OrgUser * @param time */ @Override public List queryListByTime(Date time) { return userDao.queryListByTime(time); } /** * @Description: 查询用户信息以及所属单位信息 {@link OrgUserService} * @Author: zimao.guo * @Date: 17:11 2018/1/31 * @return: OrgUserJoinUnit * @see OrgUserJoinUnit * @param userId */ @Override public OrgUserJoinUnit queryObjectJoinUnit(Long userId) { return userDao.queryObjectJoinUnit(userId); } @Override public OrgUserJoinUnit queryObjectJoinUnitByLoginname(String username) { return userDao.queryObjectJoinUnitByLoginname(username); } @Override public int queryUserWithSEQ(){ return userDao.queryUserWithSEQ(); } @Override public List findUserByWord(String keyWord) { Map paramMap = new HashMap(); paramMap.put("keyWord",keyWord); return userDao.findUserByWord(paramMap); } @Override public OrgUser queryByUserName(String username) { OrgUser OrgUser=orgUserRedis.get(username); if(OrgUser==null){ OrgUser = userDao.queryByUserName(username); orgUserRedis.saveOrUpdate(OrgUser); } return OrgUser; } @Override public Set getUserPermissions(long userId) { List permsList; Map paramMap = new HashMap(); paramMap.put("userId",userId); permsList = sysResourceDao.queryResources(paramMap); //用户权限列表 Set permsSet = new HashSet<>(); for(SysResource resource: permsList){ permsSet.add(resource.getResourcercode()); } return permsSet; } @Override public List queryAllMenuId(Long userId) { return userDao.queryAllMenuId(userId); } @Override @Transactional public int updatePassword(OrgUser user, String password, String newPassword) { orgUserRedis.delete(user); Map map = new HashMap<>(); map.put("userId", user.getUserid()); map.put("password", password); map.put("newPassword", newPassword); return userDao.updatePassword(map); } @Override public List querySpellFirst(Integer userid) { return userDao.querySpellFirst(userid); } @Override public List queryListOrderByType(Map map){ return userDao.queryListOrderByType(map); } @Override public List queryUserUnitSpellFirst(Integer userid) { return userDao.queryUserUnitSpellFirst(userid); } @Override public List queryUserRoleName(Integer userid) { return userDao.queryUserRoleName(userid); } @Override public List queryAllList(){ return userDao.queryAllList(); } @Override public int queryByLoginname(String loginname) { return userDao.queryByLoginname(loginname); } @Override public List queryUserResCatalog(Long userid) { return userDao.queryUserResCatalog(userid); } }