Преглед на файлове

Merge remote-tracking branch 'origin/master'

李进 преди 1 година
родител
ревизия
5e2ddbe325

+ 16 - 5
authorize-api-service/src/main/java/com/xy/service/impl/SysRoleServiceImpl.java

@@ -11,10 +11,7 @@ import com.xy.consts.CommConsts;
 import com.xy.dto.BatchDeleteDto;
 import com.xy.dto.CommDto;
 import com.xy.dto.SysRoleDto;
-import com.xy.entity.SysDeptRole;
-import com.xy.entity.SysRole;
-import com.xy.entity.SysRoleMenu;
-import com.xy.entity.SysUserRole;
+import com.xy.entity.*;
 import com.xy.mapper.SysRoleMapper;
 import com.xy.redis.RedisCache;
 import com.xy.service.SysDeptRoleService;
@@ -56,6 +53,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
     private final SysRoleMenuService sysRoleMenuService;
     private final SysDeptRoleService sysDeptRoleService;
     private final SysUserRoleService sysUserRoleService;
+    private final SysMenuServiceImpl sysMenuService;
 
     @ApiOperation(value = "新增、更新角色信息", notes = "新增、更新角色信息")
     @PostMapping("saveOrUpdate")
@@ -81,7 +79,20 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
             }
 
             Long sysRoleId = sysRole.getId();
-            sysRoleMenuService.remove(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, sysRoleId));
+            String clientType = sysRoleDto.getClientType();
+            if (StrUtil.isNotEmpty(clientType)) {
+                //如果有客户端类型,只能移除次客户端类型对应的菜单
+                List<SysMenu> sysMenus = sysMenuService.list(Wrappers.<SysMenu>lambdaQuery().eq(SysMenu::getClientType, clientType).eq(SysMenu::getSysId, sysRoleDto.getSysId()));
+                if (CollUtil.isNotEmpty(sysMenus)) {
+                    List<Long> mIds = sysMenus.stream().map(SysMenu::getId).collect(Collectors.toList());
+                    sysRoleMenuService.remove(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, sysRoleId)
+                            .in(SysRoleMenu::getMenuId, mIds)
+                    );
+
+                }
+            } else {
+                sysRoleMenuService.remove(Wrappers.<SysRoleMenu>lambdaQuery().eq(SysRoleMenu::getRoleId, sysRoleId));
+            }
 
             //角色菜单绑定
             Boolean finalSelectAdmin = selectAdmin;

+ 5 - 0
authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java

@@ -4,6 +4,7 @@ import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.SecureUtil;
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -113,8 +114,12 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     @Transactional(rollbackFor = Exception.class)
     public R<Boolean> update(UpdateDto updateDto) {
         String account = updateDto.getAccount();
+        log.info("权限用户信息修改:{}", JSONUtil.toJsonPrettyStr(updateDto));
         //校验
         SysWorkUser byId = getById(updateDto.getId());
+        if (StrUtil.isNotEmpty(updateDto.getPassword())) {
+            updateById(new SysWorkUser().setId(updateDto.getId()).setPassword(SecureUtil.md5(updateDto.getPassword())));
+        }
         if (!StringUtils.isEmpty(account)) {
             if (!account.equals(byId.getAccount())) {
                 long count = count(new LambdaQueryWrapper<SysWorkUser>().eq(SysWorkUser::getAccount, account));

+ 3 - 0
authorize-api/src/main/java/com/xy/dto/SysRoleDto.java

@@ -25,6 +25,9 @@ public class SysRoleDto {
         @ApiModelProperty(value = "角色ID")
         private Long id;
 
+        @ApiModelProperty(value = "菜单客户端类型,枚举:menu_client_type")
+        private String clientType;
+
         @NotNull(message = "所属系统不可为空")
         @ApiModelProperty(value = "系统", required = true)
         private Long sysId;

+ 1 - 1
authorize-start/src/main/resources/bootstrap.yml

@@ -10,7 +10,7 @@ spring:
       datasource:
         master:
           driver-class-name: com.mysql.cj.jdbc.Driver
-          url: jdbc:mysql://119.96.213.127:3306/xy-authorize?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
+          url: jdbc:mysql://119.96.213.127:3306/xy-authorize2?characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false
           username: root
           password: '#Xynet2022'
       hikari: