From cd8755a6ac55137176666a6f4fbfd15210389d77 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Fri, 19 Mar 2021 17:33:26 +0800 Subject: [PATCH] 登陆验证码,组分配,菜单分配 --- screen-api/src/main/java/com/moral/api/mapper/MenuMapper.java | 3 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 | 74 ++++++ screen-api/src/main/java/com/moral/api/service/impl/MenuServiceImpl.java | 13 + screen-api/src/main/java/com/moral/api/service/MenuService.java | 3 screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java | 32 +- 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/impl/GroupMenuServiceImpl.java | 33 ++ screen-api/src/main/java/com/moral/api/controller/LoginController.java | 68 ++++- screen-api/src/main/java/com/moral/api/service/GroupService.java | 11 screen-api/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 97 +++++-- screen-api/src/main/java/com/moral/api/controller/UserController.java | 32 + screen-api/src/main/java/com/moral/api/service/UserGroupService.java | 3 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/service/UserService.java | 3 screen-api/src/main/java/com/moral/api/entity/Group.java | 2 screen-api/src/main/java/com/moral/api/service/impl/UserGroupServiceImpl.java | 30 ++ screen-common/src/main/java/com/moral/constant/Constants.java | 1 21 files changed, 586 insertions(+), 108 deletions(-) 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..faf1d3b 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,20 +6,23 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import java.io.IOException; import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; 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.moral.api.service.SysConfigService; import com.moral.api.service.UserService; 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; @@ -32,12 +35,12 @@ 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") + @ApiImplicitParam(name = "account", value = "������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "password", value = "������", required = true, paramType = "query", dataType = "String") }) @RequestMapping(value = "login", method = RequestMethod.POST) public ResultMessage login(HttpServletRequest request) { @@ -47,13 +50,17 @@ } 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 = "������") @RequestMapping(value = "logout", method = RequestMethod.POST) + @ApiImplicitParams({ + @ApiImplicitParam(name = "uid", value = "������", required = false, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") + }) public ResultMessage logout(HttpServletRequest request) { Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); if (!parameters.containsKey("uid")) { @@ -65,20 +72,41 @@ 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); - } - return ResultMessage.fail(msg); + /** + * @Description: ��������������������������� + * @Param: [] + * @return: com.moral.constant.ResultMessage + * @Author: ��������� + * @Date: 2021/3/18 + */ + + @ApiOperation(value = "���������������������������", notes = "���������������������������") + @RequestMapping(value = "verificationCodeConfig", method = RequestMethod.GET) + public ResultMessage verifyConfig() { + return null; } + @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..ecb36f9 --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/controller/MenuController.java @@ -0,0 +1,74 @@ +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("userId")) { + 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(); + } +} 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..6044b15 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 @@ -16,10 +16,12 @@ 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 @@ -92,27 +94,35 @@ 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..4ca4de2 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; @@ -26,7 +27,7 @@ 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..5375285 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,19 @@ 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.entity.UserGroup; 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 +27,27 @@ @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")); + } + } + } } 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..337fc30 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,14 @@ package com.moral.api.service.impl; +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 +22,12 @@ @Service public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements MenuService { + @Autowired + private UserServiceImpl userService; + + @Override + public Map<String, Object> selectMenusByOrgId(Integer orgId) { + userService.getMenus(-1, orgId); + return null; + } } 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..d71bda7 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; @@ -113,7 +114,7 @@ userInfo.put("organizationName", organization.getName()); userInfo.put("locationLevel", organization.getLocationLevel()); userInfo.put("groups", groups); - userInfo.putAll(getMenus(userBo.getId())); + userInfo.putAll(getMenus(userBo.getId(), -1)); try { //������token������������redis String token = TokenUtils.getToken(userBo.getId().toString(), userInfo); @@ -130,8 +131,14 @@ } //������userId������������������������ - private Map<String, Object> getMenus(int userId) { - List<Menu> allMenus = menuMapper.selectUserMenu(userId); + public Map<String, Object> getMenus(int userId, int orgId) { + List<Menu> allMenus; + if (orgId == -1) { + allMenus = menuMapper.selectUserMenu(userId); + } else { + allMenus = menuMapper.selectOrganizationMenu(orgId); + } + Map<String, Object> resultMap = new LinkedHashMap<>(); //��������������� List<Menu> oneMenu = allMenus.stream() @@ -155,7 +162,7 @@ } //������������������������������������ - private List<Map<String, Object>> getMenusByRecursion(Menu menu, List<Menu> menus) { + public 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()); @@ -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,13 @@ @Override @Transactional public void deleteUser(User user) { - //������������������ + //������������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", user.getId()); + userGroupMapper.update(null, deleteWrapper); } @Override @@ -253,16 +261,10 @@ 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()); @@ -298,7 +300,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(); @@ -312,19 +314,54 @@ } @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); + } + //������������ + 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<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 c9cb5f2..f1b4ccb 100644 --- a/screen-common/src/main/java/com/moral/constant/Constants.java +++ b/screen-common/src/main/java/com/moral/constant/Constants.java @@ -8,4 +8,5 @@ public static String NOT_DELETE = "0"; + 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 eba463b..66c5b2b 100644 --- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java +++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java @@ -9,23 +9,25 @@ **/ public enum ResponseCodeEnum { - SUCCESS(0,"������������"), - FAIL(-1,"������������"), - PARAMETERS_IS_MISSING(-2,"���������������"), - TOKEN_INVALID(-3,"token������"), - TOKEN_CREATE_ERROR(-4,"token������������"), - ACCOUNT_NOT_EXIST(-5,"���������������"), - ACCOUNT_EXIST(-6,"������������������"), - ACCOUNT_IS_DELETE(-7,"���������������������"), - PASSWORD_ERROR(-8,"������������"), - MOBILE_INVALID(-9,"���������������"), - EMAIL_INVALID(-10,"������������"), - ACCOUNT_INVALID(-11,"���������������"), - PASSWORD_INVALID(-12,"������������"), - ACCOUNT_IS_EXPIRE(-13,"���������������") + SUCCESS(0, "������������"), + FAIL(-1, "������������"), + PARAMETERS_IS_MISSING(-2, "���������������"), + TOKEN_INVALID(-3, "token������"), + TOKEN_CREATE_ERROR(-4, "token������������"), + ACCOUNT_NOT_EXIST(-5, "���������������"), + ACCOUNT_EXIST(-6, "������������������"), + ACCOUNT_IS_DELETE(-7, "���������������������"), + PASSWORD_ERROR(-8, "������������"), + MOBILE_INVALID(-9, "���������������"), + EMAIL_INVALID(-10, "������������"), + ACCOUNT_INVALID(-11, "���������������"), + PASSWORD_INVALID(-12, "������������"), + ACCOUNT_IS_EXPIRE(-13, "���������������"), + GROUP_EXIST(-14, "������������") + ; private final Integer code; - private final String msg; + private final String msg; ResponseCodeEnum(Integer code, String msg) { this.code = code; 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; -- Gitblit v1.8.0