From 19b72fbd2e6b30a23a06dd284619784a096bc896 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Thu, 26 Aug 2021 11:33:56 +0800
Subject: [PATCH] screen-manage                  单位转换插入添加日志功能                  修复organization插入Bug

---
 screen-manage/src/main/java/com/moral/api/service/impl/UserServiceImpl.java |  154 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 119 insertions(+), 35 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 cce9d52..711180c 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
@@ -5,10 +5,11 @@
 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.OrganizationMapper;
-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;
@@ -17,9 +18,13 @@
 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;
@@ -28,6 +33,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.logging.SimpleFormatter;
 
 /**
  * <p>
@@ -44,6 +50,14 @@
     UserMapper userMapper;
     @Autowired
     OrganizationMapper organizationMapper;
+    @Autowired
+    GroupMapper groupMapper;
+    @Autowired
+    UserGroupMapper userGroupMapper;
+    @Autowired
+    GroupMenuMapper groupMenuMapper;
+    @Autowired
+    LogUtils logUtils;
 
     @Override
     public UserQueryDTO queryUsers(UserQueryForm form) {
@@ -143,40 +157,16 @@
         //������
         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 deleteUser(UserDeleteForm form) {
-        //������������������
-        UserDTO dto = new UserDTO();
-        //������
-        Integer id = form.getId();
-        //������������������������ ������������������
-        User oldUser = new User();
-        oldUser.setIsDelete(Constants.NOT_DELETE);
-        oldUser.setId(id);
-        QueryWrapper<User> oldWrapper = new QueryWrapper<>();
-        oldWrapper.setEntity(oldUser);
-        oldUser = userMapper.selectOne(oldWrapper);
-        if(ObjectUtils.isEmpty(oldUser)){
-            dto.setCode(ResponseCodeEnum.USER_NOT_EXIST.getCode());
-            dto.setMsg(ResponseCodeEnum.USER_NOT_EXIST.getMsg());
-            return dto;
-        }
-        //������������������������������������������������������������
-        UpdateWrapper<User> deleteWrapper = new UpdateWrapper<>();
-        deleteWrapper.eq("organization_id",oldUser.getOrganizationId());
-        deleteWrapper.set("is_delete",Constants.DELETE);
-        userMapper.update(null,deleteWrapper);
-        //������������
-        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
-        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         return dto;
     }
 
@@ -194,7 +184,7 @@
         QueryWrapper<User> wrapper = new QueryWrapper<>();
         wrapper.setEntity(existUser);
         User existUserResult = userMapper.selectOne(wrapper);
-        if(!ObjectUtils.isEmpty(existUserResult)){
+        if (!ObjectUtils.isEmpty(existUserResult)) {
             dto.setCode(ResponseCodeEnum.USER_EXIST.getCode());
             dto.setMsg(ResponseCodeEnum.USER_EXIST.getMsg());
             return dto;
@@ -208,13 +198,31 @@
         QueryWrapper<User> organizationUserWrapper = new QueryWrapper<>();
         organizationUserWrapper.setEntity(organizationUser);
         organizationUser = userMapper.selectOne(organizationUserWrapper);
-        if(!ObjectUtils.isEmpty(organizationUser)){
+        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());
@@ -222,4 +230,80 @@
     }
 
 
+    @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