From c0e7f848236e1ab5f945b98c32d12c81e3e9c991 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期四, 24 八月 2023 18:04:09 +0800 Subject: [PATCH] 角色管理 --- laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java | 33 ++++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java | 6 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java | 23 ++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java | 21 ++ laboratory-server/src/main/resources/mapper/MenuMapper.xml | 2 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java | 98 ++++++++++++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java | 13 + /dev/null | 26 --- framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java | 2 laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java | 33 ++++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java | 22 ++ laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml | 76 +++++++++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java | 49 ++++++ laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java | 67 ++++++++ 14 files changed, 433 insertions(+), 38 deletions(-) diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java index f272754..b9a569f 100644 --- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java +++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/JackSonUtil.java @@ -14,8 +14,6 @@ /** * JSON瑙f瀽澶勭悊 - * - * @author 寮犲 */ @Component public class JackSonUtil { diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java index d60ec4e..69ea1fd 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/RoleMangerController.java @@ -1,12 +1,12 @@ package com.yuanchu.limslaboratory.controller; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; import com.yuanchu.limslaboratory.service.RoleManagerService; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -28,6 +28,21 @@ return Result.success(roleManagerService.getMenusTree()); }; + @ApiOperation("鏂板瑙掕壊") + @PostMapping("/addRoleInfo") + public Result<?>addRoleInfo(@RequestBody RoleInfoDto dto){ + return Result.success(roleManagerService.addRoleInfo(dto)); + } + @ApiOperation("鏌ヨ瑙掕壊鍚嶉噸澶�") + @GetMapping("/assertRepeat") + public Result<?> assertRepeat(String roleName){ + return Result.success(roleManagerService.assertRepeat(roleName)); + } + @ApiOperation("鑾峰彇瑙掕壊淇℃伅") + @GetMapping("/getAllRoleAndMenuInfo") + public Result<?> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto){ + return Result.success(roleManagerService.getAllRoleAndMenuInfo(dto)); + } } diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java new file mode 100644 index 0000000..e85957b --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/RoleManageMapper.java @@ -0,0 +1,33 @@ +package com.yuanchu.limslaboratory.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yuanchu.limslaboratory.pojo.LimitPage; +import com.yuanchu.limslaboratory.pojo.Role; +import com.yuanchu.limslaboratory.pojo.RoleInfo; +import com.yuanchu.limslaboratory.pojo.RoleMenu; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.Map; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Repository +public interface RoleManageMapper extends BaseMapper<RoleInfo> { + + int insertBatchRoleMenu(@Param("roleMenuAddList") List<RoleMenu> roleMenuList); + + int insertRole(RoleInfo roleInfo); + + List<RoleInfo>getAssertName(@Param("roleName") String roleName); + + List<RoleAndMenuDto>selectAllRoleAndMenu(@Param("dto") GetAllRoleAndMenuByConditionPageDto dto); + + List<Role>getRoleByName(@Param("roleName") String roleName); +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java index b9cd220..12c7ddb 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Menu.java @@ -16,18 +16,18 @@ /** * id */ - private Integer value; + private Long id; /** * 鑿滃崟鍚� */ - private String label; + private String name; /** * 鐖剁骇id */ - private Integer parentId; + private Long parentId; /** * 瀛愮骇鑿滃崟淇℃伅 diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java deleted file mode 100644 index 036a706..0000000 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/Role.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.yuanchu.limslaboratory.pojo; - -import lombok.Data; - -import java.io.Serializable; -import java.time.LocalDateTime; - -/** - * @Author 寮犲 - * @Date 2023/8/23 - */ -@Data -public class Role implements Serializable { - - - private Integer id; - - private Integer name; - - private LocalDateTime createTime; - - private LocalDateTime updateTime; - - private Integer state; - -} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java new file mode 100644 index 0000000..854b391 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleInfo.java @@ -0,0 +1,49 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @Author 寮犲 + * @Date 2023/8/23 + */ +@Data +@TableName("role") +@Getter +@Setter +public class RoleInfo implements Serializable { + + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + private String name; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime updateTime; + + private Integer state; + + public RoleInfo(String name, LocalDateTime createTime, LocalDateTime updateTime) { + this.name = name; + this.createTime = createTime; + this.updateTime = updateTime; + } + + public RoleInfo() { + } +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java new file mode 100644 index 0000000..2bb7b23 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/RoleMenu.java @@ -0,0 +1,67 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +@TableName("role_menu") +public class RoleMenu implements Serializable { + + @TableId(type = IdType.AUTO) + private Long id; + + private Long roleId; + + private String menuName; + + private Long menuId; + + private Boolean selected; + + private Boolean added; + + private Long parentId; + + private Boolean updated; + + private Boolean deleted; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime updateTime; + + private List<RoleMenu> children; + + public RoleMenu() { + } + + public RoleMenu(Long id, Long roleId, Long menuId, Boolean selected, Boolean added, Boolean updated, Boolean deleted, LocalDateTime createTime) { + this.id = id; + this.roleId = roleId; + this.menuId = menuId; + this.selected = selected; + this.added = added; + this.updated = updated; + this.deleted = deleted; + this.createTime = createTime; + } + + + +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java new file mode 100644 index 0000000..51285e3 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetAllRoleAndMenuByConditionPageDto.java @@ -0,0 +1,23 @@ +package com.yuanchu.limslaboratory.pojo.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +@ApiModel(value = "GetAllRoleAndMenuByConditionPageDto瀵硅薄", description = "") +public class GetAllRoleAndMenuByConditionPageDto implements Serializable { + @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true) + private Long currentPage; + @ApiModelProperty(value = "姣忛〉澶氬皯鏉�", required = true) + private Long pageSize; + @ApiModelProperty(value = "瑙掕壊鍚�") + private String name; + +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java new file mode 100644 index 0000000..aa3d4d0 --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleAndMenuDto.java @@ -0,0 +1,33 @@ +package com.yuanchu.limslaboratory.pojo.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yuanchu.limslaboratory.pojo.RoleMenu; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +public class RoleAndMenuDto implements Serializable { + + private Long roleId; + + private String roleName; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss", iso = DateTimeFormat.ISO.DATE_TIME) + private LocalDateTime updateTime; + + private List<RoleMenu> roleMenuList; + +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java new file mode 100644 index 0000000..981712a --- /dev/null +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/RoleInfoDto.java @@ -0,0 +1,22 @@ +package com.yuanchu.limslaboratory.pojo.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +/** + * @Author 寮犲 + * @Date 2023/8/24 + */ +@Data +public class RoleInfoDto implements Serializable { + + @ApiModelProperty(value = "瑙掕壊鍚�", required = true) + private String roleName; + + @ApiModelProperty(value = "閫変腑鑿滃崟淇℃伅") + private List<Map<String, Object>>menuData; +} diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java index 6cb04de..9fde5f7 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/RoleManagerService.java @@ -1,6 +1,11 @@ package com.yuanchu.limslaboratory.service; -import com.yuanchu.limslaboratory.vo.Result; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; + +import java.util.List; +import java.util.Map; /** * @Author 寮犲 @@ -8,4 +13,10 @@ */ public interface RoleManagerService { Object getMenusTree(); + + boolean addRoleInfo(RoleInfoDto dto); + + boolean assertRepeat(String roleName); + + Map<String, Object> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto); } diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java index 38f0db1..eedf808 100644 --- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java +++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/RoleManagerServiceImpl.java @@ -1,12 +1,25 @@ package com.yuanchu.limslaboratory.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.mapper.MenuMapper; +import com.yuanchu.limslaboratory.mapper.RoleManageMapper; +import com.yuanchu.limslaboratory.pojo.LimitPage; import com.yuanchu.limslaboratory.pojo.Menu; +import com.yuanchu.limslaboratory.pojo.RoleInfo; +import com.yuanchu.limslaboratory.pojo.RoleMenu; +import com.yuanchu.limslaboratory.pojo.dto.GetAllRoleAndMenuByConditionPageDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto; +import com.yuanchu.limslaboratory.pojo.dto.RoleInfoDto; import com.yuanchu.limslaboratory.service.RoleManagerService; +import com.yuanchu.limslaboratory.utils.JsonUtil; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -20,6 +33,9 @@ @Resource private MenuMapper menuMapper; + @Resource + private RoleManageMapper roleManageMapper; + @Override public Object getMenusTree() { List<Menu> menus = menuMapper.getMenuList(); @@ -29,10 +45,69 @@ .collect(Collectors.toList()); } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addRoleInfo(RoleInfoDto dto) { + //鏂板瑙掕壊 + //System.out.println(dto); + LocalDateTime createTime = DateUtil.toLocalDateTime(DateUtil.date()); + RoleInfo role=new RoleInfo(); + long nextId = IdUtil.getSnowflake().nextId(); + role.setId(nextId); + role.setName(dto.getRoleName()); + role.setCreateTime(createTime); + int insert = roleManageMapper.insertRole(role); + List<Map<String, Object>>addBranch=new ArrayList<>(); + reverseTree(dto.getMenuData(),addBranch); + List<RoleMenu> roleMenuList =new ArrayList<>(); + addBranch.forEach(item->{ + roleMenuList.add(new RoleMenu(null,nextId, + Long.valueOf(String.valueOf(item.get("id"))) + ,Boolean.valueOf(String.valueOf(item.get("selected"))) + ,Boolean.valueOf(String.valueOf(item.get("added"))) + ,Boolean.valueOf(String.valueOf(item.get("deleted"))) + ,Boolean.valueOf(String.valueOf(item.get("updated"))) + ,createTime + )); + }); + //roleMenuAddList.forEach(System.out::println); + int i = roleManageMapper.insertBatchRoleMenu(roleMenuList); + return insert>0&&i>0; + } + + @Override + public boolean assertRepeat(String roleName) { + List<RoleInfo> assertName = roleManageMapper.getAssertName(roleName); + return assertName.size()<1; + } + + @Override + public Map<String, Object> getAllRoleAndMenuInfo(GetAllRoleAndMenuByConditionPageDto dto) { + dto.setCurrentPage((dto.getCurrentPage()-1)*dto.getCurrentPage()); + List<RoleAndMenuDto> roleAndMenuDtos = roleManageMapper.selectAllRoleAndMenu(dto); + roleAndMenuDtos.forEach(r->{ + List<RoleMenu>roleMenuList=r.getRoleMenuList(); + System.out.println(roleMenuList); + List<RoleMenu> collect = roleMenuList.stream() + .filter(t -> t.getParentId() == 0) + .peek((menu) -> menu.setChildren(this.getRoleMenuChildren(menu, roleMenuList))) + .collect(Collectors.toList()); + r.setRoleMenuList(collect); + }); + roleAndMenuDtos.forEach(r->{ + r.getRoleMenuList().forEach(System.out::println); + }); + Map<String, Object>result=new HashMap<>(3); + result.put("list",roleAndMenuDtos); + int size = roleManageMapper.getRoleByName(dto.getName()).size(); + result.put("total",size); + return result; + } + private List<Menu> getEnumChildren(Menu root, List<Menu> all) { return all.stream() - .filter(t -> Objects.equals(t.getParentId(), root.getValue())) + .filter(t -> Objects.equals(t.getParentId(), root.getId())) .peek(g -> { //鎵惧瓙鑿滃崟 g.setChildren(getEnumChildren(g, all)); @@ -40,4 +115,23 @@ .collect(Collectors.toList()); } + private List<RoleMenu> getRoleMenuChildren(RoleMenu root, List<RoleMenu> all) { + return all.stream() + .filter(t -> Objects.equals(t.getParentId(), root.getMenuId())) + .peek(g -> { + //鎵惧瓙鑿滃崟 + g.setChildren(getRoleMenuChildren(g, all)); + }) + .collect(Collectors.toList()); + } + + private void reverseTree(List<Map<String, Object>>tree, List<Map<String, Object>>addBranch){ + tree.forEach(t->{ + addBranch.add(t); + if(t.get("children")!=null){ + List<Map<String, Object>> children = JsonUtil.jsonToPojo( JsonUtil.jsonToString(t.get("children")), List.class); + addBranch.addAll(children); + } + }); + } } diff --git a/laboratory-server/src/main/resources/mapper/MenuMapper.xml b/laboratory-server/src/main/resources/mapper/MenuMapper.xml index 586dcb7..1ea9b2d 100644 --- a/laboratory-server/src/main/resources/mapper/MenuMapper.xml +++ b/laboratory-server/src/main/resources/mapper/MenuMapper.xml @@ -3,7 +3,7 @@ <mapper namespace="com.yuanchu.limslaboratory.mapper.MenuMapper"> <select id="getMenuList" resultType="com.yuanchu.limslaboratory.pojo.Menu"> - select id value,name label,parent_id parentId + select id,name,parent_id parentId from menu where state =1 </select> diff --git a/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml b/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml new file mode 100644 index 0000000..8980e01 --- /dev/null +++ b/laboratory-server/src/main/resources/mapper/RoleManangeMapper.xml @@ -0,0 +1,76 @@ +<?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.yuanchu.limslaboratory.mapper.RoleManageMapper"> + <insert id="insertBatchRoleMenu" useGeneratedKeys="true" keyProperty="id"> + insert + role_menu (id,`role_id`,`menu_id`,`selected`,`added`,`updated`,`deleted`,`create_time`) + values + <foreach collection="roleMenuAddList" separator="," item="r"> + (#{r.id},#{r.roleId},#{r.menuId},#{r.selected},#{r.added},#{r.updated},#{r.deleted},#{r.createTime}) + </foreach> + </insert> + <insert id="insertRole"> + insert + role(id,name,create_time) value ( + #{id}, + #{name}, + #{createTime} + ) + </insert> + <select id="getAssertName" resultType="com.yuanchu.limslaboratory.pojo.RoleInfo"> + select id + from role + where name = #{roleName} + </select> + <select id="selectAllRoleAndMenu" resultMap="roleAndMenu"> + SELECT r.id roleId, + r.`name` roleName, + menu_id menuId, + parent_id parentId, + m.`name` menuName, + rm.selected, + rm.added, + rm.updated, + rm.deleted, + r.create_time createTime, + r.update_time updateTime + FROM role_menu rm, + (select id, name, createTime, updateTime + from role + where 1=1 + <if test="dto.name!=null and dto.name!=''"> + and name=#{dto.name} + </if> + limit #{dto.currentPage}, #{dto.pageSize}) r, + menu m + WHERE rm.role_id = r.id + AND rm.menu_id = m.id + AND r.state = 1 + AND rm.state = 1 + AND m.state = 1 + </select> + <select id="getRoleByName" resultType="com.yuanchu.limslaboratory.pojo.Role"> + select id + from role + where 1=1 + <if test="dto.name!=null and dto.name!=''"> + and name=#{dto.name} + </if> + </select> + + <resultMap id="roleAndMenu" type="com.yuanchu.limslaboratory.pojo.dto.RoleAndMenuDto"> + <result property="roleId" column="roleId"/> + <result property="roleName" column="roleName"/> + <result property="createTime" column="createTime"/> + <result property="updateTime" column="updateTime"/> + <collection property="roleMenuList" ofType="roleMenu"> + <result property="menuId" column="menuId"/> + <result property="added" column="added"/> + <result property="deleted" column="deleted"/> + <result property="updated" column="updated"/> + <result property="selected" column="selected"/> + <result property="menuName" column="menuName"/> + <result property="parentId" column="parentId"/> + </collection> + </resultMap> +</mapper> \ No newline at end of file -- Gitblit v1.9.3