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<OrgUserWithUnitCell> queryList(Map<String, Object> map){
|
return userDao.queryListWithUnitNames(map);
|
}
|
|
@Override
|
public int queryTotal(Map<String, Object> 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<OrgUser>
|
* @see OrgUser
|
* @param xzqhId
|
*/
|
@Override
|
public List<OrgUser> queryListByXzqhId(Long xzqhId) {
|
Map<String,Object> paramMap = new HashMap<String,Object>();
|
paramMap.put("xzqhId",xzqhId);
|
return userDao.queryListForBareAPIwithUnit(paramMap);
|
}
|
|
/**
|
* @Description: 条件查询某个单位用户列表 {@link OrgUserService}
|
* @Author: zimao.guo
|
* @Date: 11:46 2018/1/31
|
* @return: List<OrgUser>
|
* @see OrgUser
|
* @param unitId
|
*/
|
@Override
|
public List<OrgUser> queryListByUnitId(long unitId) {
|
Map<String,Object> paramMap = new HashMap<String,Object>();
|
paramMap.put("unitId",unitId);
|
return userDao.queryListForBareAPIwithUnit(paramMap);
|
}
|
|
/**
|
* @Description: 查询系统可访问用户列表 {@link OrgUserService}
|
* @Author: zimao.guo
|
* @Date: 13:53 2018/1/31
|
* @return: List<OrgUser>
|
* @see OrgUser
|
* @param appId
|
*/
|
@Override
|
public List<OrgUser> queryListByAppId(long appId) {
|
Map<String,Object> paramMap = new HashMap<String,Object>();
|
paramMap.put("appId",appId);
|
return userDao.queryListForBareAPIwithRole(paramMap);
|
}
|
|
/**
|
* @Description: 根据时间戳获取信息 {@link OrgUserService}
|
* @Author: zimao.guo
|
* @Date: 14:52 2018/1/31
|
* @return: List<OrgUser>
|
* @see OrgUser
|
* @param time
|
*/
|
@Override
|
public List<OrgUser> 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<OrgUser> findUserByWord(String keyWord) {
|
Map<String,Object> paramMap = new HashMap<String,Object>();
|
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<String> getUserPermissions(long userId) {
|
|
List<SysResource> permsList;
|
Map<String,Object> paramMap = new HashMap<String,Object>();
|
|
paramMap.put("userId",userId);
|
|
permsList = sysResourceDao.queryResources(paramMap);
|
|
//用户权限列表
|
Set<String> permsSet = new HashSet<>();
|
for(SysResource resource: permsList){
|
permsSet.add(resource.getResourcercode());
|
}
|
|
return permsSet;
|
|
}
|
|
@Override
|
public List<Long> queryAllMenuId(Long userId) {
|
return userDao.queryAllMenuId(userId);
|
}
|
|
@Override
|
@Transactional
|
public int updatePassword(OrgUser user, String password, String newPassword) {
|
orgUserRedis.delete(user);
|
Map<String, Object> map = new HashMap<>();
|
map.put("userId", user.getUserid());
|
map.put("password", password);
|
map.put("newPassword", newPassword);
|
return userDao.updatePassword(map);
|
}
|
|
@Override
|
public List<String> querySpellFirst(Integer userid) {
|
return userDao.querySpellFirst(userid);
|
}
|
|
@Override
|
public List<OrgUser> queryListOrderByType(Map<String, Object> map){
|
return userDao.queryListOrderByType(map);
|
}
|
|
@Override
|
public List<String> queryUserUnitSpellFirst(Integer userid) {
|
return userDao.queryUserUnitSpellFirst(userid);
|
}
|
|
@Override
|
public List<String> queryUserRoleName(Integer userid) {
|
return userDao.queryUserRoleName(userid);
|
}
|
|
@Override
|
public List<OrgUser> queryAllList(){
|
return userDao.queryAllList();
|
}
|
|
@Override
|
public int queryByLoginname(String loginname) {
|
return userDao.queryByLoginname(loginname);
|
}
|
|
@Override
|
public List<Integer> queryUserResCatalog(Long userid) {
|
return userDao.queryUserResCatalog(userid);
|
}
|
|
|
}
|