From c7dd4a195d8d893d92c49963447cdf6486844584 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 20 Oct 2023 09:45:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wb' into cjl
---
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