|  |  | 
 |  |  | 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.api.utils.OperationLogUtils; | 
 |  |  | import com.moral.constant.Constants; | 
 |  |  | import com.moral.constant.ResponseCodeEnum; | 
 |  |  | import com.moral.util.RegexUtils; | 
 |  |  | import com.moral.util.ConvertUtils; | 
 |  |  | import com.moral.util.TokenUtils; | 
 |  |  |  | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private UserGroupMapper userGroupMapper; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private OperationLogUtils operationLogUtils; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Map<String, Object> addGroup(Group group, String token) { | 
 |  |  |     public Map<String, Object> addGroup(Group group) { | 
 |  |  |         Map<String, Object> result = new HashMap<>(); | 
 |  |  |         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); | 
 |  |  |         Integer orgId = (int) currentUserInfo.get("organizationId"); | 
 |  |  |         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
 |  |  |         Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); | 
 |  |  |         Integer orgId = (Integer) orgInfo.get("id"); | 
 |  |  |         QueryWrapper<Group> queryWrapper = new QueryWrapper<>(); | 
 |  |  |         queryWrapper.eq("group_name", group.getGroupName()) | 
 |  |  |                 .eq("organization_id", orgId) | 
 |  |  | 
 |  |  |         } | 
 |  |  |         group.setOrganizationId(orgId); | 
 |  |  |         groupMapper.insert(group); | 
 |  |  |  | 
 |  |  |         //日志 | 
 |  |  |         String content = "添加了组:" + group.getGroupName(); | 
 |  |  |         operationLogUtils.insertLog(content, Constants.INSERT_OPERATE_TYPE); | 
 |  |  |         return result; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void deleteGroup(Group group) { | 
 |  |  |     public void deleteGroup(Integer id) { | 
 |  |  |         //逻辑删除group | 
 |  |  |         group.setIsDelete(Constants.DELETE); | 
 |  |  |         groupMapper.updateById(group); | 
 |  |  |         //逻辑删除group_menu | 
 |  |  |         UpdateWrapper<Group> updateWrapper = new UpdateWrapper<>(); | 
 |  |  |         updateWrapper.eq("id", id).set("is_delete", Constants.DELETE); | 
 |  |  |         groupMapper.update(null, updateWrapper); | 
 |  |  |         //删除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", id); | 
 |  |  |         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", id); | 
 |  |  |         userGroupMapper.delete(deleteUserGroupWrapper); | 
 |  |  |         //日志 | 
 |  |  |         String content = "删除了组:" + groupMapper.selectById(id).getGroupName(); | 
 |  |  |         operationLogUtils.insertLog(content, Constants.DELETE_OPERATE_TYPE); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Map<String, Object> updateGroup(Group group, String token) { | 
 |  |  |     public Map<String, Object> updateGroup(Group group) { | 
 |  |  |         String before = groupMapper.selectById(group.getId()).getGroupName(); | 
 |  |  |         Map<String, Object> result = new HashMap<>(); | 
 |  |  |         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfoByToken(token); | 
 |  |  |         Object organizationId = currentUserInfo.get("organizationId"); | 
 |  |  |         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
 |  |  |         Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); | 
 |  |  |         Integer orgId = (Integer) orgInfo.get("id"); | 
 |  |  |         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); | 
 |  |  |                 .eq("organization_id", orgId); | 
 |  |  |         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); | 
 |  |  |         group.setOrganizationId(orgId); | 
 |  |  |         groupMapper.updateById(group); | 
 |  |  |         //日志 | 
 |  |  |         String content = "修改了组:" + before + "=>" + group.getGroupName(); | 
 |  |  |         operationLogUtils.insertLog(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()); | 
 |  |  |         Object organizationId = currentUserInfo.get("organizationId"); | 
 |  |  |         Map<String, Object> currentUserInfo = (Map<String, Object>) TokenUtils.getUserInfo(); | 
 |  |  |         Map<String, Object> orgInfo = (Map<String, Object>) currentUserInfo.get("organization"); | 
 |  |  |         Integer orgId = (Integer) orgInfo.get("id"); | 
 |  |  |         QueryWrapper<Group> queryWrapper = new QueryWrapper<>(); | 
 |  |  |         queryWrapper.eq("organization_id", organizationId) | 
 |  |  |                 .eq("is_delete", Constants.NOT_DELETE); | 
 |  |  |         queryWrapper.eq("organization_id", orgId) | 
 |  |  |                 .eq("is_delete", Constants.NOT_DELETE) | 
 |  |  |                 .ne("group_name", "admin"); | 
 |  |  |         Object order = parameters.get("order"); | 
 |  |  |         Object orderType = parameters.get("orderType"); | 
 |  |  |         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"); | 
 |  |  |         //排序参数,默认create_time降序 | 
 |  |  |         if (order != null && orderType != null) { | 
 |  |  |             if (Constants.ORDER_ASC.equals(orderType)) { | 
 |  |  |                 queryWrapper.orderByAsc(ConvertUtils.toLine(order.toString())); | 
 |  |  |             } else { | 
 |  |  |                 queryWrapper.orderByDesc(ConvertUtils.toLine(order.toString())); | 
 |  |  |             } | 
 |  |  |         } else { | 
 |  |  |             queryWrapper.orderByAsc(order.toString(), "id"); | 
 |  |  |             queryWrapper.orderByDesc("create_time"); | 
 |  |  |         } | 
 |  |  |         Page<Group> groupPage = groupMapper.selectPage(pageData, queryWrapper); | 
 |  |  |  | 
 |  |  |         pageData.setRecords(groupPage.getRecords()); | 
 |  |  |         return groupPage; | 
 |  |  |         groupMapper.selectPage(pageData, queryWrapper); | 
 |  |  |         return pageData; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Map<String, Object> getGroup(Integer userId) { | 
 |  |  |         return groupMapper.selectUserGroup(userId); | 
 |  |  |     } | 
 |  |  | } |