From 983bdb5b89932b38d08a11ad1eed6ea89d1597e1 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: Mon, 29 Jan 2024 10:07:31 +0800
Subject: [PATCH] 更新
---
assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java | 408 ++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 297 insertions(+), 111 deletions(-)
diff --git a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
index a1ca5d8..5004259 100644
--- a/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
+++ b/assess-system/src/main/java/com/gkhy/assess/system/service/impl/SysUserServiceImpl.java
@@ -1,30 +1,33 @@
package com.gkhy.assess.system.service.impl;
+import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.api.CommonPage;
import com.gkhy.assess.common.constant.CacheConstant;
import com.gkhy.assess.common.domain.vo.AccountVO;
import com.gkhy.assess.common.domain.vo.LoginBody;
import com.gkhy.assess.common.enums.AttachTypeEnum;
+import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.enums.UserIdentityEnum;
-import com.gkhy.assess.common.enums.UserTypeEnum;
import com.gkhy.assess.common.exception.ApiException;
-import com.gkhy.assess.common.utils.BeanValidators;
-import com.gkhy.assess.common.utils.JwtTokenUtil;
-import com.gkhy.assess.common.utils.PageUtil;
-import com.gkhy.assess.common.utils.RedisUtils;
+import com.gkhy.assess.common.utils.*;
import com.gkhy.assess.system.domain.*;
-import com.gkhy.assess.system.mapper.SysAgencyMapper;
+import com.gkhy.assess.system.domain.vo.PersonProjectVO;
+import com.gkhy.assess.system.mapper.AssProjectMapper;
+import com.gkhy.assess.system.mapper.SysUserFaceMapper;
import com.gkhy.assess.system.mapper.SysUserMapper;
+import com.gkhy.assess.system.service.SysAgencyService;
import com.gkhy.assess.system.service.SysAttachService;
import com.gkhy.assess.system.service.SysConfigService;
-import com.gkhy.assess.system.utils.ShiroUtils;
import com.gkhy.assess.system.service.SysUserService;
+import com.gkhy.assess.system.utils.ShiroUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.subject.Subject;
+import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -32,8 +35,8 @@
import javax.servlet.http.HttpServletRequest;
import javax.validation.Validator;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
/**
@@ -55,18 +58,21 @@
@Autowired
private HttpServletRequest request;
- @Autowired
- private SysAgencyMapper agencyMapper;
+ @Autowired
+ private SysAgencyService agencyService;
@Autowired
private SysAttachService attachService;
-
+ @Autowired
+ private SysUserFaceMapper userFaceMapper;
+ @Autowired
+ private AssProjectMapper projectMapper;
@Override
public AccountVO login(LoginBody loginBody) {
// 验证码校验
- // validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
- UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), loginBody.getPassword(), false);
+ //validateCaptcha(loginBody.getUsername(), loginBody.getCode(), loginBody.getUuid());
+ UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), false);
Subject subject= SecurityUtils.getSubject();
String msg ;
try {
@@ -74,23 +80,84 @@
SysUser sysUser = (SysUser) subject.getPrincipal();
AccountVO accountVO = new AccountVO();
BeanUtils.copyProperties(sysUser, accountVO);
-
+ if(sysUser.getAgencyId()!=null){
+ SysAgency agency=agencyService.getOne(Wrappers.<SysAgency>lambdaQuery()
+ .select(SysAgency::getId,SysAgency::getName)
+ .eq(SysAgency::getId,sysUser.getAgencyId()));
+ accountVO.setAgentName(agency.getName());
+ accountVO.setAgentId(agency.getId());
+ }
String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword());
accountVO.setToken(token);
- String key= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(token));
- // 设置超时时间
- redisUtils.set(key,token);
- redisUtils.expire(key,JwtTokenUtil.EXPIRATION*2/1000);
+ cacheUserToken(sysUser.getUsername(),token);
return accountVO;
}catch (UnknownAccountException | IncorrectCredentialsException uae){
throw new ApiException("用户名/密码错误,请重新输入");
} catch (LockedAccountException lae) { // 账号已被锁定
msg = "账号已被锁定";
throw new ApiException(msg);
- } catch (AuthenticationException ae) { // 其他身份验证异常
- msg = "用户认证失败";
+ }catch (AuthenticationException ae) { // 其他身份验证异常
+ msg = "用户认证失败:"+ae.getMessage();
throw new ApiException(msg);
}
+ }
+
+
+
+ @Override
+ public AccountVO appLogin(LoginBody loginBody) {
+ // 验证码校验
+ UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(loginBody.getUsername(), Base64.decodeStr(loginBody.getPassword()), false);
+ Subject subject= SecurityUtils.getSubject();
+ String msg ;
+ try {
+ subject.login(usernamePasswordToken);
+ SysUser sysUser = (SysUser) subject.getPrincipal();
+ AccountVO accountVO = new AccountVO();
+ BeanUtils.copyProperties(sysUser, accountVO);
+ if(sysUser.getAgencyId()!=null){
+ SysAgency agency=agencyService.getOne(Wrappers.<SysAgency>lambdaQuery()
+ .select(SysAgency::getId,SysAgency::getName)
+ .eq(SysAgency::getId,sysUser.getAgencyId()));
+ accountVO.setAgentName(agency.getName());
+ accountVO.setAgentId(agency.getId());
+ }
+ String token = JwtTokenUtil.sign(sysUser.getUsername(),sysUser.getPassword());
+ accountVO.setToken(token);
+ cacheUserToken(sysUser.getUsername(),token);
+ accountVO.setUserFace(userFaceMapper.getFaceByUserId(sysUser.getId()));
+ return accountVO;
+ }catch (UnknownAccountException | IncorrectCredentialsException uae){
+ throw new ApiException("用户名/密码错误,请重新输入");
+ } catch (LockedAccountException lae) { // 账号已被锁定
+ msg = "账号已被锁定";
+ throw new ApiException(msg);
+ }catch (AuthenticationException ae) { // 其他身份验证异常
+ msg = "用户认证失败:"+ae.getMessage();
+ throw new ApiException(msg);
+ }
+ }
+
+ /**
+ * 清空旧的登录信息,保证同时只有一个用户再登录,后登录用户会挤掉前一个用户
+ * @param username
+ */
+ public void cacheUserToken(String username,String newToken){
+
+ String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username);
+ String oldToken = (String) redisUtils.get(userKey);
+ if (StringUtils.isNotBlank(oldToken)) {
+ String oldTokenkey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + JwtTokenUtil.md5Encode(oldToken));
+ redisUtils.del(oldTokenkey);
+ redisUtils.del(userKey);
+ }
+ redisUtils.set(userKey, newToken,(JwtTokenUtil.EXPIRATION*2/1000)+2);
+
+
+ String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(newToken));
+ // 设置超时时间
+ redisUtils.set(tokenKey,newToken);
+ redisUtils.expire(tokenKey,JwtTokenUtil.EXPIRATION*2/1000);
}
/**
@@ -103,13 +170,13 @@
*/
public void validateCaptcha(String username, String code, String uuid)
{
- if(StrUtil.isBlank(code)||StrUtil.isBlank(uuid)){
+ if(StringUtils.isBlank(code)||StringUtils.isBlank(uuid)){
throw new ApiException("验证码或验证码标识为空");
}
String verifyKey = CacheConstant.CAPTCHA_CODE_KEY +uuid;
String captcha = (String) redisUtils.get(verifyKey);
redisUtils.del(verifyKey);
- if (StrUtil.isBlank(captcha))
+ if (StringUtils.isBlank(captcha))
{
throw new ApiException("验证码已失效");
}
@@ -122,9 +189,14 @@
@Override
public void logout() {
String jwtToken = request.getHeader(JwtTokenUtil.USER_LOGIN_TOKEN);
- String key= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
- //删除redis缓存
- redisUtils.del(key);
+ if(StringUtils.isNotBlank(jwtToken)){
+ String username=JwtTokenUtil.getUsername(jwtToken);
+ String userKey = redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN + ":" + username);
+ String tokenKey= redisUtils.generateKey(CacheConstant.SYS_USER_TOKEN+":"+JwtTokenUtil.md5Encode(jwtToken));
+ //删除redis缓存
+ redisUtils.del(tokenKey);
+ redisUtils.del(userKey);
+ }
}
@Override
@@ -143,8 +215,25 @@
@Override
public CommonPage<SysUser> expertList(SysUser user) {
+ SysUser currentUser= ShiroUtils.getSysUser();
+ if(!currentUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ //机构用户只能查看本机构的专家
+ if(currentUser.getAgencyId()==null){
+ throw new ApiException("用户机构id为空");
+ }
+ user.setAgencyId(currentUser.getAgencyId());
+ }
PageUtil.startPage();
List<SysUser> users=baseMapper.expertList(user);
+ if(users.size()>0) {
+ //统计用户参与项目的信息
+ List<Long> userIds = users.stream().map(item -> item.getId()).collect(Collectors.toList());
+ List<PersonProjectVO> personProjectVOList = projectMapper.getProjectByPersonIds(userIds);
+ Map<Long, PersonProjectVO> maps = personProjectVOList.stream().collect(Collectors.toMap(PersonProjectVO::getPersonId, a -> a));
+ for (SysUser sysUser : users) {
+ sysUser.setPersonProjectVO(maps.get(sysUser.getId()));
+ }
+ }
return CommonPage.restPage(users);
}
@@ -161,6 +250,11 @@
return sysUser;
}
+ public void delCacheByUsername(String username){
+ String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME+":"+username);
+ redisUtils.del(key);
+ }
+
@Override
public SysUser getUserByUsernamePhone(String username) {
String key=redisUtils.generateKey(CacheConstant.SYS_USER_NAME+":"+username);
@@ -174,9 +268,14 @@
return sysUser;
}
+ public void validatorPassword(String password){
+ if(password.length()<5||password.length()>30){
+ throw new ApiException("密码长度须在5-30之间");
+ }
+ }
+
@Override
- @Transactional(rollbackFor = RuntimeException.class)
- public int agencyRegister(SysUser user) {
+ public int addMonitor(SysUser user) {
//校验用户信息
if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
throw new ApiException("用户名已存在");
@@ -184,23 +283,50 @@
if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()))){
throw new ApiException("手机号已存在");
}
+ String originPsword=Base64.decodeStr(user.getPassword());
+ validatorPassword(originPsword);
+ //密码生成规则:md5(username+password+salt)
+ user.setPassword(JwtTokenUtil.encryptPassword(user.getUsername(),originPsword,user.getSalt()));
+ user.setIdentity(UserIdentityEnum.MONITOR.getCode());
+ user.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ boolean b=save(user);
+ if(!b){
+ throw new ApiException("创建监管用户信息失败");
+ }
+ return 1;
+ }
+
+ @Override
+ @Transactional(rollbackFor = RuntimeException.class)
+ public int addAgency(SysUser user) {
+ //校验用户信息
+ if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
+ throw new ApiException("用户名已存在");
+ }
+ if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()))){
+ throw new ApiException("手机号已存在");
+ }
+ String originPsword=Base64.decodeStr(user.getPassword());
+ validatorPassword(originPsword);
SysAgency agency=user.getAgency();
if(ObjectUtil.isNull(agency)){
throw new ApiException("机构信息不能为空");
}
+
//查询机构信息是否存在
- if(ObjectUtil.isNotNull(agencyMapper.checkAgencyNameUnique(agency.getName()))){
+ if(!agencyService.checkAgencyNameUnique(new SysAgency().setName(agency.getName()))){
throw new ApiException("机构名称已存在");
}
-
- int i=agencyMapper.insert(agency);
- if(i<1){
+ agency.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ boolean b=agencyService.save(agency);
+ if(!b){
throw new ApiException("保存机构信息失败");
}
-
+ user.setIdentity(UserIdentityEnum.AGENCY.getCode());
user.setAgencyId(agency.getId());
- user.setUserType(UserIdentityEnum.AGENCY.getCode());
- boolean b=save(user);
+ user.setPassword(JwtTokenUtil.encryptPassword(user.getUsername(),originPsword,user.getSalt()));
+ user.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ b=save(user);
if(!b){
throw new ApiException("创建机构用户信息失败");
}
@@ -210,6 +336,8 @@
@Override
@Transactional(rollbackFor = RuntimeException.class)
public int addExpert(SysUser user) {
+ user.setIdentity(UserIdentityEnum.EXPERT.getCode());
+ checkUserAllowed(user);
//校验用户信息
if(!checkUsernameUnique(new SysUser().setUsername(user.getUsername()))){
throw new ApiException("用户名已存在");
@@ -217,8 +345,19 @@
if(!checkPhoneUnique(new SysUser().setUsername(user.getPhone()))){
throw new ApiException("手机号已存在");
}
- user.setUserType(UserIdentityEnum.EXPERT.getCode());
+ String major=user.getMajor();
+ List<Integer> majors=new ArrayList<>();
+ JSONObject jsonObject=JSONObject.parseObject(major);
+ jsonObject.forEach((key,value)-> {
+ majors.add(Integer.valueOf(key));
+ });
+ user.setMajor(StringUtils.join(",",majors));
+ user.setCertificateNo(major);
+ String originPsword=Base64.decodeStr(user.getPassword());
+ validatorPassword(originPsword);
user.setCreateBy(ShiroUtils.getSysUser().getUsername());
+ user.setPassword(JwtTokenUtil.encryptPassword(user.getUsername(),originPsword,user.getSalt()));
+
boolean b=save(user);
if(!b){
throw new ApiException("创建专家信息失败");
@@ -258,14 +397,57 @@
}
@Override
+ public SysUser getUserInfoById(Long userId) {
+ return baseMapper.getUserInfoById(userId);
+ }
+
+ @Override
@Transactional(rollbackFor = RuntimeException.class)
public int deleteUserById(Long userId) {
- SysUser user=getUserById(userId);
- //机构用户,将机构信息设置成删除状态
- if(user.getUserType().equals(UserIdentityEnum.AGENCY.getCode())){
- agencyMapper.deleteAgencyById(user.getAgencyId());
+ SysUser currentUser=ShiroUtils.getSysUser();
+ SysUser user=checkUserDataScope(userId);
+ if(Objects.equals(ShiroUtils.getUserId(), userId)){
+ throw new ApiException("不能删除自己账号");
}
- return baseMapper.deleteUserById(userId);
+ if(user.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())||user.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ if(!currentUser.getIdentity().equals(UserIdentityEnum.MONITOR.getCode())){
+ throw new ApiException("没有权限,只有监管用户才能操作");
+ }
+ //机构用户,将机构信息设置成删除状态
+ if(user.getIdentity().equals(UserIdentityEnum.AGENCY.getCode())) {
+ if (user.getAgencyId() == null) {
+ throw new ApiException("获取机构id为空");
+ }
+ SysAgency agency=new SysAgency().setId(user.getAgencyId());
+ agency.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ agency.setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ agencyService.updateById(agency);
+ }
+ }
+ delCacheByUsername(user.getUsername());
+ user=new SysUser().setId(userId);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ user.setDelFlag(DeleteFlagEnum.DELETED.getCode());
+ return baseMapper.updateById(user);
+ }
+
+ @Override
+ public int editMonitor(SysUser user) {
+ //校验用户信息
+ if(!checkUsernameUnique(user)){
+ throw new ApiException("用户名已存在");
+ }
+ if(!checkPhoneUnique(user)){
+ throw new ApiException("手机号已存在");
+ }
+ delCacheByUsername(user.getUsername());
+ user.setPassword(null);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ boolean b=updateById(user);
+ if(!b){
+ throw new ApiException("更新监管用户信息失败");
+ }
+ return 1;
}
@@ -280,14 +462,20 @@
throw new ApiException("手机号已存在");
}
SysAgency agency=user.getAgency();
- if(ObjectUtil.isNull(agency)){
- throw new ApiException("机构信息不能为空");
+ if(ObjectUtil.isNull(agency)||agency.getId()==null){
+ throw new ApiException("机构信息或者id不能为空");
}
+
//查询机构信息是否存在
- if(ObjectUtil.isNotNull(agency)){
+ if(!agencyService.checkAgencyNameUnique(agency)){
throw new ApiException("机构名称已存在");
}
- agencyMapper.updateById(agency);
+
+ delCacheByUsername(user.getUsername());
+ agency.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ agencyService.updateById(agency);
+ user.setPassword(null);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
boolean b=updateById(user);
if(!b){
throw new ApiException("更新用户失败");
@@ -297,6 +485,7 @@
@Override
public int editExpert(SysUser user) {
+ checkUserDataScope(user.getId());
//校验用户信息
if(!checkUsernameUnique(user)){
throw new ApiException("用户名已存在");
@@ -304,12 +493,23 @@
if(!checkPhoneUnique(user)){
throw new ApiException("手机号已存在");
}
- boolean b=updateById(user);
- if(!b){
- throw new ApiException("更新专家信息失败");
+ String major=user.getMajor();
+ if(StringUtils.isNotBlank(major)){
+ List<Integer> majors=new ArrayList<>();
+ JSONObject jsonObject=JSONObject.parseObject(major);
+ jsonObject.forEach((key,value)-> {
+ majors.add(Integer.valueOf(key));
+ });
+ user.setMajor(StringUtils.join(",",majors));
+ user.setCertificateNo(major);
}
- //刪除旧数据
- attachService.deleteAttachsByUserId(user.getId(),null);
+ user.setPassword(null);
+ user.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ int row=baseMapper.updateById(user);
+
+ List<SysAttach> existAttaches=attachService.getAttachsByUserId(user.getId(),null);
+ // 刪除旧数据
+ // attachService.deleteAttachsByUserId(user.getId(),null);
List<SysAttach> socialAttach=user.getSocialAttach();
List<SysAttach> medicalAttach=user.getMedicalAttach();
@@ -330,15 +530,32 @@
attach.setUserId(user.getId());
attaches.add(attach);
}
- attachService.saveBatch(attaches);
+ attachService.saveOrUpdateBatch(attaches);
- return 1;
+ List<Long> newIds=attaches.stream().map(SysAttach::getId).collect(Collectors.toList());
+ List<Long> delIds=new ArrayList<>();
+ for(SysAttach attach:existAttaches){
+ if(!newIds.contains(attach.getId())){
+ delIds.add(attach.getId());
+ }
+ }
+ if(!delIds.isEmpty()){
+ attachService.deleteAttachsByIds(delIds);
+ }
+ delCacheByUsername(user.getUsername());
+ return row;
}
@Override
public boolean resetUserPwd(SysUser user) {
- return updateById(user);
+ String originPsword=Base64.decodeStr(user.getPassword());
+ validatorPassword(originPsword);
+ SysUser oldUser=checkUserDataScope(user.getId());
+ SysUser newUser=new SysUser().setId(user.getId()).setPassword(JwtTokenUtil.encryptPassword(oldUser.getUsername(),originPsword,oldUser.getSalt()));
+ newUser.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ delCacheByUsername(oldUser.getUsername());
+ return updateById(newUser);
}
@Override
@@ -376,79 +593,48 @@
@Override
public void checkUserAllowed(SysUser user) {
-
+ SysUser currentUser=ShiroUtils.getSysUser();
+ if(!Objects.equals(currentUser.getIdentity(), UserIdentityEnum.MONITOR.getCode())){
+ if(Objects.equals(user.getIdentity(), UserIdentityEnum.MONITOR.getCode())){
+ throw new ApiException("无权操作监管用户");
+ }
+ if(!Objects.equals(currentUser.getAgencyId(), user.getAgencyId())){
+ throw new ApiException("无权操作其他机构用户");
+ }
+ }
}
@Override
- public void checkUserDataScope(Long userId) {
- SysUser user = baseMapper.getUserById(userId);
+ public SysUser checkUserDataScope(Long userId) {
+ if(userId==null){
+ throw new ApiException("用户id为空!");
+ }
+ SysUser user = getById(userId);
if (ObjectUtil.isNull(user))
{
throw new ApiException("用户数据不存在!");
}
+ checkUserAllowed(user);
+ return user;
}
- @Override
- public String importUser(List<SysUser> userList,Boolean isUpdateSupport) {
- if(ObjectUtil.isEmpty(userList)||userList.size()==0){
- throw new ApiException("导入用户数据不能为空");
- }
- int successNum=0;
- int failureNum=0;
- StringBuilder successMsg=new StringBuilder();
- StringBuilder failureMsg=new StringBuilder();
- String password=configService.getConfigByKey("sys.user.initPassword");
- for(SysUser user:userList){
- try {
- SysUser u = baseMapper.getUserByUsername(user.getUsername());
- if (ObjectUtil.isNull(u)) {
- BeanValidators.validateWithException(validator, user);
- user.setPassword(JwtTokenUtil.md5Encode(user.getUsername() + password));
- user.setCreateBy("");
- save(user);
- successNum++;
- successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 导入成功");
- } else if (isUpdateSupport) {
- BeanValidators.validateWithException(validator, user);
- checkUserAllowed(u);
- checkUserDataScope(u.getId());
- user.setId(u.getId());
- user.setUpdateBy("");
- updateById(user);
- successNum++;
- successMsg.append("<br/>" + successNum + "、账号 " + user.getUsername() + " 更新成功");
- } else {
- failureNum++;
- failureMsg.append("<br/>" + failureNum + "、账号 " + user.getUsername() + " 已存在");
- }
- }catch (Exception e){
- failureNum++;
- String msg = "<br/>" + failureNum + "、账号 " + user.getUsername() + " 导入失败:";
- failureMsg.append(msg + e.getMessage());
- log.error(msg, e);
- }
- }
- if (failureNum > 0){
- failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
- throw new ApiException(failureMsg.toString());
- }else{
- successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
- }
- return successMsg.toString();
- }
@Override
public boolean changeUserStatus(SysUser user) {
- checkUserAllowed(user);
- checkUserDataScope(user.getId());
- return updateById(user);
+ SysUser existUser=checkUserDataScope(user.getId());
+ SysUser su=new SysUser().setId(user.getId()).setStatus(user.getStatus());
+ su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ delCacheByUsername(existUser.getUsername());
+ return updateById(su);
}
@Override
public boolean changeApprove(SysUser user) {
- checkUserAllowed(user);
- checkUserDataScope(user.getId());
- return updateById(user);
+ SysUser existUser=checkUserDataScope(user.getId());
+ SysUser su=new SysUser().setId(user.getId()).setState(user.getState());
+ su.setUpdateBy(ShiroUtils.getSysUser().getUsername());
+ delCacheByUsername(existUser.getUsername());
+ return updateById(su);
}
}
--
Gitblit v1.9.2