1、修复bug:员工入驻机构/被机构邀请通过后,添加对应机构账号无法登录问题

2、修复bug:员工新入驻机构添加账号时,如果已在其他机构入驻,则复用对应平台账号数据未生效
3、新增:员工变更账号密码时,其它业务平台统一修改此员工密码
This commit is contained in:
1378012178@qq.com 2025-10-21 11:25:39 +08:00
parent 10f28c8c06
commit 4bbbc0692d
17 changed files with 2135 additions and 1747 deletions

View File

@ -158,7 +158,7 @@ public class NuBizNuCustomerServerServiceImpl extends ServiceImpl<NuBizNuCustome
QueryWrapper<NuBizNuCustomerServerInstant> instantQueryWrapper = new QueryWrapper<>();
instantQueryWrapper.eq(StringUtils.isNotEmpty(nuBizNuCustomerServer.getNuId()),"nu_id",nuBizNuCustomerServer.getNuId());
instantQueryWrapper.eq(StringUtils.isNotEmpty(nuBizNuCustomerServer.getCustomerId()),"customer_id",nuBizNuCustomerServer.getCustomerId());
instantQueryWrapper.orderByAsc("sort");
instantQueryWrapper.orderByDesc("create_time");
List<NuBizNuCustomerServerInstant> instantList = nuBizNuCustomerServerInstantService.list(instantQueryWrapper);
for(NuBizNuCustomerServerInstant pari : instantList){
if(pari.getImmediateFile()!=null){

View File

@ -0,0 +1,5 @@
package com.nu.modules;
public interface IEmployeesOrgApi {
String queryCanUseOrg(String username, String orgCode);
}

View File

@ -151,6 +151,15 @@ public class EmployeesApplyController extends JeecgController<EmployeesApply, IE
}
rabbitMQUtil.sendToExchange("hldy.employees", "hldy.employeesorg.auditstatus.sync", mqdto);
//重复了
// if ("auditPass".equals(employeesApply.getStatusVal())) {
// //审核通过 - 给员工添加账号
// JSONObject j = new JSONObject();
// j.put("userName",employeesApply.getName());
// j.put("realname",employeesApply.getName());
// j.put("orgCode",deptInfo.getString("id"));//这个参数要的是机构的id
// employeesApplyService.initialization(j);
// }
}
return Result.OK("审核成功!");

View File

@ -1,5 +1,6 @@
package com.nu.modules.employeesapply.service;
import com.alibaba.fastjson.JSONObject;
import com.nu.modules.employeesapply.entity.EmployeesApply;
import com.baomidou.mybatisplus.extension.service.IService;
@ -19,4 +20,6 @@ public interface IEmployeesApplyService extends IService<EmployeesApply> {
List<Map<String, Object>> getModifyInfo(EmployeesApply employeesApply);
void audit(EmployeesApply employeesApply);
void initialization(JSONObject j);
}

View File

@ -18,6 +18,7 @@ import com.nu.utils.RabbitMQUtil;
import com.nu.utils.SafetyUtil;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.api.ISysUserAPI;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -53,6 +54,8 @@ public class EmployeesApplyServiceImpl extends ServiceImpl<EmployeesApplyMapper,
private IMediaAsyncErrorLogService mediaAsyncErrorLogService;
@Autowired
private ISysBaseAPI sysBaseAPI;
@Autowired
private ISysUserAPI sysUserAPI;
@Override
public void cleanErrorInvided(String employeeId) {
@ -201,4 +204,14 @@ public class EmployeesApplyServiceImpl extends ServiceImpl<EmployeesApplyMapper,
//通知管理平台修改相关数据
rabbitMQUtil.sendToExchange("hldy.employee", "hldy.employee.infoUp.result", mqdto);
}
/**
* 账号初始化
* @param j
*/
@Override
public void initialization(JSONObject j) {
sysUserAPI.initialization(j);
}
}

View File

@ -0,0 +1,104 @@
package com.nu.modules.employeesorg.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.*;
import org.jeecg.common.constant.ProvinceCityArea;
import org.jeecg.common.util.SpringContextUtils;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
* @Description: 员工-机构关系中间表
* @Author: jeecg-boot
* @Date: 2025-09-05
* @Version: V1.0
*/
@Data
@TableName("nu_biz_employees_org")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="nu_biz_employees_org对象", description="员工-机构关系中间表")
public class EmployeesOrg implements Serializable {
private static final long serialVersionUID = 1L;
/**id*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**微信id*/
@Excel(name = "微信id", width = 15)
@ApiModelProperty(value = "微信id")
private java.lang.String openId;
/**员工nu_biz_employees_info.id*/
@Excel(name = "员工nu_biz_employees_info.id", width = 15)
@ApiModelProperty(value = "员工nu_biz_employees_info.id")
private java.lang.String employeesId;
/**机构编码*/
@Excel(name = "机构编码", width = 15)
@ApiModelProperty(value = "机构编码")
private java.lang.String orgCode;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**是否在线 0在线 1不在线*/
@Excel(name = "是否在线 0在线 1不在线", width = 15)
@ApiModelProperty(value = "是否在线 0在线 1不在线")
private java.lang.String izOnline;
/**冻结状态 0未冻结 1冻结*/
@Excel(name = "冻结状态 0未冻结 1冻结", width = 15)
@ApiModelProperty(value = "冻结状态 0未冻结 1冻结")
private java.lang.String izFreeze;
/**申请状态 1申请中 2通过 3驳回*/
@Excel(name = "申请状态 1申请中 2通过 3驳回", width = 15)
@ApiModelProperty(value = "申请状态 1申请中 2通过 3驳回")
private java.lang.String status;
/**审核备注*/
@Excel(name = "审核备注", width = 15)
@ApiModelProperty(value = "审核备注")
private java.lang.String auditContent;
/**入职时间*/
@Excel(name = "入职时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "入职时间")
private java.util.Date entryTime;
/**是否历史数据 0历史 1非历史*/
@Excel(name = "是否历史数据", width = 15)
@ApiModelProperty(value = "是否历史数据")
private java.lang.String izHistory;
/**申请类型 0被邀请 1主动申请 */
@Excel(name = "申请类型", width = 15)
@ApiModelProperty(value = "申请类型")
private java.lang.String applyType;
/**修改状态 1修改申请中 2通过 3驳回 */
@Excel(name = "修改状态", width = 15)
@ApiModelProperty(value = "修改状态")
private java.lang.String modifyStatus;
/**机构访问地址*/
@TableField(exist = false)
private String serverUrl;
}

View File

@ -0,0 +1,15 @@
package com.nu.modules.employeesorg.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nu.modules.employeesorg.entity.EmployeesOrg;
import org.apache.ibatis.annotations.Param;
/**
* @Description: 员工-机构关系中间表
* @Author: jeecg-boot
* @Date: 2025-09-05
* @Version: V1.0
*/
public interface EmployeesOrgMapper extends BaseMapper<EmployeesOrg> {
String queryCanUseOrg(@Param("tel") String tel, @Param("orgCode") String orgCode);
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.nu.modules.employeesorg.mapper.EmployeesOrgMapper">
<select id="queryCanUseOrg" resultType="java.lang.String">
select org_code
from nu_biz_employees_org
where open_id = (select open_id from nu_employees_advisory_info where tel = #{tel})
and iz_history = '1'
and (((apply_type = '0' or apply_type = '1') and status = '2') or apply_type = '2')
and org_code != #{orgCode}
order by create_time desc
limit 0, 1
</select>
</mapper>

View File

@ -0,0 +1,13 @@
package com.nu.modules.employeesorg.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nu.modules.employeesorg.entity.EmployeesOrg;
/**
* @Description: 员工-机构关系中间表
* @Author: jeecg-boot
* @Date: 2025-09-05
* @Version: V1.0
*/
public interface IEmployeesOrgService extends IService<EmployeesOrg> {
}

View File

@ -0,0 +1,26 @@
package com.nu.modules.employeesorg.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nu.modules.IEmployeesOrgApi;
import com.nu.modules.employeesorg.entity.EmployeesOrg;
import com.nu.modules.employeesorg.mapper.EmployeesOrgMapper;
import com.nu.modules.employeesorg.service.IEmployeesOrgService;
import org.springframework.stereotype.Service;
/**
* @Description: 员工-机构关系中间表
* @Author: jeecg-boot
* @Date: 2025-09-05
* @Version: V1.0
*/
@Service
public class EmployeesOrgServiceImpl extends ServiceImpl<EmployeesOrgMapper, EmployeesOrg> implements IEmployeesOrgService, IEmployeesOrgApi {
@DS("ope")
@Override
public String queryCanUseOrg(String tel, String orgCode) {
return baseMapper.queryCanUseOrg(tel, orgCode);
}
}

View File

@ -5,26 +5,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.nu.dto.EmployeesApplyMQDto;
import com.nu.dto.SysUserMQDto;
import com.nu.entity.SysUserEntity;
import com.nu.modules.employeesInfo.entity.BizEmployeesInfo;
import com.nu.modules.employeesInfo.service.IBizEmployeesInfoService;
import com.nu.modules.employeesapply.entity.EmployeesApply;
import com.nu.modules.employeesapply.service.IEmployeesApplyService;
import com.nu.modules.employeesmedia.entity.BizEmployeesMedia;
import com.nu.modules.employeesmedia.service.IBizEmployeesMediaService;
import com.nu.modules.mediaasyncerrorlog.entity.MediaAsyncErrorLog;
import com.nu.modules.mediaasyncerrorlog.service.IMediaAsyncErrorLogService;
import com.nu.modules.sysconfig.ISysConfigApi;
import com.nu.utils.FileDownloader;
import com.nu.utils.RabbitMQUtil;
import com.nu.utils.SafetyUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.api.ISysBaseAPI;
import org.jeecg.common.system.api.ISysUserAPI;
import org.jeecg.common.util.PasswordUtil;
import org.jeecg.common.util.oConvertUtils;
import com.nu.entity.SysUserEntity;
import org.jeecg.common.system.api.ISysUserAPI;
import org.springframework.amqp.core.ExchangeTypes;
import org.springframework.amqp.rabbit.annotation.Exchange;
import org.springframework.amqp.rabbit.annotation.Queue;
@ -35,10 +31,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.File;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@ -64,6 +56,7 @@ public class EmployeesMQListener {
@Autowired
private ISysBaseAPI sysBaseAPI;
/**
* 员工申请提交
*
@ -1397,32 +1390,42 @@ public class EmployeesMQListener {
BizEmployeesInfo employeesInfo = employeesInfoService.getOne(qw);
SysUserEntity user = sysUserAPI.getOne(employeeId);
if(user==null) {
user = new SysUserEntity();
user.setUsername(employeesInfo.getTel());
user.setRealname(employeesInfo.getName());
String salt = oConvertUtils.randomGen(8);
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), "123456", salt);
user.setPassword(passwordEncode);
user.setSalt(salt);
String avatar = employeesInfo.getHeadPath();
user.setAvatar(avatar);
Date birthday = employeesInfo.getDateOfBirth();
user.setBirthday(birthday);
String sex = employeesInfo.getSex();
if(sex.equals("")){
user.setSex(1);
}else if(sex.equals("")){
user.setSex(2);
}else{
user.setSex(0);
}
user.setPhone(employeesInfo.getTel());
user.setOrgCode(employeesInfo.getSysOrgCode());
user.setStatus(1);
user.setDelFlag(CommonConstant.DEL_FLAG_0);
user.setCreateTime(new Date());//设置创建时间
user.setEmployessId(employeeId);
sysUserAPI.save(user);
// user = new SysUserEntity();
// user.setUsername(employeesInfo.getTel());
// user.setRealname(employeesInfo.getName());
// String salt = oConvertUtils.randomGen(8);
// String passwordEncode = PasswordUtil.encrypt(user.getUsername(), "123456", salt);
// user.setPassword(passwordEncode);
// user.setSalt(salt);
// String avatar = employeesInfo.getHeadPath();
// user.setAvatar(avatar);
// Date birthday = employeesInfo.getDateOfBirth();
// user.setBirthday(birthday);
// String sex = employeesInfo.getSex();
// if(sex.equals("")){
// user.setSex(1);
// }else if(sex.equals("")){
// user.setSex(2);
// }else{
// user.setSex(0);
// }
// user.setPhone(employeesInfo.getTel());
// user.setOrgCode(employeesInfo.getSysOrgCode());
// user.setStatus(1);
// user.setDelFlag(CommonConstant.DEL_FLAG_0);
// user.setCreateTime(new Date());//设置创建时间
// user.setEmployessId(employeeId);
// sysUserAPI.save(user);
//审核通过 - 给员工添加账号
JSONObject deptInfo = sysBaseAPI.getDeptInfo();
JSONObject j = new JSONObject();
j.put("userName",employeesInfo.getTel());
j.put("realname",employeesInfo.getName());
j.put("orgCode",deptInfo.getString("id"));//这个参数要的是机构的id
j.put("opeType","employee");
j.put("o_c_",deptInfo.getString("code"));
employeesApplyService.initialization(j);
}else{
user.setUsername(employeesInfo.getTel());
user.setRealname(employeesInfo.getName());
@ -1553,4 +1556,27 @@ public class EmployeesMQListener {
}
}
/**
* 同步更新密码
* @param dto
*/
@RabbitListener(
bindings = @QueueBinding(
value = @Queue(
name = "#{T(java.util.UUID).randomUUID().toString()}",
autoDelete = "true"
),
exchange = @Exchange(
name = "hldy.employees.rpw.fanout",
type = ExchangeTypes.FANOUT
)
), errorHandler = "dictMQErrorHandler"
)
public void handleResetPW(SysUserMQDto dto) {
SysUserEntity en = new SysUserEntity();
en.setId(dto.getId());
en.setPassword(dto.getPassword());
sysUserAPI.updateById(en);
}
}

View File

@ -1,6 +1,11 @@
package org.jeecg.common.system.api;
import com.alibaba.fastjson.JSONObject;
import com.nu.entity.SysUserEntity;
import org.jeecg.common.api.vo.Result;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Map;
/**
* <p>
@ -14,4 +19,6 @@ public interface ISysUserAPI{
SysUserEntity getOne(String employeeId);
void save(SysUserEntity sysUserEntity);
void updateById(SysUserEntity sysUserEntity);
Result<Map<String,String>> initialization(@RequestBody JSONObject jsonObject);
}

View File

@ -41,6 +41,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.nursingunit.boot</groupId>
<artifactId>nu-employee-local-api</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>

View File

@ -458,4 +458,6 @@ public interface ISysUserService extends IService<SysUser> {
* @param username
*/
void userLogOff(JSONObject jsonObject, String username);
void saveUserInitialization(String dataSourceCode, SysUser user, String selectedRoles, String selectedDeparts, String relTenantIds);
}

View File

@ -1838,6 +1838,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
qw.eq("del_flag","0");
List<SysDepart> list = sysDepartService.list(qw);
if(list!=null && !list.isEmpty()){
map.put("id",list.get(0).getId());
map.put("code",list.get(0).getOrgCode());
map.put("name",list.get(0).getDepartName());
map.put("url",list.get(0).getUrl());

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -12,6 +13,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.base.Joiner;
import com.google.common.collect.Maps;
import com.nu.entity.SysUserEntity;
import com.nu.modules.IEmployeesOrgApi;
import freemarker.core.TemplateClassResolver;
import freemarker.template.Configuration;
import freemarker.template.Template;
@ -20,9 +22,11 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.jeecg.common.api.dto.DataLogDTO;
import org.jeecg.common.api.dto.OnlineAuthDTO;
import org.jeecg.common.api.dto.message.*;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.UrlMatchEnum;
import org.jeecg.common.constant.*;
import org.jeecg.common.constant.enums.EmailTemplateEnum;
@ -37,11 +41,13 @@ import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.system.query.QueryRuleEnum;
import org.jeecg.common.system.vo.*;
import org.jeecg.common.util.HTMLUtils;
import org.jeecg.common.util.PasswordUtil;
import org.jeecg.common.util.YouBianCodeUtil;
import org.jeecg.common.util.dynamic.db.FreemarkerParseFactory;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.config.firewall.SqlInjection.IDictTableWhiteListHandler;
import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
import org.jeecg.modules.base.service.BaseCommonService;
import org.jeecg.modules.message.entity.SysMessageTemplate;
import org.jeecg.modules.message.handle.impl.DdSendMsgHandle;
import org.jeecg.modules.message.handle.impl.EmailSendMsgHandle;
@ -62,6 +68,9 @@ import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;
import org.springframework.util.AntPathMatcher;
import org.springframework.util.CollectionUtils;
import org.springframework.util.PathMatcher;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.annotation.Resource;
import javax.sql.DataSource;
@ -84,32 +93,111 @@ import java.util.stream.Collectors;
@Service
public class SysUserApiImpl implements ISysUserAPI {
@Resource
private ISysUserService service;
@Resource
private ISysUserService service;
@Autowired
private ISysDepartService sysDepartService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private BaseCommonService baseCommonService;
@Autowired
private IEmployeesOrgApi employeesOrgApi;
@Override
public SysUserEntity getOne(String employeeId) {
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
@Override
public SysUserEntity getOne(String employeeId) {
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("employess_id", employeeId);
SysUser user = service.getOne(queryWrapper);
SysUserEntity sysUserEntity = new SysUserEntity();
BeanUtils.copyProperties(user, sysUserEntity);
return sysUserEntity;
}
SysUser user = service.getOne(queryWrapper);
SysUserEntity sysUserEntity = new SysUserEntity();
if (user != null) {
BeanUtils.copyProperties(user, sysUserEntity);
return sysUserEntity;
} else {
return null;
}
}
@Override
public void save(SysUserEntity sysUserEntity) {
SysUser user = new SysUser();
BeanUtils.copyProperties(sysUserEntity, user);
service.save(user);
}
@Override
public void save(SysUserEntity sysUserEntity) {
SysUser user = new SysUser();
BeanUtils.copyProperties(sysUserEntity, user);
service.save(user);
}
@Override
public void updateById(SysUserEntity sysUserEntity) {
SysUser user = new SysUser();
BeanUtils.copyProperties(sysUserEntity, user);
service.updateById(user);
}
@Override
public void updateById(SysUserEntity sysUserEntity) {
SysUser user = new SysUser();
BeanUtils.copyProperties(sysUserEntity, user);
service.updateById(user);
}
/**
* 申请审批账号初始化
*
* @param jsonObject
* @return
*/
@Override
public Result<Map<String, String>> initialization(@RequestBody JSONObject jsonObject) {
Map<String, String> result = new HashMap<>();
String selectedRoles = "f6817f48af4fb3af11b9e8bf182f618b";
String selectedDeparts = "";
try {
SysUser user = JSON.parseObject(jsonObject.toJSONString(), SysUser.class);
SysDepart depart = sysDepartService.getDepartById(user.getOrgCode());
if (depart == null) {
return Result.error("未找到机构信息");
}
selectedDeparts = depart.getId();
user.setOrgCode(depart.getOrgCode());
// user.setWorkNo(depart.getOrgCode() + "01");
user.setWorkNo(null);
user.setPassword("123456");
user.setCreateTime(new Date());//设置创建时间
String salt = oConvertUtils.randomGen(8);
user.setSalt(salt);
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), user.getPassword(), salt);
user.setPassword(passwordEncode);
user.setStatus(1);
user.setDelFlag(CommonConstant.DEL_FLAG_0);
//用户表字段org_code不能在这里设置他的值
// user.setOrgCode(null);
// 保存用户走一个service 保证事务
//获取租户ids
String relTenantIds = jsonObject.getString("relTenantIds");
String dataSourceCode = depart.getOrgCode();
if ("employee".equals(jsonObject.getString("opeType"))) {
//如果是添加员工账号查询员工已有账号并复用
String otherOrgCode = employeesOrgApi.queryCanUseOrg(user.getUsername(), jsonObject.getString("o_c_"));
DynamicDataSourceContextHolder.push(otherOrgCode);
try {
QueryWrapper<SysUser> qw = new QueryWrapper<>();
qw.eq("username", user.getUsername());
List<SysUser> list = sysUserService.list(qw);
SysUser t_ = null;
if (list != null && list.size() > 0) {
t_ = list.get(0);
t_.setOrgCode(user.getOrgCode());
user = t_;
user.setDelFlag(CommonConstant.DEL_FLAG_0);
user.setStatus(1);
}
} finally {
DynamicDataSourceContextHolder.clear();
}
}
sysUserService.saveUserInitialization(dataSourceCode, user, selectedRoles, selectedDeparts, relTenantIds);
baseCommonService.addLog("添加用户username " + user.getUsername(), CommonConstant.LOG_TYPE_2, 2);
result.put("message", "初始化成功!账号:" + jsonObject.getString("userName") + " 密码123456");
} catch (Exception e) {
log.error(e.getMessage(), e);
return Result.error("初始化失败!");
}
return Result.ok(result);
}
}