1811872455@163.com hace 3 semanas
padre
commit
d05b374b99

+ 345 - 345
storlead-centre-api/src/main/java/com/storlead/centre/system/LoginApiController.java

@@ -1,260 +1,305 @@
-//package com.storlead.centre.system;
-//
-//import cn.hutool.core.util.StrUtil;
-//import cn.hutool.crypto.SecureUtil;
-//import com.alibaba.fastjson.JSONObject;
-//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-//import com.storlead.framework.auth.jwt.JwtUtil;
-//import com.storlead.framework.auth.vo.LoginUser;
-//import com.storlead.framework.common.constant.CommonConstant;
-//import com.storlead.framework.common.constant.RedisKeySaltConstant;
-//import com.storlead.framework.common.ecode.BCryptPasswordEncoder;
-//import com.storlead.framework.common.util.RsaUtils;
-//import com.storlead.framework.redis.RedisService;
-//import com.storlead.framework.util.LoginUserUtil;
-//import com.storlead.framework.web.assemble.Result;
-//import com.storlead.framework.web.enums.ErrorMsgCode;
-//import com.storlead.sms.pojo.entity.SmsLogEntity;
-//import com.storlead.sms.service.SmsLogService;
-//import com.storlead.user.pojo.dto.UserLoginDTO;
-//import com.storlead.user.pojo.entity.DeptEntity;
-//import com.storlead.user.pojo.entity.JobEntity;
-//import com.storlead.user.pojo.entity.UserEntity;
-//import com.storlead.user.service.IDepartService;
-//import com.storlead.user.service.IJobService;
-//import com.storlead.user.service.IUserRoleService;
-//import com.storlead.user.service.IUserService;
-//import com.storlead.wx.service.CorpWeChatService;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiOperation;
-//import lombok.extern.slf4j.Slf4j;
-//import org.apache.commons.codec.binary.Base64;
-//import org.springframework.beans.BeanUtils;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.beans.factory.annotation.Value;
-//import org.springframework.util.CollectionUtils;
-//import org.springframework.web.bind.annotation.*;
-//
-//import javax.annotation.Resource;
-//import javax.crypto.Mac;
-//import javax.crypto.spec.SecretKeySpec;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//import java.security.InvalidKeyException;
-//import java.security.NoSuchAlgorithmException;
-//import java.util.*;
-//import java.util.concurrent.TimeUnit;
-//import java.util.stream.Collectors;
-//
-///**
-// * @program: sp-sales
-// * @description:
-// * @author: chenkq
-// * @create: 2022-07-15 10:11
-// */
-//@RestController
-//@RequestMapping("/sys/auth")
-//@Api(tags="1.认证接口")
-//@Slf4j
-//public class LoginApiController {
-//
-//    @Resource
-//    private IUserService sysUserService;
-//
-//    @Resource
-//    private RedisService redisService;
-//
-//    @Resource
-//    private SmsLogService smsLogService;
-//
-//    @Resource
-//    private IDepartService departService;
-//
-//    @Value("${environment}")
-//    private  String environment;
-//
-//    @Resource
-//    private IUserRoleService userRoleService;
-//
-//    @Resource
-//    private IJobService jobService;
-//
-//    @Resource
-//    private CorpWeChatService corpWeChatService;
-//
-//    @RequestMapping(value = "/redirect")
-//    @ResponseBody
-//    public Object redirect(HttpServletRequest request, HttpServletResponse response)  throws IOException {
-//        response.sendRedirect("http://www.baidu.com");
-//        return Result.ok("");
-//    }
-//
-//    @RequestMapping(value = "/login", method = RequestMethod.POST)
-//    @ApiOperation(value = "用户登录接口", notes = "用户登录接口")
-//    public Result login(@RequestBody UserLoginDTO loginDTO) {
-//
-//        if (Objects.isNull(loginDTO)) {
-//            return Result.error("参数错误");
+package com.storlead.centre.system;
+
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.SecureUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.storlead.framework.auth.jwt.JwtUtil;
+import com.storlead.framework.auth.vo.LoginUser;
+import com.storlead.framework.common.constant.CommonConstant;
+import com.storlead.framework.common.constant.RedisKeySaltConstant;
+import com.storlead.framework.common.ecode.BCryptPasswordEncoder;
+import com.storlead.framework.common.util.RsaUtils;
+import com.storlead.framework.redis.RedisService;
+import com.storlead.framework.util.LoginUserUtil;
+import com.storlead.framework.web.assemble.Result;
+import com.storlead.framework.web.enums.ErrorMsgCode;
+import com.storlead.sms.pojo.entity.SmsLogEntity;
+import com.storlead.sms.service.SmsLogService;
+import com.storlead.user.pojo.dto.UserLoginDTO;
+import com.storlead.user.pojo.entity.DeptEntity;
+import com.storlead.user.pojo.entity.JobEntity;
+import com.storlead.user.pojo.entity.UserEntity;
+import com.storlead.user.service.IDepartService;
+import com.storlead.user.service.IJobService;
+import com.storlead.user.service.IUserRoleService;
+import com.storlead.user.service.IUserService;
+import com.storlead.wx.service.CorpWeChatService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * @program: sp-sales
+ * @description:
+ * @author: chenkq
+ * @create: 2022-07-15 10:11
+ */
+@RestController
+@RequestMapping("/sys/auth")
+@Api(tags="1.认证接口")
+@Slf4j
+public class LoginApiController {
+
+    @Resource
+    private IUserService sysUserService;
+
+    @Resource
+    private RedisService redisService;
+
+    @Resource
+    private SmsLogService smsLogService;
+
+    @Resource
+    private IDepartService departService;
+
+    @Value("${environment}")
+    private  String environment;
+
+    @Resource
+    private IUserRoleService userRoleService;
+
+    @Resource
+    private IJobService jobService;
+
+    @Resource
+    private CorpWeChatService corpWeChatService;
+
+    @RequestMapping(value = "/redirect")
+    @ResponseBody
+    public Object redirect(HttpServletRequest request, HttpServletResponse response)  throws IOException {
+        response.sendRedirect("http://www.baidu.com");
+        return Result.ok("");
+    }
+
+    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    @ApiOperation(value = "用户登录接口", notes = "用户登录接口")
+    public Result login(@RequestBody UserLoginDTO loginDTO) {
+
+        if (Objects.isNull(loginDTO)) {
+            return Result.error("参数错误");
+        }
+        UserEntity userInfo;
+        JSONObject obj = new JSONObject();
+        if (StrUtil.isNotBlank(loginDTO.getWxCode())) {
+            String code = corpWeChatService.login(loginDTO.getWxCode());
+            userInfo = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getXworkUserId,code));
+        } else if (StrUtil.isNotBlank(loginDTO.getSmsCode())) {
+            if (StrUtil.isBlank(loginDTO.getAccount())) {
+                return Result.error("参数错误");
+            }
+            Object var1 = redisService.getCacheObject(RedisKeySaltConstant.REDIS_LOGIN_VALID_CODE_KEY+loginDTO.getAccount());
+            if (Objects.isNull(var1)) {
+                return Result.error(ErrorMsgCode.D_400005);
+            } else {
+                SmsLogEntity smsLog = (SmsLogEntity) var1;
+                if (!loginDTO.getSmsCode().equals(smsLog.getVerifyCode())){
+                    return Result.error(ErrorMsgCode.D_400008);
+                }
+                Long currentTime = System.currentTimeMillis();
+                Long sendTime = smsLog.getSendTime().getTime();
+                if ((currentTime - sendTime) / 1000 > smsLog.getValidTime()) {
+                    return Result.error(ErrorMsgCode.D_400007);
+                }
+            }
+            userInfo = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,loginDTO.getAccount()));
+            redisService.deleteObject(RedisKeySaltConstant.REDIS_LOGIN_VALID_CODE_KEY+loginDTO.getAccount());
+        } else {
+            if (StrUtil.isBlank(loginDTO.getAccount()) || StrUtil.isBlank(loginDTO.getPassword())) {
+                return Result.error("用户名或密码为空");
+            }
+            userInfo = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,loginDTO.getAccount()).eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0));
+            if (Objects.isNull(userInfo)) {
+                return Result.error("账号不存在");
+            }
+
+            BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
+            String password = "";
+            if((!environment.equals("prod") && !loginDTO.getPassword().equals("qq123456")) || environment.equals("prod")){
+                try {
+                    password = RsaUtils.decryptByPrivateKey(RsaUtils.PRIVATE_KEY, loginDTO.getPassword());
+                }catch (Exception e) {
+                    return Result.error("用户名或密码错误");
+                }
+            }
+            if(environment.equals("prod") || (environment.equals("test")
+                    && !loginDTO.getPassword().equals("qq123456") &&
+                    !password.equals("qq123456"))) {
+                if (!bCryptPasswordEncoder.matches(password, userInfo.getPassword())) {
+                    return Result.error("用户名或密码错误");
+                }
+            }
+            String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z\\W]{8,}$";
+            String defaultPassWord = "storlead123456";// SystemConfigItemCacheUtil.getDefaultPassWord();
+
+            if(password !=null && (!password.matches(regex) || password.equals(defaultPassWord))){
+                obj.put("status",1);
+            }else {
+                obj.put("status",2);
+            }
+
+        }
+        if (Objects.isNull(userInfo)) {
+            return Result.error("登录失败,未获取到用户信息");
+        }
+        if (!userInfo.getEnabled()) {
+            return Result.error("该账号用户暂无登录权限");
+        }
+
+//        Integer possessMenuCount = menuService.checkUserMenuAccess(userInfo.getId());
+//        if (possessMenuCount == 0) {
+//            return Result.error("暂未获取到菜单权限,请联系管理员分配权限!");
 //        }
-//        UserEntity userInfo;
-//        JSONObject obj = new JSONObject();
-//        if (StrUtil.isNotBlank(loginDTO.getWxCode())) {
-//            String code = corpWeChatService.login(loginDTO.getWxCode());
-//            userInfo = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getXworkUserId,code));
-//        } else if (StrUtil.isNotBlank(loginDTO.getSmsCode())) {
-//            if (StrUtil.isBlank(loginDTO.getAccount())) {
-//                return Result.error("参数错误");
-//            }
-//            Object var1 = redisService.getCacheObject(RedisKeySaltConstant.REDIS_LOGIN_VALID_CODE_KEY+loginDTO.getAccount());
-//            if (Objects.isNull(var1)) {
-//                return Result.error(ErrorMsgCode.D_400005);
-//            } else {
-//                SmsLogEntity smsLog = (SmsLogEntity) var1;
-//                if (!loginDTO.getSmsCode().equals(smsLog.getVerifyCode())){
-//                    return Result.error(ErrorMsgCode.D_400008);
-//                }
-//                Long currentTime = System.currentTimeMillis();
-//                Long sendTime = smsLog.getSendTime().getTime();
-//                if ((currentTime - sendTime) / 1000 > smsLog.getValidTime()) {
-//                    return Result.error(ErrorMsgCode.D_400007);
-//                }
-//            }
-//            userInfo = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,loginDTO.getAccount()));
-//            redisService.deleteObject(RedisKeySaltConstant.REDIS_LOGIN_VALID_CODE_KEY+loginDTO.getAccount());
-//        } else {
-//            if (StrUtil.isBlank(loginDTO.getAccount()) || StrUtil.isBlank(loginDTO.getPassword())) {
-//                return Result.error("用户名或密码为空");
-//            }
-//            userInfo = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,loginDTO.getAccount()).eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0));
-//            if (Objects.isNull(userInfo)) {
-//                return Result.error("账号不存在");
-//            }
-//
-//            BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
-//            String password = "";
-//            if((!environment.equals("prod") && !loginDTO.getPassword().equals("qq123456")) || environment.equals("prod")){
-//                try {
-//                    password = RsaUtils.decryptByPrivateKey(RsaUtils.PRIVATE_KEY, loginDTO.getPassword());
-//                }catch (Exception e) {
-//                    return Result.error("用户名或密码错误");
-//                }
-//            }
-//            if(environment.equals("prod") || (environment.equals("test")
-//                    && !loginDTO.getPassword().equals("qq123456") &&
-//                    !password.equals("qq123456"))) {
-//                if (!bCryptPasswordEncoder.matches(password, userInfo.getPassword())) {
-//                    return Result.error("用户名或密码错误");
-//                }
-//            }
-//            String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z\\W]{8,}$";
-//            String defaultPassWord = "storlead123456";// SystemConfigItemCacheUtil.getDefaultPassWord();
-//
-//            if(password !=null && (!password.matches(regex) || password.equals(defaultPassWord))){
-//                obj.put("status",1);
-//            }else {
-//                obj.put("status",2);
-//            }
-//
+
+        LoginUser loginUser = new LoginUser();
+        BeanUtils.copyProperties(userInfo,loginUser);
+
+        if (Objects.nonNull(userInfo.getJobId())) {
+            JobEntity job = jobService.getById(userInfo.getJobId());
+            if (Objects.nonNull(job)) {
+                loginUser.setJobName(job.getName());
+            }
+        }
+
+        loginUser.setRoleIds(userRoleService.selectUserRoleByUserId(userInfo.getId()));
+        if (Objects.nonNull(userInfo.getDeptId())) {
+            DeptEntity dept = departService.getById(userInfo.getDeptId());
+            if (Objects.nonNull(dept)) {
+                loginUser.setDeptName(dept.getName());
+                loginUser.setDeptJobDes(dept.getDeptJobDes());
+            }
+        }
+
+        //用户登录信息
+        String jwtToken = JwtUtil.createJWT(JSONObject.toJSONString(loginUser),loginUser.getMobile());
+        String token = SecureUtil.md5(jwtToken);
+
+        String json = JSONObject.toJSONString(loginUser);
+        redisService.setCacheObject(token, json, 60 * 60 * 24L * 7, TimeUnit.SECONDS);
+
+        Map<String, String> apiMap = new HashMap();
+        redisService.setCacheObject(RedisKeySaltConstant.API_CODE_REDIS + loginUser.getMobile(), apiMap);
+
+        obj.put("token", token);
+        return Result.ok(obj);
+    }
+
+
+    @ApiOperation("获取当前用户信息")
+    @PostMapping("/getCurrentUserInfo")
+    public Object getCurrentUserInfo() {
+        LoginUser loginUser = LoginUserUtil.getLoginUser();
+        if (Objects.isNull(loginUser)) {
+            return Result.error("获取失败,请重新登录");
+        }
+        DeptEntity dept = departService.getById(loginUser.getDeptId());
+        UserEntity sysUser = sysUserService.getById(loginUser.getId());
+        loginUser.setJobDes(sysUser.getJobDes())
+                 .setBirthday(sysUser.getBirthday())
+                 .setEmail(sysUser.getEmail())
+                 .setMobile(sysUser.getMobile())
+                 .setSex(sysUser.getSex())
+                 .setUserName(sysUser.getUserName())
+                 .setNickName(sysUser.getNickName());
+        if (Objects.nonNull(dept)) {
+            loginUser.setDeptJobDes(dept.getDeptJobDes());
+        }
+        if (Objects.nonNull(dept)) {
+            if (StrUtil.isNotBlank(dept.getRouteCode())) {
+                List<String> codes = Arrays.asList(dept.getRouteCode().split(","));
+                loginUser.setSubCompanyCode(codes.get(1));
+                loginUser.setCompanyCode(codes.get(0));
+            }
+            loginUser.setDeptCode(dept.getRouteCode());
+            loginUser.setDeptName(dept.getName());
+        }
+
+//        List<MenuEntity> userMenuList = menuService.getUserMenuList(loginUser.getId(),Arrays.asList(0),Arrays.asList(3));
+//        if (!CollectionUtils.isEmpty(userMenuList)) {
+//            loginUser.setBtnRes(userMenuList.stream().map(MenuEntity::getPerms).collect(Collectors.toSet()));
 //        }
-//        if (Objects.isNull(userInfo)) {
-//            return Result.error("登录失败,未获取到用户信息");
-//        }
-//        if (!userInfo.getEnabled()) {
-//            return Result.error("该账号用户暂无登录权限");
-//        }
-//
-////        Integer possessMenuCount = menuService.checkUserMenuAccess(userInfo.getId());
-////        if (possessMenuCount == 0) {
-////            return Result.error("暂未获取到菜单权限,请联系管理员分配权限!");
-////        }
-//
-//        LoginUser loginUser = new LoginUser();
-//        BeanUtils.copyProperties(userInfo,loginUser);
-//
-//        if (Objects.nonNull(userInfo.getJobId())) {
-//            JobEntity job = jobService.getById(userInfo.getJobId());
-//            if (Objects.nonNull(job)) {
-//                loginUser.setJobName(job.getName());
-//            }
-//        }
-//
-//        loginUser.setRoleIds(userRoleService.selectUserRoleByUserId(userInfo.getId()));
-//        if (Objects.nonNull(userInfo.getDeptId())) {
-//            DeptEntity dept = departService.getById(userInfo.getDeptId());
-//            if (Objects.nonNull(dept)) {
-//                loginUser.setDeptName(dept.getName());
-//                loginUser.setDeptJobDes(dept.getDeptJobDes());
-//            }
-//        }
-//
-//        //用户登录信息
-//        String jwtToken = JwtUtil.createJWT(JSONObject.toJSONString(loginUser),loginUser.getMobile());
-//        String token = SecureUtil.md5(jwtToken);
-//
-//        String json = JSONObject.toJSONString(loginUser);
-//        redisService.setCacheObject(token, json, 60 * 60 * 24L * 7, TimeUnit.SECONDS);
-//
-//        Map<String, String> apiMap = new HashMap();
-//        redisService.setCacheObject(RedisKeySaltConstant.API_CODE_REDIS + loginUser.getMobile(), apiMap);
-//
-//        obj.put("token", token);
-//        return Result.ok(obj);
-//    }
-//
-//
-//    @ApiOperation("获取当前用户信息")
-//    @PostMapping("/getCurrentUserInfo")
-//    public Object getCurrentUserInfo() {
-//        LoginUser loginUser = LoginUserUtil.getLoginUser();
-//        if (Objects.isNull(loginUser)) {
-//            return Result.error("获取失败,请重新登录");
-//        }
-//        DeptEntity dept = departService.getById(loginUser.getDeptId());
-//        UserEntity sysUser = sysUserService.getById(loginUser.getId());
-//        loginUser.setJobDes(sysUser.getJobDes())
-//                 .setBirthday(sysUser.getBirthday())
-//                 .setEmail(sysUser.getEmail())
-//                 .setMobile(sysUser.getMobile())
-//                 .setSex(sysUser.getSex())
-//                 .setUserName(sysUser.getUserName())
-//                 .setNickName(sysUser.getNickName());
-//        if (Objects.nonNull(dept)) {
-//            loginUser.setDeptJobDes(dept.getDeptJobDes());
-//        }
-//        if (Objects.nonNull(dept)) {
-//            if (StrUtil.isNotBlank(dept.getRouteCode())) {
-//                List<String> codes = Arrays.asList(dept.getRouteCode().split(","));
-//                loginUser.setSubCompanyCode(codes.get(1));
-//                loginUser.setCompanyCode(codes.get(0));
-//            }
-//            loginUser.setDeptCode(dept.getRouteCode());
-//            loginUser.setDeptName(dept.getName());
-//        }
-//
-////        List<MenuEntity> userMenuList = menuService.getUserMenuList(loginUser.getId(),Arrays.asList(0),Arrays.asList(3));
-////        if (!CollectionUtils.isEmpty(userMenuList)) {
-////            loginUser.setBtnRes(userMenuList.stream().map(MenuEntity::getPerms).collect(Collectors.toSet()));
-////        }
-//        return Result.ok(loginUser);
-//    }
-//
-//    @ApiOperation("获取当前用户信息")
-//    @PostMapping("/getH5CurrentUserInfo")
-//    public Object getH5CurrentUserInfo() {
-//        LoginUser loginUser = LoginUserUtil.getLoginUser();
-//        if (Objects.isNull(loginUser)) {
-//            return Result.error("获取失败,请重新登录");
+        return Result.ok(loginUser);
+    }
+
+    @ApiOperation("获取当前用户信息")
+    @PostMapping("/getH5CurrentUserInfo")
+    public Object getH5CurrentUserInfo() {
+        LoginUser loginUser = LoginUserUtil.getLoginUser();
+        if (Objects.isNull(loginUser)) {
+            return Result.error("获取失败,请重新登录");
+        }
+        DeptEntity dept = departService.getById(loginUser.getDeptId());
+        UserEntity sysUser = sysUserService.getById(loginUser.getId());
+        loginUser.setJobDes(sysUser.getJobDes())
+                .setBirthday(sysUser.getBirthday())
+                .setEmail(sysUser.getEmail())
+                .setMobile(sysUser.getMobile())
+                .setSex(sysUser.getSex())
+                .setUserName(sysUser.getUserName())
+                .setNickName(sysUser.getNickName());
+        if (Objects.nonNull(dept)) {
+            loginUser.setDeptJobDes(dept.getDeptJobDes());
+        }
+        if (Objects.nonNull(dept)) {
+            if (StrUtil.isNotBlank(dept.getRouteCode())) {
+                List<String> codes = Arrays.asList(dept.getRouteCode().split(","));
+                loginUser.setSubCompanyCode(codes.get(1));
+                loginUser.setCompanyCode(codes.get(0));
+            }
+            loginUser.setDeptCode(dept.getRouteCode());
+            loginUser.setDeptName(dept.getName());
+        }
+
+//        List<MenuEntity> userMenuList = menuService.getUserMenuList(loginUser.getId(),Arrays.asList(1),Arrays.asList(1,2,3));
+//        if (!CollectionUtils.isEmpty(userMenuList)) {
+//            List<MenuPermis> permis = userMenuList.stream()
+//                    .map(menu -> {
+//                        MenuPermis mp = new MenuPermis();
+//                        mp.setId(menu.getId());
+//                        mp.setPerm(menu.getPerms());
+//                        mp.setType(menu.getMenuType());
+//                        return mp;
+//                    })
+//                    .collect(Collectors.toList());
+//            loginUser.setPermis(permis);
 //        }
+        return Result.ok(loginUser);
+    }
+
+    @ApiOperation("获取当前用户信息")
+    @RequestMapping("/getCurrentUser")
+    public Object getCurrentUser() {
+        LoginUser loginUser = LoginUserUtil.getLoginUser();
+        if (Objects.isNull(loginUser)) {
+            return Result.error("获取失败,请重新登录");
+        }
 //        DeptEntity dept = departService.getById(loginUser.getDeptId());
-//        UserEntity sysUser = sysUserService.getById(loginUser.getId());
-//        loginUser.setJobDes(sysUser.getJobDes())
-//                .setBirthday(sysUser.getBirthday())
-//                .setEmail(sysUser.getEmail())
-//                .setMobile(sysUser.getMobile())
-//                .setSex(sysUser.getSex())
-//                .setUserName(sysUser.getUserName())
-//                .setNickName(sysUser.getNickName());
+        UserEntity sysUser = sysUserService.getById(loginUser.getId());
+        loginUser.setJobDes(sysUser.getJobDes())
+                .setBirthday(sysUser.getBirthday())
+                .setEmail(sysUser.getEmail())
+                .setMobile(sysUser.getMobile())
+                .setSex(sysUser.getSex())
+                .setUserName(sysUser.getUserName())
+                .setNickName(sysUser.getNickName());
 //        if (Objects.nonNull(dept)) {
 //            loginUser.setDeptJobDes(dept.getDeptJobDes());
 //        }
@@ -267,99 +312,54 @@
 //            loginUser.setDeptCode(dept.getRouteCode());
 //            loginUser.setDeptName(dept.getName());
 //        }
+        return Result.ok(loginUser);
+    }
+
+    @ApiOperation("获取AccessToken")
+    @PostMapping("/sendVerifyCode")
+    public Result sendLoginVerifyCode(String mobile) {
+        if (StrUtil.isBlank(mobile)) {
+            return Result.error("参数错误");
+        }
+        UserEntity userAccount = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,mobile));
+        if (userAccount == null) {
+            return Result.error("手机号错误,该手机号用户不存在");
+        }
+        try {
+            return  smsLogService.sendLoginSmsCode(mobile);
+        }catch (Exception e) {
+            return  Result.error(e.getMessage());
+        }
+    }
+
+
+
+//    public static void main(String[] args) {
+//
+//        String baseUrl = "https://openapi.liblibai.cloud";
+//
+//        String secretKey = "MyJwnqGd1h_W__ENlx_ywK-RpkHTeJd7";
+//        // 请求API接口的uri地址
+//        String uri = "/api/generate/webui/status";
+//        // 当前毫秒时间戳
+//        Long timestamp = System.currentTimeMillis();
+//        // 随机字符串
+//        String signatureNonce = RandomStringUtils.randomAlphanumeric(10);
+//        // 拼接请求数据
+//        String content = uri + "&" + timestamp + "&" + signatureNonce;
 //
-////        List<MenuEntity> userMenuList = menuService.getUserMenuList(loginUser.getId(),Arrays.asList(1),Arrays.asList(1,2,3));
-////        if (!CollectionUtils.isEmpty(userMenuList)) {
-////            List<MenuPermis> permis = userMenuList.stream()
-////                    .map(menu -> {
-////                        MenuPermis mp = new MenuPermis();
-////                        mp.setId(menu.getId());
-////                        mp.setPerm(menu.getPerms());
-////                        mp.setType(menu.getMenuType());
-////                        return mp;
-////                    })
-////                    .collect(Collectors.toList());
-////            loginUser.setPermis(permis);
-////        }
-//        return Result.ok(loginUser);
-//    }
-//
-//    @ApiOperation("获取当前用户信息")
-//    @RequestMapping("/getCurrentUser")
-//    public Object getCurrentUser() {
-//        LoginUser loginUser = LoginUserUtil.getLoginUser();
-//        if (Objects.isNull(loginUser)) {
-//            return Result.error("获取失败,请重新登录");
-//        }
-////        DeptEntity dept = departService.getById(loginUser.getDeptId());
-//        UserEntity sysUser = sysUserService.getById(loginUser.getId());
-//        loginUser.setJobDes(sysUser.getJobDes())
-//                .setBirthday(sysUser.getBirthday())
-//                .setEmail(sysUser.getEmail())
-//                .setMobile(sysUser.getMobile())
-//                .setSex(sysUser.getSex())
-//                .setUserName(sysUser.getUserName())
-//                .setNickName(sysUser.getNickName());
-////        if (Objects.nonNull(dept)) {
-////            loginUser.setDeptJobDes(dept.getDeptJobDes());
-////        }
-////        if (Objects.nonNull(dept)) {
-////            if (StrUtil.isNotBlank(dept.getRouteCode())) {
-////                List<String> codes = Arrays.asList(dept.getRouteCode().split(","));
-////                loginUser.setSubCompanyCode(codes.get(1));
-////                loginUser.setCompanyCode(codes.get(0));
-////            }
-////            loginUser.setDeptCode(dept.getRouteCode());
-////            loginUser.setDeptName(dept.getName());
-////        }
-//        return Result.ok(loginUser);
-//    }
-//
-//    @ApiOperation("获取AccessToken")
-//    @PostMapping("/sendVerifyCode")
-//    public Result sendLoginVerifyCode(String mobile) {
-//        if (StrUtil.isBlank(mobile)) {
-//            return Result.error("参数错误");
-//        }
-//        UserEntity userAccount = sysUserService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,mobile));
-//        if (userAccount == null) {
-//            return Result.error("手机号错误,该手机号用户不存在");
-//        }
 //        try {
-//            return  smsLogService.sendLoginSmsCode(mobile);
-//        }catch (Exception e) {
-//            return  Result.error(e.getMessage());
+//            // 生成签名
+//            SecretKeySpec secret = new SecretKeySpec(secretKey.getBytes(), "HmacSHA1");
+//            Mac mac = Mac.getInstance("HmacSHA1");
+//            mac.init(secret);
+//            String signature =  Base64.encodeBase64URLSafeString(mac.doFinal(content.getBytes()));
+//            String url = baseUrl+uri+"?AccessKey=kaB5IBReZKiU9LiIJPbl6g&Signature="+signature+"&Timestamp="+timestamp+"&SignatureNonce="+signatureNonce;
+//            System.out.println("url :"+url);
+//        } catch (NoSuchAlgorithmException e) {
+//           log.error("NoSuchAlgorithmException -- error--",e);
+//        } catch (InvalidKeyException e) {
+//            log.error("InvalidKeyException -- error--",e);
 //        }
 //    }
-//
-//
-//
-////    public static void main(String[] args) {
-////
-////        String baseUrl = "https://openapi.liblibai.cloud";
-////
-////        String secretKey = "MyJwnqGd1h_W__ENlx_ywK-RpkHTeJd7";
-////        // 请求API接口的uri地址
-////        String uri = "/api/generate/webui/status";
-////        // 当前毫秒时间戳
-////        Long timestamp = System.currentTimeMillis();
-////        // 随机字符串
-////        String signatureNonce = RandomStringUtils.randomAlphanumeric(10);
-////        // 拼接请求数据
-////        String content = uri + "&" + timestamp + "&" + signatureNonce;
-////
-////        try {
-////            // 生成签名
-////            SecretKeySpec secret = new SecretKeySpec(secretKey.getBytes(), "HmacSHA1");
-////            Mac mac = Mac.getInstance("HmacSHA1");
-////            mac.init(secret);
-////            String signature =  Base64.encodeBase64URLSafeString(mac.doFinal(content.getBytes()));
-////            String url = baseUrl+uri+"?AccessKey=kaB5IBReZKiU9LiIJPbl6g&Signature="+signature+"&Timestamp="+timestamp+"&SignatureNonce="+signatureNonce;
-////            System.out.println("url :"+url);
-////        } catch (NoSuchAlgorithmException e) {
-////           log.error("NoSuchAlgorithmException -- error--",e);
-////        } catch (InvalidKeyException e) {
-////            log.error("InvalidKeyException -- error--",e);
-////        }
-////    }
-//}
+}

+ 397 - 398
storlead-centre-api/src/main/java/com/storlead/centre/system/UserApiController.java

@@ -1,407 +1,406 @@
-//package com.storlead.centre.system;
-//
-//import cn.hutool.core.util.StrUtil;
-//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-//import com.baomidou.mybatisplus.core.metadata.IPage;
-//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-//import com.storlead.framework.common.constant.CommonConstant;
-//import com.storlead.framework.common.ecode.PasswordEncoder;
-//import com.storlead.framework.util.LoginUserUtil;
-//import com.storlead.framework.web.assemble.Result;
-//import com.storlead.user.pojo.dto.SetUserDetailDTO;
-//import com.storlead.user.pojo.dto.UserParam;
-//import com.storlead.user.pojo.entity.DeptEntity;
-//import com.storlead.user.pojo.entity.UserEntity;
-//import com.storlead.user.pojo.vo.SetUserDetailVo;
-//import com.storlead.user.pojo.vo.UserVo;
-//import com.storlead.user.service.IDepartService;
-//import com.storlead.user.service.IRoleService;
-//import com.storlead.user.service.IUserRoleService;
-//import com.storlead.user.service.IUserService;
-//import io.swagger.annotations.Api;
-//import io.swagger.annotations.ApiOperation;
-//import io.swagger.annotations.ApiResponse;
-//import io.swagger.annotations.ApiResponses;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.util.StringUtils;
-//import org.springframework.web.bind.annotation.PostMapping;
-//import org.springframework.web.bind.annotation.RequestBody;
-//import org.springframework.web.bind.annotation.RequestMapping;
-//import org.springframework.web.bind.annotation.RestController;
-//
-//import javax.annotation.Resource;
-//import java.util.Arrays;
-//import java.util.List;
-//import java.util.Objects;
-//
-//
-///**
-// * @program: sp-cloud
-// * @description:
-// * @author: chenkq
-// * @create: 2022-05-20 12:08
-// */
-//@Slf4j
-//@Api(tags = "用户: 用户管理")
-//@RestController
-//@RequestMapping("/sys/user")
-//public class UserApiController {
-//
-//    @Resource
-//    private IUserService userService;
-//
-//    @Resource
-//    private IDepartService departService;
-//
-//    @Resource
-//    private PasswordEncoder passwordEncoder;
-//
-//    @ApiOperation("根据部门id查询用户")
-//    @PostMapping("listByDeptId")
-//    public Result listByDeptId(Long deptId) {
-//
-//        List<UserEntity> list = userService.list(
-//                new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getDeptId,deptId)
-//                        .ne(UserEntity::getStatus,Integer.valueOf(5))
-//                        .eq(UserEntity::getIsDelete,0));
-//        return Result.ok(list);
-//    }
-//    @ApiOperation("分页查询用户")
-//    @PostMapping("pagelist")
-//    public Result pagelist(@RequestBody UserParam param) {
-//
-////        param.setCommonQueryOrderBy("UserEntity");
-//
-//        IPage<UserVo> page = new Page<>(param.getPageIndex(),param.getPageSize());
-//        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
-//        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
-//        if (StrUtil.isNotBlank(param.getBlurry())) {
-//            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
-//        }
-//        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
-//            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
-//        }
-////        if (Objects.isNull(param.getStatus())) {
-////            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
-////        } else {
-////            queryWrapper.ne(UserEntity::getStatus,param.getStatus());
-////        }
-//        if (!param.getIsIncludeResign()) {
-//            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
-//        }
-//        queryWrapper.orderByDesc(UserEntity::getEmail);
-////        List<UserVo> us  = userService.listWithScopeVo(page,queryWrapper,param);
-////        if (CollectionUtil.isNotEmpty(us)) {
-////            List<Long> userIds = us.stream().map(UserVo::getId).collect(Collectors.toList());
-////            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
-////            if (CollectionUtil.isNotEmpty(userRolels)) {
-////                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
-////                us.forEach(u -> {
-////                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
-////                    if(CollectionUtil.isNotEmpty(roles)) {
-////                        u.setRoleNames(roles.stream().map(RoleEntity::getName).collect(Collectors.toList()));
-////                        u.setRoleIds(roles.stream().map(RoleEntity::getId).collect(Collectors.toList()));
-////                    }
-////                });
-////            }
-////
-////            us.forEach(e -> {
-////                e.setIdNum("");
-////                e.setPassword("");
-////                e.setBankCardNum("");
-////                e.setBankName("");
-////                e.setEducation("");
-////                e.setAddress("");
-////                e.setBirthday(null);
-////                e.setEmail("");
-////            });
-////        }
-//        page.setRecords(null);
-//        return Result.ok(page);
-//    }
-//
-//    @ApiOperation("分页查询用户")
-//    @PostMapping("pageScopelist")
-//    public Result pageScopelist(@RequestBody UserParam param) {
-//
-//        IPage<UserVo> page = new Page<>(param.getPageIndex(),param.getPageSize());
-//        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
-//        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
-//        if (StrUtil.isNotBlank(param.getBlurry())) {
-//            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
-//        }
-//        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
-//            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
-//        }
-//        if (!param.getIsIncludeResign()) {
+package com.storlead.centre.system;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.storlead.framework.common.constant.CommonConstant;
+import com.storlead.framework.common.ecode.PasswordEncoder;
+import com.storlead.framework.util.LoginUserUtil;
+import com.storlead.framework.web.assemble.Result;
+import com.storlead.user.pojo.dto.SetUserDetailDTO;
+import com.storlead.user.pojo.dto.UserParam;
+import com.storlead.user.pojo.entity.DeptEntity;
+import com.storlead.user.pojo.entity.UserEntity;
+import com.storlead.user.pojo.vo.SetUserDetailVo;
+import com.storlead.user.pojo.vo.UserVo;
+import com.storlead.user.service.IDepartService;
+import com.storlead.user.service.IUserRoleService;
+import com.storlead.user.service.IUserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+
+
+/**
+ * @program: sp-cloud
+ * @description:
+ * @author: chenkq
+ * @create: 2022-05-20 12:08
+ */
+@Slf4j
+@Api(tags = "用户: 用户管理")
+@RestController
+@RequestMapping("/sys/user")
+public class UserApiController {
+
+    @Resource
+    private IUserService userService;
+
+    @Resource
+    private IDepartService departService;
+
+    @Resource
+    private PasswordEncoder passwordEncoder;
+
+    @ApiOperation("根据部门id查询用户")
+    @PostMapping("listByDeptId")
+    public Result listByDeptId(Long deptId) {
+
+        List<UserEntity> list = userService.list(
+                new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getDeptId,deptId)
+                        .ne(UserEntity::getStatus,Integer.valueOf(5))
+                        .eq(UserEntity::getIsDelete,0));
+        return Result.ok(list);
+    }
+    @ApiOperation("分页查询用户")
+    @PostMapping("pagelist")
+    public Result pagelist(@RequestBody UserParam param) {
+
+//        param.setCommonQueryOrderBy("UserEntity");
+
+        IPage<UserVo> page = new Page<>(param.getPageIndex(),param.getPageSize());
+        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
+        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
+        if (StrUtil.isNotBlank(param.getBlurry())) {
+            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
+        }
+        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
+            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
+        }
+//        if (Objects.isNull(param.getStatus())) {
 //            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
-//        }
-//        queryWrapper.orderByDesc(UserEntity::getEmail);
-////        List<UserVo> us  = userService.listWithScopeVo(page,queryWrapper,param);
-////        if (CollectionUtil.isNotEmpty(us)) {
-////            List<Long> userIds = us.stream().map(UserVo::getId).collect(Collectors.toList());
-////            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
-////            if (CollectionUtil.isNotEmpty(userRolels)) {
-////                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
-////                us.forEach(u -> {
-////                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
-////                    if(CollectionUtil.isNotEmpty(roles)) {
-////                        u.setRoleNames(roles.stream().map(RoleEntity::getName).collect(Collectors.toList()));
-////                        u.setRoleIds(roles.stream().map(RoleEntity::getId).collect(Collectors.toList()));
-////                    }
-////                });
-////            }
-////
-////            us.forEach(e -> {
-////                e.setIdNum("");
-////                e.setPassword("");
-////                e.setBankCardNum("");
-////                e.setBankName("");
-////                e.setEducation("");
-////                e.setAddress("");
-////                e.setBirthday(null);
-////                e.setEmail("");
-////            });
-////        }
-//        page.setRecords(null);
-//        return Result.ok(page);
-//    }
-//
-//    @ApiOperation("删除人员数据")
-//    @PostMapping("delete")
-//    public Result delete(Long [] ids) {
-//        if (ids == null || ids.length == 0) {
-//            return Result.error("参数错误");
-//        }
-//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-//        update.in(UserEntity::getId,Arrays.asList(ids));
-//        update.set(UserEntity::getIsDelete,1);
-//        userService.update(update);
-//        return Result.ok();
-//    }
-//
-//
-//    @ApiOperation("标记冻结")
-//    @PostMapping("markFreeze")
-//    public Result markFreeze(Long [] ids,Integer isFreeze) {
-//        if (ids == null || ids.length == 0) {
-//            return Result.error("参数错误");
-//        }
-//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-//        update.in(UserEntity::getId,Arrays.asList(ids));
-//        update.set(UserEntity::getIsFreeze,isFreeze);
-//        userService.update(update);
-//        if(Integer.valueOf(0).equals(isFreeze)) {
-//            userService.updateLastFollowUpTime(Arrays.asList(ids));
-//        }
-//        return Result.ok();
-//    }
-//
-//
-//    @ApiOperation("删除人员数据")
-//    @PostMapping("deleteById")
-//    public Result deleteById(Long id) {
-//        if (id == null) {
-//            return Result.error("参数错误");
-//        }
-//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-//        update.eq(UserEntity::getId,id);
-//        update.set(UserEntity::getIsDelete,1);
-//        userService.update(update);
-//        return Result.ok();
-//    }
-//
-//    @ApiOperation("删除人员数据")
-//    @PostMapping("updateRealName")
-//    public Result deleteById(Long id,String realName) {
-//        if (id == null) {
-//            return Result.error("参数错误");
-//        }
-//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-//        update.eq(UserEntity::getId,id);
-//        update.set(UserEntity::getRealName,realName);
-//        userService.update(update);
-//        return Result.ok();
-//    }
-//
-//
-//    @ApiOperation("启用禁用员工")
-//    @PostMapping("enable")
-//    public Result setEnable(Long [] ids,Boolean enable) {
-//        if (ids == null || ids.length == 0) {
-//            return Result.error("参数错误");
-//        }
-//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-//        update.in(UserEntity::getId,Arrays.asList(ids));
-//        update.set(UserEntity::getEnabled,enable);
-//        Boolean re =  userService.update(update);
-//        if (re) {
-//            return Result.ok();
 //        } else {
-//            return Result.error("操作失败");
-//        }
-//    }
-//
-//
-//    @ApiOperation("根据ids查询用户")
-//    @PostMapping("queryByIds")
-//    public Result queryByIds(Long [] ids) {
-//        if (ids == null || ids.length == 0) {
-//            return Result.error("参数错误");
-//        }
-//        LambdaUpdateWrapper<UserEntity> query = new LambdaUpdateWrapper();
-//        query.in(UserEntity::getId,Arrays.asList(ids));
-//        List<UserEntity> list  =  userService.list(query);
-//        return Result.ok(list);
-//    }
-//
-//
-//    @ApiOperation("同步OA数据")
-//    @PostMapping("syncOa")
-//    public Result syncOa() {
-//       userService.syncOa();
-//       return Result.ok();
-//    }
-//
-//    @ApiOperation("重置密码")
-//    @PostMapping("resetPassword")
-//    public Result resetPassword(Long userId) {
-//        if  (Objects.isNull(userId)) {
-//            return Result.error("参数错误");
-//        }
-//        String defaultPassWord = "storlead123456";
-//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<UserEntity>();
-//        update.eq(UserEntity::getId,userId);
-//        update.set(UserEntity::getPassword,passwordEncoder.encode(defaultPassWord));
-//        userService.update(update);
-//        return Result.ok();
-//    }
-//
-//    @ApiOperation("修改用户信息")
-//    @PostMapping("updateUserInfo")
-//    public Result setPhone(SetUserDetailDTO dto) {
-//        Long userId = LoginUserUtil.getCurrentUserId();
-//        if  (Objects.isNull(userId)) {
-//            return Result.error("您未登录");
-//        }
-//        if  (StrUtil.isBlank(dto.getAvatar())) {
-//            return Result.error("参数错误,头像url不能为空");
-//        }
-//        if  (StrUtil.isBlank(dto.getMobile())) {
-//            return Result.error("参数错误,手机号不能为空");
-//        }
-//        UserEntity entity = userService.getById(userId);
-//        if (Objects.isNull(entity)) {
-//            return Result.error("未找到当前用户,请重新登录");
-//        }
-//        UserEntity oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getMobile()).eq(UserEntity::getIsDelete,0).last("limit 1"));
-//        if (Objects.nonNull(oUser)) {
-//            if (!oUser.getId().equals(userId)) {
-//                return Result.error("该手机'"+dto.getMobile()+"'号已被占用!");
-//            }
+//            queryWrapper.ne(UserEntity::getStatus,param.getStatus());
 //        }
-//        if  (StrUtil.isNotBlank(dto.getEmail())) {
-//            oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getEmail()).eq(UserEntity::getIsDelete,0).last("limit 1"));
-//            if (Objects.nonNull(oUser)) {
-//                if (!oUser.getId().equals(userId)) {
-//                    return Result.error("该邮箱'"+dto.getEmail()+"'已被占用!");
-//                }
+        if (!param.getIsIncludeResign()) {
+            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
+        }
+        queryWrapper.orderByDesc(UserEntity::getEmail);
+//        List<UserVo> us  = userService.listWithScopeVo(page,queryWrapper,param);
+//        if (CollectionUtil.isNotEmpty(us)) {
+//            List<Long> userIds = us.stream().map(UserVo::getId).collect(Collectors.toList());
+//            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
+//            if (CollectionUtil.isNotEmpty(userRolels)) {
+//                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
+//                us.forEach(u -> {
+//                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
+//                    if(CollectionUtil.isNotEmpty(roles)) {
+//                        u.setRoleNames(roles.stream().map(RoleEntity::getName).collect(Collectors.toList()));
+//                        u.setRoleIds(roles.stream().map(RoleEntity::getId).collect(Collectors.toList()));
+//                    }
+//                });
 //            }
-//        }
-//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<>();
-//        update.eq(UserEntity::getId, userId);
-//
-//        update.set(UserEntity::getAvatar, dto.getAvatar())
-//              .set(UserEntity::getEmail, dto.getEmail())
-//              .set(UserEntity::getNickName, dto.getNickName())
-//              .set(UserEntity::getRealName, dto.getRealName())
-//              .set(UserEntity::getMobile, dto.getMobile())
-//              .set(UserEntity::getSex, dto.getSex())
-//              .set(UserEntity::getBirthday, dto.getBirthday());
-//
-//        if (StrUtil.isNotBlank(dto.getJobDes())) {
-//            update.set(UserEntity::getJobDes, dto.getJobDes());
-//        }
 //
-//        try {
-//            boolean result = userService.update(update);
-//            if (!result) {
-//                return Result.error("更新用户信息失败,请重试。");
-//            }
-//        } catch (Exception e) {
-//            log.error("更新用户信息发生错误: {}", e.getMessage());
-//            return Result.error("系统错误,更新用户信息失败。");
+//            us.forEach(e -> {
+//                e.setIdNum("");
+//                e.setPassword("");
+//                e.setBankCardNum("");
+//                e.setBankName("");
+//                e.setEducation("");
+//                e.setAddress("");
+//                e.setBirthday(null);
+//                e.setEmail("");
+//            });
 //        }
-//
-//        if (StrUtil.isNotBlank(dto.getDeptJobDes()) && Objects.nonNull(entity.getDeptId())) {
-//            DeptEntity dept = departService.getById(entity.getDeptId());
-//            if (!dto.getDeptJobDes().equals(dept.getDeptJobDes())) {
-//                if (Integer.valueOf(0).equals(entity.getIsLeader())) {
-//                    return Result.error("只有领导才能设置部门职责");
-//                }
-//                LambdaUpdateWrapper<DeptEntity> dUpdate = new LambdaUpdateWrapper<DeptEntity>();
-//                dUpdate.eq(DeptEntity::getId,entity.getDeptId());
-//                dUpdate.set(DeptEntity::getDeptJobDes,dto.getDeptJobDes());
-//                departService.update(dUpdate);
+        page.setRecords(null);
+        return Result.ok(page);
+    }
+
+    @ApiOperation("分页查询用户")
+    @PostMapping("pageScopelist")
+    public Result pageScopelist(@RequestBody UserParam param) {
+
+        IPage<UserVo> page = new Page<>(param.getPageIndex(),param.getPageSize());
+        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
+        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
+        if (StrUtil.isNotBlank(param.getBlurry())) {
+            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
+        }
+        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
+            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
+        }
+        if (!param.getIsIncludeResign()) {
+            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
+        }
+        queryWrapper.orderByDesc(UserEntity::getEmail);
+//        List<UserVo> us  = userService.listWithScopeVo(page,queryWrapper,param);
+//        if (CollectionUtil.isNotEmpty(us)) {
+//            List<Long> userIds = us.stream().map(UserVo::getId).collect(Collectors.toList());
+//            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
+//            if (CollectionUtil.isNotEmpty(userRolels)) {
+//                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
+//                us.forEach(u -> {
+//                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
+//                    if(CollectionUtil.isNotEmpty(roles)) {
+//                        u.setRoleNames(roles.stream().map(RoleEntity::getName).collect(Collectors.toList()));
+//                        u.setRoleIds(roles.stream().map(RoleEntity::getId).collect(Collectors.toList()));
+//                    }
+//                });
 //            }
-//        }
-//        return Result.ok();
-//    }
-//
-//    @ApiOperation("获取用户基础信息")
-//    @PostMapping("getSimpleUserInfo")
-//    @ApiResponses({
-//            @ApiResponse(code = 200, message = "", response = SetUserDetailVo.class)
-//    })
-//    public Result getSimpleUserInfo() {
-//        Long userId = LoginUserUtil.getCurrentUserId();
-//        if  (Objects.isNull(userId)) {
-//            return Result.error("您未登录");
-//        }
-//        UserVo entity = userService.getUserInfoById(userId);
-//
-//        SetUserDetailVo detailVo = new SetUserDetailVo();
-//        detailVo.setDeptId(entity.getDeptId());
-//        detailVo.setId(entity.getId());
-//        detailVo.setDeptName(entity.getDeptName());
-//        detailVo.setAvatar(entity.getAvatar());
-//        detailVo.setJobId(entity.getJobId());
-//        detailVo.setJobName(entity.getJobName());
-//        detailVo.setEmail(entity.getEmail());
-//        detailVo.setMobile(entity.getMobile());
-//        detailVo.setUserName(entity.getRealName());
-//        detailVo.setJobDes(entity.getJobDes());
-//        detailVo.setIsLeader(entity.getIsLeader());
-//        DeptEntity dept = departService.getById(entity.getDeptId());
-//        if (Objects.nonNull(dept)) {
-//            detailVo.setDeptJobDes(dept.getDeptJobDes());
-//        }
-//        return Result.ok(detailVo);
-//    }
-//
-//    public void updateManagerId(UserEntity user,Long oldManagerId){
-//        if (Objects.isNull(user)) {
-//            return;
-//        }
-//        if (Objects.isNull(user.getManagerId())) {
-//            return;
-//        }
-//        List<UserEntity> userEntities = userService.list(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getManagerId,user.getId()));
-//        for (UserEntity userEntity : userEntities) {
-//            if (StrUtil.isNotBlank(userEntity.getManagers())) {
-//                String routeCodeStr = ","+userEntity.getManagers()+",";
-//                routeCodeStr = routeCodeStr.replace(","+oldManagerId+",",","+userEntity.getManagerId()+",");
-//                StringUtils.startsWithIgnoreCase(routeCodeStr,",");
-//                StringUtils.endsWithIgnoreCase(routeCodeStr,",");
 //
-//                LambdaUpdateWrapper<UserEntity> updateWrapper = new LambdaUpdateWrapper();
-//                updateWrapper.eq(UserEntity::getId,userEntity.getId());
-//                updateWrapper.set(UserEntity::getManagers,routeCodeStr);
-//                userService.update(updateWrapper);
-//            }
+//            us.forEach(e -> {
+//                e.setIdNum("");
+//                e.setPassword("");
+//                e.setBankCardNum("");
+//                e.setBankName("");
+//                e.setEducation("");
+//                e.setAddress("");
+//                e.setBirthday(null);
+//                e.setEmail("");
+//            });
 //        }
-//
-//    }
-//}
+        page.setRecords(null);
+        return Result.ok(page);
+    }
+
+    @ApiOperation("删除人员数据")
+    @PostMapping("delete")
+    public Result delete(Long [] ids) {
+        if (ids == null || ids.length == 0) {
+            return Result.error("参数错误");
+        }
+        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+        update.in(UserEntity::getId,Arrays.asList(ids));
+        update.set(UserEntity::getIsDelete,1);
+        userService.update(update);
+        return Result.ok();
+    }
+
+
+    @ApiOperation("标记冻结")
+    @PostMapping("markFreeze")
+    public Result markFreeze(Long [] ids,Integer isFreeze) {
+        if (ids == null || ids.length == 0) {
+            return Result.error("参数错误");
+        }
+        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+        update.in(UserEntity::getId,Arrays.asList(ids));
+        update.set(UserEntity::getIsFreeze,isFreeze);
+        userService.update(update);
+        if(Integer.valueOf(0).equals(isFreeze)) {
+            userService.updateLastFollowUpTime(Arrays.asList(ids));
+        }
+        return Result.ok();
+    }
+
+
+    @ApiOperation("删除人员数据")
+    @PostMapping("deleteById")
+    public Result deleteById(Long id) {
+        if (id == null) {
+            return Result.error("参数错误");
+        }
+        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+        update.eq(UserEntity::getId,id);
+        update.set(UserEntity::getIsDelete,1);
+        userService.update(update);
+        return Result.ok();
+    }
+
+    @ApiOperation("删除人员数据")
+    @PostMapping("updateRealName")
+    public Result deleteById(Long id,String realName) {
+        if (id == null) {
+            return Result.error("参数错误");
+        }
+        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+        update.eq(UserEntity::getId,id);
+        update.set(UserEntity::getRealName,realName);
+        userService.update(update);
+        return Result.ok();
+    }
+
+
+    @ApiOperation("启用禁用员工")
+    @PostMapping("enable")
+    public Result setEnable(Long [] ids,Boolean enable) {
+        if (ids == null || ids.length == 0) {
+            return Result.error("参数错误");
+        }
+        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+        update.in(UserEntity::getId,Arrays.asList(ids));
+        update.set(UserEntity::getEnabled,enable);
+        Boolean re =  userService.update(update);
+        if (re) {
+            return Result.ok();
+        } else {
+            return Result.error("操作失败");
+        }
+    }
+
+
+    @ApiOperation("根据ids查询用户")
+    @PostMapping("queryByIds")
+    public Result queryByIds(Long [] ids) {
+        if (ids == null || ids.length == 0) {
+            return Result.error("参数错误");
+        }
+        LambdaUpdateWrapper<UserEntity> query = new LambdaUpdateWrapper();
+        query.in(UserEntity::getId,Arrays.asList(ids));
+        List<UserEntity> list  =  userService.list(query);
+        return Result.ok(list);
+    }
+
+
+    @ApiOperation("同步OA数据")
+    @PostMapping("syncOa")
+    public Result syncOa() {
+       userService.syncOa();
+       return Result.ok();
+    }
+
+    @ApiOperation("重置密码")
+    @PostMapping("resetPassword")
+    public Result resetPassword(Long userId) {
+        if  (Objects.isNull(userId)) {
+            return Result.error("参数错误");
+        }
+        String defaultPassWord = "storlead123456";
+        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<UserEntity>();
+        update.eq(UserEntity::getId,userId);
+        update.set(UserEntity::getPassword,passwordEncoder.encode(defaultPassWord));
+        userService.update(update);
+        return Result.ok();
+    }
+
+    @ApiOperation("修改用户信息")
+    @PostMapping("updateUserInfo")
+    public Result setPhone(SetUserDetailDTO dto) {
+        Long userId = LoginUserUtil.getCurrentUserId();
+        if  (Objects.isNull(userId)) {
+            return Result.error("您未登录");
+        }
+        if  (StrUtil.isBlank(dto.getAvatar())) {
+            return Result.error("参数错误,头像url不能为空");
+        }
+        if  (StrUtil.isBlank(dto.getMobile())) {
+            return Result.error("参数错误,手机号不能为空");
+        }
+        UserEntity entity = userService.getById(userId);
+        if (Objects.isNull(entity)) {
+            return Result.error("未找到当前用户,请重新登录");
+        }
+        UserEntity oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getMobile()).eq(UserEntity::getIsDelete,0).last("limit 1"));
+        if (Objects.nonNull(oUser)) {
+            if (!oUser.getId().equals(userId)) {
+                return Result.error("该手机'"+dto.getMobile()+"'号已被占用!");
+            }
+        }
+        if  (StrUtil.isNotBlank(dto.getEmail())) {
+            oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getEmail()).eq(UserEntity::getIsDelete,0).last("limit 1"));
+            if (Objects.nonNull(oUser)) {
+                if (!oUser.getId().equals(userId)) {
+                    return Result.error("该邮箱'"+dto.getEmail()+"'已被占用!");
+                }
+            }
+        }
+        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<>();
+        update.eq(UserEntity::getId, userId);
+
+        update.set(UserEntity::getAvatar, dto.getAvatar())
+              .set(UserEntity::getEmail, dto.getEmail())
+              .set(UserEntity::getNickName, dto.getNickName())
+              .set(UserEntity::getRealName, dto.getRealName())
+              .set(UserEntity::getMobile, dto.getMobile())
+              .set(UserEntity::getSex, dto.getSex())
+              .set(UserEntity::getBirthday, dto.getBirthday());
+
+        if (StrUtil.isNotBlank(dto.getJobDes())) {
+            update.set(UserEntity::getJobDes, dto.getJobDes());
+        }
+
+        try {
+            boolean result = userService.update(update);
+            if (!result) {
+                return Result.error("更新用户信息失败,请重试。");
+            }
+        } catch (Exception e) {
+            log.error("更新用户信息发生错误: {}", e.getMessage());
+            return Result.error("系统错误,更新用户信息失败。");
+        }
+
+        if (StrUtil.isNotBlank(dto.getDeptJobDes()) && Objects.nonNull(entity.getDeptId())) {
+            DeptEntity dept = departService.getById(entity.getDeptId());
+            if (!dto.getDeptJobDes().equals(dept.getDeptJobDes())) {
+                if (Integer.valueOf(0).equals(entity.getIsLeader())) {
+                    return Result.error("只有领导才能设置部门职责");
+                }
+                LambdaUpdateWrapper<DeptEntity> dUpdate = new LambdaUpdateWrapper<DeptEntity>();
+                dUpdate.eq(DeptEntity::getId,entity.getDeptId());
+                dUpdate.set(DeptEntity::getDeptJobDes,dto.getDeptJobDes());
+                departService.update(dUpdate);
+            }
+        }
+        return Result.ok();
+    }
+
+    @ApiOperation("获取用户基础信息")
+    @PostMapping("getSimpleUserInfo")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "", response = SetUserDetailVo.class)
+    })
+    public Result getSimpleUserInfo() {
+        Long userId = LoginUserUtil.getCurrentUserId();
+        if  (Objects.isNull(userId)) {
+            return Result.error("您未登录");
+        }
+        UserVo entity = userService.getUserInfoById(userId);
+
+        SetUserDetailVo detailVo = new SetUserDetailVo();
+        detailVo.setDeptId(entity.getDeptId());
+        detailVo.setId(entity.getId());
+        detailVo.setDeptName(entity.getDeptName());
+        detailVo.setAvatar(entity.getAvatar());
+        detailVo.setJobId(entity.getJobId());
+        detailVo.setJobName(entity.getJobName());
+        detailVo.setEmail(entity.getEmail());
+        detailVo.setMobile(entity.getMobile());
+        detailVo.setUserName(entity.getRealName());
+        detailVo.setJobDes(entity.getJobDes());
+        detailVo.setIsLeader(entity.getIsLeader());
+        DeptEntity dept = departService.getById(entity.getDeptId());
+        if (Objects.nonNull(dept)) {
+            detailVo.setDeptJobDes(dept.getDeptJobDes());
+        }
+        return Result.ok(detailVo);
+    }
+
+    public void updateManagerId(UserEntity user,Long oldManagerId){
+        if (Objects.isNull(user)) {
+            return;
+        }
+        if (Objects.isNull(user.getManagerId())) {
+            return;
+        }
+        List<UserEntity> userEntities = userService.list(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getManagerId,user.getId()));
+        for (UserEntity userEntity : userEntities) {
+            if (StrUtil.isNotBlank(userEntity.getManagers())) {
+                String routeCodeStr = ","+userEntity.getManagers()+",";
+                routeCodeStr = routeCodeStr.replace(","+oldManagerId+",",","+userEntity.getManagerId()+",");
+                StringUtils.startsWithIgnoreCase(routeCodeStr,",");
+                StringUtils.endsWithIgnoreCase(routeCodeStr,",");
+
+                LambdaUpdateWrapper<UserEntity> updateWrapper = new LambdaUpdateWrapper();
+                updateWrapper.eq(UserEntity::getId,userEntity.getId());
+                updateWrapper.set(UserEntity::getManagers,routeCodeStr);
+                userService.update(updateWrapper);
+            }
+        }
+
+    }
+}

+ 1 - 1
storlead-centre-api/src/main/resources/application-dev.yml

@@ -186,7 +186,7 @@ logging:
     com:
       storlead: debug
 
-
+environment: dev
 # 企业微信
 #corp-wechat:
 #  corpId: ww5323bd8ab4394132

+ 1 - 0
storlead-centre-api/src/main/resources/application-test.yml

@@ -163,6 +163,7 @@ logging:
     com:
       storlead: INFO
 
+environment: test
 # 企业微信
 corp-wechat:
   corpId: ww5323bd8ab4394132

+ 440 - 439
storlead-user/src/main/java/com/storlead/user/controller/UserApiController.java

@@ -1,447 +1,448 @@
-package com.storlead.user.controller;
-
-import cn.hutool.core.util.StrUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.storlead.framework.common.constant.CommonConstant;
-import com.storlead.framework.common.ecode.PasswordEncoder;
-import com.storlead.framework.util.LoginUserUtil;
-import com.storlead.framework.web.assemble.Result;
-import com.storlead.user.pojo.dto.SetUserDetailDTO;
-import com.storlead.user.pojo.dto.UserParam;
-import com.storlead.user.pojo.entity.DeptEntity;
-import com.storlead.user.pojo.entity.UserEntity;
-import com.storlead.user.pojo.vo.SetUserDetailVo;
-import com.storlead.user.pojo.vo.UserVo;
-import com.storlead.user.service.IDepartService;
-import com.storlead.user.service.IUserRoleService;
-import com.storlead.user.service.IUserService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @program: storlead-centre-platform
- * @description:
- * @author: chenkq
- * @create: 2025-11-27 16:20
- */
-@Slf4j
-@Api(tags = "用户: 用户管理")
-@RestController
-@RequestMapping("/sys/user")
-public class UserApiController {
-    @Resource
-    private IUserService userService;
-
-    @Resource
-    private IUserRoleService userRoleService;
-
-    @Resource
-    private IDepartService departService;
-
-    @Resource
-    private PasswordEncoder passwordEncoder;
-
-    private final String defaultPassWord = "storlead123456";
-
-    @ApiOperation("保存员工")
-    @PostMapping("save")
-    public Result save(@RequestBody UserEntity user) {
-        if (StrUtil.isBlank(user.getMobile())) {
-            return Result.error("手机号不能为空!");
-        }
-        if(Objects.isNull(user.getId())) {
-            String defaultPassWord = this.defaultPassWord;
-            user.setDataSource(1);
-            user.setPassword(passwordEncoder.encode(defaultPassWord));
-        }
-        UserEntity oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,user.getMobile()).eq(UserEntity::getIsDelete,0).last("limit 1"));
-        if (Objects.nonNull(oUser)) {
-            if (!oUser.getId().equals(user.getId())) {
-                return Result.error("手机'"+user.getMobile()+"'号已被占用!");
-            }
-        }
-
-        if (Objects.nonNull(user.getDeptId())) {
-            DeptEntity dept = departService.getById(user.getDeptId());
-            if (Objects.nonNull(dept)) {
-                user.setOrgRouteCode(dept.getRouteCode());
-                user.setSubCompanyId(dept.getSubCompanyId());
-                user.setCompanyId(dept.getCompanyId());
-                user.setSubCompanyId(dept.getSubCompanyId());
-            }
-        }
-        if (Objects.nonNull(user.getManagerId())) {
-            UserEntity u = userService.getById(user.getManagerId());
-            if (Objects.nonNull(u)) {
-                user.setManagers(u.getManagers()+","+user.getManagerId().toString());
-            } else {
-                user.setManagers(user.getManagerId().toString());
-            }
-        }
-        userService.saveOrUpdate(user);
-        return Result.ok();
-    }
-
-    @ApiOperation("根据部门id查询用户")
-    @PostMapping("listByDeptId")
-    public Result listByDeptId(Long deptId) {
-
-        List<UserEntity> list = userService.list(
-                new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getDeptId,deptId)
-                        .ne(UserEntity::getStatus,Integer.valueOf(5))
-                        .eq(UserEntity::getIsDelete,0));
-        return Result.ok(list);
-    }
-    @ApiOperation("分页查询用户")
-    @PostMapping("pagelist")
-    public Result pagelist(@RequestBody UserParam param) {
-
-//        param.setCommonQueryOrderBy("UserEntity");
-
-        IPage<UserEntity> page = new Page<>(param.getPageIndex(),param.getPageSize());
-        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
-        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
-        if (StrUtil.isNotBlank(param.getBlurry())) {
-            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
-        }
-        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
-            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
-        }
-//        if (Objects.isNull(param.getStatus())) {
-//            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
-//        } else {
-//            queryWrapper.ne(UserEntity::getStatus,param.getStatus());
-//        }
-        if (!param.getIsIncludeResign()) {
-            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
-        }
-        queryWrapper.orderByDesc(UserEntity::getEmail);
-        IPage<UserEntity> us  = userService.page(page,queryWrapper);
-//        if (CollectionUtil.isNotEmpty(us)) {
-//            List<Long> userIds = us.stream().map(UserVo::getId).collect(Collectors.toList());
-//            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
-//            if (CollectionUtil.isNotEmpty(userRolels)) {
-//                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
-//                us.forEach(u -> {
-//                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
-//                    if(CollectionUtil.isNotEmpty(roles)) {
-//                        u.setRoleNames(roles.stream().map(RoleEntity::getName).collect(Collectors.toList()));
-//                        u.setRoleIds(roles.stream().map(RoleEntity::getId).collect(Collectors.toList()));
-//                    }
-//                });
+//package com.storlead.user.controller;
+//
+//import cn.hutool.core.util.StrUtil;
+//import cn.hutool.json.JSONObject;
+//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+//import com.baomidou.mybatisplus.core.metadata.IPage;
+//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+//import com.storlead.framework.common.constant.CommonConstant;
+//import com.storlead.framework.common.ecode.PasswordEncoder;
+//import com.storlead.framework.util.LoginUserUtil;
+//import com.storlead.framework.web.assemble.Result;
+//import com.storlead.user.pojo.dto.SetUserDetailDTO;
+//import com.storlead.user.pojo.dto.UserLoginDTO;
+//import com.storlead.user.pojo.dto.UserParam;
+//import com.storlead.user.pojo.entity.DeptEntity;
+//import com.storlead.user.pojo.entity.UserEntity;
+//import com.storlead.user.pojo.vo.SetUserDetailVo;
+//import com.storlead.user.pojo.vo.UserVo;
+//import com.storlead.user.service.IDepartService;
+//import com.storlead.user.service.IUserRoleService;
+//import com.storlead.user.service.IUserService;
+//import io.swagger.annotations.Api;
+//import io.swagger.annotations.ApiOperation;
+//import io.swagger.annotations.ApiResponse;
+//import io.swagger.annotations.ApiResponses;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.util.StringUtils;
+//import org.springframework.web.bind.annotation.*;
+//
+//import javax.annotation.Resource;
+//import java.util.Arrays;
+//import java.util.List;
+//import java.util.Objects;
+//
+///**
+// * @program: storlead-centre-platform
+// * @description:
+// * @author: chenkq
+// * @create: 2025-11-27 16:20
+// */
+//@Slf4j
+//@Api(tags = "用户: 用户管理")
+//@RestController
+//@RequestMapping("/sys/user")
+//public class UserApiController {
+//    @Resource
+//    private IUserService userService;
+//
+//    @Resource
+//    private IUserRoleService userRoleService;
+//
+//    @Resource
+//    private IDepartService departService;
+//
+//    @Resource
+//    private PasswordEncoder passwordEncoder;
+//
+//    private final String defaultPassWord = "storlead123456";
+//
+//    @ApiOperation("保存员工")
+//    @PostMapping("save")
+//    public Result save(@RequestBody UserEntity user) {
+//        if (StrUtil.isBlank(user.getMobile())) {
+//            return Result.error("手机号不能为空!");
+//        }
+//        if(Objects.isNull(user.getId())) {
+//            String defaultPassWord = this.defaultPassWord;
+//            user.setDataSource(1);
+//            user.setPassword(passwordEncoder.encode(defaultPassWord));
+//        }
+//        UserEntity oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,user.getMobile()).eq(UserEntity::getIsDelete,0).last("limit 1"));
+//        if (Objects.nonNull(oUser)) {
+//            if (!oUser.getId().equals(user.getId())) {
+//                return Result.error("手机'"+user.getMobile()+"'号已被占用!");
+//            }
+//        }
+//
+//        if (Objects.nonNull(user.getDeptId())) {
+//            DeptEntity dept = departService.getById(user.getDeptId());
+//            if (Objects.nonNull(dept)) {
+//                user.setOrgRouteCode(dept.getRouteCode());
+//                user.setSubCompanyId(dept.getSubCompanyId());
+//                user.setCompanyId(dept.getCompanyId());
+//                user.setSubCompanyId(dept.getSubCompanyId());
+//            }
+//        }
+//        if (Objects.nonNull(user.getManagerId())) {
+//            UserEntity u = userService.getById(user.getManagerId());
+//            if (Objects.nonNull(u)) {
+//                user.setManagers(u.getManagers()+","+user.getManagerId().toString());
+//            } else {
+//                user.setManagers(user.getManagerId().toString());
 //            }
+//        }
+//        userService.saveOrUpdate(user);
+//        return Result.ok();
+//    }
+//
+//    @ApiOperation("根据部门id查询用户")
+//    @PostMapping("listByDeptId")
+//    public Result listByDeptId(Long deptId) {
+//
+//        List<UserEntity> list = userService.list(
+//                new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getDeptId,deptId)
+//                        .ne(UserEntity::getStatus,Integer.valueOf(5))
+//                        .eq(UserEntity::getIsDelete,0));
+//        return Result.ok(list);
+//    }
+//    @ApiOperation("分页查询用户")
+//    @PostMapping("pagelist")
+//    public Result pagelist(@RequestBody UserParam param) {
+//
+////        param.setCommonQueryOrderBy("UserEntity");
 //
-//            us.forEach(e -> {
-//                e.setIdNum("");
-//                e.setPassword("");
-//                e.setBankCardNum("");
-//                e.setBankName("");
-//                e.setEducation("");
-//                e.setAddress("");
-//                e.setBirthday(null);
-//                e.setEmail("");
-//            });
-//        }
-//        page.setRecords(us);
-        return Result.ok(us);
-    }
-
-    @ApiOperation("分页查询用户")
-    @PostMapping("pageScopelist")
-    public Result pageScopelist(@RequestBody UserParam param) {
-
-        IPage<UserEntity> page = new Page<>(param.getPageIndex(),param.getPageSize());
-        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
-        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
-        if (StrUtil.isNotBlank(param.getBlurry())) {
-            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
-        }
-        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
-            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
-        }
-        if (!param.getIsIncludeResign()) {
-            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
-        }
-        queryWrapper.orderByDesc(UserEntity::getEmail);
-        IPage<UserEntity> userPg  = userService.page(page,queryWrapper);
-//        if (CollectionUtil.isNotEmpty(userPg)) {
-//            List<Long> userIds = userPg.getRecords().stream().map(UserEntity::getId).collect(Collectors.toList());
-//            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
-//            if (CollectionUtil.isNotEmpty(userRolels)) {
-//                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
-//                us.forEach(u -> {
-//                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
+//        IPage<UserEntity> page = new Page<>(param.getPageIndex(),param.getPageSize());
+//        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
+//        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
+//        if (StrUtil.isNotBlank(param.getBlurry())) {
+//            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
+//        }
+//        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
+//            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
+//        }
+////        if (Objects.isNull(param.getStatus())) {
+////            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
+////        } else {
+////            queryWrapper.ne(UserEntity::getStatus,param.getStatus());
+////        }
+//        if (!param.getIsIncludeResign()) {
+//            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
+//        }
+//        queryWrapper.orderByDesc(UserEntity::getEmail);
+//        IPage<UserEntity> us  = userService.page(page,queryWrapper);
+////        if (CollectionUtil.isNotEmpty(us)) {
+////            List<Long> userIds = us.stream().map(UserVo::getId).collect(Collectors.toList());
+////            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
+////            if (CollectionUtil.isNotEmpty(userRolels)) {
+////                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
+////                us.forEach(u -> {
+////                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
 ////                    if(CollectionUtil.isNotEmpty(roles)) {
 ////                        u.setRoleNames(roles.stream().map(RoleEntity::getName).collect(Collectors.toList()));
 ////                        u.setRoleIds(roles.stream().map(RoleEntity::getId).collect(Collectors.toList()));
 ////                    }
-//                });
+////                });
+////            }
+////
+////            us.forEach(e -> {
+////                e.setIdNum("");
+////                e.setPassword("");
+////                e.setBankCardNum("");
+////                e.setBankName("");
+////                e.setEducation("");
+////                e.setAddress("");
+////                e.setBirthday(null);
+////                e.setEmail("");
+////            });
+////        }
+////        page.setRecords(us);
+//        return Result.ok(us);
+//    }
+//
+//    @ApiOperation("分页查询用户")
+//    @PostMapping("pageScopelist")
+//    public Result pageScopelist(@RequestBody UserParam param) {
+//
+//        IPage<UserEntity> page = new Page<>(param.getPageIndex(),param.getPageSize());
+//        LambdaQueryWrapper<UserEntity> queryWrapper = new LambdaQueryWrapper<UserEntity>(new UserEntity());
+//        queryWrapper.eq(UserEntity::getIsDelete, CommonConstant.DEL_FLAG_0);
+//        if (StrUtil.isNotBlank(param.getBlurry())) {
+//            queryWrapper.like(UserEntity::getUserName,param.getBlurry()).or().like(UserEntity::getRealName,param.getBlurry());
+//        }
+//        if (StrUtil.isNotBlank(param.getOrgRouteCode())) {
+//            queryWrapper.likeRight(UserEntity::getOrgRouteCode,param.getOrgRouteCode());
+//        }
+//        if (!param.getIsIncludeResign()) {
+//            queryWrapper.ne(UserEntity::getStatus,Integer.valueOf(5));
+//        }
+//        queryWrapper.orderByDesc(UserEntity::getEmail);
+//        IPage<UserEntity> userPg  = userService.page(page,queryWrapper);
+////        if (CollectionUtil.isNotEmpty(userPg)) {
+////            List<Long> userIds = userPg.getRecords().stream().map(UserEntity::getId).collect(Collectors.toList());
+////            List<UserRoleEntity> userRolels = userRoleService.selectUserRole(new LambdaQueryWrapper<UserRoleEntity>().in(UserRoleEntity::getUserId,userIds));
+////            if (CollectionUtil.isNotEmpty(userRolels)) {
+////                List<RoleEntity> rs = roleService.list(new LambdaQueryWrapper<RoleEntity>().in(RoleEntity::getId,userRolels.stream().map(UserRoleEntity::getRoleId).collect(Collectors.toList())));
+////                us.forEach(u -> {
+////                    List<RoleEntity> roles = rs.stream().filter(r -> userRolels.stream().anyMatch(ur -> ur.getRoleId().equals(r.getId()) && ur.getUserId().equals(u.getId()))).collect(Collectors.toList());
+//////                    if(CollectionUtil.isNotEmpty(roles)) {
+//////                        u.setRoleNames(roles.stream().map(RoleEntity::getName).collect(Collectors.toList()));
+//////                        u.setRoleIds(roles.stream().map(RoleEntity::getId).collect(Collectors.toList()));
+//////                    }
+////                });
+////            }
+////
+////            us.forEach(e -> {
+////                e.setIdNum("");
+////                e.setPassword("");
+////                e.setBankCardNum("");
+////                e.setBankName("");
+////                e.setEducation("");
+////                e.setAddress("");
+////                e.setBirthday(null);
+////                e.setEmail("");
+////            });
+////        }
+////        page.setRecords(us);
+//        return Result.ok(userPg);
+//    }
+//
+//    @ApiOperation("删除人员数据")
+//    @PostMapping("delete")
+//    public Result delete(Long [] ids) {
+//        if (ids == null || ids.length == 0) {
+//            return Result.error("参数错误");
+//        }
+//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+//        update.in(UserEntity::getId, Arrays.asList(ids));
+//        update.set(UserEntity::getIsDelete,1);
+//        userService.update(update);
+//        return Result.ok();
+//    }
+//
+//
+//    @ApiOperation("标记冻结")
+//    @PostMapping("markFreeze")
+//    public Result markFreeze(Long [] ids,Integer isFreeze) {
+//        if (ids == null || ids.length == 0) {
+//            return Result.error("参数错误");
+//        }
+//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+//        update.in(UserEntity::getId,Arrays.asList(ids));
+//        update.set(UserEntity::getIsFreeze,isFreeze);
+//        userService.update(update);
+//        if(Integer.valueOf(0).equals(isFreeze)) {
+//            userService.updateLastFollowUpTime(Arrays.asList(ids));
+//        }
+//        return Result.ok();
+//    }
+//
+//
+//    @ApiOperation("删除人员数据")
+//    @PostMapping("deleteById")
+//    public Result deleteById(Long id) {
+//        if (id == null) {
+//            return Result.error("参数错误");
+//        }
+//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+//        update.eq(UserEntity::getId,id);
+//        update.set(UserEntity::getIsDelete,1);
+//        userService.update(update);
+//        return Result.ok();
+//    }
+//
+//    @ApiOperation("删除人员数据")
+//    @PostMapping("updateRealName")
+//    public Result deleteById(Long id,String realName) {
+//        if (id == null) {
+//            return Result.error("参数错误");
+//        }
+//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+//        update.eq(UserEntity::getId,id);
+//        update.set(UserEntity::getRealName,realName);
+//        userService.update(update);
+//        return Result.ok();
+//    }
+//
+//
+//    @ApiOperation("启用禁用员工")
+//    @PostMapping("enable")
+//    public Result setEnable(Long [] ids,Boolean enable) {
+//        if (ids == null || ids.length == 0) {
+//            return Result.error("参数错误");
+//        }
+//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
+//        update.in(UserEntity::getId,Arrays.asList(ids));
+//        update.set(UserEntity::getEnabled,enable);
+//        Boolean re =  userService.update(update);
+//        if (re) {
+//            return Result.ok();
+//        } else {
+//            return Result.error("操作失败");
+//        }
+//    }
+//
+//
+//    @ApiOperation("根据ids查询用户")
+//    @PostMapping("queryByIds")
+//    public Result queryByIds(Long [] ids) {
+//        if (ids == null || ids.length == 0) {
+//            return Result.error("参数错误");
+//        }
+//        LambdaUpdateWrapper<UserEntity> query = new LambdaUpdateWrapper();
+//        query.in(UserEntity::getId,Arrays.asList(ids));
+//        List<UserEntity> list  =  userService.list(query);
+//        return Result.ok(list);
+//    }
+//
+//
+//    @ApiOperation("同步OA数据")
+//    @PostMapping("syncOa")
+//    public Result syncOa() {
+//        userService.syncOa();
+//        return Result.ok();
+//    }
+//
+//    @ApiOperation("重置密码")
+//    @PostMapping("resetPassword")
+//    public Result resetPassword(Long userId) {
+//        if  (Objects.isNull(userId)) {
+//            return Result.error("参数错误");
+//        }
+//        String defaultPassWord = this.defaultPassWord;
+//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<UserEntity>();
+//        update.eq(UserEntity::getId,userId);
+//        update.set(UserEntity::getPassword,passwordEncoder.encode(defaultPassWord));
+//        userService.update(update);
+//        return Result.ok();
+//    }
+//
+//    @ApiOperation("修改用户信息")
+//    @PostMapping("updateUserInfo")
+//    public Result setPhone(SetUserDetailDTO dto) {
+//        Long userId = LoginUserUtil.getCurrentUserId();
+//        if  (Objects.isNull(userId)) {
+//            return Result.error("您未登录");
+//        }
+//        if  (StrUtil.isBlank(dto.getAvatar())) {
+//            return Result.error("参数错误,头像url不能为空");
+//        }
+//        if  (StrUtil.isBlank(dto.getMobile())) {
+//            return Result.error("参数错误,手机号不能为空");
+//        }
+//        UserEntity entity = userService.getById(userId);
+//        if (Objects.isNull(entity)) {
+//            return Result.error("未找到当前用户,请重新登录");
+//        }
+//        UserEntity oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getMobile()).eq(UserEntity::getIsDelete,0).last("limit 1"));
+//        if (Objects.nonNull(oUser)) {
+//            if (!oUser.getId().equals(userId)) {
+//                return Result.error("该手机'"+dto.getMobile()+"'号已被占用!");
+//            }
+//        }
+//        if  (StrUtil.isNotBlank(dto.getEmail())) {
+//            oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getEmail()).eq(UserEntity::getIsDelete,0).last("limit 1"));
+//            if (Objects.nonNull(oUser)) {
+//                if (!oUser.getId().equals(userId)) {
+//                    return Result.error("该邮箱'"+dto.getEmail()+"'已被占用!");
+//                }
 //            }
+//        }
+//        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<>();
+//        update.eq(UserEntity::getId, userId);
+//
+//        update.set(UserEntity::getAvatar, dto.getAvatar())
+//                .set(UserEntity::getEmail, dto.getEmail())
+//                .set(UserEntity::getNickName, dto.getNickName())
+//                .set(UserEntity::getRealName, dto.getRealName())
+//                .set(UserEntity::getMobile, dto.getMobile())
+//                .set(UserEntity::getSex, dto.getSex())
+//                .set(UserEntity::getBirthday, dto.getBirthday());
+//
+//        if (StrUtil.isNotBlank(dto.getJobDes())) {
+//            update.set(UserEntity::getJobDes, dto.getJobDes());
+//        }
+//
+//        try {
+//            boolean result = userService.update(update);
+//            if (!result) {
+//                return Result.error("更新用户信息失败,请重试。");
+//            }
+//        } catch (Exception e) {
+//            log.error("更新用户信息发生错误: {}", e.getMessage());
+//            return Result.error("系统错误,更新用户信息失败。");
+//        }
+//
+//        if (StrUtil.isNotBlank(dto.getDeptJobDes()) && Objects.nonNull(entity.getDeptId())) {
+//            DeptEntity dept = departService.getById(entity.getDeptId());
+//            if (!dto.getDeptJobDes().equals(dept.getDeptJobDes())) {
+//                if (Integer.valueOf(0).equals(entity.getIsLeader())) {
+//                    return Result.error("只有领导才能设置部门职责");
+//                }
+//                LambdaUpdateWrapper<DeptEntity> dUpdate = new LambdaUpdateWrapper<DeptEntity>();
+//                dUpdate.eq(DeptEntity::getId,entity.getDeptId());
+//                dUpdate.set(DeptEntity::getDeptJobDes,dto.getDeptJobDes());
+//                departService.update(dUpdate);
+//            }
+//        }
+//        return Result.ok();
+//    }
+//
+//    @ApiOperation("获取用户基础信息")
+//    @PostMapping("getSimpleUserInfo")
+//    @ApiResponses({
+//            @ApiResponse(code = 200, message = "", response = SetUserDetailVo.class)
+//    })
+//    public Result getSimpleUserInfo() {
+//        Long userId = LoginUserUtil.getCurrentUserId();
+//        if  (Objects.isNull(userId)) {
+//            return Result.error("您未登录");
+//        }
+//        UserVo entity = userService.getUserInfoById(userId);
+//
+//        SetUserDetailVo detailVo = new SetUserDetailVo();
+//        detailVo.setDeptId(entity.getDeptId());
+//        detailVo.setId(entity.getId());
+//        detailVo.setDeptName(entity.getDeptName());
+//        detailVo.setAvatar(entity.getAvatar());
+//        detailVo.setJobId(entity.getJobId());
+//        detailVo.setJobName(entity.getJobName());
+//        detailVo.setEmail(entity.getEmail());
+//        detailVo.setMobile(entity.getMobile());
+//        detailVo.setUserName(entity.getRealName());
+//        detailVo.setJobDes(entity.getJobDes());
+//        detailVo.setIsLeader(entity.getIsLeader());
+//        DeptEntity dept = departService.getById(entity.getDeptId());
+//        if (Objects.nonNull(dept)) {
+//            detailVo.setDeptJobDes(dept.getDeptJobDes());
+//        }
+//        return Result.ok(detailVo);
+//    }
+//
+//    public void updateManagerId(UserEntity user,Long oldManagerId){
+//        if (Objects.isNull(user)) {
+//            return;
+//        }
+//        if (Objects.isNull(user.getManagerId())) {
+//            return;
+//        }
+//        List<UserEntity> userEntities = userService.list(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getManagerId,user.getId()));
+//        for (UserEntity userEntity : userEntities) {
+//            if (StrUtil.isNotBlank(userEntity.getManagers())) {
+//                String routeCodeStr = ","+userEntity.getManagers()+",";
+//                routeCodeStr = routeCodeStr.replace(","+oldManagerId+",",","+userEntity.getManagerId()+",");
+//                StringUtils.startsWithIgnoreCase(routeCodeStr,",");
+//                StringUtils.endsWithIgnoreCase(routeCodeStr,",");
+//
+//                LambdaUpdateWrapper<UserEntity> updateWrapper = new LambdaUpdateWrapper();
+//                updateWrapper.eq(UserEntity::getId,userEntity.getId());
+//                updateWrapper.set(UserEntity::getManagers,routeCodeStr);
+//                userService.update(updateWrapper);
+//            }
+//        }
+//
+//    }
+//
 //
-//            us.forEach(e -> {
-//                e.setIdNum("");
-//                e.setPassword("");
-//                e.setBankCardNum("");
-//                e.setBankName("");
-//                e.setEducation("");
-//                e.setAddress("");
-//                e.setBirthday(null);
-//                e.setEmail("");
-//            });
-//        }
-//        page.setRecords(us);
-        return Result.ok(userPg);
-    }
-
-    @ApiOperation("删除人员数据")
-    @PostMapping("delete")
-    public Result delete(Long [] ids) {
-        if (ids == null || ids.length == 0) {
-            return Result.error("参数错误");
-        }
-        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-        update.in(UserEntity::getId, Arrays.asList(ids));
-        update.set(UserEntity::getIsDelete,1);
-        userService.update(update);
-        return Result.ok();
-    }
-
-
-    @ApiOperation("标记冻结")
-    @PostMapping("markFreeze")
-    public Result markFreeze(Long [] ids,Integer isFreeze) {
-        if (ids == null || ids.length == 0) {
-            return Result.error("参数错误");
-        }
-        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-        update.in(UserEntity::getId,Arrays.asList(ids));
-        update.set(UserEntity::getIsFreeze,isFreeze);
-        userService.update(update);
-        if(Integer.valueOf(0).equals(isFreeze)) {
-            userService.updateLastFollowUpTime(Arrays.asList(ids));
-        }
-        return Result.ok();
-    }
-
-
-    @ApiOperation("删除人员数据")
-    @PostMapping("deleteById")
-    public Result deleteById(Long id) {
-        if (id == null) {
-            return Result.error("参数错误");
-        }
-        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-        update.eq(UserEntity::getId,id);
-        update.set(UserEntity::getIsDelete,1);
-        userService.update(update);
-        return Result.ok();
-    }
-
-    @ApiOperation("删除人员数据")
-    @PostMapping("updateRealName")
-    public Result deleteById(Long id,String realName) {
-        if (id == null) {
-            return Result.error("参数错误");
-        }
-        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-        update.eq(UserEntity::getId,id);
-        update.set(UserEntity::getRealName,realName);
-        userService.update(update);
-        return Result.ok();
-    }
-
-
-    @ApiOperation("启用禁用员工")
-    @PostMapping("enable")
-    public Result setEnable(Long [] ids,Boolean enable) {
-        if (ids == null || ids.length == 0) {
-            return Result.error("参数错误");
-        }
-        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper();
-        update.in(UserEntity::getId,Arrays.asList(ids));
-        update.set(UserEntity::getEnabled,enable);
-        Boolean re =  userService.update(update);
-        if (re) {
-            return Result.ok();
-        } else {
-            return Result.error("操作失败");
-        }
-    }
-
-
-    @ApiOperation("根据ids查询用户")
-    @PostMapping("queryByIds")
-    public Result queryByIds(Long [] ids) {
-        if (ids == null || ids.length == 0) {
-            return Result.error("参数错误");
-        }
-        LambdaUpdateWrapper<UserEntity> query = new LambdaUpdateWrapper();
-        query.in(UserEntity::getId,Arrays.asList(ids));
-        List<UserEntity> list  =  userService.list(query);
-        return Result.ok(list);
-    }
-
-
-    @ApiOperation("同步OA数据")
-    @PostMapping("syncOa")
-    public Result syncOa() {
-        userService.syncOa();
-        return Result.ok();
-    }
-
-    @ApiOperation("重置密码")
-    @PostMapping("resetPassword")
-    public Result resetPassword(Long userId) {
-        if  (Objects.isNull(userId)) {
-            return Result.error("参数错误");
-        }
-        String defaultPassWord = this.defaultPassWord;
-        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<UserEntity>();
-        update.eq(UserEntity::getId,userId);
-        update.set(UserEntity::getPassword,passwordEncoder.encode(defaultPassWord));
-        userService.update(update);
-        return Result.ok();
-    }
-
-    @ApiOperation("修改用户信息")
-    @PostMapping("updateUserInfo")
-    public Result setPhone(SetUserDetailDTO dto) {
-        Long userId = LoginUserUtil.getCurrentUserId();
-        if  (Objects.isNull(userId)) {
-            return Result.error("您未登录");
-        }
-        if  (StrUtil.isBlank(dto.getAvatar())) {
-            return Result.error("参数错误,头像url不能为空");
-        }
-        if  (StrUtil.isBlank(dto.getMobile())) {
-            return Result.error("参数错误,手机号不能为空");
-        }
-        UserEntity entity = userService.getById(userId);
-        if (Objects.isNull(entity)) {
-            return Result.error("未找到当前用户,请重新登录");
-        }
-        UserEntity oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getMobile()).eq(UserEntity::getIsDelete,0).last("limit 1"));
-        if (Objects.nonNull(oUser)) {
-            if (!oUser.getId().equals(userId)) {
-                return Result.error("该手机'"+dto.getMobile()+"'号已被占用!");
-            }
-        }
-        if  (StrUtil.isNotBlank(dto.getEmail())) {
-            oUser = userService.getOne(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getMobile,dto.getEmail()).eq(UserEntity::getIsDelete,0).last("limit 1"));
-            if (Objects.nonNull(oUser)) {
-                if (!oUser.getId().equals(userId)) {
-                    return Result.error("该邮箱'"+dto.getEmail()+"'已被占用!");
-                }
-            }
-        }
-        LambdaUpdateWrapper<UserEntity> update = new LambdaUpdateWrapper<>();
-        update.eq(UserEntity::getId, userId);
-
-        update.set(UserEntity::getAvatar, dto.getAvatar())
-                .set(UserEntity::getEmail, dto.getEmail())
-                .set(UserEntity::getNickName, dto.getNickName())
-                .set(UserEntity::getRealName, dto.getRealName())
-                .set(UserEntity::getMobile, dto.getMobile())
-                .set(UserEntity::getSex, dto.getSex())
-                .set(UserEntity::getBirthday, dto.getBirthday());
-
-        if (StrUtil.isNotBlank(dto.getJobDes())) {
-            update.set(UserEntity::getJobDes, dto.getJobDes());
-        }
-
-        try {
-            boolean result = userService.update(update);
-            if (!result) {
-                return Result.error("更新用户信息失败,请重试。");
-            }
-        } catch (Exception e) {
-            log.error("更新用户信息发生错误: {}", e.getMessage());
-            return Result.error("系统错误,更新用户信息失败。");
-        }
-
-        if (StrUtil.isNotBlank(dto.getDeptJobDes()) && Objects.nonNull(entity.getDeptId())) {
-            DeptEntity dept = departService.getById(entity.getDeptId());
-            if (!dto.getDeptJobDes().equals(dept.getDeptJobDes())) {
-                if (Integer.valueOf(0).equals(entity.getIsLeader())) {
-                    return Result.error("只有领导才能设置部门职责");
-                }
-                LambdaUpdateWrapper<DeptEntity> dUpdate = new LambdaUpdateWrapper<DeptEntity>();
-                dUpdate.eq(DeptEntity::getId,entity.getDeptId());
-                dUpdate.set(DeptEntity::getDeptJobDes,dto.getDeptJobDes());
-                departService.update(dUpdate);
-            }
-        }
-        return Result.ok();
-    }
-
-    @ApiOperation("获取用户基础信息")
-    @PostMapping("getSimpleUserInfo")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "", response = SetUserDetailVo.class)
-    })
-    public Result getSimpleUserInfo() {
-        Long userId = LoginUserUtil.getCurrentUserId();
-        if  (Objects.isNull(userId)) {
-            return Result.error("您未登录");
-        }
-        UserVo entity = userService.getUserInfoById(userId);
-
-        SetUserDetailVo detailVo = new SetUserDetailVo();
-        detailVo.setDeptId(entity.getDeptId());
-        detailVo.setId(entity.getId());
-        detailVo.setDeptName(entity.getDeptName());
-        detailVo.setAvatar(entity.getAvatar());
-        detailVo.setJobId(entity.getJobId());
-        detailVo.setJobName(entity.getJobName());
-        detailVo.setEmail(entity.getEmail());
-        detailVo.setMobile(entity.getMobile());
-        detailVo.setUserName(entity.getRealName());
-        detailVo.setJobDes(entity.getJobDes());
-        detailVo.setIsLeader(entity.getIsLeader());
-        DeptEntity dept = departService.getById(entity.getDeptId());
-        if (Objects.nonNull(dept)) {
-            detailVo.setDeptJobDes(dept.getDeptJobDes());
-        }
-        return Result.ok(detailVo);
-    }
-
-    public void updateManagerId(UserEntity user,Long oldManagerId){
-        if (Objects.isNull(user)) {
-            return;
-        }
-        if (Objects.isNull(user.getManagerId())) {
-            return;
-        }
-        List<UserEntity> userEntities = userService.list(new LambdaQueryWrapper<UserEntity>().eq(UserEntity::getManagerId,user.getId()));
-        for (UserEntity userEntity : userEntities) {
-            if (StrUtil.isNotBlank(userEntity.getManagers())) {
-                String routeCodeStr = ","+userEntity.getManagers()+",";
-                routeCodeStr = routeCodeStr.replace(","+oldManagerId+",",","+userEntity.getManagerId()+",");
-                StringUtils.startsWithIgnoreCase(routeCodeStr,",");
-                StringUtils.endsWithIgnoreCase(routeCodeStr,",");
-
-                LambdaUpdateWrapper<UserEntity> updateWrapper = new LambdaUpdateWrapper();
-                updateWrapper.eq(UserEntity::getId,userEntity.getId());
-                updateWrapper.set(UserEntity::getManagers,routeCodeStr);
-                userService.update(updateWrapper);
-            }
-        }
-
-    }
-}
+//}

+ 1 - 1
storlead-wx/src/main/resources/mapper/SystemWechatConfigMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.storlead.wx.mapper.SystemWechatConfigMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" extends="com.storlead.frame.mapper.SysBaseFieldMapper.BaseResultMap" type="com.storlead.wx.pojo.vo.SystemWechatConfigEntity">
+    <resultMap id="BaseResultMap" extends="com.storlead.framework.mybatis.mapper.SysBaseFieldMapper.BaseResultMap" type="com.storlead.wx.pojo.vo.SystemWechatConfigEntity">
         <id column="id" property="id" />
         <result column="corp_id" property="corpId" />
         <result column="corp_address_secret" property="corpAddressSecret" />