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