From f9f8f90ac63d6ce3274410d3721b173f40db6e41 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Fri, 25 Aug 2023 14:12:48 +0800 Subject: [PATCH] chore:过滤海城小时数据 --- screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java | 290 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 289 insertions(+), 1 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java index 24a141e..e0b6b0d 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java @@ -1,10 +1,39 @@ package com.moral.api.service.impl; +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.config.mybatis.wrapper.NullFilterWrapper; +import com.moral.api.entity.Group; +import com.moral.api.entity.Organization; import com.moral.api.entity.User; -import com.moral.api.mapper.UserMapper; +import com.moral.api.entity.UserGroup; +import com.moral.api.mapper.*; +import com.moral.api.pojo.dto.user.UserDTO; +import com.moral.api.pojo.dto.user.UserQueryDTO; +import com.moral.api.pojo.form.user.UserDeleteForm; +import com.moral.api.pojo.form.user.UserInsertForm; +import com.moral.api.pojo.form.user.UserQueryForm; +import com.moral.api.pojo.form.user.UserUpdateForm; import com.moral.api.service.UserService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.util.CompareFieldUtils; +import com.moral.api.util.LogUtils; +import com.moral.constant.Constants; +import com.moral.constant.ResponseCodeEnum; +import com.moral.pojo.CompareFieldResult; +import com.moral.util.ConvertUtils; +import com.moral.util.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.ObjectUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.logging.SimpleFormatter; /** * <p> @@ -17,4 +46,263 @@ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { + @Autowired + UserMapper userMapper; + @Autowired + OrganizationMapper organizationMapper; + @Autowired + GroupMapper groupMapper; + @Autowired + UserGroupMapper userGroupMapper; + @Autowired + GroupMenuMapper groupMenuMapper; + + + @Override + public UserQueryDTO queryUsers(UserQueryForm form) { + //������������������ + UserQueryDTO dto = new UserQueryDTO(); + //������ + Integer page = form.getPage(); + Integer size = form.getSize(); + String email = form.getEmail(); + String mobile = form.getMobile(); + String wechat = form.getWechat(); + String order = form.getOrder(); + String orderType = form.getOrderType(); + Integer organizationId = form.getOrganizationId(); + Date exipreStartTime = form.getExpireStartTime(); + Date exipreEndTime = form.getExpireEndTime(); + Date createStartTime = form.getCreateStartTime(); + Date createEndTime = form.getCreateEndTime(); + Integer isDelete = form.getIsDelete(); + + //������������������ + Page<User> queryPage = new Page<>(page, size); + NullFilterWrapper<User> wrapper = new NullFilterWrapper<>(); + wrapper.like("email", email); + wrapper.like("wechat", wechat); + wrapper.like("mobile", mobile); + wrapper.eq("is_admin", 1); + wrapper.eq("organization_id", organizationId); + wrapper.between("create_time", createStartTime, createEndTime); + wrapper.between("expire_time", exipreStartTime, exipreEndTime); + //������������������������ + if (!ObjectUtils.isEmpty(order) && !ObjectUtils.isEmpty(orderType)) { + if (orderType.equals(Constants.ORDER_ASC)) + wrapper.orderByAsc(ConvertUtils.toLine(order)); + else + wrapper.orderByDesc(ConvertUtils.toLine(order)); + } + //������������������������ + if (!ObjectUtils.isEmpty(isDelete)) + wrapper.eq("is_delete", isDelete); + else + wrapper.eq("is_delete", Constants.NOT_DELETE); + + //������������ + Page<User> resultPage = userMapper.selectPage(queryPage, wrapper); + List<User> users = resultPage.getRecords(); + + //������������������������ + List<UserDTO> userDTOS = new ArrayList<>(); + for (User user : users) { + UserDTO userDTO = new UserDTO(); + Organization organization = new Organization(); + organization.setId(user.getOrganizationId()); + organization.setIsDelete(Constants.NOT_DELETE); + QueryWrapper<Organization> organizationWrapper = new QueryWrapper<>(); + organizationWrapper.setEntity(organization); + organization = organizationMapper.selectOne(organizationWrapper); + userDTO.setUser(user); + userDTO.setOrganization(organization); + userDTOS.add(userDTO); + } + + //������������������ + dto.setUserDTOS(userDTOS); + dto.setCurrent(resultPage.getCurrent()); + dto.setPages(resultPage.getPages()); + dto.setSize(resultPage.getSize()); + dto.setTotal(resultPage.getTotal()); + dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); + dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); + + return dto; + } + + @Override + @Transactional + public UserDTO updateUser(UserUpdateForm form) { + //������������������ + UserDTO dto = new UserDTO(); + + //������ + User user = form.formConvertEntity(); + + //������������������������ ������������������ + QueryWrapper<User> oldUserWrapper = new QueryWrapper<>(); + User oldUser = new User(); + oldUser.setId(user.getId()); + oldUser.setIsDelete(Constants.NOT_DELETE); + oldUserWrapper.setEntity(oldUser); + oldUser = userMapper.selectOne(oldUserWrapper); + if (ObjectUtils.isEmpty(oldUser)) { + dto.setCode(ResponseCodeEnum.USER_NOT_EXIST.getCode()); + dto.setMsg(ResponseCodeEnum.USER_NOT_EXIST.getMsg()); + return dto; + } + + //������ + userMapper.updateById(user); + + //������������������������ + user = userMapper.selectById(user.getId()); + + //������������ + updatelog(oldUser,user); + + //������������������ + dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); + dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); + + return dto; + } + + @Override + @Transactional + public UserDTO insertUser(UserInsertForm form) { + //������������������ + UserDTO dto = new UserDTO(); + //������ + User user = form.formConvertEntity(); + //������������������������ + User existUser = new User(); + existUser.setAccount(user.getAccount()); + existUser.setIsDelete(Constants.NOT_DELETE); + QueryWrapper<User> wrapper = new QueryWrapper<>(); + wrapper.setEntity(existUser); + User existUserResult = userMapper.selectOne(wrapper); + if (!ObjectUtils.isEmpty(existUserResult)) { + dto.setCode(ResponseCodeEnum.USER_EXIST.getCode()); + dto.setMsg(ResponseCodeEnum.USER_EXIST.getMsg()); + return dto; + } + //��������������������������������������������� + Integer organizationId = user.getOrganizationId(); + User organizationUser = new User(); + organizationUser.setIsAdmin(true); + organizationUser.setIsDelete(Constants.NOT_DELETE); + organizationUser.setOrganizationId(organizationId); + QueryWrapper<User> organizationUserWrapper = new QueryWrapper<>(); + organizationUserWrapper.setEntity(organizationUser); + organizationUser = userMapper.selectOne(organizationUserWrapper); + if (!ObjectUtils.isEmpty(organizationUser)) { + dto.setCode(ResponseCodeEnum.ORGANIZATION_USER_EXIST.getCode()); + dto.setMsg(ResponseCodeEnum.ORGANIZATION_USER_EXIST.getMsg()); + return dto; + } + //��������������� + userMapper.insert(user); + //������������admin������ + Group group = new Group(); + group.setOrganizationId(organizationId); + group.setGroupName("admin"); + groupMapper.insert(group); + //��������������������������� + UserGroup userGroup = new UserGroup(); + userGroup.setUserId(user.getId()); + userGroup.setGroupId(group.getId()); + userGroup.setOrganizationId(organizationId); + userGroupMapper.insert(userGroup); + //������������ + Organization organization = new Organization(); + organization.setAdminUserId(user.getId()); + organization.setId(organizationId); + organizationMapper.updateById(organization); + //������������������ + insertLog(user,organizationId); + //������������������ + dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); + dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); + return dto; + } + + + @Override + @Transactional + public UserDTO deleteUsersByOrganizationId(Integer organizationId) { + //������������������ + UserDTO dto = new UserDTO(); + //������������������������������������������������������������ + UpdateWrapper<User> deleteUserChildrenWrapper = new UpdateWrapper<>(); + deleteUserChildrenWrapper.eq("organization_id", organizationId); + deleteUserChildrenWrapper.set("is_delete", Constants.DELETE); + userMapper.update(null, deleteUserChildrenWrapper); + //���������������groupMenu + UpdateWrapper deleteGroupMenuWrapper = new UpdateWrapper(); + deleteGroupMenuWrapper.eq("organization_id", organizationId); + deleteGroupMenuWrapper.set("is_delete", Constants.DELETE); + groupMenuMapper.update(null, deleteGroupMenuWrapper); + //���������������userGroup + UpdateWrapper deleteUserGroupWrapper = new UpdateWrapper(); + deleteUserGroupWrapper.eq("organization_id", organizationId); + deleteUserGroupWrapper.set("is_delete", Constants.DELETE); + userGroupMapper.update(null, deleteUserGroupWrapper); + //���������������group + UpdateWrapper deleteGroupWrapper = new UpdateWrapper(); + deleteGroupWrapper.eq("organization_id", organizationId); + deleteGroupWrapper.set("is_delete", Constants.DELETE); + groupMapper.update(null, deleteGroupWrapper); + //������������ + dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); + dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); + return dto; + } + + /** + * @Description: ������������������������ + * @Param: [user, organizationId] + * @return: void + * @Author: ��������� + * @Date: 2021/8/24 + */ + private void insertLog(User user,Integer organizationId) { + StringBuilder content = new StringBuilder("���������������������;"); + content.append("���������admin;"); + //������������admin��������������� + Organization organization = organizationMapper.selectById(organizationId); + content.append("���������"+organization.getName()+";"); + content.append("���������"+user.getAccount()+";"); + content.append("���������������"+user.getUserName()+";"); + content.append("���������������"+ DateUtils.dateToDateString(user.getExpireTime(),"yyyy-MM-dd")+";"); + if(user.getEmail()!=null) + content.append("���������"+user.getEmail()+";"); + if(user.getMobile()!=null) + content.append("���������"+user.getMobile()+";"); + if(user.getWechat()!=null) + content.append("���������"+user.getWechat()+";"); + LogUtils.saveOperationForManage(content.toString(), Constants.INSERT_OPERATE_TYPE); + } + + + /** + * @Description: ������������������������ + * @Param: [oldUser, newUser] + * @return: void + * @Author: ��������� + * @Date: 2021/8/24 + */ + private void updatelog(User oldUser,User newUser){ + List<CompareFieldResult> results = CompareFieldUtils.compare(User.class, oldUser, newUser); + StringBuilder content = new StringBuilder("���������������������;"); + content.append("���������������"+organizationMapper.selectById(oldUser.getOrganizationId()).getName()+";"); + //������������������ + if(newUser.getPassword()!=null) + content.append("���������������;"); + String resultContent = CompareFieldUtils.resultsConvertContent(results,content.toString()); + LogUtils.saveOperationForManage(resultContent, Constants.UPDATE_OPERATE_TYPE); + } + + } -- Gitblit v1.8.0