wrj 1 рік тому
батько
коміт
8d430fdee1

+ 8 - 0
src/main/java/com/ydtech/modules/admin/controller/SysMenuController.java

@@ -1,13 +1,17 @@
 package com.ydtech.modules.admin.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.ydtech.modules.admin.model.SysMenu;
+import com.ydtech.modules.admin.model.SysMenuVo;
 import com.ydtech.modules.admin.model.SysRole;
 import com.ydtech.modules.admin.service.SysMenuService;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.core.page.HttpResult;
+import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -57,4 +61,8 @@ public class SysMenuController {
         return HttpResult.ok(sysMenuService.findTree(null, 0));
     }
 
+    @GetMapping(value = "v1/findMenuTree")
+    public HttpResult v1findMenuTree() {
+        return HttpResult.ok(sysMenuService.v1findMenuTree());
+    }
 }

+ 24 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -53,6 +53,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.models.auth.In;
+import jodd.util.StringUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -167,10 +168,14 @@ public class SysUserController extends BaseController {
         String name = pageRequest.getColumnFilterValue(pageRequest, "name");
         String containsSubDept = pageRequest.getColumnFilterValue(pageRequest, "containsSubDept");
         String mobile = pageRequest.getColumnFilterValue(pageRequest, "mobile");
+        String roleId = pageRequest.getColumnFilterValue(pageRequest, "roleId");
+        String deptName = pageRequest.getColumnFilterValue(pageRequest, "deptName");
         SysUser sysUser = new SysUser();
         sysUser.setDeptId(deptid);
         sysUser.setName(name);
         sysUser.setMobile(mobile);
+        sysUser.setRoleId(roleId);
+        sysUser.setDeptName(deptName);
         Page page = PageRequest.buildPageRequest(pageRequest);
         IPage<SysUser> pResult = sysUserService.selectUserPage(page, sysUser, containsSubDept);
         //传入查询条件
@@ -228,6 +233,25 @@ public class SysUserController extends BaseController {
 
         return HttpResult.ok();
     }
+    @PostMapping(value = "/deleteUserRole")
+    @ApiOperation(value = "删除用户角色信息")
+    public HttpResult deleteUserRole(@RequestBody SysUserRoleVo sysUserRoleVo) {
+
+        if(StringUtil.isBlank(sysUserRoleVo.getUserId())){
+            return HttpResult.error("用户ID不能空");
+        }
+        if(sysUserRoleService.deleteByUserId(sysUserRoleVo.getUserId())){
+            return HttpResult.ok();
+        }else{
+            return HttpResult.error();
+        }
+    }
+
+    @PostMapping(value = "/roleAddUser")
+    @ApiOperation(value = "角色成员新增")
+    public HttpResult roleAddUser(@RequestBody @Valid SysRoleAddUserVo sysRoleAddUserVo) {
+        return sysUserRoleService.roleAddUser(sysRoleAddUserVo,getUserName());
+    }
 
 
     @ApiOperation(value = "获取用户综合信息")

+ 5 - 0
src/main/java/com/ydtech/modules/admin/dao/SysRoleMapper.java

@@ -6,6 +6,9 @@ import com.ydtech.modules.admin.model.SysRole;
 import com.ydtech.modules.admin.model.dto.SysUserRoleQueryDto;
 import org.apache.ibatis.annotations.Param;
 
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
 public interface SysRoleMapper extends BaseMapper<SysRole> {
 
     /**
@@ -16,6 +19,8 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
      */
     Page<SysRole> findKztPage(@Param("page") Page<SysRole> page, @Param("vo") SysUserRoleQueryDto sysUserRoleQueryDto);
 
+    void removeBatchByUserIds(@Param("userIds") List<String> userIds);
+
 //    public SysRole selectByPk(Long id);
 //
 //    public List<SysRole> selectAll();

+ 84 - 0
src/main/java/com/ydtech/modules/admin/model/SysMenuVo.java

@@ -0,0 +1,84 @@
+package com.ydtech.modules.admin.model;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author jianlong
+ * @date 2024-10-25 11:53
+ */
+@Data
+public class SysMenuVo {
+
+    @ApiModelProperty(value = "菜单id")
+    private String id;
+
+    @TableField(value = "name")
+    @ApiModelProperty(value = "菜单名称")
+    private String name;
+
+    @ApiModelProperty(value = "菜单名称")
+    private String nodeName;
+
+    @TableField(value = "parent_id")
+    @ApiModelProperty(value = "父菜单id")
+    private String parentId;
+    @ApiModelProperty(value = "菜单路由")
+    private String url;
+    @ApiModelProperty(value = "菜单权限")
+    private String perms;
+    @ApiModelProperty(value = "菜单类型  0 目录 1菜单  2按钮")
+    private Integer type;
+    @ApiModelProperty(value = "图标")
+    private String icon;
+    @TableField(value = "order_num")
+    @ApiModelProperty(value = "排序")
+    private Integer orderNum = 0;
+    @TableField(value = "create_by")
+    private String createBy;
+    @TableField(value = "create_time")
+    private Date createTime;
+    @TableField(value = "last_update_by")
+    private String lastUpdateBy;
+    @TableField(value = "last_update_time")
+    private Date lastUpdateTime;
+    @TableField(value = "del_flag")
+    private Integer delFlag;
+    // 非数据库字段
+    @TableField(exist = false)
+    private String parentName;
+
+    // 非数据库字段
+    @TableField(exist = false)
+    private String parentUrl;
+    // 非数据库字段
+    @TableField(exist = false)
+    private Integer level;
+    // 非数据库字段
+    @TableField(exist = false)
+    @ApiModelProperty(value = "子级菜单")
+    private List<SysMenu> children;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "子级菜单")
+    private List<SysMenuVo> chidrenList;
+
+    @ApiModelProperty(value = "是否选中")
+    private Boolean isChecked;
+
+    @ApiModelProperty(value = "编辑节点")
+    private Boolean editable;
+    /***
+     * 添加菜单类型 1.车险 2. 控制台
+     */
+    @TableField(value = "sys_type")
+    @ApiModelProperty(value = "菜单类型 1 车险 2.控制台")
+    private String sysType;
+
+
+}

+ 27 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysRoleAddUserVo.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NonNull;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author jianlong
+ * @date 2024-10-23 19:06
+ */
+@Data
+@ApiModel("角色成员新增入参")
+public class SysRoleAddUserVo {
+
+    @NotNull
+    @ApiModelProperty(value = "用户ID")
+    private List<String> userIds;
+
+    @NotBlank
+    @ApiModelProperty(value = "角色ID")
+    private String roleId;
+}

+ 4 - 0
src/main/java/com/ydtech/modules/admin/service/SysMenuService.java

@@ -3,7 +3,9 @@ package com.ydtech.modules.admin.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysMenu;
+import com.ydtech.modules.admin.model.SysMenuVo;
 
+import java.util.ArrayList;
 import java.util.List;
 
 public interface SysMenuService extends IService<SysMenu> {
@@ -40,6 +42,8 @@ public interface SysMenuService extends IService<SysMenu> {
      *  @Description:   通过类型查询数据是否有权限
      */
     int findByUseId(String userId, String sysType);
+
+    ArrayList<SysMenuVo> v1findMenuTree();
 }
 
 

+ 5 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserRoleService.java

@@ -2,9 +2,13 @@ package com.ydtech.modules.admin.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.dao.SysUserRoleDao;
 import com.ydtech.modules.admin.model.SysRole;
 import com.ydtech.modules.admin.model.SysUserRole;
+import com.ydtech.modules.admin.model.vo.SysRoleAddUserVo;
+
+import javax.validation.Valid;
 
 public interface SysUserRoleService extends IService<SysUserRole> {
 //public interface SysUserRoleService extends SysUserRoleDao {
@@ -15,6 +19,7 @@ public interface SysUserRoleService extends IService<SysUserRole> {
 
     boolean deleteByUserId(String userId);
 
+    HttpResult roleAddUser(@Valid SysRoleAddUserVo sysRoleAddUserVo, String createBy);
 }
 
 

+ 42 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysMenuServiceImpl.java

@@ -1,14 +1,18 @@
 package com.ydtech.modules.admin.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.constants.SysConstants;
 import com.ydtech.modules.admin.dao.SysMenuMapper;
 import com.ydtech.modules.admin.model.SysMenu;
+import com.ydtech.modules.admin.model.SysMenuVo;
 import com.ydtech.modules.admin.model.SysRoleMenu;
 import com.ydtech.modules.admin.service.SysMenuService;
 import com.ydtech.modules.admin.service.SysRoleMenuKztService;
 import com.ydtech.modules.admin.service.SysRoleMenuService;
+import org.apache.commons.compress.utils.Lists;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -99,6 +103,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
     }
 
     private void findChildren(List<SysMenu> SysMenus, List<SysMenu> menus, int menuType) {
+
         for (SysMenu SysMenu : SysMenus) {
             List<SysMenu> children = new ArrayList<>();
             for (SysMenu menu : menus) {
@@ -119,7 +124,43 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
             findChildren(children, menus, menuType);
         }
     }
+    @Override
+    public ArrayList<SysMenuVo> v1findMenuTree() {
+        List<SysMenu> tree = this.findTree(null, 0);
+        ArrayList<SysMenuVo> menus = Lists.newArrayList();
+        tree.forEach(menu->{
+            SysMenuVo sysMenuVo = new SysMenuVo();
+            BeanUtil.copyProperties(menu, sysMenuVo);
+            sysMenuVo.setNodeName(menu.getName());
+            sysMenuVo.setIsChecked(false);
+            sysMenuVo.setEditable(false);
+            if(CollectionUtil.isNotEmpty(menu.getChildren())){
+                this.v1findMenuTreeChildren(menu.getChildren(),sysMenuVo);
+            }else{
+                sysMenuVo.setChidrenList(CollectionUtil.newArrayList());
+            }
+            menus.add(sysMenuVo);
+        });
+        return menus;
+    }
 
+    private void v1findMenuTreeChildren(List<SysMenu> tree,SysMenuVo sysMenuVos){
+        ArrayList<SysMenuVo> menus = Lists.newArrayList();
+        tree.forEach(menu->{
+            SysMenuVo sysMenuVo = new SysMenuVo();
+            BeanUtil.copyProperties(menu, sysMenuVo);
+            sysMenuVo.setNodeName(menu.getName());
+            sysMenuVo.setIsChecked(false);
+            sysMenuVo.setEditable(false);
+            if(CollectionUtil.isNotEmpty(menu.getChildren())){
+                this.v1findMenuTreeChildren(menu.getChildren(),sysMenuVo);
+            }else{
+                sysMenuVo.setChidrenList(CollectionUtil.newArrayList());
+            }
+            menus.add(sysMenuVo);
+        });
+        sysMenuVos.setChidrenList(menus);
+    }
     private boolean exists(List<SysMenu> sysMenus, SysMenu sysMenu) {
         boolean exist = false;
         for (SysMenu menu : sysMenus) {
@@ -264,6 +305,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu>
     public int findByUseId(String userId, String sysType) {
         return sysRoleMenuKztService.findByUseId(userId,sysType);
     }
+
 }
 
 

+ 29 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserRoleServiceImpl.java

@@ -2,17 +2,24 @@ package com.ydtech.modules.admin.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.beust.jcommander.internal.Lists;
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.admin.dao.SysRoleMapper;
 import com.ydtech.modules.admin.dao.SysUserRoleMapper;
 import com.ydtech.modules.admin.dao.impl.SysUserRoleDaoImpl;
 import com.ydtech.modules.admin.model.SysRole;
 import com.ydtech.modules.admin.model.SysUserRole;
+import com.ydtech.modules.admin.model.vo.SysRoleAddUserVo;
 import com.ydtech.modules.admin.service.SysRoleService;
 import com.ydtech.modules.admin.service.SysUserRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
 
 
 @Service
@@ -22,6 +29,9 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
     @Resource
     private SysRoleService sysRoleService;
 
+    @Resource
+    private SysRoleMapper sysRoleMapper;
+
     @Override
     public SysUserRole selectByUserId(String userId) {
         LambdaQueryWrapper<SysUserRole> lqw = new LambdaQueryWrapper<>();
@@ -44,6 +54,25 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
         lqw.eq(SysUserRole::getUserId,userId);
         return remove(lqw);
     }
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public HttpResult roleAddUser(SysRoleAddUserVo sysRoleAddUserVo, String createUser) {
+        sysRoleMapper.removeBatchByUserIds(sysRoleAddUserVo.getUserIds());
+        List<SysUserRole> userRolelist = Lists.newArrayList();
+        sysRoleAddUserVo.getUserIds().forEach(user->{
+            SysUserRole userRole = new SysUserRole();
+            userRole.setUserId(user);
+            userRole.setRoleId(Long.parseLong(sysRoleAddUserVo.getRoleId()));
+            userRole.setCreateBy(createUser);
+            userRole.setCreateTime(new Date());
+            userRolelist.add(userRole);
+        });
+        if(this.saveBatch(userRolelist)){
+            return HttpResult.ok();
+        }else{
+            return HttpResult.error();
+        }
+    }
 }
 
 

+ 1 - 1
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -2279,4 +2279,4 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         buildUserTree(topUsers, users);
         return topUsers;
     }
-}
+}

+ 8 - 1
src/main/resources/mapper/modules/admin/SysRoleMapper.xml

@@ -2,9 +2,16 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
 <mapper namespace="com.ydtech.modules.admin.dao.SysRoleMapper">
+<!--    批量删除-->
+    <delete id="removeBatchByUserIds">
+        DELETE FROM sys_user_role WHERE user_id IN
+        <foreach item="userId" collection="userIds" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
 
 
-      <select id="findKztPage" resultType="com.ydtech.modules.admin.model.SysRole">
+    <select id="findKztPage" resultType="com.ydtech.modules.admin.model.SysRole">
           SELECT
               id,
               NAME,

+ 33 - 1
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -54,6 +54,9 @@
             <if test="sysUser.mobile != null &amp;&amp; sysUser.mobile != ''">
                 and su.mobile = #{sysUser.mobile}
             </if>
+            <if test="sysUser.roleId != null &amp;&amp; sysUser.roleId != ''">
+                and sur.role_id = #{sysUser.roleId}
+            </if>
 
             <if test="sysUser.status != null">
                 and su.status = #{sysUser.status}
@@ -68,10 +71,39 @@
         </where>
     </sql>
 
+    <sql id="Sys_User_Where_Clause_deptName">
+        <where>
+            <if test="sysUser.name != null &amp;&amp; sysUser.name != ''">
+                and su.name = #{sysUser.name}
+            </if>
+            <if test="sysUser.mobile != null &amp;&amp; sysUser.mobile != ''">
+                and su.mobile = #{sysUser.mobile}
+            </if>
+            <if test="sysUser.roleId != null &amp;&amp; sysUser.roleId != ''">
+                and sur.role_id = #{sysUser.roleId}
+            </if>
+
+            <if test="sysUser.status != null">
+                and su.status = #{sysUser.status}
+            </if>
+            <if test="sysUser.deptName != null &amp;&amp; sysUser.deptName != ''">
+                and sd.name like concat('%',#{sysUser.deptName},'%')
+            </if>
+        </where>
+    </sql>
+
+
+
     <select id="selectUserPage" resultMap="sysUserMap">
         select
         <include refid="Sys_User_Column_List"/>
-        <include refid="Sys_User_Where_Clause"></include>
+        <if test="sysUser.deptName == null || sysUser.deptName == ''">
+            <include refid="Sys_User_Where_Clause"></include>
+        </if>
+
+        <if test="sysUser.deptName != null &amp;&amp; sysUser.deptName != ''">
+            <include refid="Sys_User_Where_Clause_deptName"></include>
+        </if>
     </select>