Pārlūkot izejas kodu

fix:修复上传功能无效问题、依赖版本升级

wangzaijun 7 mēneši atpakaļ
vecāks
revīzija
ddefd3267d
18 mainītis faili ar 238 papildinājumiem un 170 dzēšanām
  1. 7 10
      service-base/pom.xml
  2. 1 1
      service-base/src/main/java/com/simuwang/base/common/util/QuartzUtils.java
  3. 60 2
      service-base/src/main/java/com/simuwang/base/components/UserAuthService.java
  4. 8 1
      service-base/src/main/java/com/simuwang/base/mapper/system/SysRoleMapper.java
  5. 7 0
      service-base/src/main/java/com/simuwang/base/mapper/system/SysUserMapper.java
  6. 38 0
      service-base/src/main/java/com/simuwang/base/pojo/dto/sys/UserUpdatePwdCmd.java
  7. 9 1
      service-base/src/main/resources/mapper/system/SysRoleMapper.xml
  8. 8 0
      service-base/src/main/resources/mapper/system/SysUserMapper.xml
  9. 0 19
      service-deploy/src/main/java/com/simuwang/deploy/filter/RequestFilter.java
  10. 0 111
      service-deploy/src/main/java/com/simuwang/deploy/filter/RequestWrapper.java
  11. 18 6
      service-manage/src/main/java/com/simuwang/manage/api/LoginController.java
  12. 13 11
      service-manage/src/main/java/com/simuwang/manage/api/distribution/DistributionController.java
  13. 1 1
      service-manage/src/main/java/com/simuwang/manage/init/QuartzConfig.java
  14. 56 1
      service-manage/src/main/java/com/simuwang/manage/service/LoginService.java
  15. 1 1
      service-manage/src/main/java/com/simuwang/manage/service/impl/EmailConfigServiceImpl.java
  16. 5 2
      service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysRoleServiceImpl.java
  17. 5 2
      service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysUserServiceImpl.java
  18. 1 1
      service-manage/src/main/java/com/simuwang/manage/task/ParseSchedulerTask.java

+ 7 - 10
service-base/pom.xml

@@ -138,7 +138,7 @@
         <dependency>
             <groupId>commons-fileupload</groupId>
             <artifactId>commons-fileupload</artifactId>
-            <version>1.3.1</version>
+            <version>1.5</version>
         </dependency>
         <dependency>
             <groupId>org.jsoup</groupId>
@@ -174,10 +174,6 @@
             <groupId>io.jsonwebtoken</groupId>
             <artifactId>jjwt</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-quartz</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>org.apache.pdfbox</groupId>
@@ -216,16 +212,17 @@
         <dependency>
             <groupId>com.alibaba</groupId>
             <artifactId>easyexcel</artifactId>
-            <version>3.1.1</version>
+            <version>4.0.3</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-quartz</artifactId>
-        </dependency><!-- json 工具 -->
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.alibaba.fastjson2/fastjson2 -->
         <dependency>
-            <groupId>com.alibaba</groupId>
-            <artifactId>fastjson</artifactId>
-            <version>2.0.52</version>
+            <groupId>com.alibaba.fastjson2</groupId>
+            <artifactId>fastjson2</artifactId>
+            <version>2.0.53</version>
         </dependency>
 
     </dependencies>

+ 1 - 1
service-base/src/main/java/com/simuwang/base/common/util/QuartzUtils.java

@@ -1,6 +1,6 @@
 package com.simuwang.base.common.util;
 
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSON;
 import com.simuwang.base.pojo.dto.QuartzBean;
 import org.quartz.*;
 import org.quartz.impl.matchers.GroupMatcher;

+ 60 - 2
service-base/src/main/java/com/simuwang/base/components/UserAuthService.java

@@ -2,6 +2,8 @@ package com.simuwang.base.components;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.simuwang.base.common.support.dos.OnlyIdNameDO;
+import com.simuwang.base.mapper.system.SysRoleMapper;
 import com.simuwang.base.mapper.system.SysUserMapper;
 import com.simuwang.base.pojo.dos.sys.SysMenuDO;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
@@ -19,9 +21,20 @@ import java.util.Objects;
 @Service
 public class UserAuthService {
     private final SysUserMapper userMapper;
+    private final SysRoleMapper roleMapper;
 
-    public UserAuthService(SysUserMapper userMapper) {
+    public UserAuthService(SysUserMapper userMapper, SysRoleMapper roleMapper) {
         this.userMapper = userMapper;
+        this.roleMapper = roleMapper;
+    }
+
+    /**
+     * 更新用户密码
+     *
+     * @param entity /
+     */
+    public void updatePwd(SysUserDO entity) {
+        this.userMapper.updateById(entity);
     }
 
     /**
@@ -65,6 +78,34 @@ public class UserAuthService {
     }
 
     /**
+     * 获取用户绑定的角色
+     *
+     * @param userId 用户id
+     * @return /
+     */
+    public List<OnlyIdNameDO> userBindRoles(Integer userId) {
+        boolean admin = this.isAdmin(userId);
+        if (admin) {
+            return this.userMapper.allRoles();
+        }
+        return this.userMapper.listBindRoles(userId);
+    }
+
+    /**
+     * 角色分配的权限
+     *
+     * @param roleId 角色id
+     * @return /
+     */
+    public List<OnlyIdNameDO> roleAssignPerms(Integer roleId) {
+        boolean adminByRole = this.isAdminByRole(roleId);
+        if (adminByRole) {
+            return this.roleMapper.allPerms();
+        }
+        return this.roleMapper.listAssignPerms(roleId);
+    }
+
+    /**
      * 判断用户是否超级管理员
      * 1、如果用户id为0或者1则为超级管理员
      * 2、或者用户有system和admin角色
@@ -78,8 +119,25 @@ public class UserAuthService {
         }
         List<SysRoleDO> roles = this.userMapper.selectRoleByUserId(userId);
         SysRoleDO adminRole = roles.stream()
-                .filter(e -> "system".equalsIgnoreCase(e.getRoleKey()) || "admin".equalsIgnoreCase(e.getRoleKey()))
+                .filter(e -> Objects.equals(1, e.getRoleId())
+                        || "system".equalsIgnoreCase(e.getRoleKey())
+                        || "admin".equalsIgnoreCase(e.getRoleKey()))
                 .findFirst().orElse(null);
         return adminRole != null;
     }
+
+    /**
+     * 根据角色id判断角色是否管理员
+     *
+     * @param roleId 角色id
+     * @return /
+     */
+    private boolean isAdminByRole(Integer roleId) {
+        if (Objects.equals(1, roleId)) {
+            return true;
+        }
+        SysRoleDO role = this.roleMapper.selectById(roleId);
+        return role != null
+                && ("system".equalsIgnoreCase(role.getRoleKey()) || "admin".equalsIgnoreCase(role.getRoleKey()));
+    }
 }

+ 8 - 1
service-base/src/main/java/com/simuwang/base/mapper/system/SysRoleMapper.java

@@ -15,7 +15,14 @@ public interface SysRoleMapper extends BaseMapper<SysRoleDO> {
      * @param roleId 角色id
      * @return /
      */
-    List<OnlyIdNameDO> selectMenuByRoleId(Integer roleId);
+    List<OnlyIdNameDO> listAssignPerms(Integer roleId);
+
+    /**
+     * 获取所有菜单名称与id
+     *
+     * @return /
+     */
+    List<OnlyIdNameDO> allPerms();
 
     /**
      * 删除某个角色的所有权限关系(用物理删)

+ 7 - 0
service-base/src/main/java/com/simuwang/base/mapper/system/SysUserMapper.java

@@ -22,6 +22,13 @@ public interface SysUserMapper extends BaseMapper<SysUserDO> {
     List<OnlyIdNameDO> listBindRoles(Integer userId);
 
     /**
+     * 所有角色id与名称关系
+     *
+     * @return /
+     */
+    List<OnlyIdNameDO> allRoles();
+
+    /**
      * 根据用户id从用户角色关系表查询该用户的所有角色信息
      *
      * @param userId 用户id

+ 38 - 0
service-base/src/main/java/com/simuwang/base/pojo/dto/sys/UserUpdatePwdCmd.java

@@ -0,0 +1,38 @@
+package com.simuwang.base.pojo.dto.sys;
+
+import com.simuwang.base.common.support.command.BaseEditCmd;
+import com.simuwang.base.pojo.dos.sys.SysUserDO;
+import jakarta.validation.constraints.NotBlank;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangzaijun
+ * @date 2024/9/19 10:07
+ * @description 修改密码请求参数
+ */
+@Setter
+@Getter
+public class UserUpdatePwdCmd extends BaseEditCmd<SysUserDO> {
+    /**
+     * 旧密码
+     */
+    @NotBlank(message = "旧密码不能为空")
+    private String oldPassword;
+    /**
+     * 新密码
+     */
+    @NotBlank(message = "新密码不能为空")
+    private String newPassword;
+    /**
+     * 新密码
+     */
+    @NotBlank(message = "新密码不能为空")
+    private String confirmPassword;
+
+    @Override
+    public SysUserDO toEntity() {
+        // 返回一个空的对象
+        return new SysUserDO();
+    }
+}

+ 9 - 1
service-base/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.simuwang.base.mapper.system.SysRoleMapper">
-    <select id="selectMenuByRoleId" resultType="com.simuwang.base.common.support.dos.OnlyIdNameDO">
+    <select id="listAssignPerms" resultType="com.simuwang.base.common.support.dos.OnlyIdNameDO">
         select sm.menu_id    as id,
                sm.menu_name  as name
         from sys_menu sm
@@ -12,6 +12,14 @@
         order by sm.menu_id
     </select>
 
+    <select id="allPerms" resultType="com.simuwang.base.common.support.dos.OnlyIdNameDO">
+        select sm.menu_id    as id,
+               sm.menu_name  as name
+        from sys_menu sm
+        where sm.isvalid = 1
+        order by sm.menu_id
+    </select>
+
     <delete id="delRoleMenuByUserId" parameterType="int">
         delete from sys_role_menu where role_id =#{roleId}
     </delete>

+ 8 - 0
service-base/src/main/resources/mapper/system/SysUserMapper.xml

@@ -12,6 +12,14 @@
         order by t.role_id
     </select>
 
+    <select id="allRoles" resultType="com.simuwang.base.common.support.dos.OnlyIdNameDO">
+        select t.role_id    as id,
+               t.role_name  as name
+        from sys_role t
+        where t.isvalid = 1
+        order by t.role_id
+    </select>
+
     <select id="selectRoleByUserId" resultType="com.simuwang.base.pojo.dos.sys.SysRoleDO">
         select t.role_id    as roleId,
                t.role_name  as roleName,

+ 0 - 19
service-deploy/src/main/java/com/simuwang/deploy/filter/RequestFilter.java

@@ -1,19 +0,0 @@
-package com.simuwang.deploy.filter;
-
-import jakarta.servlet.*;
-import jakarta.servlet.annotation.WebFilter;
-import jakarta.servlet.http.HttpServletRequest;
-import org.springframework.stereotype.Component;
-
-import java.io.IOException;
-
-@Component
-@WebFilter(urlPatterns = "/*")
-public class RequestFilter implements Filter {
-
-    @Override
-    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
-        ServletRequest requestWrapper = new RequestWrapper((HttpServletRequest) request);
-        chain.doFilter(requestWrapper, response);
-    }
-}

+ 0 - 111
service-deploy/src/main/java/com/simuwang/deploy/filter/RequestWrapper.java

@@ -1,111 +0,0 @@
-package com.simuwang.deploy.filter;
-
-import jakarta.servlet.ReadListener;
-import jakarta.servlet.ServletInputStream;
-import jakarta.servlet.ServletRequest;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletRequestWrapper;
-import org.springframework.util.StreamUtils;
-
-import java.io.*;
-import java.nio.charset.Charset;
-
-public class RequestWrapper extends HttpServletRequestWrapper {
-    // 存储流的容器
-    private byte[] requestBody = null;
-
-    /**
-     * Constructs a request object wrapping the given request.
-     *
-     * @param request The request to wrap
-     * @throws IllegalArgumentException if the request is null
-     */
-    public RequestWrapper(HttpServletRequest request) throws IOException {
-        super(request);
-        // 将流复制到字节数组 requestBody 中
-        requestBody = StreamUtils.copyToByteArray(request.getInputStream());
-    }
-
-    /**
-     * 获取请求体
-     */
-    public String getBodyString(final ServletRequest request) {
-        try {
-            return inputStream2String(request.getInputStream());
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-
-    /**
-     * 获取请求体
-     */
-    public String getBodyString() {
-        final InputStream inputStream = new ByteArrayInputStream(requestBody);
-
-        return inputStream2String(inputStream);
-    }
-
-    /**
-     * 读取inputStream数据,并转换为String
-     */
-    private String inputStream2String(InputStream inputStream) {
-        StringBuilder sb = new StringBuilder();
-        BufferedReader reader = null;
-
-        try {
-            reader = new BufferedReader(new InputStreamReader(inputStream, Charset.defaultCharset()));
-            String line;
-            while ((line = reader.readLine()) != null) {
-                sb.append(line);
-            }
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        } finally {
-            if (reader != null) {
-                try {
-                    reader.close();
-                } catch (IOException e) {
-                }
-            }
-        }
-
-        return sb.toString();
-    }
-
-    @Override
-    public ServletInputStream getInputStream() throws IOException {
-
-        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(requestBody);
-
-        return new ServletInputStream() {
-
-            @Override
-            public int read() throws IOException {
-                return byteArrayInputStream.read();
-            }
-
-            @Override
-            public boolean isFinished() {
-                return false;
-            }
-
-            @Override
-            public boolean isReady() {
-                return false;
-            }
-
-            @Override
-            public void setReadListener(ReadListener readListener) {
-            }
-        };
-    }
-
-    @Override
-    public BufferedReader getReader() throws IOException {
-        return new BufferedReader(new InputStreamReader(getInputStream()));
-    }
-
-}
-

+ 18 - 6
service-manage/src/main/java/com/simuwang/manage/api/LoginController.java

@@ -2,7 +2,7 @@ package com.simuwang.manage.api;
 
 import cn.hutool.core.map.MapUtil;
 import com.simuwang.base.common.util.ServletUtils;
-import com.simuwang.base.config.DaqProperties;
+import com.simuwang.base.pojo.dto.sys.UserUpdatePwdCmd;
 import com.simuwang.logging.SystemLog;
 import com.simuwang.manage.dto.LoginUser;
 import com.simuwang.manage.dto.UserInfoVO;
@@ -13,6 +13,7 @@ import com.simuwang.shiro.core.jwt.JwtContext;
 import com.simuwang.shiro.utils.UserUtils;
 import com.smppw.common.pojo.ResultVo;
 import com.smppw.common.pojo.enums.status.ResultCode;
+import jakarta.validation.Valid;
 import org.apache.shiro.authz.annotation.RequiresAuthentication;
 import org.apache.shiro.subject.Subject;
 import org.springframework.web.bind.annotation.*;
@@ -22,17 +23,15 @@ import java.util.Map;
 /**
  * 登录相关接口
  */
-@SystemLog(value = "登录相关")
+@SystemLog(value = "登录")
 @RestController
 @RequestMapping("/v1")
 public class LoginController {
     private final JwtContext jwtContext;
-    private final DaqProperties properties;
     private final LoginService loginService;
 
-    public LoginController(JwtContext jwtContext, DaqProperties properties, LoginService loginService) {
+    public LoginController(JwtContext jwtContext, LoginService loginService) {
         this.jwtContext = jwtContext;
-        this.properties = properties;
         this.loginService = loginService;
     }
 
@@ -44,7 +43,7 @@ public class LoginController {
 //    @SystemLog(value = "获取公钥", type = SystemLog.Type.QUERY)
     @GetMapping("rsa-key")
     public Map<String, Object> getRsaKey() {
-        return MapUtil.<String, Object>builder("rsaKey", this.properties.getSecurityRsa().getPublicKey()).build();
+        return MapUtil.<String, Object>builder("rsaKey", this.loginService.getRsaPublicKey()).build();
     }
 
     /**
@@ -94,4 +93,17 @@ public class LoginController {
     public UserInfoVO getUserInfo() {
         return this.loginService.getUserInfo();
     }
+
+    /**
+     * 修改密码
+     *
+     * @param command 修改密码对象
+     */
+    @RequiresAuthentication
+    @SystemLog(value = "修改密码", type = SystemLog.Type.UPDATE)
+    @PostMapping("update-pwd")
+    public boolean updatePwd(@Valid @RequestBody UserUpdatePwdCmd command) {
+        this.loginService.updatePwd(command);
+        return true;
+    }
 }

+ 13 - 11
service-manage/src/main/java/com/simuwang/manage/api/distribution/DistributionController.java

@@ -1,18 +1,17 @@
 package com.simuwang.manage.api.distribution;
 
 import com.simuwang.base.common.support.MybatisPage;
-import com.simuwang.base.pojo.dto.query.CompanyEmailPageQuery;
 import com.simuwang.base.pojo.dto.query.DistributionPageQuery;
 import com.simuwang.base.pojo.vo.DistributionTablePageVO;
 import com.simuwang.base.pojo.vo.DistributionVO;
 import com.simuwang.base.pojo.vo.IdListVO;
-import com.simuwang.base.pojo.vo.IdVO;
 import com.simuwang.manage.service.DistributionService;
 import com.smppw.common.pojo.ResultVo;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
 /**
@@ -27,48 +26,51 @@ public class DistributionController {
 
     @Autowired
     private DistributionService distributionService;
+
     /**
      * 分红页面展示查询
+     *
      * @param distributionPageQuery
      * @return
      */
     @RequestMapping("search-distribution-list")
-    public MybatisPage<DistributionTablePageVO> searchDistributionList(DistributionPageQuery distributionPageQuery){
+    public MybatisPage<DistributionTablePageVO> searchDistributionList(DistributionPageQuery distributionPageQuery) {
         MybatisPage<DistributionTablePageVO> result = distributionService.searchDistributionList(distributionPageQuery);
         return result;
     }
 
     /**
      * 保存分红信息
+     *
      * @param distributionVO
      * @return
      */
     @RequestMapping("save-distribution")
-    public ResultVo saveDistribution(@RequestBody DistributionVO distributionVO){
+    public ResultVo saveDistribution(@RequestBody DistributionVO distributionVO) {
         ResultVo vo = distributionService.saveDistribution(distributionVO);
         return vo;
     }
 
     /**
      * 删除分红信息
+     *
      * @param idListVO
      * @return
      */
     @RequestMapping("delete-distribution")
-    public boolean deleteDistribution(IdListVO idListVO){
+    public boolean deleteDistribution(IdListVO idListVO) {
         distributionService.deleteDistribution(idListVO);
         return true;
     }
 
     /**
      * 上传分红信息
+     *
      * @param file
-     * @param response
-     * @param request
      * @return
      */
     @RequestMapping("upload-distribution")
-    public ResultVo uploadDistribution(@RequestParam(value = "file",required = false) MultipartFile file, HttpServletResponse response, HttpServletRequest request){
+    public ResultVo uploadDistribution(@RequestParam(value = "file") MultipartFile file) {
         ResultVo vo = distributionService.uploadDistribution(file);
         return vo;
     }

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/init/QuartzConfig.java

@@ -1,6 +1,6 @@
 package com.simuwang.manage.init;
 
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSON;
 import com.simuwang.base.common.enums.OpenStatusType;
 import com.simuwang.base.common.util.QuartzUtils;
 import com.simuwang.base.config.DaqProperties;

+ 56 - 1
service-manage/src/main/java/com/simuwang/manage/service/LoginService.java

@@ -1,18 +1,28 @@
 package com.simuwang.manage.service;
 
+import cn.hutool.core.exceptions.ExceptionUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.crypto.asymmetric.KeyType;
+import cn.hutool.crypto.asymmetric.RSA;
+import com.simuwang.base.common.exception.APIException;
 import com.simuwang.base.common.util.TreeUtil;
 import com.simuwang.base.components.UserAuthService;
+import com.simuwang.base.config.DaqProperties;
 import com.simuwang.base.pojo.dos.sys.SysMenuDO;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
 import com.simuwang.base.pojo.dos.sys.SysUserDO;
+import com.simuwang.base.pojo.dto.sys.UserUpdatePwdCmd;
 import com.simuwang.manage.dto.MenuTreeDTO;
 import com.simuwang.manage.dto.UserInfoVO;
 import com.simuwang.manage.dto.UserRoleDTO;
 import com.simuwang.shiro.core.ShiroUser;
 import com.simuwang.shiro.utils.UserUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 /**
@@ -22,12 +32,20 @@ import java.util.stream.Collectors;
  */
 @Service
 public class LoginService {
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    private final DaqProperties properties;
     private final UserAuthService userAuthService;
 
-    public LoginService(UserAuthService userAuthService) {
+    public LoginService(DaqProperties properties, UserAuthService userAuthService) {
+        this.properties = properties;
         this.userAuthService = userAuthService;
     }
 
+    public String getRsaPublicKey() {
+        return this.properties.getSecurityRsa().getPublicKey();
+    }
+
     /**
      * 获取当前用户的权限角色信息
      *
@@ -56,4 +74,41 @@ public class LoginService {
         vo.setPhonenumber(userInfo.getPhonenumber());
         return vo;
     }
+
+    /**
+     * 修改密码
+     *
+     * @param command /
+     */
+    public void updatePwd(UserUpdatePwdCmd command) {
+        ShiroUser loginUser = UserUtils.getLoginUser();
+        Integer userId = loginUser.getUserId();
+        String oldPwd = this.decryptPwd(command.getOldPassword());
+        String newPwd = this.decryptPwd(command.getNewPassword());
+        String confirmPwd = this.decryptPwd(command.getConfirmPassword());
+        if (!StrUtil.isAllNotBlank(oldPwd, newPwd, confirmPwd)) {
+            throw new APIException("前端密码加密错误");
+        }
+        if (Objects.equals(oldPwd, newPwd)) {
+            throw new APIException("新密码不能和旧密码一样");
+        }
+        if (!Objects.equals(newPwd, confirmPwd)) {
+            throw new APIException("确认密码和新密码不相等");
+        }
+        SysUserDO entity = command.toEntity();
+        entity.setUserId(userId);
+        entity.setPassword(newPwd);
+        this.userAuthService.updatePwd(entity);
+    }
+
+    private String decryptPwd(String pwd) {
+        DaqProperties.SecurityRsa securityRsa = this.properties.getSecurityRsa();
+        String privateKey = securityRsa.getPrivateKey();
+        try {
+            return new RSA(privateKey, null).decryptStr(pwd, KeyType.PrivateKey);
+        } catch (Exception e) {
+            this.logger.error("密码rsa解密错误\n{}", ExceptionUtil.stacktraceToString(e));
+        }
+        return null;
+    }
 }

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/service/impl/EmailConfigServiceImpl.java

@@ -1,6 +1,6 @@
 package com.simuwang.manage.service.impl;
 
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSON;
 import com.simuwang.base.common.conts.UserConstants;
 import com.simuwang.base.common.enums.EmailCron;
 import com.simuwang.base.common.enums.OpenStatusType;

+ 5 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysRoleServiceImpl.java

@@ -13,6 +13,7 @@ import com.simuwang.base.common.support.dos.OnlyIdNameDO;
 import com.simuwang.base.common.support.query.PageQuery;
 import com.simuwang.base.common.support.service.IService;
 import com.simuwang.base.common.support.vo.OnlyIdNameVO;
+import com.simuwang.base.components.UserAuthService;
 import com.simuwang.base.mapper.system.SysRoleMapper;
 import com.simuwang.base.pojo.dos.sys.SysRoleDO;
 import com.simuwang.base.pojo.dto.GetByIdQuery;
@@ -33,9 +34,11 @@ import java.util.stream.Collectors;
 public class SysRoleServiceImpl implements SysRoleService {
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
     private final SysRoleMapper mapper;
+    private final UserAuthService userAuthService;
 
-    public SysRoleServiceImpl(SysRoleMapper mapper) {
+    public SysRoleServiceImpl(SysRoleMapper mapper, UserAuthService userAuthService) {
         this.mapper = mapper;
+        this.userAuthService = userAuthService;
     }
 
     @Override
@@ -101,7 +104,7 @@ public class SysRoleServiceImpl implements SysRoleService {
 
     @Override
     public List<OnlyIdNameVO> getRolePerms(GetByIdQuery query) {
-        List<OnlyIdNameDO> dataList = this.mapper.selectMenuByRoleId(query.getId());
+        List<OnlyIdNameDO> dataList = this.userAuthService.roleAssignPerms(query.getId());
         return dataList.stream().map(OnlyIdNameDO::toVo).collect(Collectors.toList());
     }
 }

+ 5 - 2
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysUserServiceImpl.java

@@ -15,6 +15,7 @@ import com.simuwang.base.common.support.dos.OnlyIdNameDO;
 import com.simuwang.base.common.support.query.PageQuery;
 import com.simuwang.base.common.support.service.IService;
 import com.simuwang.base.common.support.vo.OnlyIdNameVO;
+import com.simuwang.base.components.UserAuthService;
 import com.simuwang.base.config.DaqProperties;
 import com.simuwang.base.mapper.system.SysUserMapper;
 import com.simuwang.base.pojo.dos.sys.SysRoleUserDO;
@@ -38,10 +39,12 @@ public class SysUserServiceImpl implements SysUserService {
 
     private final SysUserMapper mapper;
     private final DaqProperties properties;
+    private final UserAuthService userAuthService;
 
-    public SysUserServiceImpl(SysUserMapper mapper, DaqProperties properties) {
+    public SysUserServiceImpl(SysUserMapper mapper, DaqProperties properties, UserAuthService userAuthService) {
         this.mapper = mapper;
         this.properties = properties;
+        this.userAuthService = userAuthService;
     }
 
     @Override
@@ -135,7 +138,7 @@ public class SysUserServiceImpl implements SysUserService {
 
     @Override
     public List<OnlyIdNameVO> getUserRoles(GetByIdQuery query) {
-        List<OnlyIdNameDO> dataList = this.mapper.listBindRoles(query.getId());
+        List<OnlyIdNameDO> dataList = this.userAuthService.userBindRoles(query.getId());
         return dataList.stream().map(OnlyIdNameDO::toVo).collect(Collectors.toList());
     }
 }

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/task/ParseSchedulerTask.java

@@ -1,7 +1,7 @@
 package com.simuwang.manage.task;
 
 import ch.qos.logback.core.util.StringUtil;
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSON;
 import com.simuwang.base.common.enums.EmailCron;
 import com.simuwang.base.common.util.DateUtils;
 import com.simuwang.base.common.util.QuartzUtils;