From 912ee45ea29637bfb8d9656bebab7304921d5cf6 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Thu, 13 May 2021 15:56:12 +0800 Subject: [PATCH] screen-manage 修改获取组织admin角色菜单接口 修改分配组织admin角色菜单接口 --- screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java | 116 ++++++++++-- screen-manage/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java | 64 +++++++ screen-manage/src/main/java/com/moral/api/service/GroupService.java | 20 ++ screen-manage/src/main/java/com/moral/api/pojo/form/group/AdminGroupUpdateMenuForm.java | 6 screen-manage/src/main/java/com/moral/api/mapper/MenuMapper.java | 4 screen-manage/src/main/java/com/moral/api/controller/GroupController.java | 43 ++++ screen-manage/src/main/resources/mapper/MenuMapper.xml | 21 ++ screen-manage/src/main/java/com/moral/api/controller/GroupMenuController.java | 45 ---- /dev/null | 31 --- screen-manage/src/main/java/com/moral/api/service/GroupMenuService.java | 20 -- screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java | 98 ---------- screen-manage/src/main/java/com/moral/api/controller/MenuController.java | 22 ++ screen-manage/src/main/java/com/moral/api/pojo/dto/group/GroupDTO.java | 8 screen-manage/src/main/java/com/moral/api/service/MenuService.java | 13 + screen-manage/src/main/resources/mapper/ManageMenuMapper.xml | 2 15 files changed, 282 insertions(+), 231 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/controller/GroupController.java b/screen-manage/src/main/java/com/moral/api/controller/GroupController.java new file mode 100644 index 0000000..72fdbaf --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/controller/GroupController.java @@ -0,0 +1,43 @@ +package com.moral.api.controller; + +import com.moral.api.pojo.dto.group.GroupDTO; +import com.moral.api.pojo.form.group.AdminGroupUpdateMenuForm; +import com.moral.api.service.GroupService; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @ClassName GroupController + * @Description TODO + * @Author ��������� + * @Date 2021/5/13 15:29 + * @Version TODO + **/ +@Slf4j +@Api(tags = {"������������������"}) +@RestController +@CrossOrigin(origins = "*", maxAge = 3600) +@RequestMapping("/group") +public class GroupController { + + @Autowired + GroupService groupService; + + @PostMapping("updateAdminGroupMenu") + public ResultMessage updateMenu(@RequestBody AdminGroupUpdateMenuForm form) { + + //������������������������ + if (!form.valid()) + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), + ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + + //������������������ + GroupDTO dto = groupService.updateAdminGroupMenu(form); + + return new ResultMessage(dto.getCode(), dto.getMsg(), null); + } +} diff --git a/screen-manage/src/main/java/com/moral/api/controller/GroupMenuController.java b/screen-manage/src/main/java/com/moral/api/controller/GroupMenuController.java index 2a228d4..ebe8c53 100644 --- a/screen-manage/src/main/java/com/moral/api/controller/GroupMenuController.java +++ b/screen-manage/src/main/java/com/moral/api/controller/GroupMenuController.java @@ -1,16 +1,8 @@ package com.moral.api.controller; -import com.moral.api.pojo.dto.groupMenu.GroupMenuDTO; -import com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO; -import com.moral.api.pojo.form.groupMenu.GroupMenuQueryForm; -import com.moral.api.pojo.form.groupMenu.GroupMenuUpdateForm; -import com.moral.api.pojo.vo.groupMenu.GroupMenuQueryVO; -import com.moral.api.service.GroupMenuService; -import com.moral.constant.ResponseCodeEnum; -import com.moral.constant.ResultMessage; + import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; /** @@ -26,40 +18,5 @@ @CrossOrigin(origins = "*", maxAge = 3600) @RequestMapping("/groupMenu") public class GroupMenuController { - - @Autowired - GroupMenuService groupMenuService; - - - @PostMapping("update") - public ResultMessage update(@RequestBody GroupMenuUpdateForm form) { - - //������������������������ - if (!form.valid()) - return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), - ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); - - //������������������ - GroupMenuDTO dto = groupMenuService.updateGroupMenu(form); - - return new ResultMessage(dto.getCode(), dto.getMsg(), null); - } - - @GetMapping("query") - public ResultMessage query(GroupMenuQueryForm form){ - - //������������������������ - if (!form.valid()) - return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), - ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); - - //������������������ - GroupMenuQueryDTO dto = groupMenuService.queryGroupMenu(form); - - //������������������������ - GroupMenuQueryVO vo = GroupMenuQueryVO.convert(dto); - - return new ResultMessage(dto.getCode(), dto.getMsg(), vo); - } } diff --git a/screen-manage/src/main/java/com/moral/api/controller/MenuController.java b/screen-manage/src/main/java/com/moral/api/controller/MenuController.java index aef663a..2f657d1 100644 --- a/screen-manage/src/main/java/com/moral/api/controller/MenuController.java +++ b/screen-manage/src/main/java/com/moral/api/controller/MenuController.java @@ -14,6 +14,7 @@ import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; /** @@ -35,8 +36,21 @@ @GetMapping("query") public ResultMessage query() { + + //������������admin��������������������������������������� + MenuQueryDTO dto = menuService.queryAllMenus(); + + //��������������������������� + MenuQueryVO vo = MenuQueryVO.convert(dto); + + return new ResultMessage(dto.getCode(), dto.getMsg(), vo); + } + + @GetMapping("queryAdmin") + public ResultMessage queryAdmin(@RequestParam Integer organizationId) { + //������������������ - MenuQueryDTO dto = menuService.queryAllMenu(); + MenuQueryDTO dto = menuService.queryAdminGroupMenusByOrganizationId(organizationId); //��������������������������� MenuQueryVO vo = MenuQueryVO.convert(dto); @@ -45,7 +59,7 @@ } @GetMapping("queryNames") - public ResultMessage queryNames(MenuQueryNamesForm form){ + public ResultMessage queryNames(MenuQueryNamesForm form) { //������������������ MenuQueryNamesDTO dto = menuService.queryNames(form); @@ -72,7 +86,7 @@ } @PostMapping("delete") - public ResultMessage delete(@RequestBody MenuDeleteForm form){ + public ResultMessage delete(@RequestBody MenuDeleteForm form) { //������������������������ if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), @@ -88,7 +102,7 @@ } @PostMapping("update") - public ResultMessage update(@RequestBody MenuUpdateForm form){ + public ResultMessage update(@RequestBody MenuUpdateForm form) { //������������������������ if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), diff --git a/screen-manage/src/main/java/com/moral/api/mapper/MenuMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/MenuMapper.java index 2fafa8f..3fd0188 100644 --- a/screen-manage/src/main/java/com/moral/api/mapper/MenuMapper.java +++ b/screen-manage/src/main/java/com/moral/api/mapper/MenuMapper.java @@ -3,6 +3,8 @@ import com.moral.api.entity.Menu; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import java.util.List; + /** * <p> * ������������ Mapper ������ @@ -12,5 +14,5 @@ * @since 2021-03-09 */ public interface MenuMapper extends BaseMapper<Menu> { - + List<Menu> getMenusByGroupId(Integer groupId); } diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/group/GroupDTO.java similarity index 66% rename from screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuDTO.java rename to screen-manage/src/main/java/com/moral/api/pojo/dto/group/GroupDTO.java index 937a29f..42cc912 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuDTO.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/group/GroupDTO.java @@ -1,5 +1,6 @@ -package com.moral.api.pojo.dto.groupMenu; +package com.moral.api.pojo.dto.group; +import com.moral.api.entity.Group; import com.moral.api.entity.GroupMenu; import lombok.Data; @@ -11,11 +12,12 @@ * @Version TODO **/ @Data -public class GroupMenuDTO { +public class GroupDTO { private Integer code; private String msg; - private GroupMenu groupMenu; + private Group group; + } diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuQueryDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuQueryDTO.java deleted file mode 100644 index 8a67579..0000000 --- a/screen-manage/src/main/java/com/moral/api/pojo/dto/groupMenu/GroupMenuQueryDTO.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.moral.api.pojo.dto.groupMenu; - - -import lombok.Data; - -import java.util.List; - -/** - * @ClassName GroupMenuQueryDTO - * @Description TODO - * @Author ��������� - * @Date 2021/5/11 14:36 - * @Version TODO - **/ -@Data -public class GroupMenuQueryDTO { - - private Integer code; - - private String msg; - - private List<GroupMenuDTO> dtos; -} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/group/AdminGroupUpdateMenuForm.java similarity index 77% rename from screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java rename to screen-manage/src/main/java/com/moral/api/pojo/form/group/AdminGroupUpdateMenuForm.java index 6076a5d..458a47c 100644 --- a/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java +++ b/screen-manage/src/main/java/com/moral/api/pojo/form/group/AdminGroupUpdateMenuForm.java @@ -1,4 +1,4 @@ -package com.moral.api.pojo.form.groupMenu; +package com.moral.api.pojo.form.group; import lombok.Data; import org.springframework.util.ObjectUtils; @@ -7,13 +7,13 @@ /** * @ClassName GroupUpdateForm - * @Description TODO + * @Description ������������������admin������������������ * @Author ��������� * @Date 2021/5/11 10:25 * @Version TODO **/ @Data -public class GroupMenuUpdateForm { +public class AdminGroupUpdateMenuForm { private Integer organizationId; diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuQueryForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuQueryForm.java deleted file mode 100644 index 0cb31f3..0000000 --- a/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuQueryForm.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.moral.api.pojo.form.groupMenu; - -import lombok.Data; -import org.springframework.util.ObjectUtils; - -/** - * @ClassName GroupMenuQueryVO - * @Description TODO - * @Author ��������� - * @Date 2021/5/11 14:34 - * @Version TODO - **/ -@Data -public class GroupMenuQueryForm { - - private Integer organizationId; - - public boolean valid(){ - if(ObjectUtils.isEmpty(organizationId)) - return false; - return true; - } -} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java deleted file mode 100644 index cfcbea2..0000000 --- a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.moral.api.pojo.vo.groupMenu; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.moral.api.entity.GroupMenu; -import com.moral.api.pojo.dto.groupMenu.GroupMenuDTO; -import com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO; -import com.moral.constant.ResponseCodeEnum; -import lombok.Data; - -import java.util.ArrayList; -import java.util.List; - -/** - * @ClassName GroupMenuQueryVO - * @Description TODO - * @Author ��������� - * @Date 2021/5/11 14:42 - * @Version TODO - **/ -@Data -@JsonInclude(JsonInclude.Include.NON_EMPTY) -public class GroupMenuQueryVO { - - List<GroupMenuVO> menus; - - public static GroupMenuQueryVO convert(GroupMenuQueryDTO dto) { - if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) - return null; - GroupMenuQueryVO queryVo = new GroupMenuQueryVO(); - List<GroupMenuVO> menus = new ArrayList<>(); - List<GroupMenuDTO> menuDtos = dto.getDtos(); - for (GroupMenuDTO menuDto : menuDtos) { - GroupMenuVO vo = convertToQueryPage(menuDto); - menus.add(vo); - } - queryVo.setMenus(menus); - return queryVo; - } - - private static GroupMenuVO convertToQueryPage(GroupMenuDTO dto){ - GroupMenuVO vo = new GroupMenuVO(); - GroupMenu groupMenu = dto.getGroupMenu(); - vo.setId(groupMenu.getId()); - vo.setChannelKey(groupMenu.getChannelKey()); - vo.setMenuId(groupMenu.getMenuId()); - return vo; - } -} diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java deleted file mode 100644 index d651a77..0000000 --- a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.moral.api.pojo.vo.groupMenu; - -import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.Data; - -/** - * @ClassName GroupMenuVO - * @Description TODO - * @Author ��������� - * @Date 2021/5/11 14:39 - * @Version TODO - **/ -@Data -@JsonInclude(JsonInclude.Include.NON_EMPTY) -public class GroupMenuVO { - - private Integer id; - - private Integer groupId; - - private Integer menuId; - - private String channelKey; - - private Integer organizationId; - - private String createTime; - - private String updateTime; - -} diff --git a/screen-manage/src/main/java/com/moral/api/service/GroupMenuService.java b/screen-manage/src/main/java/com/moral/api/service/GroupMenuService.java index b234bea..bf25a31 100644 --- a/screen-manage/src/main/java/com/moral/api/service/GroupMenuService.java +++ b/screen-manage/src/main/java/com/moral/api/service/GroupMenuService.java @@ -2,10 +2,6 @@ import com.moral.api.entity.GroupMenu; import com.baomidou.mybatisplus.extension.service.IService; -import com.moral.api.pojo.dto.groupMenu.GroupMenuDTO; -import com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO; -import com.moral.api.pojo.form.groupMenu.GroupMenuQueryForm; -import com.moral.api.pojo.form.groupMenu.GroupMenuUpdateForm; /** * <p> @@ -17,22 +13,6 @@ */ public interface GroupMenuService extends IService<GroupMenu> { - /** - * @Description: ���������admin������������������������ - * @Param: [GroupMenuUpdateForm form] - * @return: com.moral.constant.ResultMessage - * @Author: ��������� - * @Date: 2021/5/11 - */ - GroupMenuDTO updateGroupMenu(GroupMenuUpdateForm form); - /** - * @Description: ������������admin��������������������� - * @Param: [form] - * @return: com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO - * @Author: ��������� - * @Date: 2021/5/11 - */ - GroupMenuQueryDTO queryGroupMenu(GroupMenuQueryForm form); } diff --git a/screen-manage/src/main/java/com/moral/api/service/GroupService.java b/screen-manage/src/main/java/com/moral/api/service/GroupService.java index dd47048..e1285c0 100644 --- a/screen-manage/src/main/java/com/moral/api/service/GroupService.java +++ b/screen-manage/src/main/java/com/moral/api/service/GroupService.java @@ -2,6 +2,8 @@ import com.moral.api.entity.Group; import com.baomidou.mybatisplus.extension.service.IService; +import com.moral.api.pojo.dto.group.GroupDTO; +import com.moral.api.pojo.form.group.AdminGroupUpdateMenuForm; /** * <p> @@ -13,4 +15,22 @@ */ public interface GroupService extends IService<Group> { + /** + * @Description: ���������������������admin������ + * @Param: [organizationId] + * @return: com.moral.api.entity.Group + * @Author: ��������� + * @Date: 2021/5/13 + */ + Group queryAdminGroupByOrganizationId(Integer organizationId); + + /** + * @Description: ������admin������������ + * @Param: [GroupMenuUpdateForm form] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2021/5/11 + */ + GroupDTO updateAdminGroupMenu(AdminGroupUpdateMenuForm form); + } diff --git a/screen-manage/src/main/java/com/moral/api/service/MenuService.java b/screen-manage/src/main/java/com/moral/api/service/MenuService.java index 26c5355..bda5a43 100644 --- a/screen-manage/src/main/java/com/moral/api/service/MenuService.java +++ b/screen-manage/src/main/java/com/moral/api/service/MenuService.java @@ -20,13 +20,22 @@ */ public interface MenuService extends IService<Menu> { /** - * @Description: ������������������������ + * @Description: ������������ * @Param: [] * @return: com.moral.api.pojo.dto.menu.MenuQueryDTO * @Author: ��������� * @Date: 2021/4/25 */ - MenuQueryDTO queryAllMenu(); + MenuQueryDTO queryAllMenus(); + + /** + * @Description: ������������id���������������admin��������������������� + * @Param: [organizationId] + * @return: com.moral.api.pojo.dto.menu.MenuQueryDTO + * @Author: ��������� + * @Date: 2021/5/13 + */ + MenuQueryDTO queryAdminGroupMenusByOrganizationId(Integer organizationId); /** * @Description: ������������ diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java index 0d61854..4b93593 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java @@ -1,26 +1,11 @@ package com.moral.api.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.moral.api.entity.Group; import com.moral.api.entity.GroupMenu; -import com.moral.api.mapper.GroupMapper; import com.moral.api.mapper.GroupMenuMapper; -import com.moral.api.pojo.dto.groupMenu.GroupMenuDTO; -import com.moral.api.pojo.dto.groupMenu.GroupMenuQueryDTO; -import com.moral.api.pojo.form.groupMenu.GroupMenuQueryForm; -import com.moral.api.pojo.form.groupMenu.GroupMenuUpdateForm; import com.moral.api.service.GroupMenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.moral.constant.Constants; -import com.moral.constant.ResponseCodeEnum; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.ObjectUtils; -import java.util.ArrayList; -import java.util.List; /** * <p> @@ -32,88 +17,5 @@ */ @Service public class GroupMenuServiceImpl extends ServiceImpl<GroupMenuMapper, GroupMenu> implements GroupMenuService { - - @Autowired - GroupMenuMapper groupMenuMapper; - @Autowired - GroupMapper groupMapper; - - @Override - @Transactional - public GroupMenuDTO updateGroupMenu(GroupMenuUpdateForm form) { - //������������������ - GroupMenuDTO dto = new GroupMenuDTO(); - //������ - Integer orgId = form.getOrganizationId(); - String channelKey = form.getChannelKey(); - List<Integer> insertMenuIds = form.getMenuIds(); - //������orgId������������admin������id - Group group = queryAdminGroupByOrganizationId(orgId); - if (ObjectUtils.isEmpty(group)) {//������������������������������������������������ - dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); - dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); - return dto; - } - //��������������������������������� - UpdateWrapper deleteWrapper = new UpdateWrapper(); - deleteWrapper.set("is_delete", Constants.DELETE); - deleteWrapper.eq("group_id", group.getId()); - groupMenuMapper.update(null, deleteWrapper); - //������������ - for (Integer menuId : insertMenuIds) { - GroupMenu groupMenu = new GroupMenu(); - groupMenu.setChannelKey(channelKey); - groupMenu.setGroupId(group.getId()); - groupMenu.setMenuId(menuId); - groupMenu.setOrganizationId(orgId); - groupMenuMapper.insert(groupMenu); - } - //������������������ - dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); - dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); - return dto; - } - - @Override - public GroupMenuQueryDTO queryGroupMenu(GroupMenuQueryForm form) { - //������������������ - GroupMenuQueryDTO dto = new GroupMenuQueryDTO(); - //������ - Integer organizationId = form.getOrganizationId(); - //������������admin������ - Group group = queryAdminGroupByOrganizationId(organizationId); - if (ObjectUtils.isEmpty(group)) {//������������������������������������������������ - dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); - dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); - return dto; - } - //��������������������������������������� - QueryWrapper<GroupMenu> queryGroupMenuWrapper = new QueryWrapper<>(); - queryGroupMenuWrapper.eq("group_id", group.getId()); - queryGroupMenuWrapper.eq("is_delete",Constants.NOT_DELETE); - List<GroupMenu> groupMenus = groupMenuMapper.selectList(queryGroupMenuWrapper); - //������������������ - List<GroupMenuDTO> dtos = new ArrayList<>(); - for (GroupMenu groupMenu : groupMenus) { - GroupMenuDTO groupMenuDTO = new GroupMenuDTO(); - groupMenuDTO.setGroupMenu(groupMenu); - dtos.add(groupMenuDTO); - } - dto.setDtos(dtos); - dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); - dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); - return dto; - } - - private Group queryAdminGroupByOrganizationId(Integer OrganizationId) { - QueryWrapper<Group> queryGroupWrapper = new QueryWrapper<>(); - Group groupConditon = new Group(); - groupConditon.setOrganizationId(OrganizationId); - groupConditon.setGroupName("admin"); - groupConditon.setIsDelete(Constants.NOT_DELETE); - queryGroupWrapper.setEntity(groupConditon); - return groupMapper.selectOne(queryGroupWrapper); - } - } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java index ac9d7c7..0f07405 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java @@ -1,10 +1,23 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.Group; +import com.moral.api.entity.GroupMenu; import com.moral.api.mapper.GroupMapper; +import com.moral.api.mapper.GroupMenuMapper; +import com.moral.api.pojo.dto.group.GroupDTO; +import com.moral.api.pojo.form.group.AdminGroupUpdateMenuForm; import com.moral.api.service.GroupService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import com.moral.constant.ResponseCodeEnum; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; + +import java.util.List; /** * <p> @@ -17,4 +30,55 @@ @Service public class GroupServiceImpl extends ServiceImpl<GroupMapper, Group> implements GroupService { + @Autowired + GroupMapper groupMapper; + @Autowired + GroupMenuMapper groupMenuMapper; + + @Override + public Group queryAdminGroupByOrganizationId(Integer OrganizationId) { + QueryWrapper<Group> queryGroupWrapper = new QueryWrapper<>(); + Group groupConditon = new Group(); + groupConditon.setOrganizationId(OrganizationId); + groupConditon.setGroupName("admin"); + groupConditon.setIsDelete(Constants.NOT_DELETE); + queryGroupWrapper.setEntity(groupConditon); + return groupMapper.selectOne(queryGroupWrapper); + } + + @Override + @Transactional + public GroupDTO updateAdminGroupMenu(AdminGroupUpdateMenuForm form) { + //������������������ + GroupDTO dto = new GroupDTO(); + //������ + Integer orgId = form.getOrganizationId(); + String channelKey = form.getChannelKey(); + List<Integer> insertMenuIds = form.getMenuIds(); + //������orgId������������admin������id + Group group = queryAdminGroupByOrganizationId(orgId); + if (ObjectUtils.isEmpty(group)) {//������������������������������������������������ + dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); + dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); + return dto; + } + //��������������������������������� + UpdateWrapper deleteWrapper = new UpdateWrapper(); + deleteWrapper.set("is_delete", Constants.DELETE); + deleteWrapper.eq("group_id", group.getId()); + groupMenuMapper.update(null, deleteWrapper); + //������������ + for (Integer menuId : insertMenuIds) { + GroupMenu groupMenu = new GroupMenu(); + groupMenu.setChannelKey(channelKey); + groupMenu.setGroupId(group.getId()); + groupMenu.setMenuId(menuId); + groupMenu.setOrganizationId(orgId); + groupMenuMapper.insert(groupMenu); + } + //������������������ + dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); + dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); + return dto; + } } diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java index 25cc2a6..76c4316 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.config.mybatis.wrapper.NullFilterWrapper; +import com.moral.api.entity.Group; import com.moral.api.entity.Menu; import com.moral.api.mapper.MenuMapper; import com.moral.api.pojo.dto.menu.MenuDTO; @@ -12,6 +13,7 @@ import com.moral.api.pojo.form.menu.MenuInsertForm; import com.moral.api.pojo.form.menu.MenuQueryNamesForm; import com.moral.api.pojo.form.menu.MenuUpdateForm; +import com.moral.api.service.GroupService; import com.moral.api.service.MenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; @@ -40,34 +42,53 @@ @Autowired MenuMapper menuMapper; + @Autowired + GroupService groupService; @Override - public MenuQueryDTO queryAllMenu() { + public MenuQueryDTO queryAllMenus() { //������������������ MenuQueryDTO dto = new MenuQueryDTO(); //������������������ QueryWrapper wrapper = new QueryWrapper(); wrapper.eq("is_delete", Constants.NOT_DELETE); List<Menu> menus = menuMapper.selectList(wrapper); - //������menu������������ - Map<Integer, Menu> menuMap = new HashMap<>(); - for (Menu menu : menus) { - menuMap.put(menu.getId(), menu); - menu.setChildren(new ArrayList<>());//��������������� - } - for (Menu menu : menus) { - combinationParentChildrenMenus(menuMap, menu); - } - //������������������ - menus.removeIf(new Predicate<Menu>() { - @Override - public boolean test(Menu menu) { - if (menu.getParentId().equals(0)) - return false; - return true; - } - }); + //��������������������� + combinationParentChildrenMenus(menus); //���������������DTO + List<MenuDTO> dtos = new ArrayList<>(); + for (Menu menu : menus) { + MenuDTO menuDTO = new MenuDTO(); + menuDTO.setMenu(menu); + dtos.add(menuDTO); + } + dto.setDtos(dtos); + dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); + dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); + return dto; + } + + @Override + public MenuQueryDTO queryAdminGroupMenusByOrganizationId(Integer organizationId) { + //������������������ + MenuQueryDTO dto = new MenuQueryDTO(); + //������������admin������ + Group group = groupService.queryAdminGroupByOrganizationId(organizationId); + if (ObjectUtils.isEmpty(group)) {//������������������������������������������������ + dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getCode()); + dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_NOT_EXIST.getMsg()); + return dto; + } + //��������������������������������������� + List<Menu> allMenus = menuMapper.getMenusByGroupId(group.getId()); + //������������������������������ + combinationParentChildrenMenus(allMenus); + //������������������������������������������ + List<Menu> menus = new ArrayList<>(); + for (Menu menu : allMenus) { + getNotParentMenu(menu, menus); + } + //������������������ List<MenuDTO> dtos = new ArrayList<>(); for (Menu menu : menus) { MenuDTO menuDTO = new MenuDTO(); @@ -130,7 +151,7 @@ wrapper.set("is_delete", Constants.DELETE); menuMapper.update(null, wrapper); } - //��������������� + //������������ existMenu.setIsDelete(Constants.DELETE); menuMapper.updateById(existMenu); @@ -180,7 +201,7 @@ //������������ NullFilterWrapper<Menu> wrapper = new NullFilterWrapper<>(); wrapper.eq("is_delete", Constants.NOT_DELETE); - wrapper.like("name",name); + wrapper.like("name", name); List<Menu> menus = menuMapper.selectList(wrapper); //���������id������������������������ List<Integer> childrenIds = getChildrenIdsByParentId(id);//���������������������id������ @@ -211,6 +232,35 @@ return dto; } + + /** + * @Description: ������������������������������������������������������ + * @Param: [menus] + * @return: java.util.List<com.moral.api.entity.Menu> + * @Author: ��������� + * @Date: 2021/5/13 + */ + public void combinationParentChildrenMenus(List<Menu> menus){ + //������menu������������ + Map<Integer, Menu> menuMap = new HashMap<>(); + for (Menu menu : menus) { + menuMap.put(menu.getId(), menu); + menu.setChildren(new ArrayList<>());//��������������� + } + for (Menu menu : menus) { + putMenuToParentMenu(menuMap, menu); + } + //������������������ + menus.removeIf(new Predicate<Menu>() { + @Override + public boolean test(Menu menu) { + if (menu.getParentId().equals(0)) + return false; + return true; + } + }); + } + /** * @Description: ������������menu������menuMap��������������������� * @Param: [menuMap, menu] @@ -218,7 +268,7 @@ * @Author: ��������� * @Date: 2021/5/6 */ - private void combinationParentChildrenMenus(Map<Integer, Menu> menuMap, Menu menu) { + private void putMenuToParentMenu(Map<Integer, Menu> menuMap, Menu menu) { Integer parentId = menu.getParentId(); Menu parentMenu = menuMap.get(parentId); if (!ObjectUtils.isEmpty(parentMenu)) { @@ -245,7 +295,7 @@ menu.setChildren(new ArrayList<>());//��������������� } for (Menu menu : menus) { - combinationParentChildrenMenus(menuMap, menu); + putMenuToParentMenu(menuMap, menu); } Menu menu = menuMap.get(id); return menu; @@ -273,7 +323,7 @@ /** - * @Description: ���������������������id��������������� + * @Description: ������������������������children���id��������������� * @Param: [menu, ids] * @return: void * @Author: ��������� @@ -289,4 +339,22 @@ } } + /** + * @Description: ������menu������������������������������������menus��� + * @Param: [menu, menus] + * @return: void + * @Author: ��������� + * @Date: 2021/5/13 + */ + private void getNotParentMenu(Menu menu, List<Menu> menus) { + if (ObjectUtils.isEmpty(menu.getChildren())) { + menus.add(menu); + } else { + List<Menu> children = menu.getChildren(); + for (Menu child : children) { + getNotParentMenu(child, menus); + } + } + } + } diff --git a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml index 3deaf39..56e6c5d 100644 --- a/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml +++ b/screen-manage/src/main/resources/mapper/ManageMenuMapper.xml @@ -32,7 +32,7 @@ join manage_role_menu mrm on - mm.`id` = mrm.`menu_id` and mm.`is_delete`=0 + mm.`id` = mrm.`menu_id` and mrm.`is_delete`=0 join manage_role mr on diff --git a/screen-manage/src/main/resources/mapper/MenuMapper.xml b/screen-manage/src/main/resources/mapper/MenuMapper.xml index 556ddc0..8f512dd 100644 --- a/screen-manage/src/main/resources/mapper/MenuMapper.xml +++ b/screen-manage/src/main/resources/mapper/MenuMapper.xml @@ -15,4 +15,25 @@ <result column="is_delete" property="isDelete" /> </resultMap> + <sql id="Base_Column_List"> + m.id,m.name,m.url,m.icon,m.parent_id,m.order,m.create_time,m.update_time,m.is_delete + </sql> + + <select id="getMenusByGroupId" resultMap="BaseResultMap"> + SELECT + <include refid="Base_Column_List"></include> + FROM + menu m + JOIN + group_menu gm + ON + gm.`menu_id` = m.`id` AND gm.`is_delete` = 0 + JOIN + `group` g + ON + g.`id` = gm.`group_id` AND g.`is_delete` = 0 AND g.`id` = #{value} + WHERE + m.`is_delete` = 0; + </select> + </mapper> \ No newline at end of file -- Gitblit v1.8.0