From 247f19f6c3f17c2ac2f37b55c7d0550731f31ffe Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Thu, 25 Mar 2021 17:24:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- screen-api/src/main/java/com/moral/api/mapper/MenuMapper.java | 3 screen-manage/src/main/java/com/moral/api/service/ManageMenuService.java | 7 screen-api/src/main/java/com/moral/api/service/MenuService.java | 3 screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java | 125 +++++- screen-api/src/main/java/com/moral/api/service/GroupMenuService.java | 3 screen-api/src/main/java/com/moral/api/service/GroupService.java | 11 screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 128 ++++-- screen-common/src/main/java/com/moral/util/TokenUtils.java | 9 screen-manage/src/main/java/com/moral/api/mapper/ManageRoleMenuMapper.java | 6 screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java | 8 pom.xml | 2 screen-api/src/main/java/com/moral/api/controller/GroupController.java | 137 +++++++ screen-manage/src/main/java/com/moral/api/entity/Group.java | 2 screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java | 2 screen-api/src/main/java/com/moral/api/service/UserService.java | 5 screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java | 30 + screen-common/src/main/java/com/moral/constant/Constants.java | 2 screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleMenuServiceImpl.java | 82 ++++ screen-manage/src/main/resources/mapper/ManageMenuMapper.xml | 17 screen-api/src/main/resources/mapper/MenuMapper.xml | 13 screen-api/src/main/resources/mapper/UserMapper.xml | 9 screen-api/src/main/java/com/moral/api/controller/MenuController.java | 73 +++ screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java | 15 screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java | 8 screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java | 33 + screen-manage/src/main/java/com/moral/api/service/impl/ManageMenuServiceImpl.java | 60 ++ screen-manage/src/main/resources/mapper/ManageRoleMenuMapper.xml | 35 + screen-api/src/main/java/com/moral/api/controller/LoginController.java | 95 +++- screen-api/src/main/java/com/moral/api/controller/UserController.java | 54 +- screen-manage/src/main/java/com/moral/api/controller/ManageRoleController.java | 26 + screen-api/src/main/java/com/moral/api/service/UserGroupService.java | 3 screen-manage/src/main/java/com/moral/api/service/impl/ManageRoleServiceImpl.java | 43 +- screen-manage/src/main/java/com/moral/api/controller/ManageMenuController.java | 51 ++ screen-manage/src/main/resources/application-dev.yml | 5 screen-api/src/main/java/com/moral/api/entity/Group.java | 2 screen-manage/src/main/java/com/moral/api/mapper/ManageMenuMapper.java | 4 36 files changed, 933 insertions(+), 178 deletions(-) diff --git a/pom.xml b/pom.xml index fd7b9a2..be47e13 100644 --- a/pom.xml +++ b/pom.xml @@ -108,7 +108,7 @@ <scope>test</scope> </dependency> <dependency> - <groupId>com.github.penggle</groupId> + <groupId>com.google.code.kaptcha</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> </dependency> diff --git a/screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java b/screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java index 99e60ac..836ef67 100644 --- a/screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java +++ b/screen-api/src/main/java/com/moral/api/config/Interceptor/WebAppConfiguration.java @@ -13,6 +13,6 @@ public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new AuthenticationInterceptor()) .addPathPatterns("/**") - .excludePathPatterns("/**/login/**", "/**/logout/**", "/swagger-ui.html/**", "/swagger-resources/**"); + .excludePathPatterns("/**/login/**", "/**/logout/**", "/swagger-ui.html/**", "/swagger-resources/**","/**/verificationCode/**","/**/user/**"); } } diff --git a/screen-api/src/main/java/com/moral/api/controller/GroupController.java b/screen-api/src/main/java/com/moral/api/controller/GroupController.java new file mode 100644 index 0000000..e4d3734 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/GroupController.java @@ -0,0 +1,137 @@ +package com.moral.api.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.moral.api.entity.Group; +import com.moral.api.service.GroupService; +import com.moral.api.service.UserGroupService; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; +import com.moral.util.PageResult; +import com.moral.util.WebUtils; + +@Slf4j +@Api(tags = {"���"}) +@RestController +@RequestMapping("/group") +public class GroupController { + + @Autowired + private GroupService groupService; + + @Autowired + private UserGroupService userGroupService; + + @ApiOperation(value = "���������", notes = "���������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupName", value = "������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) + @RequestMapping(value = "addGroup", method = RequestMethod.POST) + private ResultMessage addGroup(Group group, HttpServletRequest request) { + if (group.getGroupName().isEmpty()) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), + ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + String token = request.getHeader("token"); + Map<String, Object> result = groupService.addGroup(group, token); + if (!result.isEmpty()) { + return ResultMessage.fail((int) result.get("code"), result.get("msg").toString()); + } + return ResultMessage.ok(); + } + + @ApiOperation(value = "���������", notes = "���������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "���id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) + @RequestMapping(value = "deleteGroup", method = RequestMethod.POST) + public ResultMessage deleteGroup(String groupId) { + if (groupId == null) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + QueryWrapper<Group> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("id", groupId); + Group group = groupService.getOne(queryWrapper); + if (group == null) { + return ResultMessage.fail(ResponseCodeEnum.ACCOUNT_NOT_EXIST.getCode(), ResponseCodeEnum.ACCOUNT_NOT_EXIST.getMsg()); + } + groupService.deleteGroup(group); + return ResultMessage.ok(); + } + + @ApiOperation(value = "���������������", notes = "���������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupName", value = "������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) + @RequestMapping(value = "updateGroup", method = RequestMethod.POST) + public ResultMessage updateUser(Group group, HttpServletRequest request) { + String token = request.getHeader("token"); + Map<String, Object> result = groupService.updateGroup(group, token); + if (!result.isEmpty()) { + return ResultMessage.fail((int) result.get("code"), result.get("msg").toString()); + } + return ResultMessage.ok(); + } + + @ApiOperation(value = "���������������������", notes = "���������������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "page", value = "���������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "size", value = "������������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "order", value = "������������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "groupName", value = "������������������", required = false, paramType = "query", dataType = "String") + }) + @RequestMapping(value = "selectGroups", method = RequestMethod.POST) + public ResultMessage selectGroups(HttpServletRequest request) { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + parameters.put("token", request.getHeader("token")); + Page<Group> userPage = groupService.selectGroups(parameters); + PageResult<Group> pageResult = new PageResult<>( + userPage.getTotal(), userPage.getPages(), userPage.getRecords() + ); + return ResultMessage.ok(pageResult); + } + + @ApiOperation(value = "���������������", notes = "���������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "userId", value = "������id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "groupIds", value = "���id,������������������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) + @RequestMapping(value = "allotGroups", method = RequestMethod.POST) + public ResultMessage allotGroups(HttpServletRequest request) { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + if (!parameters.containsKey("userId")) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + String token = request.getHeader("token"); + String[] groupIds = parameters.get("groupIds").toString().split(","); + List<Integer> gIds = new ArrayList<>(); + for (String groupId : groupIds) { + gIds.add(Integer.parseInt(groupId)); + } + parameters.put("groupIds", gIds); + userGroupService.allotGroups(parameters, token); + return ResultMessage.ok(); + } +} diff --git a/screen-api/src/main/java/com/moral/api/controller/LoginController.java b/screen-api/src/main/java/com/moral/api/controller/LoginController.java index 6b1a304..cb1862a 100644 --- a/screen-api/src/main/java/com/moral/api/controller/LoginController.java +++ b/screen-api/src/main/java/com/moral/api/controller/LoginController.java @@ -6,22 +6,29 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import java.io.IOException; import java.util.Map; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import com.moral.api.entity.Group; -import com.moral.api.service.GroupService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.moral.api.entity.SysConfig; +import com.moral.api.service.SysConfigService; import com.moral.api.service.UserService; +import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; +import com.moral.pojo.VerificationCode; +import com.moral.util.KaptchaUtils; import com.moral.util.TokenUtils; -import com.moral.util.WebUtils; @Slf4j @Api(tags = {"������"}) @@ -32,53 +39,81 @@ private UserService userService; @Autowired - private GroupService groupService; + private SysConfigService sysConfigService; @ApiOperation(value = "������", notes = "������") - @ApiImplicitParams({ - @ApiImplicitParam(name = "account", value = "������", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "password", value = "������", required = false, paramType = "query", dataType = "String") - }) @RequestMapping(value = "login", method = RequestMethod.POST) - public ResultMessage login(HttpServletRequest request) { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + public ResultMessage login(@RequestBody Map<String, Object> parameters) { if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } Map<String, Object> result = userService.login(parameters); if (!result.containsKey("data")) { - return ResultMessage.fail(Integer.parseInt(result.get("code").toString()), result.get("msg").toString()); + return ResultMessage.fail((int) result.get("code"), (String) result.get("msg")); } return ResultMessage.ok(result.get("data")); } - @ApiOperation(value = "������", notes = "������") + @ApiOperation(value = "������", notes = "������") @RequestMapping(value = "logout", method = RequestMethod.POST) - public ResultMessage logout(HttpServletRequest request) { - Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); - if (!parameters.containsKey("uid")) { + @ApiImplicitParams({ + @ApiImplicitParam(name = "uid", value = "������id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) + public ResultMessage logout(String uid, HttpServletRequest request) { + if (uid == null) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } - String userId = parameters.get("uid").toString(); String token = request.getHeader("token"); - TokenUtils.destoryToken(userId, token); + TokenUtils.destoryToken(uid, token); return ResultMessage.ok(); } - @ApiOperation(value = "���������", notes = "���������") - @ApiImplicitParams({ - @ApiImplicitParam(name = "groupName", value = "������", required = true, paramType = "query", dataType = "String") - }) - @RequestMapping(value = "addGroup", method = RequestMethod.POST) - private ResultMessage addGroup(Group group, HttpServletRequest request) { - String currentUserId = request.getHeader("uid"); - Map<String, Object> map = groupService.addGroup(group, currentUserId); - String msg = map.get("msg").toString(); - boolean flag = Boolean.parseBoolean(map.get("flag").toString()); - if (flag) { - return ResultMessage.ok(msg); + /** + * @Description: ��������������������������� + * @Param: [] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2021/3/18 + */ + + @ApiOperation(value = "���������������������������", notes = "���������������������������") + @RequestMapping(value = "verificationCode/config", method = RequestMethod.GET) + public void verifyConfig(HttpServletResponse response) { + QueryWrapper<SysConfig> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("type", Constants.VERIFICATION_TYPE); + SysConfig sysConfig = sysConfigService.getOne(queryWrapper); + String code = sysConfig.getCode(); + if (Constants.VERIFICATION_OPEN_CODE.equals(code)) { + try { + response.sendRedirect("/verificationCode/get"); + } catch (IOException e) { + e.printStackTrace(); + } } - return ResultMessage.fail(msg); } + @ApiOperation(value = "���������������", notes = "���������������") + @RequestMapping(value = "verificationCode/get", method = RequestMethod.GET) + public ResultMessage getVerificationCode() { + VerificationCode verificationCode = null; + try { + verificationCode = KaptchaUtils.createVerificationCode(); + } catch (IOException e) { + log.error(e.getMessage()); + } + if (ObjectUtils.isEmpty(verificationCode)) + return ResultMessage.fail(); + return ResultMessage.ok(verificationCode); + } + + @ApiOperation(value = "���������������", notes = "���������������") + @RequestMapping(value = "verificationCode/verify", method = RequestMethod.GET) + public ResultMessage gverifyVerificationCode(VerificationCode verificationCode) { + if (!verificationCode.valid()) + return ResultMessage.fail(); + if (KaptchaUtils.verify(verificationCode)) + return ResultMessage.ok(); + return ResultMessage.fail(); + } } diff --git a/screen-api/src/main/java/com/moral/api/controller/MenuController.java b/screen-api/src/main/java/com/moral/api/controller/MenuController.java new file mode 100644 index 0000000..10d52e6 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/MenuController.java @@ -0,0 +1,73 @@ +package com.moral.api.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import com.moral.api.service.GroupMenuService; +import com.moral.api.service.MenuService; +import com.moral.constant.ResponseCodeEnum; +import com.moral.constant.ResultMessage; +import com.moral.util.TokenUtils; +import com.moral.util.WebUtils; + +@Slf4j +@Api(tags = {"������"}) +@RestController +@RequestMapping("/menu") +public class MenuController { + + @Autowired + private GroupMenuService groupMenuService; + + @Autowired + private MenuService menuService; + + @ApiOperation(value = "���������������", notes = "���������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "groupId", value = "���id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "menuIds", value = "������id,������������������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) + @RequestMapping(value = "allotMenus", method = RequestMethod.POST) + public ResultMessage allotMenus(HttpServletRequest request) { + Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); + if (!parameters.containsKey("groupId")) { + return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + } + String token = request.getHeader("token"); + String[] menuIds = parameters.get("menuIds").toString().split(","); + List<Integer> mIds = new ArrayList<>(); + for (String menuId : menuIds) { + mIds.add(Integer.parseInt(menuId)); + } + parameters.put("menuIds", mIds); + groupMenuService.allotMenus(parameters, token); + return ResultMessage.ok(); + } + + @ApiOperation(value = "������������������������", notes = "������������������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), + }) + @RequestMapping(value = "selectGroups", method = RequestMethod.POST) + public ResultMessage selectGroups(HttpServletRequest request) { + String token = request.getHeader("token"); + Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); + Map<String, Object> result = menuService.selectMenusByOrgId((Integer) currentUserInfo.get("organizationId")); + return ResultMessage.ok(result); + } +} diff --git a/screen-api/src/main/java/com/moral/api/controller/UserController.java b/screen-api/src/main/java/com/moral/api/controller/UserController.java index 34e7464..41e3d80 100644 --- a/screen-api/src/main/java/com/moral/api/controller/UserController.java +++ b/screen-api/src/main/java/com/moral/api/controller/UserController.java @@ -11,15 +11,18 @@ import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.User; import com.moral.api.service.UserService; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; +import com.moral.util.PageResult; import com.moral.util.WebUtils; @Slf4j @@ -33,16 +36,10 @@ @ApiOperation(value = "������������", notes = "������������") @ApiImplicitParams({ - @ApiImplicitParam(name = "account", value = "������,������6-10", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "password", value = "������,������6-20", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "userName", value = "������������", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "email", value = "������,������123456@qq.com", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "mobile", value = "���������,1������11���������", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "wechat", value = "������", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "addUser", method = RequestMethod.POST) - public ResultMessage addUser(User user, HttpServletRequest request) { + public ResultMessage addUser(@RequestBody User user, HttpServletRequest request) { if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); @@ -57,8 +54,7 @@ @ApiOperation(value = "������������", notes = "������������") @ApiImplicitParams({ - @ApiImplicitParam(name = "userId", value = "������id", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + @ApiImplicitParam(name = "userId", value = "������id", required = true, paramType = "query", dataType = "String") }) @RequestMapping(value = "deleteUser", method = RequestMethod.POST) public ResultMessage deleteUser(String userId) { @@ -77,42 +73,44 @@ @ApiOperation(value = "������������������", notes = "������������������") @ApiImplicitParams({ - @ApiImplicitParam(name = "account", value = "������,������6-10", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "password", value = "������,������6-20", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "userName", value = "������������", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "email", value = "������,������123456@qq.com", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "mobile", value = "���������,1������11���������", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "wechat", value = "������", required = false, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "updateUser", method = RequestMethod.POST) - public ResultMessage updateUser(User user, HttpServletRequest request) { - if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) { + public ResultMessage updateUser(@RequestBody User user, HttpServletRequest request) { + if (user.getId() == null) { return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); } String token = request.getHeader("token"); - Map<String, Object> result = userService.addUser(user, token); + Map<String, Object> result = userService.updateUser(user, token); if (!result.isEmpty()) { return ResultMessage.fail((int) result.get("code"), result.get("msg").toString()); } return ResultMessage.ok(); } - @ApiOperation(value = "������������������", notes = "������������������") + @ApiOperation(value = "������������������������", notes = "������������������������") @ApiImplicitParams({ - @ApiImplicitParam(name = "userId", value = "������id", required = false, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + @ApiImplicitParam(name = "page", value = "���������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "size", value = "������������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "order", value = "������������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "account", value = "������������������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "userName", value = "���������������������", required = false, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "mobile", value = "���������������������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "email", value = "������������������", required = false, paramType = "header", dataType = "String"), + @ApiImplicitParam(name = "wechat", value = "������������������", required = false, paramType = "header", dataType = "String"), + }) - @RequestMapping(value = "getUserInfo", method = RequestMethod.POST) - public ResultMessage getUserInfo(HttpServletRequest request) { + @RequestMapping(value = "selectUsers", method = RequestMethod.POST) + public ResultMessage selectUsers(HttpServletRequest request) { Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); parameters.put("token", request.getHeader("token")); - Map<String, Object> users = userService.getUsers(parameters); - if (users.containsKey("msg")) { - return ResultMessage.fail(users.get("msg").toString()); - } - return ResultMessage.ok(users.get("users")); + Page<User> userPage = userService.selectUsers(parameters); + PageResult<User> pageResult = new PageResult<>( + userPage.getTotal(), userPage.getPages(), userPage.getRecords() + ); + return ResultMessage.ok(pageResult); } } diff --git a/screen-api/src/main/java/com/moral/api/entity/Group.java b/screen-api/src/main/java/com/moral/api/entity/Group.java index 378b0e7..22ed32c 100644 --- a/screen-api/src/main/java/com/moral/api/entity/Group.java +++ b/screen-api/src/main/java/com/moral/api/entity/Group.java @@ -1,6 +1,7 @@ package com.moral.api.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableId; import java.io.Serializable; @@ -19,6 +20,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) +@TableName("`group`") public class Group extends Model<Group> { private static final long serialVersionUID = 1L; diff --git a/screen-api/src/main/java/com/moral/api/mapper/MenuMapper.java b/screen-api/src/main/java/com/moral/api/mapper/MenuMapper.java index 82bee80..bab03f0 100644 --- a/screen-api/src/main/java/com/moral/api/mapper/MenuMapper.java +++ b/screen-api/src/main/java/com/moral/api/mapper/MenuMapper.java @@ -15,6 +15,7 @@ */ public interface MenuMapper extends BaseMapper<Menu> { - List<Menu> selectUserMenu(int userId); + List<Menu> selectUserMenu(Integer userId); + List<Menu> selectOrganizationMenu(Integer orgId); } diff --git a/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java b/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java index 0b3b9c2..a1bd398 100644 --- a/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java +++ b/screen-api/src/main/java/com/moral/api/service/GroupMenuService.java @@ -1,5 +1,7 @@ package com.moral.api.service; +import java.util.Map; + import com.moral.api.entity.GroupMenu; import com.baomidou.mybatisplus.extension.service.IService; @@ -13,4 +15,5 @@ */ public interface GroupMenuService extends IService<GroupMenu> { + void allotMenus(Map<String, Object> parameters, String token); } diff --git a/screen-api/src/main/java/com/moral/api/service/GroupService.java b/screen-api/src/main/java/com/moral/api/service/GroupService.java index 56fe317..0548339 100644 --- a/screen-api/src/main/java/com/moral/api/service/GroupService.java +++ b/screen-api/src/main/java/com/moral/api/service/GroupService.java @@ -1,9 +1,12 @@ package com.moral.api.service; +import java.util.List; import java.util.Map; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.Group; import com.baomidou.mybatisplus.extension.service.IService; +import com.moral.api.entity.User; /** * <p> @@ -15,6 +18,12 @@ */ public interface GroupService extends IService<Group> { - Map<String, Object> addGroup(Group group, String currentUserId); + Map<String, Object> addGroup(Group group, String token); + + void deleteGroup(Group group); + + Map<String, Object> updateGroup(Group group, String token); + + Page<Group> selectGroups(Map<String, Object> parameters); } diff --git a/screen-api/src/main/java/com/moral/api/service/MenuService.java b/screen-api/src/main/java/com/moral/api/service/MenuService.java index 43e1ffe..242c94a 100644 --- a/screen-api/src/main/java/com/moral/api/service/MenuService.java +++ b/screen-api/src/main/java/com/moral/api/service/MenuService.java @@ -1,5 +1,7 @@ package com.moral.api.service; +import java.util.Map; + import com.moral.api.entity.Menu; import com.baomidou.mybatisplus.extension.service.IService; @@ -13,4 +15,5 @@ */ public interface MenuService extends IService<Menu> { + Map<String,Object> selectMenusByOrgId(Integer orgId); } diff --git a/screen-api/src/main/java/com/moral/api/service/UserGroupService.java b/screen-api/src/main/java/com/moral/api/service/UserGroupService.java index a65f7ef..f031485 100644 --- a/screen-api/src/main/java/com/moral/api/service/UserGroupService.java +++ b/screen-api/src/main/java/com/moral/api/service/UserGroupService.java @@ -1,5 +1,7 @@ package com.moral.api.service; +import java.util.Map; + import com.moral.api.entity.UserGroup; import com.baomidou.mybatisplus.extension.service.IService; @@ -13,4 +15,5 @@ */ public interface UserGroupService extends IService<UserGroup> { + void allotGroups(Map<String, Object> parameters, String token); } diff --git a/screen-api/src/main/java/com/moral/api/service/UserService.java b/screen-api/src/main/java/com/moral/api/service/UserService.java index 3616005..2af3654 100644 --- a/screen-api/src/main/java/com/moral/api/service/UserService.java +++ b/screen-api/src/main/java/com/moral/api/service/UserService.java @@ -4,6 +4,7 @@ import java.util.Map; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.User; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.UserBo; @@ -20,13 +21,15 @@ Map<String, Object> login(Map<String, Object> parameters); + Map<String, Object> getMenus(Map<String, Object> parameters); + Map<String, Object> addUser(User user, String token); void deleteUser(User user); Map<String, Object> updateUser(User user, String token); - Map<String, Object> getUsers(Map<String, Object> parameters); + Page<User> selectUsers(Map<String, Object> parameters); UserBo selectUserInfo(Map<String, Object> parameters); diff --git a/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java index c343b39..651b199 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java @@ -1,9 +1,18 @@ package com.moral.api.service.impl; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.GroupMenu; import com.moral.api.mapper.GroupMenuMapper; import com.moral.api.service.GroupMenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import com.moral.util.TokenUtils; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -17,4 +26,28 @@ @Service public class GroupMenuServiceImpl extends ServiceImpl<GroupMenuMapper, GroupMenu> implements GroupMenuService { + @Autowired + private GroupMenuMapper groupMenuMapper; + + @Override + public void allotMenus(Map<String, Object> parameters, String token) { + Integer groupId = Integer.parseInt(parameters.get("groupId").toString()); + List<Integer> menuIds = (ArrayList) parameters.get("menuIds"); + Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); + UpdateWrapper<GroupMenu> deleteWrapper = new UpdateWrapper<>(); + deleteWrapper.set("is_delete", Constants.DELETE) + .eq("group_id", groupId) + .eq("channel", Constants.WEB_CHANNEL); + groupMenuMapper.update(null, deleteWrapper); + if (!menuIds.isEmpty()) { + for (Integer menuId : menuIds) { + GroupMenu groupMenu = new GroupMenu(); + groupMenu.setGroupId(groupId); + groupMenu.setMenuId(menuId); + groupMenu.setChannel(Constants.WEB_CHANNEL); + groupMenu.setOrganizationId((Integer) currentUserInfo.get("organizationId")); + groupMenuMapper.insert(groupMenu); + } + } + } } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java index 59f014e..366b14d 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/GroupServiceImpl.java @@ -1,15 +1,29 @@ package com.moral.api.service.impl; +import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.Group; +import com.moral.api.entity.GroupMenu; import com.moral.api.entity.User; +import com.moral.api.entity.UserGroup; import com.moral.api.mapper.GroupMapper; +import com.moral.api.mapper.GroupMenuMapper; +import com.moral.api.mapper.UserGroupMapper; import com.moral.api.mapper.UserMapper; 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 com.moral.util.RegexUtils; +import com.moral.util.TokenUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -29,29 +43,100 @@ private GroupMapper groupMapper; @Autowired - private UserMapper userMapper; + private GroupMenuMapper groupMenuMapper; + + @Autowired + private UserGroupMapper userGroupMapper; @Override - public Map<String, Object> addGroup(Group group, String currentUserId) { - Map<String, Object> resultMap = new HashMap<>(); - User currentUser = userMapper.selectById(currentUserId); - if (!currentUser.getIsAdmin()) { - resultMap.put("flag", false); - resultMap.put("msg", "���������������������������"); - return resultMap; - } - Integer orgId = currentUser.getOrganizationId(); + public Map<String, Object> addGroup(Group group, String token) { + Map<String, Object> result = new HashMap<>(); + Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); + Integer orgId = (int) currentUserInfo.get("organizationId"); QueryWrapper<Group> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("group_name", group.getGroupName()).eq("organization_id", orgId); - if (groupMapper.selectOne(queryWrapper) == null) { - group.setOrganizationId(orgId); - groupMapper.insert(group); - resultMap.put("flag", true); - resultMap.put("msg", "������������"); - } else { - resultMap.put("flag", false); - resultMap.put("msg", "���������������������������"); + queryWrapper.eq("group_name", group.getGroupName()) + .eq("organization_id", orgId) + .eq("is_delete", Constants.NOT_DELETE); + if (groupMapper.selectOne(queryWrapper) != null) { + result.put("code", ResponseCodeEnum.GROUP_EXIST.getCode()); + result.put("msg", ResponseCodeEnum.GROUP_EXIST.getMsg()); + return result; } - return resultMap; + group.setOrganizationId(orgId); + groupMapper.insert(group); + return result; } + + @Override + public void deleteGroup(Group group) { + //������������group + group.setIsDelete(Constants.DELETE); + groupMapper.updateById(group); + //������������group_menu + UpdateWrapper<GroupMenu> deleteGroupWrapper = new UpdateWrapper<>(); + deleteGroupWrapper.set("is_delete", Constants.DELETE).eq("group_id", group.getId()); + groupMenuMapper.update(null, deleteGroupWrapper); + //������������user_group + UpdateWrapper<UserGroup> deleteUserGroupWrapper = new UpdateWrapper<>(); + deleteUserGroupWrapper.set("is_delete", Constants.DELETE).eq("group_id", group.getId()); + userGroupMapper.update(null, deleteUserGroupWrapper); + } + + @Override + public Map<String, Object> updateGroup(Group group, String token) { + Map<String, Object> result = new HashMap<>(); + Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); + Object organizationId = currentUserInfo.get("organizationId"); + QueryWrapper<Group> queryWrapper = new QueryWrapper<>(); + queryWrapper.ne("id", group.getId()) + .eq("group_name", group.getGroupName()) + .eq("is_delete", Constants.NOT_DELETE) + .eq("organization_id", organizationId); + if (groupMapper.selectOne(queryWrapper) != null) { + result.put("code", ResponseCodeEnum.GROUP_EXIST.getCode()); + result.put("msg", ResponseCodeEnum.GROUP_EXIST.getMsg()); + return result; + } + group.setOrganizationId((int) organizationId); + groupMapper.updateById(group); + return result; + } + + @Override + public Page<Group> selectGroups(Map<String, Object> parameters) { + Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(parameters.get("token").toString()); + Object organizationId = currentUserInfo.get("organizationId"); + QueryWrapper<Group> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("organization_id", organizationId) + .eq("is_delete", Constants.NOT_DELETE); + Object order = parameters.get("order"); + Object groupName = parameters.get("groupName"); + //������������������ + if (groupName != null) { + queryWrapper.like("group_name", groupName); + } + + //������������ + if (!parameters.containsKey("page")) { + parameters.put("page", 0); + } + if (!parameters.containsKey("size")) { + parameters.put("size", 10); + } + + int page = Integer.parseInt(parameters.get("page").toString()); + int size = Integer.parseInt(parameters.get("size").toString()); + Page<Group> pageData = new Page<>(page, size); + //������������,������id������ + if (order == null) { + queryWrapper.orderByAsc("id"); + } else { + queryWrapper.orderByAsc(order.toString(), "id"); + } + Page<Group> groupPage = groupMapper.selectPage(pageData, queryWrapper); + + pageData.setRecords(groupPage.getRecords()); + return groupPage; + } + } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java index 5047a8c..f05735c 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java @@ -1,9 +1,15 @@ package com.moral.api.service.impl; +import java.util.HashMap; +import java.util.Map; + import com.moral.api.entity.Menu; import com.moral.api.mapper.MenuMapper; import com.moral.api.service.MenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.service.UserService; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -17,4 +23,13 @@ @Service public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService { + @Autowired + private UserService userService; + + @Override + public Map<String, Object> selectMenusByOrgId(Integer orgId) { + Map<String, Object> map = new HashMap<>(); + map.put("orgId",orgId); + return userService.getMenus(map); + } } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java index 8ab1c0d..230e3f4 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java @@ -1,9 +1,18 @@ package com.moral.api.service.impl; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.UserGroup; import com.moral.api.mapper.UserGroupMapper; import com.moral.api.service.UserGroupService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.Constants; +import com.moral.util.TokenUtils; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -17,4 +26,25 @@ @Service public class UserGroupServiceImpl extends ServiceImpl<UserGroupMapper, UserGroup> implements UserGroupService { + @Autowired + private UserGroupMapper userGroupMapper; + + @Override + public void allotGroups(Map<String, Object> parameters, String token) { + Integer userId = Integer.parseInt(parameters.get("userId").toString()); + List<Integer> groupIds = (ArrayList) parameters.get("groupIds"); + Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); + UpdateWrapper<UserGroup> deleteWrapper = new UpdateWrapper<>(); + deleteWrapper.set("is_delete", Constants.DELETE).eq("user_id", userId); + userGroupMapper.update(null, deleteWrapper); + if (!groupIds.isEmpty()) { + for (Integer groupId : groupIds) { + UserGroup userGroup = new UserGroup(); + userGroup.setUserId(userId); + userGroup.setGroupId(groupId); + userGroup.setOrganizationId((Integer) currentUserInfo.get("organizationId")); + userGroupMapper.insert(userGroup); + } + } + } } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java index fb42e30..8263599 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.Group; import com.moral.api.entity.Menu; import com.moral.api.entity.Organization; @@ -76,7 +77,7 @@ //������������ String password = parameters.get("password").toString(); //������������ - //password = AESUtils.decrypt(password, AESKey); + password = AESUtils.decrypt(password, AESKey); if (!MD5Utils.saltMD5Verify(password, userBo.getPassword())) { result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode()); result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg()); @@ -113,7 +114,9 @@ userInfo.put("organizationName", organization.getName()); userInfo.put("locationLevel", organization.getLocationLevel()); userInfo.put("groups", groups); - userInfo.putAll(getMenus(userBo.getId())); + Map<String, Object> map = new HashMap<>(); + map.put("userId", userBo.getId()); + userInfo.putAll(getMenus(map)); try { //������token������������redis String token = TokenUtils.getToken(userBo.getId().toString(), userInfo); @@ -129,9 +132,15 @@ return result; } - //������userId������������������������ - private Map<String, Object> getMenus(int userId) { - List<Menu> allMenus = menuMapper.selectUserMenu(userId); + @Override + public Map<String, Object> getMenus(Map<String, Object> parameters) { + List<Menu> allMenus; + if (parameters.containsKey("userId")) { + allMenus = menuMapper.selectUserMenu(Integer.parseInt(parameters.get("userId").toString())); + } else { + allMenus = menuMapper.selectOrganizationMenu(Integer.parseInt(parameters.get("orgId").toString())); + } + Map<String, Object> resultMap = new LinkedHashMap<>(); //��������������� List<Menu> oneMenu = allMenus.stream() @@ -156,7 +165,6 @@ //������������������������������������ private List<Map<String, Object>> getMenusByRecursion(Menu menu, List<Menu> menus) { - List<List<Map<String, Object>>> resultList = new ArrayList(); Menu newMenu = new Menu(); newMenu.setParentId(menu.getId()); //������������������������������ @@ -176,7 +184,6 @@ menuMap.put("menus", getMenusByRecursion(o, menus)); list.add(menuMap); }); - resultList.add(list); } return list; } @@ -224,7 +231,7 @@ } //������������ user.setPassword(MD5Utils.saltMD5(password)); - user.setOrganizationId(Integer.parseInt(currentUserInfo.get("organizationId").toString())); + user.setOrganizationId((int) currentUserInfo.get("organizationId")); user.setIsAdmin(false); //��������������������������� Date userExpireTime = user.getExpireTime(); @@ -240,12 +247,19 @@ @Override @Transactional public void deleteUser(User user) { - //������������������ + String userId = user.getId().toString(); + //������������user user.setIsDelete(Constants.DELETE); - //������������������������������ - UpdateWrapper<UserGroup> updateWrapper = new UpdateWrapper<>(); - updateWrapper.set("is_delete", Constants.DELETE).eq("user_id", user.getId()); - userGroupMapper.update(null, updateWrapper); + userMapper.updateById(user); + //������������user_group + UpdateWrapper<UserGroup> deleteWrapper = new UpdateWrapper<>(); + deleteWrapper.set("is_delete", Constants.DELETE).eq("user_id", userId); + //������redis + if (TokenUtils.hHasKey(userId)) { + String token = TokenUtils.hget(userId).toString(); + TokenUtils.destoryToken(userId, token); + } + userGroupMapper.update(null, deleteWrapper); } @Override @@ -253,17 +267,11 @@ public Map<String, Object> updateUser(User user, String token) { Map<String, Object> result = new HashMap<>(); Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); - QueryWrapper<User> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("id", user.getId()).eq("is_delete", Constants.NOT_DELETE); - if (userMapper.selectOne(queryWrapper) == null) { - result.put("code", ResponseCodeEnum.ACCOUNT_IS_DELETE.getCode()); - result.put("msg", ResponseCodeEnum.ACCOUNT_IS_DELETE.getMsg()); - return result; - } - queryWrapper.clear(); - queryWrapper.eq("account", user.getAccount()).eq("is_delete", Constants.NOT_DELETE); - //������������������������ + queryWrapper.ne("id", user.getId()) + .eq("account", user.getAccount()) + .eq("is_delete", Constants.NOT_DELETE); + //��������������������������� if (userMapper.selectOne(queryWrapper) != null) { result.put("code", ResponseCodeEnum.ACCOUNT_EXIST.getCode()); result.put("msg", ResponseCodeEnum.ACCOUNT_EXIST.getMsg()); @@ -283,12 +291,14 @@ } //������������������ String password = user.getPassword(); - //������������ - //password = AESUtils.decrypt(password, AESKey); - if (!RegexUtils.checkPassword(password)) { - result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode()); - result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg()); - return result; + if (password != null) { + //������������ + //password = AESUtils.decrypt(password, AESKey); + if (!RegexUtils.checkPassword(password)) { + result.put("code", ResponseCodeEnum.PASSWORD_INVALID.getCode()); + result.put("msg", ResponseCodeEnum.PASSWORD_INVALID.getMsg()); + return result; + } } //��������������������� if (user.getMobile() != null && !RegexUtils.checkMobile(user.getMobile())) { @@ -296,35 +306,69 @@ result.put("msg", ResponseCodeEnum.MOBILE_INVALID.getMsg()); return result; } - //������������ + //������MD5������ user.setPassword(MD5Utils.saltMD5(password)); - user.setOrganizationId(Integer.parseInt(currentUserInfo.get("organizationId").toString())); + user.setOrganizationId((int) currentUserInfo.get("organizationId")); user.setIsAdmin(false); - //��������������������������� + //������������������������������ Date userExpireTime = user.getExpireTime(); //��������������������������� Date currentUserExpireTime = (Date) currentUserInfo.get("expireTime"); if (userExpireTime == null || userExpireTime.getTime() > currentUserExpireTime.getTime()) { user.setExpireTime(currentUserExpireTime); } + //������redis + String userId = user.getId().toString(); + if (TokenUtils.hHasKey(userId)) { + String deleterToken = TokenUtils.hget(userId).toString(); + TokenUtils.destoryToken(userId, deleterToken); + } userMapper.updateById(user); return result; } @Override - public Map<String, Object> getUsers(Map<String, Object> parameters) { - Map<String, Object> resultMap = new HashMap<>(); + public Page<User> selectUsers(Map<String, Object> parameters) { Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(parameters.get("token").toString()); - if (!(boolean) currentUserInfo.get("isAdmin")) { - resultMap.put("msg", "������������"); - return resultMap; + Object organizationId = currentUserInfo.get("organizationId"); + QueryWrapper<User> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("organization_id", organizationId) + .eq("is_delete", Constants.NOT_DELETE); + Object order = parameters.get("order"); + Object account = parameters.get("account"); + Object userName = parameters.get("userName"); + Object mobile = parameters.get("mobile"); + Object email = parameters.get("mobile"); + Object wechat = parameters.get("wechat"); + //������������������ + if (account != null) { + queryWrapper.like("account", account); } - if (!parameters.containsKey("userId")) { - parameters.put("orgId", currentUserInfo.get("organizationId")); + if (userName != null) { + queryWrapper.like("user_name", userName); } - List<Map<String, Object>> users = userMapper.selectUsers(parameters); - resultMap.put("users", users); - return resultMap; + if (mobile != null) { + queryWrapper.like("mobile", mobile); + } + if (email != null) { + queryWrapper.like("email", email); + } + if (wechat != null) { + queryWrapper.like("wechat", wechat); + } + + int page = Integer.parseInt(parameters.get("page").toString()); + int size = Integer.parseInt(parameters.get("size").toString()); + Page<User> pageData = new Page<>(page, size); + //������������,������id������ + if (order == null) { + queryWrapper.orderByAsc("id"); + } else { + queryWrapper.orderByAsc(order.toString(), "id"); + } + Page<User> userPage = userMapper.selectPage(pageData, queryWrapper); + pageData.setRecords(userPage.getRecords()); + return userPage; } } diff --git a/screen-api/src/main/resources/mapper/MenuMapper.xml b/screen-api/src/main/resources/mapper/MenuMapper.xml index 8ae2d80..261a915 100644 --- a/screen-api/src/main/resources/mapper/MenuMapper.xml +++ b/screen-api/src/main/resources/mapper/MenuMapper.xml @@ -32,6 +32,19 @@ AND gm.menu_id = m.id AND ug.is_delete = 0 AND gm.is_delete = 0 + AND gm.channel = 1 + AND m.is_delete = 0 + ORDER by m.`order` + </select> + + <select id="selectOrganizationMenu" resultMap="MenuResultMap"> + SELECT m.id,m.name,m.url,m.icon,m.parent_id,m.order + FROM `menu` m, `organization_menu` om + WHERE om.organization_id = #{orgId} + AND m.id = om.menu_id + AND om.channel = 1 + AND om.menu_id = m.id + AND om.is_delete = 0 AND m.is_delete = 0 ORDER by m.`order` </select> diff --git a/screen-api/src/main/resources/mapper/UserMapper.xml b/screen-api/src/main/resources/mapper/UserMapper.xml index c0a28ef..b0852eb 100644 --- a/screen-api/src/main/resources/mapper/UserMapper.xml +++ b/screen-api/src/main/resources/mapper/UserMapper.xml @@ -47,13 +47,4 @@ WHERE u.account = #{account} </select> - <select id="selectUsers" resultType="java.util.Map"> - SELECT id,account,user_name userName,email,mobile,wechat FROM `user` WHERE - <if test="orgId!=null"> - organization_id = #{orgId} - </if> - <if test="userId!=null"> - id = #{userId} - </if> - </select> </mapper> \ No newline at end of file diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java index a5a7bff..7c1ed66 100644 --- a/screen-common/src/main/java/com/moral/constant/Constants.java +++ b/screen-common/src/main/java/com/moral/constant/Constants.java @@ -48,4 +48,6 @@ * ��������������������� * */ public static Integer DELETE_CHILDREN_ORG = 1; + + public static Integer WEB_CHANNEL = 1; } 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 fe69c7a..26c9480 100644 --- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java +++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java @@ -30,7 +30,13 @@ ORGANIZATION_PARENT_NOT_EXIST(-16,"������������������"), PHONE_INVALID(-17,"���������������"), TIME_FORMAT_INVALID(-18,"������������������"), - TIME_INVALID(-19,"������������") + TIME_INVALID(-19,"������������"), + GROUP_EXIST(-20, "������������"), + ROLE_IS_EXPIRE(-21, "���������������"), + ROLE_IS_NULL(-22, "������������"), + MENU_IS_EXPIRE(-23, "���������������"), + MENU_IS_NULL(-24, "������������"), + PARAMETERS_NOT_REQUIREMENT(-25, "���������������������") ; private final Integer code; private final String msg; diff --git a/screen-common/src/main/java/com/moral/util/TokenUtils.java b/screen-common/src/main/java/com/moral/util/TokenUtils.java index 64e58d0..d1aa0aa 100644 --- a/screen-common/src/main/java/com/moral/util/TokenUtils.java +++ b/screen-common/src/main/java/com/moral/util/TokenUtils.java @@ -34,6 +34,15 @@ //token��������� ������������ private static final int validity_time = 60*30; + //������user_token���������������������token + public static boolean hHasKey(String uid){ + return redisTemplate.opsForHash().hasKey("user_token",uid); + } + + //������������id������token + public static Object hget(String uid){ + return redisTemplate.opsForHash().get("user_token",uid); + } /** * @Description: ������token,��������������������������������� * @Param: [uid] type��� ���������������manage ���������������api 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 c34831d..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 @@ -4,6 +4,7 @@ import com.moral.api.entity.ManageMenu; import com.moral.api.entity.ManageRole; import com.moral.api.service.ManageMenuService; +import com.moral.api.service.ManageRoleMenuService; import com.moral.api.service.ManageRoleService; import com.moral.constant.ResultMessage; import com.moral.util.WebUtils; @@ -28,11 +29,14 @@ @Slf4j @Api(tags = {"������"}) @RestController -@RequestMapping("/manage") +@RequestMapping("/role") public class ManageRoleController { @Autowired private ManageRoleService manageRoleService; + + @Autowired + private ManageRoleMenuService manageRoleMenuService; @ApiOperation(value = "������������������", notes = "������������������") @ApiImplicitParams({ @@ -111,8 +115,26 @@ @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); } + + @ApiOperation(value = "������������������", notes = "������������������") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "������", required = true, paramType = "query", dataType = "int") + }) + @RequestMapping(value = "updateRoleMenu", method = RequestMethod.POST) + public ResultMessage updateRoleMenu(HttpServletRequest request) { + 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(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/entity/Group.java b/screen-manage/src/main/java/com/moral/api/entity/Group.java index 445b31b..3f32404 100644 --- a/screen-manage/src/main/java/com/moral/api/entity/Group.java +++ b/screen-manage/src/main/java/com/moral/api/entity/Group.java @@ -1,6 +1,7 @@ package com.moral.api.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; @@ -18,6 +19,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) +@TableName("`group`") public class Group extends Model<Group> { private static final long serialVersionUID = 1L; 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/ManageRoleMenuService.java b/screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java index 95afb02..5e9236d 100644 --- a/screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java +++ b/screen-manage/src/main/java/com/moral/api/service/ManageRoleMenuService.java @@ -2,6 +2,10 @@ import com.moral.api.entity.ManageRoleMenu; import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Map; /** * <p> @@ -11,6 +15,10 @@ * @author moral * @since 2021-03-09 */ +@Transactional public interface ManageRoleMenuService extends IService<ManageRoleMenu> { + @Transactional + Map<String,Object> updateRoleMenu(List list,int id); + } 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 23ab730..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,16 +1,20 @@ 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; import com.moral.api.service.ManageMenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.ResponseCodeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -35,17 +39,17 @@ public Map<String,Object> insertManageMenu(ManageMenu manageMenu) { Map<String,Object> resultMap = new HashMap<>(); if (manageMenu.getName()==null){ - resultMap.put("flag",false); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } if (manageMenuMapper.getManageMenuByName(manageMenu.getName()) != null){ - resultMap.put("flag",false); - resultMap.put("msg","���������������������"); + resultMap.put("code",ResponseCodeEnum.MENU_IS_EXPIRE.getCode()); + resultMap.put("msg",ResponseCodeEnum.MENU_IS_EXPIRE.getMsg()); }else { manageMenuMapper.insertOne(manageMenu); - resultMap.put("flag",true); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); } return resultMap; } @@ -55,17 +59,17 @@ public Map<String,Object> updateManageMenu(Map map) { Map<String,Object> resultMap = new HashMap<>(); if (!map.containsKey("id")){ - resultMap.put("flag",false); - resultMap.put("msg","������������������������"); + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } if (manageMenuMapper.getManageMenuById(Integer.parseInt(map.get("id").toString())) == null){ - resultMap.put("flag",false); - resultMap.put("msg","���������������������"); + resultMap.put("code",ResponseCodeEnum.MENU_IS_NULL.getCode()); + resultMap.put("msg",ResponseCodeEnum.MENU_IS_NULL.getMsg()); }else { manageMenuMapper.updateManageMenuById(map); - resultMap.put("flag",true); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); } return resultMap; } @@ -75,13 +79,13 @@ public Map<String, Object> deleteManageMenu(Map map) { Map<String,Object> resultMap = new HashMap<>(); if (!map.containsKey("id")){ - resultMap.put("flag",false); - resultMap.put("msg","������������������������"); + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } if (manageMenuMapper.getManageMenuById(Integer.parseInt(map.get("id").toString())) == null){ - resultMap.put("flag",false); - resultMap.put("msg","������������������������������������"); + resultMap.put("code",ResponseCodeEnum.MENU_IS_NULL.getCode()); + resultMap.put("msg",ResponseCodeEnum.MENU_IS_NULL.getMsg()); }else { Map deleteMap = new HashMap(); int id = Integer.parseInt(map.get("id").toString()); @@ -91,9 +95,29 @@ Map role_menuDeleteMap = new HashMap(); role_menuDeleteMap.put("menu_id",id); manageRoleMenuMapper.updateDeleteStateByMenu_id(role_menuDeleteMap); - resultMap.put("flag",true); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); } 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 0ce859d..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 @@ -1,10 +1,20 @@ 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.ManageRoleMenu; import com.moral.api.mapper.ManageRoleMenuMapper; import com.moral.api.service.ManageRoleMenuService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.constant.ResponseCodeEnum; +import org.springframework.beans.factory.annotation.Autowired; 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; /** * <p> @@ -17,4 +27,76 @@ @Service public class ManageRoleMenuServiceImpl extends ServiceImpl<ManageRoleMenuMapper, ManageRoleMenu> implements ManageRoleMenuService { + @Autowired(required = false) + private ManageRoleMenuMapper manageRoleMenuMapper; + + @Override + @Transactional + public Map<String, Object> updateRoleMenu(List list, int id) { + Map<String,Object> resultMap = new HashMap<>(); + if (list.size()==0){ + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); + return resultMap; + } + QueryWrapper<ManageRoleMenu> wrapper = new QueryWrapper(); + wrapper.eq("role_id",id); + 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); + } + 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 c71e9ca..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 @@ -10,6 +10,7 @@ import com.moral.api.service.ManageRoleService; 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.data.domain.Page; import org.springframework.stereotype.Service; @@ -67,23 +68,22 @@ public Map<String,Object> insertOne(ManageRole manageRole,List list) { Map<String,Object> resultMap = new HashMap<>(); if (manageRole.getName()==null){ - resultMap.put("flag",false); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } if (manageRoleMapper.getManageRoleByName(manageRole.getName()) != null){ - resultMap.put("flag",false); - resultMap.put("msg","���������������������"); + resultMap.put("code",ResponseCodeEnum.ROLE_IS_EXPIRE.getCode()); + resultMap.put("msg",ResponseCodeEnum.ROLE_IS_EXPIRE.getMsg()); }else { manageRoleMapper.insertOne(manageRole); - resultMap.put("flag",true); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); } - boolean flag = Boolean.parseBoolean(resultMap.get("flag").toString()); - if (flag){ + Integer code = Integer.parseInt(resultMap.get("code").toString()); + 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<>(); @@ -91,7 +91,6 @@ insertMap.put("menu_id",Integer.parseInt(temp.toString())); insertList.add(insertMap); } - System.out.println(insertList); manageRoleMenuMapper.insertBatch(insertList); } return resultMap; @@ -102,17 +101,17 @@ public Map<String,Object> updateManageRole(Map map) { Map<String,Object> resultMap = new HashMap<>(); if (!map.containsKey("id")){ - resultMap.put("flag",false); - resultMap.put("msg","������������������������"); + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } if (manageRoleMapper.getManageRoleById(Integer.parseInt(map.get("id").toString())) == null){ - resultMap.put("flag",false); - resultMap.put("msg","���������������������"); + resultMap.put("code",ResponseCodeEnum.ROLE_IS_NULL.getCode()); + resultMap.put("msg",ResponseCodeEnum.ROLE_IS_NULL.getMsg()); }else { manageRoleMapper.updateManageRoleById(map); - resultMap.put("flag",true); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); } return resultMap; } @@ -133,13 +132,13 @@ public Map<String, Object> deleteManageRole(Map map) { Map<String,Object> resultMap = new HashMap<>(); if (!map.containsKey("id")){ - resultMap.put("flag",false); - resultMap.put("msg","������������������������"); + resultMap.put("code",ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode()); + resultMap.put("msg",ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); return resultMap; } if (manageRoleMapper.getManageRoleById(Integer.parseInt(map.get("id").toString())) == null){ - resultMap.put("flag",false); - resultMap.put("msg","������������������������������������"); + resultMap.put("code",ResponseCodeEnum.ROLE_IS_NULL.getCode()); + resultMap.put("msg",ResponseCodeEnum.ROLE_IS_NULL.getMsg()); }else { ManageRole manageRole = new ManageRole(); manageRole.setId(Integer.parseInt(map.get("id").toString())); @@ -153,8 +152,8 @@ QueryWrapper<ManageAccountRole> wrapper = new QueryWrapper(); wrapper.eq("role_id",Integer.parseInt(map.get("id").toString())); manageAccountRoleMapper.update(manageAccountRole,wrapper); - resultMap.put("flag",true); - resultMap.put("msg","���������������"); + resultMap.put("code",ResponseCodeEnum.SUCCESS.getCode()); + resultMap.put("msg",ResponseCodeEnum.SUCCESS.getMsg()); } return resultMap; } diff --git a/screen-manage/src/main/resources/application-dev.yml b/screen-manage/src/main/resources/application-dev.yml index 953888b..d865d5a 100644 --- a/screen-manage/src/main/resources/application-dev.yml +++ b/screen-manage/src/main/resources/application-dev.yml @@ -130,6 +130,11 @@ - /organization/update - /organization/delete + - /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