|
|
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.jzg.commons.core.base.BaseController;
|
|
|
import com.jzg.commons.core.base.PageRequest;
|
|
|
+import com.jzg.commons.core.base.StateResult;
|
|
|
import com.jzg.commons.core.page.HttpResult;
|
|
|
import com.jzg.commons.entity.po.*;
|
|
|
import com.jzg.commons.entity.vo.*;
|
|
|
@@ -18,6 +19,7 @@ import com.jzg.organization.mapper.SysUserMapper;
|
|
|
import com.jzg.organization.service.*;
|
|
|
import com.jzg.organization.service.*;
|
|
|
import com.jzg.organization.state.UserState;
|
|
|
+import com.jzg.organization.state.listener.UserStateListener;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -28,6 +30,9 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import static com.jzg.commons.constants.Constants.DEFAULT_PASSWORD;
|
|
|
|
|
|
/**
|
|
|
* @author Administrator
|
|
|
@@ -60,6 +65,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Resource
|
|
|
private SysOrganizationUserLinkService sysOrganizationUserLinkService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UserStateListener userStateListener;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysUserRoleService sysUserRoleService;
|
|
|
+
|
|
|
private String getCurrentAreaCode(String province,String city,String area){
|
|
|
String userWorkNumber = "";
|
|
|
if (!area.isEmpty()) {
|
|
|
@@ -148,70 +159,82 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Override
|
|
|
public boolean userQuitApply(String userId) {
|
|
|
SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(userId);
|
|
|
+ StateResult resign = userStateListener.Resign(userByUserId);
|
|
|
+ if(resign.isResult()){
|
|
|
+ //更新状态
|
|
|
+ userByUserId.setStatus(UserState.UserStateEnum.RESIGN_ING.getValue());
|
|
|
+ sysUserJzgInfoService.updateById(userByUserId);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
|
|
|
- return false;
|
|
|
+ @Override
|
|
|
+ public boolean realNameAuth(String userId){
|
|
|
+ SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(userId);
|
|
|
+ StateResult stateResult = userStateListener.AuthCert(userByUserId);
|
|
|
+ if(stateResult.isResult()){
|
|
|
+ //更新状态
|
|
|
+ userByUserId.setStatus(stateResult.getCurrentState());
|
|
|
+ sysUserJzgInfoService.updateById(userByUserId);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean realNameAuthFailed(String userId){
|
|
|
+ SysUserJzgInfo userByUserId = sysUserJzgInfoService.getUserByUserId(userId);
|
|
|
+ StateResult stateResult = userStateListener.AuthCertFailed(userByUserId);
|
|
|
+ if(stateResult.isResult()){
|
|
|
+ //更新状态
|
|
|
+ userByUserId.setStatus(stateResult.getCurrentState());
|
|
|
+ sysUserJzgInfoService.updateById(userByUserId);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult addUserInfo(SysUserVo sysUserVo) {
|
|
|
SysUser sysUser = baseMapper.getUserByMobile(sysUserVo.getMobile());
|
|
|
- if (sysUser != null) {
|
|
|
+ String sysUserJzgInfoId = "",sysUserId = "";
|
|
|
+ if (!Objects.isNull(sysUser)) {
|
|
|
verifyUser(sysUserVo.getTypeAttr(),sysUserVo.getDeptId(),sysUserVo.getIdentity(),sysUser.getId(),sysUserVo.getLeaderId(),sysUserVo.getReferrerId());
|
|
|
SysUserJzgInfo sysUserJzgInfo = new SysUserJzgInfo();
|
|
|
BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
|
|
|
sysUserJzgInfo.setUserId(sysUser.getId());
|
|
|
- sysUserJzgInfo.setStatus(0);
|
|
|
- sysUserJzgInfo.setIsEnable(0);
|
|
|
- sysUserJzgInfo.setIsDelete(0);
|
|
|
sysUserJzgInfoService.save(sysUserJzgInfo);
|
|
|
+ sysUserJzgInfoId = sysUserJzgInfo.getId();
|
|
|
+ sysUserId = sysUser.getId();
|
|
|
saveOrganization(sysUserVo.getOrganizationId(), sysUserJzgInfo.getId());
|
|
|
saveFile(sysUserVo.getSfz1(), sysUserVo.getSfz2(), sysUserVo.getQualification(), sysUserVo.getContract(), sysUserVo.getApplicant(), sysUserVo.getSalaryTable(), sysUserVo.getLeaveTable(),sysUserJzgInfo.getId());
|
|
|
- //如果表单输入的银行卡号和银行名不为空,则保存银行卡信息
|
|
|
- if (sysUserVo.getBankCardId() != null && sysUserVo.getBankName() != null) {
|
|
|
- SysUserJzgInfoBankCard sysUserJzgInfoBankCard = new SysUserJzgInfoBankCard();
|
|
|
- sysUserJzgInfoBankCard.setId(IdGenerate.nextId());
|
|
|
- sysUserJzgInfoBankCard.setUserJzgInfoId(sysUserJzgInfo.getId());
|
|
|
- sysUserJzgInfoBankCard.setBankCardNumber(sysUserVo.getBankCardId());
|
|
|
- sysUserJzgInfoBankCard.setBankName(sysUserVo.getBankName());
|
|
|
- sysUserJzgInfoBankCard.setIsDefault(0); //设为非默认卡
|
|
|
- sysUserJzgInfoBankCard.setAuditStatus(0); //设为待审核
|
|
|
- sysUserJzgInfoBankCard.setRemark("");
|
|
|
- sysUserJzgInfoBankCardService.save(sysUserJzgInfoBankCard);
|
|
|
- }
|
|
|
} else {
|
|
|
// 如果手机号为新号 重新生成SysUser 设置默认密码
|
|
|
- SysUser sysUser1 = new SysUser();
|
|
|
- sysUser1.setId(IdGenerate.nextId());
|
|
|
- sysUser1.setUsername(sysUserVo.getMobile());
|
|
|
- String pwd = "12345678";
|
|
|
- String salt = PasswordUtils.getSalt();
|
|
|
- sysUser1.setPassword(PasswordUtils.encode(pwd, salt));
|
|
|
- sysUser1.setSalt(salt);
|
|
|
- sysUser1.setMobile(sysUserVo.getMobile());
|
|
|
- sysUser1.setAccountStatus(1);
|
|
|
+ SysUser sysUser1 = new SysUser(sysUserVo.getMobile(),sysUserVo.getMobile());
|
|
|
this.save(sysUser1);
|
|
|
SysUserJzgInfo sysUserJzgInfo = new SysUserJzgInfo();
|
|
|
BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
|
|
|
sysUserJzgInfo.setId(IdGenerate.nextId());
|
|
|
sysUserJzgInfo.setUserId(sysUser1.getId());
|
|
|
- sysUserJzgInfo.setStatus(0);
|
|
|
- sysUserJzgInfo.setIsEnable(0);
|
|
|
- sysUserJzgInfo.setIsDelete(0);
|
|
|
+ sysUserJzgInfoId = sysUserJzgInfo.getId();
|
|
|
+ sysUserId = sysUser1.getId();
|
|
|
sysUserJzgInfoService.save(sysUserJzgInfo);
|
|
|
+ }
|
|
|
|
|
|
- //如果表单输入的银行卡号和银行名不为空,则保存银行卡信息
|
|
|
- if (sysUserVo.getBankCardId() != null && sysUserVo.getBankName() != null) {
|
|
|
- SysUserJzgInfoBankCard sysUserJzgInfoBankCard = new SysUserJzgInfoBankCard();
|
|
|
- sysUserJzgInfoBankCard.setId(IdGenerate.nextId());
|
|
|
- sysUserJzgInfoBankCard.setUserJzgInfoId(sysUserJzgInfo.getId());
|
|
|
- sysUserJzgInfoBankCard.setBankCardNumber(sysUserVo.getBankCardId());
|
|
|
- sysUserJzgInfoBankCard.setBankName(sysUserVo.getBankName());
|
|
|
- sysUserJzgInfoBankCard.setIsDefault(0); //设为非默认卡
|
|
|
- sysUserJzgInfoBankCard.setAuditStatus(0); //设为待审核
|
|
|
- sysUserJzgInfoBankCard.setRemark("");
|
|
|
- sysUserJzgInfoBankCardService.save(sysUserJzgInfoBankCard);
|
|
|
- }
|
|
|
+ //如果表单输入的银行卡号和银行名不为空,则保存银行卡信息
|
|
|
+ if (sysUserVo.getBankCardId() != null && sysUserVo.getBankName() != null) {
|
|
|
+ SysUserJzgInfoBankCard sysUserJzgInfoBankCard =
|
|
|
+ new SysUserJzgInfoBankCard(sysUserJzgInfoId, sysUserVo.getBankCardId(), sysUserVo.getBankName());
|
|
|
+ sysUserJzgInfoBankCardService.save(sysUserJzgInfoBankCard);
|
|
|
+ }
|
|
|
+ //如果角色存在的话则存储角色
|
|
|
+ if(!Objects.isNull(sysUserVo.getRoleIds()) && !sysUserVo.getRoleIds().isEmpty()){
|
|
|
+ String finalSysUserId = sysUserId;
|
|
|
+ List<SysUserRole> sysUserRoleList = new ArrayList<>();
|
|
|
+ sysUserVo.getRoleIds().forEach(roleId -> {
|
|
|
+ SysUserRole sysUserRole = new SysUserRole(finalSysUserId,roleId);
|
|
|
+ sysUserRoleList.add(sysUserRole);
|
|
|
+ });
|
|
|
+ sysUserRoleService.saveBatch(sysUserRoleList);
|
|
|
}
|
|
|
String resultMsg = "";
|
|
|
if(sysUserVo.getTypeAttr().equals("2")){
|
|
|
@@ -230,8 +253,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
if (sysUserJzgInfo == null) {
|
|
|
throw new SystemException("该用户不存在");
|
|
|
}
|
|
|
- sysUserJzgInfo.setIsDelete(1);
|
|
|
- sysUserJzgInfoService.updateById(sysUserJzgInfo);
|
|
|
+ sysUserJzgInfoService.removeById(id);
|
|
|
}
|
|
|
return HttpResult.ok("删除业务员成功");
|
|
|
}
|
|
|
@@ -303,12 +325,28 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
// }
|
|
|
BeanUtils.copyProperties(sysUserVo, sysUserJzgInfo);
|
|
|
sysUserJzgInfoService.updateById(sysUserJzgInfo);
|
|
|
+
|
|
|
+ //用户角色处理
|
|
|
+ List<SysRole> userRole = sysUserRoleService.getUserRole(sysUserVo.getId());
|
|
|
+ List<String> roleIds = userRole.stream().map(u -> u.getId()).collect(Collectors.toList());
|
|
|
+ if(!roleIds.isEmpty()) {
|
|
|
+ sysUserRoleService.remove(new LambdaQueryWrapper<SysUserRole>()
|
|
|
+ .eq(SysUserRole::getUserId, sysUserVo.getId())
|
|
|
+ .in(SysUserRole::getRoleId, roleIds));
|
|
|
+ }
|
|
|
+ List<SysUserRole> sysUserRoleList = new ArrayList<>();
|
|
|
+ sysUserVo.getRoleIds().forEach(roleId->{
|
|
|
+ SysUserRole sysUserRole = new SysUserRole(sysUserVo.getId(),roleId);
|
|
|
+ sysUserRoleList.add(sysUserRole);
|
|
|
+ });
|
|
|
+ sysUserRoleService.saveBatch(sysUserRoleList);
|
|
|
+
|
|
|
return HttpResult.ok("修改业务员成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public HttpResult getUserInfoById(String id) {
|
|
|
- SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(id);
|
|
|
+ SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getUserByUserId(id);
|
|
|
if (sysUserJzgInfo == null) {
|
|
|
throw new SystemException("该用户不存在");
|
|
|
}
|
|
|
@@ -336,6 +374,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
sysUserJzgInfo.setRegion(region.substring(0, region.length() - 1));
|
|
|
}
|
|
|
+ //给前端返
|
|
|
+ sysUserJzgInfo.setPassword("******");
|
|
|
+ //角色
|
|
|
+ List<SysRole> userRole = sysUserRoleService.getUserRole(sysUser.getId());
|
|
|
+ List<String> roleIds = userRole.stream().map(u -> u.getId()).collect(Collectors.toList());
|
|
|
+ sysUserJzgInfo.setRoleIds(roleIds);
|
|
|
+
|
|
|
List<SysUserJzgInfoFile> sysUserJzgInfoFile = sysUserJzgInfoFileService.list
|
|
|
(new LambdaQueryWrapper<SysUserJzgInfoFile>().eq(SysUserJzgInfoFile::getUserJzgInfoId,id));
|
|
|
sysUserJzgInfo.setFileList(sysUserJzgInfoFile);
|