1 files added
25 files modified
| | |
| | | import com.moral.api.entity.Group; |
| | | import com.moral.api.service.GroupService; |
| | | import com.moral.api.service.UserGroupService; |
| | | import com.moral.api.service.UserService; |
| | | import com.moral.api.utils.OperationLogUtils; |
| | | import com.moral.constant.ResponseCodeEnum; |
| | | import com.moral.constant.ResultMessage; |
| | | import com.moral.util.PageResult; |
| | |
| | | @Autowired |
| | | private UserGroupService userGroupService; |
| | | |
| | | @Autowired |
| | | private UserService userService; |
| | | |
| | | @ApiOperation(value = "添加组", notes = "添加组") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "insert", method = RequestMethod.POST) |
| | | private ResultMessage insert(@RequestBody Group group, HttpServletRequest request) { |
| | | private ResultMessage insert(@RequestBody Group group) { |
| | | 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); |
| | | Map<String, Object> result = groupService.addGroup(group); |
| | | if (!result.isEmpty()) { |
| | | return ResultMessage.fail((int) result.get("code"), result.get("msg").toString()); |
| | | } |
| | |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "delete", method = RequestMethod.POST) |
| | | public ResultMessage delete(@RequestBody Group group, HttpServletRequest request) { |
| | | public ResultMessage delete(@RequestBody Group group) { |
| | | if (group.getId() == null) { |
| | | return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), |
| | | ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | |
| | | @RequestMapping(value = "update", method = RequestMethod.POST) |
| | | public ResultMessage update(@RequestBody Group group, HttpServletRequest request) { |
| | | String token = request.getHeader("token"); |
| | | Map<String, Object> result = groupService.updateGroup(group, token); |
| | | Map<String, Object> result = groupService.updateGroup(group); |
| | | if (!result.isEmpty()) { |
| | | return ResultMessage.fail((int) result.get("code"), result.get("msg").toString()); |
| | | } |
| | |
| | | @ApiImplicitParam(name = "groupName", value = "组名模糊查询", required = false, paramType = "query", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "select", method = RequestMethod.POST) |
| | | public ResultMessage select(@RequestBody Map<String, Object> parameters, HttpServletRequest request) { |
| | | parameters.put("token", request.getHeader("token")); |
| | | public ResultMessage select(@RequestBody Map<String, Object> parameters) { |
| | | Page<Group> userPage = groupService.selectGroups(parameters); |
| | | PageResult<Group> pageResult = new PageResult<>( |
| | | userPage.getTotal(), userPage.getPages(), userPage.getRecords() |
| | |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "allot", method = RequestMethod.POST) |
| | | public ResultMessage allot(@RequestBody Map<String, Object> parameters, HttpServletRequest request) { |
| | | public ResultMessage allot(@RequestBody Map<String, Object> parameters) { |
| | | if (!parameters.containsKey("userId")) { |
| | | return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), |
| | | ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | } |
| | | String token = request.getHeader("token"); |
| | | userGroupService.allotGroups(parameters, token); |
| | | |
| | | String account = userService.getById((Integer) parameters.get("userId")).getAccount(); |
| | | String content = "给账户《" + account + "》分配了组"; |
| | | OperationLogUtils.insertLog(request, content); |
| | | userGroupService.allotGroups(parameters); |
| | | return ResultMessage.ok(); |
| | | } |
| | | } |
New file |
| | |
| | | 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 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 java.util.Map; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.moral.api.entity.UserLog; |
| | | import com.moral.api.service.UserLogService; |
| | | import com.moral.constant.ResultMessage; |
| | | import com.moral.util.PageResult; |
| | | |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/log") |
| | | @Api(tags = "日志") |
| | | public class LogController { |
| | | |
| | | @Autowired |
| | | private UserLogService userLogService; |
| | | |
| | | @ApiOperation(value = "分页查询日志", notes = "分页查询日志") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "page", value = "当前页", required = false, paramType = "query", dataType = "Integer"), |
| | | @ApiImplicitParam(name = "size", value = "每页条数", required = false, paramType = "query", dataType = "Integer"), |
| | | @ApiImplicitParam(name = "type", value = "操作类型,0:登陆,1:添加,2:修改,3:删除", required = false, paramType = "query", dataType = "String"), |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "select", method = RequestMethod.POST) |
| | | public ResultMessage select(@RequestBody Map<String, Object> parameters) { |
| | | Page<UserLog> userLogPage = userLogService.selectLogs(parameters); |
| | | PageResult pageResult = new PageResult<>( |
| | | userLogPage.getTotal(), userLogPage.getPages(), userLogPage.getRecords() |
| | | ); |
| | | return ResultMessage.ok(pageResult); |
| | | } |
| | | } |
| | |
| | | @Autowired |
| | | private SysConfigService sysConfigService; |
| | | |
| | | @Autowired |
| | | private UserLogService userLogService; |
| | | |
| | | @ApiOperation(value = "登陆", notes = "登陆") |
| | | @RequestMapping(value = "login", method = RequestMethod.POST) |
| | | public ResultMessage login(@RequestBody Map<String, Object> parameters, HttpServletRequest request) { |
| | | 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()); |
| | |
| | | |
| | | import com.moral.api.entity.Menu; |
| | | import com.moral.api.service.GroupMenuService; |
| | | import com.moral.api.service.GroupService; |
| | | import com.moral.api.service.MenuService; |
| | | import com.moral.api.utils.OperationLogUtils; |
| | | import com.moral.constant.ResponseCodeEnum; |
| | | import com.moral.constant.ResultMessage; |
| | | import com.moral.util.TokenUtils; |
| | |
| | | @Autowired |
| | | private MenuService menuService; |
| | | |
| | | @Autowired |
| | | private GroupService groupService; |
| | | |
| | | @ApiOperation(value = "组分配菜单", notes = "组分配菜单") |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "allot", method = RequestMethod.POST) |
| | | public ResultMessage allot(@RequestBody Map<String, Object> parameters, HttpServletRequest request) { |
| | | public ResultMessage allot(@RequestBody Map<String, Object> parameters) { |
| | | if (!parameters.containsKey("groupId")) { |
| | | return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), |
| | | ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | | } |
| | | String token = request.getHeader("token"); |
| | | groupMenuService.allotMenus(parameters, token); |
| | | |
| | | String groupName = groupService.getById((Integer) parameters.get("groupId")).getGroupName(); |
| | | String content = "给组<" + groupName + ">分配了菜单"; |
| | | OperationLogUtils.insertLog(request, content); |
| | | groupMenuService.allotMenus(parameters); |
| | | return ResultMessage.ok(); |
| | | } |
| | | |
| | |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "get-menu-ids", method = RequestMethod.GET) |
| | | public ResultMessage getMenuIds(Integer groupId){ |
| | | public ResultMessage getMenuIds(Integer groupId) { |
| | | List<Integer> menusIds = groupMenuService.getMenusIds(groupId); |
| | | return ResultMessage.ok(menusIds); |
| | | } |
| | |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "insert", method = RequestMethod.POST) |
| | | public ResultMessage insert(@RequestBody User user, HttpServletRequest request) { |
| | | public ResultMessage insert(@RequestBody User user) { |
| | | if (user.getAccount().isEmpty() || user.getPassword().isEmpty()) { |
| | | 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.addUser(user); |
| | | if (!result.isEmpty()) { |
| | | return ResultMessage.fail((int) result.get("code"), result.get("msg").toString()); |
| | | } |
| | |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "delete", method = RequestMethod.POST) |
| | | public ResultMessage delete(@RequestBody User user, HttpServletRequest request) { |
| | | public ResultMessage delete(@RequestBody User user) { |
| | | if (user.getId() == null) { |
| | | return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), |
| | | ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); |
| | |
| | | @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") |
| | | }) |
| | | @RequestMapping(value = "update", method = RequestMethod.POST) |
| | | public ResultMessage update(@RequestBody User user, HttpServletRequest request) { |
| | | public ResultMessage update(@RequestBody User user) { |
| | | 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.updateUser(user, token); |
| | | Map<String, Object> result = userService.updateUser(user); |
| | | if (!result.isEmpty()) { |
| | | return ResultMessage.fail((int) result.get("code"), result.get("msg").toString()); |
| | | } |
| | |
| | | |
| | | }) |
| | | @RequestMapping(value = "select", method = RequestMethod.POST) |
| | | public ResultMessage select(@RequestBody Map<String, Object> parameters, HttpServletRequest request) { |
| | | parameters.put("token", request.getHeader("token")); |
| | | public ResultMessage select(@RequestBody Map<String, Object> parameters) { |
| | | Page<User> userPage = userService.selectUsers(parameters); |
| | | PageResult<User> pageResult = new PageResult<>( |
| | | userPage.getTotal(), userPage.getPages(), userPage.getRecords() |
| | |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | |
| | | /** |
| | | * 创建时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createTime; |
| | | |
| | | /** |
| | | * 更新时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date updateTime; |
| | | |
| | | /** |
| | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | |
| | | * </p> |
| | | * |
| | | * @author moral |
| | | * @since 2021-03-09 |
| | | * @since 2021-04-13 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | |
| | | private Integer id; |
| | | |
| | | /** |
| | | * 操作人员id |
| | | */ |
| | | private Integer accountId; |
| | | |
| | | /** |
| | | * 操作人员账号 |
| | | */ |
| | | private String account; |
| | | |
| | | /** |
| | | * 操作人员 |
| | | */ |
| | | private String userName; |
| | | |
| | | /** |
| | | * 操作类型 |
| | | */ |
| | | private String type; |
| | | |
| | | /** |
| | | * 操作描述 |
| | | */ |
| | | private String content; |
| | | |
| | | /** |
| | | * 组织Id |
| | | */ |
| | | private Integer organizationId; |
| | | |
| | | /** |
| | | * 操作人员id |
| | | */ |
| | | private Integer operateId; |
| | | |
| | | /** |
| | | * Ip地址 |
| | |
| | | /** |
| | | * 操作时间 |
| | | */ |
| | | private Date createTime; |
| | | private LocalDateTime createTime; |
| | | |
| | | |
| | | @Override |
| | |
| | | package com.moral.api.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | |
| | | /** |
| | | * 菜单名 |
| | | */ |
| | | @TableField(value = "`name`") |
| | | private String name; |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 同一级别菜单的顺序 |
| | | */ |
| | | @TableField(value = "`order`") |
| | | private Integer order; |
| | | |
| | | /** |
| | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.extension.activerecord.Model; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | |
| | | * </p> |
| | | * |
| | | * @author moral |
| | | * @since 2021-03-09 |
| | | * @since 2021-04-13 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Integer id; |
| | | |
| | | /** |
| | | * 操作类型 |
| | | */ |
| | | private String type; |
| | | |
| | | /** |
| | | * 操作描述 |
| | |
| | | /** |
| | | * 操作时间 |
| | | */ |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createTime; |
| | | |
| | | |
| | |
| | | * </p> |
| | | * |
| | | * @author moral |
| | | * @since 2021-03-09 |
| | | * @since 2021-04-13 |
| | | */ |
| | | public interface ManageLogMapper extends BaseMapper<ManageLog> { |
| | | |
| | |
| | | */ |
| | | public interface GroupMenuService extends IService<GroupMenu> { |
| | | |
| | | void allotMenus(Map<String, Object> parameters, String token); |
| | | void allotMenus(Map<String, Object> parameters); |
| | | |
| | | List<Integer> getMenusIds(Integer groupId); |
| | | } |
| | |
| | | */ |
| | | public interface GroupService extends IService<Group> { |
| | | |
| | | Map<String, Object> addGroup(Group group, String token); |
| | | Map<String, Object> addGroup(Group group); |
| | | |
| | | void deleteGroup(Group group); |
| | | |
| | | Map<String, Object> updateGroup(Group group, String token); |
| | | Map<String, Object> updateGroup(Group group); |
| | | |
| | | Page<Group> selectGroups(Map<String, Object> parameters); |
| | | |
| | |
| | | * </p> |
| | | * |
| | | * @author moral |
| | | * @since 2021-03-09 |
| | | * @since 2021-04-13 |
| | | */ |
| | | public interface ManageLogService extends IService<ManageLog> { |
| | | |
| | |
| | | */ |
| | | public interface UserGroupService extends IService<UserGroup> { |
| | | |
| | | void allotGroups(Map<String, Object> parameters, String token); |
| | | void allotGroups(Map<String, Object> parameters); |
| | | |
| | | List<Integer> getGroupIds(Integer userId); |
| | | } |
| | |
| | | package com.moral.api.service; |
| | | |
| | | import java.util.Map; |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.moral.api.entity.UserLog; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | |
| | | */ |
| | | public interface UserLogService extends IService<UserLog> { |
| | | |
| | | Page<UserLog> selectLogs(Map<String, Object> parameters); |
| | | |
| | | } |
| | |
| | | |
| | | Map<String, Object> getMenus(Map<String, Object> parameters); |
| | | |
| | | Map<String, Object> addUser(User user, String token); |
| | | Map<String, Object> addUser(User user); |
| | | |
| | | void deleteUser(User user); |
| | | |
| | | Map<String, Object> updateUser(User user, String token); |
| | | Map<String, Object> updateUser(User user); |
| | | |
| | | Page<User> selectUsers(Map<String, Object> parameters); |
| | | |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.moral.api.entity.GroupMenu; |
| | | import com.moral.api.mapper.GroupMapper; |
| | | import com.moral.api.mapper.GroupMenuMapper; |
| | | import com.moral.api.mapper.MenuMapper; |
| | | import com.moral.api.service.GroupMenuService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.api.utils.OperationLogUtils; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.util.TokenUtils; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Autowired |
| | | private GroupMenuMapper groupMenuMapper; |
| | | |
| | | @Autowired |
| | | private GroupMapper groupMapper; |
| | | |
| | | @Autowired |
| | | private MenuMapper menuMapper; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void allotMenus(Map<String, Object> parameters, String token) { |
| | | public void allotMenus(Map<String, Object> parameters) { |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("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); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | | UpdateWrapper<GroupMenu> deleteWrapper = new UpdateWrapper<>(); |
| | | deleteWrapper.set("is_delete", Constants.DELETE) |
| | | .eq("group_id", groupId) |
| | | .eq("channel", Constants.WEB_CHANNEL); |
| | | groupMenuMapper.update(null, deleteWrapper); |
| | | deleteWrapper.eq("group_id", groupId).eq("channel", Constants.WEB_CHANNEL); |
| | | groupMenuMapper.delete(deleteWrapper); |
| | | List<String> menus = new ArrayList<>(); |
| | | if (menuIds != null && !menuIds.isEmpty()) { |
| | | for (Integer menuId : menuIds) { |
| | | menuIds.forEach(menuId -> { |
| | | menus.add(menuMapper.selectById(menuId).getName()); |
| | | GroupMenu groupMenu = new GroupMenu(); |
| | | groupMenu.setGroupId(groupId); |
| | | groupMenu.setMenuId(menuId); |
| | | groupMenu.setChannel(Constants.WEB_CHANNEL); |
| | | groupMenu.setOrganizationId((Integer) orgInfo.get("id")); |
| | | groupMenuMapper.insert(groupMenu); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | //日志 |
| | | String groupName = groupMapper.selectById((Integer) parameters.get("groupId")).getGroupName(); |
| | | String content = "给组:" + groupName + "分配了菜单:" + menus.toString(); |
| | | OperationLogUtils.insertLog(request, content, Constants.UPDATE_OPERATE_TYPE); |
| | | } |
| | | |
| | | @Override |
| | |
| | | queryWrapper.eq("group_id", groupId).eq("is_delete", Constants.NOT_DELETE); |
| | | List<GroupMenu> groupMenus = groupMenuMapper.selectList(queryWrapper); |
| | | List<Integer> menuIds = new ArrayList<>(); |
| | | for (GroupMenu groupMenu : groupMenus) { |
| | | menuIds.add(groupMenu.getMenuId()); |
| | | } |
| | | groupMenus.forEach(groupMenu -> menuIds.add(groupMenu.getMenuId())); |
| | | return menuIds; |
| | | } |
| | | } |
| | |
| | | private UserGroupMapper userGroupMapper; |
| | | |
| | | @Override |
| | | public Map<String, Object> addGroup(Group group, String token) { |
| | | public Map<String, Object> addGroup(Group group) { |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("token"); |
| | | |
| | | Map<String, Object> result = new HashMap<>(); |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | |
| | | } |
| | | group.setOrganizationId(orgId); |
| | | groupMapper.insert(group); |
| | | |
| | | //日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String content = "添加了组:" + group.getGroupName(); |
| | | OperationLogUtils.insertLog(request, content); |
| | | OperationLogUtils.insertLog(request, content, Constants.INSERT_OPERATE_TYPE); |
| | | return result; |
| | | } |
| | | |
| | |
| | | //逻辑删除group |
| | | group.setIsDelete(Constants.DELETE); |
| | | groupMapper.updateById(group); |
| | | //逻辑删除group_menu |
| | | //删除group_menu |
| | | UpdateWrapper<GroupMenu> deleteGroupWrapper = new UpdateWrapper<>(); |
| | | deleteGroupWrapper.set("is_delete", Constants.DELETE).eq("group_id", group.getId()); |
| | | groupMenuMapper.update(null, deleteGroupWrapper); |
| | | //逻辑删除user_group |
| | | deleteGroupWrapper.eq("group_id", group.getId()); |
| | | groupMenuMapper.delete(deleteGroupWrapper); |
| | | //删除user_group |
| | | UpdateWrapper<UserGroup> deleteUserGroupWrapper = new UpdateWrapper<>(); |
| | | deleteUserGroupWrapper.set("is_delete", Constants.DELETE).eq("group_id", group.getId()); |
| | | userGroupMapper.update(null, deleteUserGroupWrapper); |
| | | deleteUserGroupWrapper.eq("group_id", group.getId()); |
| | | userGroupMapper.delete(deleteUserGroupWrapper); |
| | | //日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String content = "删除了组:" + group.getGroupName(); |
| | | OperationLogUtils.insertLog(request, content); |
| | | OperationLogUtils.insertLog(request, content, Constants.DELETE_OPERATE_TYPE); |
| | | } |
| | | |
| | | @Override |
| | | public Map<String, Object> updateGroup(Group group, String token) { |
| | | public Map<String, Object> updateGroup(Group group) { |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("token"); |
| | | |
| | | String before = groupMapper.selectById(group.getId()).getGroupName(); |
| | | Map<String, Object> result = new HashMap<>(); |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | |
| | | group.setOrganizationId(orgId); |
| | | groupMapper.updateById(group); |
| | | //日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String content = "修改了组:" + group.getGroupName(); |
| | | OperationLogUtils.insertLog(request, content); |
| | | String content = "修改了组:" + before + "=>" + group.getGroupName(); |
| | | OperationLogUtils.insertLog(request, content, Constants.UPDATE_OPERATE_TYPE); |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public Page<Group> selectGroups(Map<String, Object> parameters) { |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(parameters.get("token").toString()); |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("token"); |
| | | |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | | Integer orgId = (Integer) orgInfo.get("id"); |
| | | QueryWrapper<Group> queryWrapper = new QueryWrapper<>(); |
| | |
| | | * </p> |
| | | * |
| | | * @author moral |
| | | * @since 2021-03-09 |
| | | * @since 2021-04-13 |
| | | */ |
| | | @Service |
| | | public class ManageLogServiceImpl extends ServiceImpl<ManageLogMapper, ManageLog> implements ManageLogService { |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.moral.api.entity.UserGroup; |
| | | import com.moral.api.mapper.GroupMapper; |
| | | import com.moral.api.mapper.UserGroupMapper; |
| | | import com.moral.api.mapper.UserMapper; |
| | | import com.moral.api.service.UserGroupService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.api.utils.OperationLogUtils; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.util.TokenUtils; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Autowired |
| | | private UserGroupMapper userGroupMapper; |
| | | |
| | | @Autowired |
| | | private UserMapper userMapper; |
| | | |
| | | @Autowired |
| | | private GroupMapper groupMapper; |
| | | |
| | | @Override |
| | | @Transactional |
| | | public void allotGroups(Map<String, Object> parameters, String token) { |
| | | public void allotGroups(Map<String, Object> parameters) { |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("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); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | | 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) { |
| | | deleteWrapper.eq("user_id", userId); |
| | | userGroupMapper.delete(deleteWrapper); |
| | | List<String> groups = new ArrayList<>(); |
| | | if (groupIds != null && !groupIds.isEmpty()) { |
| | | groupIds.forEach(groupId -> { |
| | | groups.add(groupMapper.selectById(groupId).getGroupName()); |
| | | UserGroup userGroup = new UserGroup(); |
| | | userGroup.setUserId(userId); |
| | | userGroup.setGroupId(groupId); |
| | | userGroup.setOrganizationId((Integer) orgInfo.get("id")); |
| | | userGroupMapper.insert(userGroup); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //日志 |
| | | String account = userMapper.selectById((Integer) parameters.get("userId")).getAccount(); |
| | | String content = "给用户:" + account + "分配了组:" + groups.toString(); |
| | | OperationLogUtils.insertLog(request, content, Constants.UPDATE_OPERATE_TYPE); |
| | | } |
| | | |
| | | @Override |
| | |
| | | queryWrapper.eq("user_id", userId).eq("is_delete", Constants.NOT_DELETE); |
| | | List<UserGroup> userGroups = userGroupMapper.selectList(queryWrapper); |
| | | List<Integer> groupIds = new ArrayList<>(); |
| | | for (UserGroup userGroup : userGroups) { |
| | | groupIds.add(userGroup.getGroupId()); |
| | | } |
| | | userGroups.forEach(userGroup -> groupIds.add(userGroup.getGroupId())); |
| | | return groupIds; |
| | | } |
| | | } |
| | |
| | | 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.UserLog; |
| | | import com.moral.api.mapper.UserLogMapper; |
| | | import com.moral.api.service.UserLogService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.util.TokenUtils; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | @Service |
| | | public class UserLogServiceImpl extends ServiceImpl<UserLogMapper, UserLog> implements UserLogService { |
| | | |
| | | @Autowired |
| | | private UserLogMapper userLogMapper; |
| | | |
| | | @Override |
| | | public Page<UserLog> selectLogs(Map<String, Object> parameters) { |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("token"); |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | | Object orgId = orgInfo.get("id"); |
| | | QueryWrapper<UserLog> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("organization_id", orgId); |
| | | Object type = parameters.get("type"); |
| | | if (type != null) { |
| | | queryWrapper.eq("type", type); |
| | | } |
| | | queryWrapper.orderByDesc("create_time"); |
| | | Integer page = (Integer) parameters.get("page"); |
| | | Integer size = (Integer) parameters.get("size"); |
| | | Page<UserLog> userLogPage = new Page<>(page, size); |
| | | userLogMapper.selectPage(userLogPage, queryWrapper); |
| | | return userLogPage; |
| | | } |
| | | } |
| | |
| | | package com.moral.api.service.impl; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.Date; |
| | |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | |
| | | import com.moral.api.entity.Organization; |
| | | import com.moral.api.entity.User; |
| | | import com.moral.api.entity.UserGroup; |
| | | |
| | | import com.moral.api.entity.UserLog; |
| | | import com.moral.api.mapper.MenuMapper; |
| | | import com.moral.api.mapper.UserGroupMapper; |
| | |
| | | //日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | UserLog userLog = new UserLog(); |
| | | userLog.setType(Constants.LOGIN_OPERTATE_TYPE); |
| | | userLog.setIp(WebUtils.getIpAddr(request)); |
| | | userLog.setOperateId(userBo.getId()); |
| | | userLog.setOrganizationId(userBo.getOrganizationId()); |
| | |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Map<String, Object> addUser(User user, String token) { |
| | | public Map<String, Object> addUser(User user) { |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("token"); |
| | | |
| | | Map<String, Object> result = new HashMap<>(); |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); |
| | | |
| | |
| | | } |
| | | userMapper.insert(user); |
| | | //日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String content = "添加了用户:" + user.getAccount(); |
| | | OperationLogUtils.insertLog(request, content); |
| | | OperationLogUtils.insertLog(request, content, Constants.INSERT_OPERATE_TYPE); |
| | | return result; |
| | | } |
| | | |
| | |
| | | //逻辑删除user |
| | | user.setIsDelete(Constants.DELETE); |
| | | userMapper.updateById(user); |
| | | //逻辑删除user_group |
| | | //删除user_group |
| | | UpdateWrapper<UserGroup> deleteWrapper = new UpdateWrapper<>(); |
| | | deleteWrapper.set("is_delete", Constants.DELETE).eq("user_id", userId); |
| | | deleteWrapper.eq("user_id", userId); |
| | | userGroupMapper.delete(deleteWrapper); |
| | | //更新redis |
| | | if (TokenUtils.hHasKey(userId)) { |
| | | String token = TokenUtils.hget(userId).toString(); |
| | | TokenUtils.destoryToken(userId, token); |
| | | } |
| | | userGroupMapper.update(null, deleteWrapper); |
| | | //日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String content = "删除了用户:" + user.getAccount(); |
| | | OperationLogUtils.insertLog(request, content); |
| | | OperationLogUtils.insertLog(request, content, Constants.DELETE_OPERATE_TYPE); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public Map<String, Object> updateUser(User user, String token) { |
| | | public Map<String, Object> updateUser(User user) { |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("token"); |
| | | |
| | | //更新的属性 |
| | | Map<String, Object> update = JSONObject.parseObject(JSON.toJSONString(user), Map.class); |
| | | Map<String, Object> result = new HashMap<>(); |
| | |
| | | userMapper.updateById(user); |
| | | |
| | | //日志 |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | StringBuilder content = new StringBuilder("修改了用户:" + user.getAccount() + "->"); |
| | | for (String key : update.keySet()) { |
| | | Object afterValue = update.get(key); |
| | |
| | | content.append(key).append(":").append(beforeValue).append("=>").append(afterValue).append(";"); |
| | | } |
| | | } |
| | | OperationLogUtils.insertLog(request, content.toString()); |
| | | OperationLogUtils.insertLog(request, content.toString(), Constants.UPDATE_OPERATE_TYPE); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public Page<User> selectUsers(Map<String, Object> parameters) { |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(parameters.get("token").toString()); |
| | | HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); |
| | | String token = request.getHeader("token"); |
| | | |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | | QueryWrapper<User> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("organization_id", orgInfo.get("id")) |
| | |
| | | queryWrapper.orderByDesc("create_time"); |
| | | } |
| | | userMapper.selectPage(pageData, queryWrapper); |
| | | |
| | | return pageData; |
| | | } |
| | | |
| | |
| | | this.userLogService = userLogService; |
| | | } |
| | | |
| | | public static void insertLog(HttpServletRequest request, String content) { |
| | | public static void insertLog(HttpServletRequest request, String content, String type) { |
| | | String token = request.getHeader("token"); |
| | | Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); |
| | | UserLog userLog = new UserLog(); |
| | | userLog.setType(type); |
| | | userLog.setIp(WebUtils.getIpAddr(request)); |
| | | userLog.setOperateId((Integer) currentUserInfo.get("userId")); |
| | | Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); |
| | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.moral.api.entity.ManageLog"> |
| | | <id column="id" property="id" /> |
| | | <result column="account_id" property="accountId" /> |
| | | <result column="account" property="account" /> |
| | | <result column="user_name" property="userName" /> |
| | | <result column="type" property="type" /> |
| | | <result column="content" property="content" /> |
| | | <result column="organization_id" property="organizationId" /> |
| | | <result column="operate_id" property="operateId" /> |
| | | <result column="ip" property="ip" /> |
| | | <result column="create_time" property="createTime" /> |
| | | </resultMap> |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.moral.api.mapper.UserLogMapper"> |
| | | |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.moral.api.entity.UserLog"> |
| | | <id column="id" property="id" /> |
| | | <result column="content" property="content" /> |
| | | <result column="organization_id" property="organizationId" /> |
| | | <result column="operate_id" property="operateId" /> |
| | | <result column="ip" property="ip" /> |
| | | <result column="create_time" property="createTime" /> |
| | | </resultMap> |
| | | <!-- 通用查询映射结果 --> |
| | | <resultMap id="BaseResultMap" type="com.moral.api.entity.UserLog"> |
| | | <id column="id" property="id" /> |
| | | <result column="type" property="type" /> |
| | | <result column="content" property="content" /> |
| | | <result column="organization_id" property="organizationId" /> |
| | | <result column="operate_id" property="operateId" /> |
| | | <result column="ip" property="ip" /> |
| | | <result column="create_time" property="createTime" /> |
| | | </resultMap> |
| | | |
| | | </mapper> |