From 680467cafe81445bda4cd71d93fb489ca436c5a1 Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Thu, 25 Mar 2021 14:22:08 +0800 Subject: [PATCH] 角色菜单模糊查询 --- screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java | 7 + screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java | 51 ++++++++++++ screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java | 3 screen-manage/src/main/resources/application-dev.yml | 5 + screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java | 23 +++++ screen-manage/src/main/resources/mapper/ManageRoleMenuMapper.xml | 35 ++++++++ screen-manage/src/main/java/com/moral/api/mapper/ManageRoleMenuMapper.java | 6 + screen-manage/src/main/java/com/moral/api/controller/ManageRoleController.java | 13 +- screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java | 4 + screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java | 61 ++++++++++++++- screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java | 2 screen-manage/src/main/resources/mapper/ManageMenuMapper.xml | 17 ++++ 12 files changed, 213 insertions(+), 14 deletions(-) diff --git a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java index 17f146a..9c16130 100644 --- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java +++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java @@ -27,7 +27,8 @@ ROLE_IS_EXPIRE(-15, "���������������"), ROLE_IS_NULL(-16, "������������"), MENU_IS_EXPIRE(-17, "���������������"), - MENU_IS_NULL(-18, "������������") + MENU_IS_NULL(-18, "������������"), + PARAMETERS_NOT_REQUIREMENT(-19, "���������������������") ; private final Integer code; diff --git a/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java b/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java index 45ac4b5..dbe1b57 100644 --- a/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java +++ b/screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java @@ -5,6 +5,7 @@ import com.moral.api.entity.ManageRole; import com.moral.api.service.ManageMenuService; import com.moral.api.service.ManageRoleService; +import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; import com.moral.util.WebUtils; import io.swagger.annotations.Api; @@ -19,6 +20,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -27,7 +29,7 @@ @Slf4j @Api(tags = {"������"}) @RestController -@RequestMapping("/manage") +@RequestMapping("/menu") public class ManageMenuController { @Autowired @@ -88,4 +90,51 @@ } return ResultMessage.fail(msg); } + + @ApiOperation(value = "������������������", notes = "������������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "current", value = "������", required = true, paramType = "query", dataType = "int"), + @ApiImplicitParam(name = "size", value = "������������", required = true, paramType = "query", dataType = "int") + }) + @RequestMapping(value = "getAllManageMenu", method = RequestMethod.GET) + public ResultMessage getAllManageMenu(HttpServletRequest request) { + Map<String, Object> parameters = getParametersStartingWith(request, null); + Map<String,Object> resultMap = new HashMap<>(); + if (parameters.get("current") == null || parameters.get("size") == null){ + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + return ResultMessage.fail(resultMap); + } + if (Integer.parseInt(parameters.get("current").toString())<1 || Integer.parseInt(parameters.get("size").toString())<1){ + resultMap.put("code",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getMsg()); + return ResultMessage.fail(resultMap); + } + List<ManageMenu> result = manageMenuService.getAllWithPagingQuery(parameters); + return ResultMessage.ok(result); + } + + @ApiOperation(value = "������������������", notes = "������������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "name", value = "������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "current", value = "������", required = true, paramType = "query", dataType = "int"), + @ApiImplicitParam(name = "size", value = "������������", required = true, paramType = "query", dataType = "int") + }) + @RequestMapping(value = "getManageMenuByNameFuzzy", method = RequestMethod.GET) + public ResultMessage getManageMenuByNameFuzzy(HttpServletRequest request) { + Map<String, Object> parameters = getParametersStartingWith(request, null); + Map<String,Object> resultMap = new HashMap<>(); + if (parameters.get("name") == null || parameters.get("current") == null || parameters.get("size") == null){ + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + return ResultMessage.fail(resultMap); + } + if (Integer.parseInt(parameters.get("current").toString())<1 || Integer.parseInt(parameters.get("size").toString())<1){ + resultMap.put("code",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_NOT_REQUIREMENT.getMsg()); + return ResultMessage.fail(resultMap); + } + List<ManageMenu> re = manageMenuService.getManageMenuByNameFuzzy(parameters); + return ResultMessage.ok(re); + } } diff --git a/screen-manage/src/main/java/com/moral/api/controller/ManageRoleController.java b/screen-manage/src/main/java/com/moral/api/controller/ManageRoleController.java index 4a275c9..b902599 100644 --- a/screen-manage/src/main/java/com/moral/api/controller/ManageRoleController.java +++ b/screen-manage/src/main/java/com/moral/api/controller/ManageRoleController.java @@ -29,7 +29,7 @@ @Slf4j @Api(tags = {"������"}) @RestController -@RequestMapping("/manage") +@RequestMapping("/role") public class ManageRoleController { @Autowired @@ -115,7 +115,6 @@ @RequestMapping(value = "getManageRoleByNameFuzzy", method = RequestMethod.GET) public ResultMessage getManageRoleByNameFuzzy(HttpServletRequest request) { Map<String, Object> parameters = getParametersStartingWith(request, null); - //ManageRole manageRole = JSON.parseObject(JSON.toJSONString(parameters), ManageRole.class); List<ManageRole> re = manageRoleService.getManageRoleByNameFuzzy(parameters); return ResultMessage.ok(re); } @@ -124,15 +123,17 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "������", required = true, paramType = "query", dataType = "int") }) - @RequestMapping(value = "updateRoleMenu", method = RequestMethod.GET) + @RequestMapping(value = "updateRoleMenu", method = RequestMethod.POST) public ResultMessage updateRoleMenu(HttpServletRequest request) { - Map<String, Object> parameters = getParametersStartingWith(request, null); + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); int id = Integer.parseInt(parameters.get("id").toString()); List list = new ArrayList(); - list.add(1); - list.add(2); + //list.add(1); + //list.add(2); list.add(3); list.add(4); + list.add(5); + list.add(6); Map<String,Object> re = manageRoleMenuService.updateRoleMenu(list,id); return ResultMessage.ok(re); } diff --git a/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java index ddb40aa..7be6fae 100644 --- a/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java +++ b/screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java @@ -45,4 +45,8 @@ void updateManageMenuById(Map map); + List<ManageMenu> getDataWithPage(Map map); + + List<ManageMenu> getManageRoleByNameFuzzy(Map map); + } diff --git a/screen-manage/src/main/java/com/moral/api/mapper/ManageRoleMenuMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/ManageRoleMenuMapper.java index 0bf2d2e..7edcb43 100644 --- a/screen-manage/src/main/java/com/moral/api/mapper/ManageRoleMenuMapper.java +++ b/screen-manage/src/main/java/com/moral/api/mapper/ManageRoleMenuMapper.java @@ -20,4 +20,10 @@ void insertBatch(@Param("list")List<Map> list); void updateDeleteStateByMenu_id(Map map); + + List<Map> getDataByMenuIds(@Param("list")List list,@Param("role_id")int role_id); + + List<Map> getDataByRoleId(int role_id); + + void updateDeleteStateByRoleIdMenuIds(@Param("list")List list,@Param("role_id")int role_id); } diff --git a/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java b/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java index 29dd26a..bbbbea4 100644 --- a/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java +++ b/screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.springframework.transaction.annotation.Transactional; +import java.util.List; import java.util.Map; /** @@ -25,4 +26,10 @@ @Transactional Map<String,Object> deleteManageMenu(Map map); + + @Transactional + List<ManageMenu> getAllWithPagingQuery(Map map); + + @Transactional + List<ManageMenu> getManageMenuByNameFuzzy(Map map); } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java index 60ed80c..aff0a72 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java @@ -1,5 +1,7 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.ManageMenu; import com.moral.api.mapper.ManageMenuMapper; import com.moral.api.mapper.ManageRoleMenuMapper; @@ -12,6 +14,7 @@ import javax.annotation.Resource; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -97,4 +100,24 @@ } return resultMap; } + + @Override + public List<ManageMenu> getAllWithPagingQuery(Map map) { + Map limitMap = new HashMap(); + limitMap.put("start",(Integer.parseInt(map.get("current").toString())-1)*Integer.parseInt(map.get("size").toString())); + limitMap.put("number",Integer.parseInt(map.get("size").toString())); + List<ManageMenu> manageMenus = manageMenuMapper.getDataWithPage(limitMap); + System.out.println(manageMenus); + return manageMenus; + } + + @Override + public List<ManageMenu> getManageMenuByNameFuzzy(Map map) { + Map limitMap = new HashMap(); + limitMap.put("name",map.get("name")); + limitMap.put("start",(Integer.parseInt(map.get("current").toString())-1)*Integer.parseInt(map.get("size").toString())); + limitMap.put("number",Integer.parseInt(map.get("size").toString())); + List<ManageMenu> manageMenus = manageMenuMapper.getManageRoleByNameFuzzy(limitMap); + return manageMenus; + } } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java index b4dc1f0..2c7e1fc 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java @@ -11,6 +11,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -40,10 +41,62 @@ } QueryWrapper<ManageRoleMenu> wrapper = new QueryWrapper(); wrapper.eq("role_id",id); - System.out.println(manageRoleMenuMapper.selectCount(wrapper)); - if (manageRoleMenuMapper.selectCount(wrapper)==0){ - + wrapper.eq("is_delete",0); + List<Map> result = manageRoleMenuMapper.getDataByMenuIds(list,id); + List<Map> result1 = manageRoleMenuMapper.getDataByRoleId(id); + if (manageRoleMenuMapper.selectCount(wrapper)==0 || result.size()==0){ + List<Map> insertList = new ArrayList<>(); + for (Object temp:list) { + Map<String,Object> map = new HashMap<>(); + map.put("role_id",id); + map.put("menu_id",Integer.parseInt(temp.toString())); + insertList.add(map); + } + manageRoleMenuMapper.insertBatch(insertList); } - return null; + List updateList = new ArrayList(); + for (Map manageRoleMenu:result1) { + int have = 1; + for (Object temp:list){ + if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){ + have = 2; + continue; + } + } + if (have == 2){ + continue; + } + updateList.add(manageRoleMenu.get("menu_id")); + } + List insertList = new ArrayList(); + for (Object temp:list) { + int have = 1; + for (Map manageRoleMenu:result1){ + if (manageRoleMenu.get("menu_id").equals(Integer.parseInt(temp.toString()))){ + have = 2; + continue; + } + } + if (have == 2){ + continue; + } + insertList.add(temp); + } + if (updateList.size()>0){ + manageRoleMenuMapper.updateDeleteStateByRoleIdMenuIds(updateList,id); + } + if (insertList.size()>0){ + List mapList = new ArrayList(); + for (Object temp:insertList) { + Map<String,Integer> insertMap = new HashMap<>(); + insertMap.put("role_id",id); + insertMap.put("menu_id",Integer.parseInt(temp.toString())); + mapList.add(insertMap); + } + manageRoleMenuMapper.insertBatch(mapList); + } + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); + return resultMap; } } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java index deb66a4..81aef52 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java @@ -84,7 +84,6 @@ if (code.equals(ResponseCodeEnum.SUCCESS.getCode())){ ManageRole manageRoleIns = manageRoleMapper.getManageRoleByName(manageRole.getName()); int role_id = manageRoleIns.getId(); - System.out.println(role_id); List insertList = new ArrayList(); for (Object temp: list) { Map<String,Integer> insertMap = new HashMap<>(); @@ -92,7 +91,6 @@ insertMap.put("menu_id",Integer.parseInt(temp.toString())); insertList.add(insertMap); } - System.out.println(insertList); manageRoleMenuMapper.insertBatch(insertList); } return resultMap; diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml index 6f70051..fb512b8 100644 --- a/screen-manage/src/main/resources/application-dev.yml +++ b/screen-manage/src/main/resources/application-dev.yml @@ -125,6 +125,11 @@ - /account/yanzhengma - /verificationCode/get - /verificationCode/verify + - /role/getAllManageRole + - /role/getManageRoleByNameFuzzy + - /role/updateRoleMenu + - /menu/getAllManageMenu + - /menu/getManageMenuByNameFuzzy AES: KEY: AD42F7787B035B7580000EF93BE20BAD diff --git a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml index 7dbef4e..75e4ab4 100644 --- a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml +++ b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml @@ -165,4 +165,21 @@ where id = #{id} </update> + <select id="getDataWithPage" parameterType="java.util.Map" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"></include> + from manage_menu mm + where mm.is_delete = 0 + limit #{start},#{number} + </select> + + <select id="getManageRoleByNameFuzzy" parameterType="java.util.Map" resultMap="BaseResultMap"> + select + <include refid="Base_Column_List"></include> + from manage_menu mm + where mm.name like concat('%',#{name},'%') + and mm.is_delete = 0 + limit #{start},#{number} + </select> + </mapper> \ No newline at end of file diff --git a/screen-manage/src/main/resources/mapper/ManageRoleMenuMapper.xml b/screen-manage/src/main/resources/mapper/ManageRoleMenuMapper.xml index 9c1d1cb..185b985 100644 --- a/screen-manage/src/main/resources/mapper/ManageRoleMenuMapper.xml +++ b/screen-manage/src/main/resources/mapper/ManageRoleMenuMapper.xml @@ -12,6 +12,10 @@ <result column="is_delete" property="isDelete" /> </resultMap> + <sql id="Base_Column_List"> + mrm.id,mrm.role_id,mrm.menu_id,mrm.create_time,mrm.update_time,mrm.is_delete + </sql> + <insert id="insertBatch" parameterType="java.util.List"> INSERT INTO manage_role_menu(role_id,menu_id) values @@ -26,4 +30,35 @@ where menu_id = #{menu_id} </update> + <select id="getDataByMenuIds" parameterType="java.util.List" resultType="java.util.Map"> + select + <include refid="Base_Column_List"></include> + from manage_role_menu mrm + where mrm.menu_id in + <foreach collection="list" item="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> + and mrm.role_id = #{role_id} + and mrm.is_delete = 0 + </select> + + <select id="getDataByRoleId" resultType="java.util.Map"> + select + <include refid="Base_Column_List"></include> + from manage_role_menu mrm + where mrm.role_id = #{role_id} + and mrm.is_delete = 0 + </select> + + <update id="updateDeleteStateByRoleIdMenuIds" parameterType="java.util.List"> + update manage_role_menu + set is_delete = 1 + where menu_id in + <foreach collection="list" item="item" index="index" open="(" separator="," close=")"> + #{item} + </foreach> + and role_id = #{role_id} + and is_delete = 0 + </update> + </mapper> \ No newline at end of file -- Gitblit v1.8.0