From b6fde711bf33cede4cb84f85146c32b0c0c61aa5 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 04 十一月 2024 09:06:28 +0800
Subject: [PATCH] 优化需求
---
server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 228 +++++++++++++++++++++++++++++++--------------------------
1 files changed, 124 insertions(+), 104 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index 990a06a..1bb9727 100644
--- a/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -1,12 +1,15 @@
package com.doumee.biz.system.impl;
+import cn.emay.sdk.core.dto.sms.response.SmsResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.system.SystemUserBiz;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.SmsEmailMapper;
import com.doumee.dao.business.model.Company;
import com.doumee.dao.system.dto.*;
import com.doumee.dao.system.model.SystemDepartment;
@@ -14,12 +17,14 @@
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.system.model.SystemUserRole;
import com.doumee.service.business.CompanyService;
+import com.doumee.service.business.impl.SmsEmailServiceImpl;
import com.doumee.service.system.*;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -34,9 +39,15 @@
@Autowired
private SystemUserService systemUserService;
+ @Autowired
+ private SmsEmailMapper smsEmailMapper;
@Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+ @Autowired
private CompanyService companyService;
+ @Value("${debug_model}")
+ private boolean debugModel;
@Autowired
private SystemUserRoleService systemUserRoleService;
@@ -109,29 +120,41 @@
public void create(CreateSystemUserDTO systemUser) {
// 楠岃瘉鐢ㄦ埛鍚�
// systemUser.setUsername(systemUser.getMobile());
+ if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ String phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode();
+ if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){
+ SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha());
+ }
SystemUser queryUserDto = new SystemUser();
queryUserDto.setUsername(systemUser.getUsername());
queryUserDto.setDeleted(Boolean.FALSE);
- queryUserDto.setType(Constants.ZERO);
+// queryUserDto.setType(Constants.ZERO);
SystemUser user = systemUserService.findOne(queryUserDto);
if (user != null) {
throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐧诲綍璐﹀彿宸插瓨鍦�");
}
- // 楠岃瘉宸ュ彿
- if (StringUtils.isNotBlank(systemUser.getEmpNo())) {
+ // 楠岃瘉鎵嬫満鍙�
+ if (StringUtils.isNotBlank(systemUser.getMobile())) {
queryUserDto = new SystemUser();
queryUserDto.setDeleted(Boolean.FALSE);
- queryUserDto.setEmpNo(systemUser.getEmpNo());
+ queryUserDto.setMobile(systemUser.getMobile());
user = systemUserService.findOne(queryUserDto);
if (user != null) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿宸插瓨鍦�");
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙峰凡瀛樺湪");
}
}
// 鐢熸垚瀵嗙爜鐩�
String salt = RandomStringUtils.randomAlphabetic(6);
// 鐢熸垚瀵嗙爜
- systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
+// systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
+ systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt));
systemUser.setSalt(salt);
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ systemUser.setType(loginUserInfo.getType());
+ systemUser.setStatus(Constants.ZERO);
+ systemUser.setCompanyId(loginUserInfo.getCompanyId());
Integer userId = systemUserService.create(systemUser);
// 璁剧疆閮ㄩ棬
if (systemUser.getDepartmentId() != null) {
@@ -152,17 +175,81 @@
systemDepartmentUser.setOperaTime(new Date());
systemDepartmentUserService.create(systemDepartmentUser);
}
- // 璁剧疆宀椾綅
-// if (systemUser.getPositionIds() != null && systemUser.getPositionIds().size() > 0) {
-// for (Integer positionId : systemUser.getPositionIds()) {
-// SystemPositionUser systemPositionUser = new SystemPositionUser();
-// systemPositionUser.setPositionId(positionId);
-// systemPositionUser.setUserId(userId);
-// systemPositionUser.setOperaUser(systemUser.getCreateUser());
-// systemPositionUser.setOperaTime(new Date());
-// systemPositionUserService.create(systemPositionUser);
-// }
-// }
+
+ }
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public void createCompany(CreateSystemUserDTO systemUser) {
+ // 楠岃瘉鐢ㄦ埛鍚�
+
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if(!Constants.equalsInteger(loginUserInfo.getType(),Constants.UserType.SYSTEM.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED);
+ }
+// systemUser.setUsername(systemUser.getMobile());
+ if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ if( systemUser.getCompanyId() == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ String phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode();
+ if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){
+ SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha());
+ }
+ Company company = companyService.findById(systemUser.getCompanyId());
+ if(company == null ||Constants.equalsInteger(company.getIsdeleted(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝褰撳墠浼佷笟淇℃伅涓嶆纭紒");
+ }
+
+ SystemUser queryUserDto = new SystemUser();
+ queryUserDto.setUsername(systemUser.getUsername());
+ queryUserDto.setDeleted(Boolean.FALSE);
+// queryUserDto.setType(Constants.ZERO);
+ SystemUser user = systemUserService.findOne(queryUserDto);
+ if (user != null) {
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐧诲綍璐﹀彿宸插瓨鍦�");
+ }
+
+ // 楠岃瘉鎵嬫満鍙�
+ if (StringUtils.isNotBlank(systemUser.getMobile())) {
+ queryUserDto = new SystemUser();
+ queryUserDto.setDeleted(Boolean.FALSE);
+ queryUserDto.setMobile(systemUser.getMobile());
+ user = systemUserService.findOne(queryUserDto);
+ if (user != null) {
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙峰凡瀛樺湪");
+ }
+ }
+ // 鐢熸垚瀵嗙爜鐩�
+ String salt = RandomStringUtils.randomAlphabetic(6);
+ // 鐢熸垚瀵嗙爜
+ systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.DEFAULT_PASSWORD).getCode(), salt));
+ systemUser.setSalt(salt);
+ systemUser.setType(Constants.equalsInteger(company.getType(),Constants.ONE)?Constants.UserType.ZHUBO.getKey():Constants.UserType.COMPANY.getKey());
+ systemUser.setType(loginUserInfo.getType());
+ systemUser.setStatus(Constants.ZERO);
+ Integer userId = systemUserService.create(systemUser);
+ // 璁剧疆閮ㄩ棬
+ if (systemUser.getDepartmentId() != null) {
+ SystemDepartmentUser systemDepartmentUser = new SystemDepartmentUser();
+ systemDepartmentUser.setDepartmentId(systemUser.getDepartmentId());
+ systemDepartmentUser.setUserId(userId);
+ systemDepartmentUser.setOperaUser(systemUser.getCreateUser());
+ systemDepartmentUser.setOperaTime(new Date());
+ systemDepartmentUserService.create(systemDepartmentUser);
+ }else {
+ SystemDepartmentUser systemDepartmentUser = new SystemDepartmentUser();
+ QueryWrapper<SystemDepartment> wrapper = new QueryWrapper<>();
+ wrapper.lambda().isNull(SystemDepartment::getParentId).last("limit 1");
+ SystemDepartment systemDepartment = systemDepartmentService.findOne(wrapper);
+ systemDepartmentUser.setDepartmentId(systemDepartment.getId());
+ systemDepartmentUser.setUserId(userId);
+ systemDepartmentUser.setOperaUser(systemUser.getCreateUser());
+ systemDepartmentUser.setOperaTime(new Date());
+ systemDepartmentUserService.create(systemDepartmentUser);
+ }
+
}
@Override
@@ -181,15 +268,31 @@
}
// 楠岃瘉宸ュ彿
- if (StringUtils.isNotBlank(systemUser.getEmpNo())) {
+ if (StringUtils.isNotBlank(systemUser.getMobile())) {
queryUserDto = new SystemUser();
- queryUserDto.setEmpNo(systemUser.getEmpNo());
+ queryUserDto.setEmpNo(systemUser.getMobile());
queryUserDto.setDeleted(Boolean.FALSE);
user = systemUserService.findOne(queryUserDto);
if (user != null && !user.getId().equals(systemUser.getId())) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "宸ュ彿宸插瓨鍦�");
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鎵嬫満鍙峰凡瀛樺湪");
+ }
+ user = systemUserService.findById(systemUser.getId());
+ if(user == null){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "瀵逛笉璧凤紝鐢ㄦ埛淇℃伅涓嶅瓨鍦紒");
+ }
+ if(!StringUtils.equals(systemUser.getMobile(),user.getMobile())){
+ //濡傛灉鎵嬫満鍙峰彂鐢熷彉鍖栭獙璇侀獙璇佺爜
+ if(StringUtils.isBlank(systemUser.getMobile()) || StringUtils.isBlank(systemUser.getCaptcha())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐭俊楠岃瘉鐮佷笉鑳戒负绌猴紒");
+ }
+ String phoneAtuh = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.COMPANY_PHONE_AUTH).getCode();
+ if(!debugModel && !StringUtils.equals(phoneAtuh,Constants.ONE+"")){
+ SmsEmailServiceImpl.isCaptcheValide(smsEmailMapper,systemUser.getMobile(),systemUser.getCaptcha());
+ }
}
}
+ systemUser.setType(null);//涓嶆敮鎸佷慨鏀�
+ systemUser.setCompanyId(null);//涓嶆敮鎸佷慨鏀�
// 淇敼鐢ㄦ埛
systemUserService.updateById(systemUser);
// 璁剧疆閮ㄩ棬
@@ -204,20 +307,7 @@
systemDepartmentUser.setOperaTime(new Date());
systemDepartmentUserService.create(systemDepartmentUser);
}
- // 璁剧疆宀椾綅
- /* SystemPositionUser deletePositionDto = new SystemPositionUser();
- deletePositionDto.setUserId(systemUser.getId());
- systemPositionUserService.delete(deletePositionDto);
- if (systemUser.getPositionIds() != null && systemUser.getPositionIds().size() > 0) {
- for (Integer positionId : systemUser.getPositionIds()) {
- SystemPositionUser systemPositionUser = new SystemPositionUser();
- systemPositionUser.setPositionId(positionId);
- systemPositionUser.setUserId(systemUser.getId());
- systemPositionUser.setOperaUser(systemUser.getUpdateUser());
- systemPositionUser.setOperaTime(new Date());
- systemPositionUserService.create(systemPositionUser);
- }
- }*/
+
}
@Override
@@ -232,76 +322,6 @@
SystemUserRole newUserRole = new SystemUserRole();
newUserRole.setUserId(dto.getUserId());
newUserRole.setRoleId(roleId);
- systemUserRoleService.create(newUserRole);
- }
- }
-
- @Override
- @Transactional(rollbackFor = {Exception.class,BusinessException.class})
- public void companyCreateUser(CreateCompanyUserDTO createCompanyUserDTO) {
- if(Objects.isNull(createCompanyUserDTO)
- ||StringUtils.isBlank(createCompanyUserDTO.getUserName())
- ||StringUtils.isBlank(createCompanyUserDTO.getRealName())
- ||StringUtils.isBlank(createCompanyUserDTO.getPassword()) ){
- throw new BusinessException(ResponseStatus.BAD_REQUEST);
- }
- LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
- SystemUser queryUserDto = new SystemUser();
- queryUserDto.setUsername(createCompanyUserDTO.getUserName());
- queryUserDto.setDeleted(Boolean.FALSE);
- SystemUser user = systemUserService.findOne(queryUserDto);
- if (user != null) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐧诲綍璐﹀彿宸插瓨鍦�");
- }
- if(createCompanyUserDTO.getType().equals(Constants.UserType.ZHUBO.getKey())){
- Company company = companyService.findById(loginUserInfo.getCompanyId());
- SystemUser zbUserNum = new SystemUser();
- zbUserNum.setCompanyId(loginUserInfo.getCompanyId());
- zbUserNum.setDeleted(Boolean.FALSE);
- zbUserNum.setType(Constants.UserType.ZHUBO.getKey());
- }
- SystemUser systemUser = new SystemUser();
- BeanUtils.copyProperties(createCompanyUserDTO,systemUser);
- systemUser.setCompanyId(loginUserInfo.getCompanyId());
- systemUser.setRealname(createCompanyUserDTO.getRealName());
- systemUser.setUsername(createCompanyUserDTO.getUserName());
- // 鐢熸垚瀵嗙爜鐩�
- String salt = RandomStringUtils.randomAlphabetic(6);
- // 鐢熸垚瀵嗙爜
- systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getPassword(), salt));
- systemUser.setSalt(salt);
- Integer userId = systemUserService.create(systemUser);
- if(systemUser.getType().equals(Constants.UserType.COMPANY.getKey())){
- SystemUserRole newUserRole = new SystemUserRole();
- newUserRole.setUserId(userId);
- newUserRole.setRoleId(createCompanyUserDTO.getRoleId());
- systemUserRoleService.create(newUserRole);
- }
- }
-
- @Override
- @Transactional(rollbackFor = {Exception.class,BusinessException.class})
- public void companyUpdUser(CreateCompanyUserDTO updCreateCompanyUserDTO) {
- if(Objects.isNull(updCreateCompanyUserDTO)
- ||Objects.isNull(updCreateCompanyUserDTO.getId())
- ||StringUtils.isBlank(updCreateCompanyUserDTO.getRealName())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST);
- }
- SystemUser systemUser = systemUserService.findById(updCreateCompanyUserDTO.getId());
- if(Objects.isNull(systemUser)){
- throw new BusinessException(ResponseStatus.DATA_EMPTY);
- }
- systemUser.setRealname(updCreateCompanyUserDTO.getRealName());
- systemUser.setMobile(updCreateCompanyUserDTO.getMobile());
- systemUserService.updateById(systemUser);
- if(systemUser.getType().equals(Constants.UserType.COMPANY.getKey())){
- // 鍒犻櫎鍏宠仈瑙掕壊
- SystemUserRole deleteDto = new SystemUserRole();
- deleteDto.setUserId(systemUser.getId());
- systemUserRoleService.delete(deleteDto);
- SystemUserRole newUserRole = new SystemUserRole();
- newUserRole.setUserId(systemUser.getId());
- newUserRole.setRoleId(updCreateCompanyUserDTO.getRoleId());
systemUserRoleService.create(newUserRole);
}
}
--
Gitblit v1.9.3