1、修复bug:员工入驻机构/被机构邀请通过后,添加对应机构账号无法登录问题
2、修复bug:员工新入驻机构添加账号时,如果已在其他机构入驻,则复用对应平台账号数据未生效 3、新增:员工变更账号密码时,其它业务平台统一修改此员工密码
This commit is contained in:
parent
10f28c8c06
commit
4bbbc0692d
|
|
@ -158,7 +158,7 @@ public class NuBizNuCustomerServerServiceImpl extends ServiceImpl<NuBizNuCustome
|
||||||
QueryWrapper<NuBizNuCustomerServerInstant> instantQueryWrapper = new QueryWrapper<>();
|
QueryWrapper<NuBizNuCustomerServerInstant> instantQueryWrapper = new QueryWrapper<>();
|
||||||
instantQueryWrapper.eq(StringUtils.isNotEmpty(nuBizNuCustomerServer.getNuId()),"nu_id",nuBizNuCustomerServer.getNuId());
|
instantQueryWrapper.eq(StringUtils.isNotEmpty(nuBizNuCustomerServer.getNuId()),"nu_id",nuBizNuCustomerServer.getNuId());
|
||||||
instantQueryWrapper.eq(StringUtils.isNotEmpty(nuBizNuCustomerServer.getCustomerId()),"customer_id",nuBizNuCustomerServer.getCustomerId());
|
instantQueryWrapper.eq(StringUtils.isNotEmpty(nuBizNuCustomerServer.getCustomerId()),"customer_id",nuBizNuCustomerServer.getCustomerId());
|
||||||
instantQueryWrapper.orderByAsc("sort");
|
instantQueryWrapper.orderByDesc("create_time");
|
||||||
List<NuBizNuCustomerServerInstant> instantList = nuBizNuCustomerServerInstantService.list(instantQueryWrapper);
|
List<NuBizNuCustomerServerInstant> instantList = nuBizNuCustomerServerInstantService.list(instantQueryWrapper);
|
||||||
for(NuBizNuCustomerServerInstant pari : instantList){
|
for(NuBizNuCustomerServerInstant pari : instantList){
|
||||||
if(pari.getImmediateFile()!=null){
|
if(pari.getImmediateFile()!=null){
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package com.nu.modules;
|
||||||
|
|
||||||
|
public interface IEmployeesOrgApi {
|
||||||
|
String queryCanUseOrg(String username, String orgCode);
|
||||||
|
}
|
||||||
|
|
@ -151,6 +151,15 @@ public class EmployeesApplyController extends JeecgController<EmployeesApply, IE
|
||||||
}
|
}
|
||||||
rabbitMQUtil.sendToExchange("hldy.employees", "hldy.employeesorg.auditstatus.sync", mqdto);
|
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("审核成功!");
|
return Result.OK("审核成功!");
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package com.nu.modules.employeesapply.service;
|
package com.nu.modules.employeesapply.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.nu.modules.employeesapply.entity.EmployeesApply;
|
import com.nu.modules.employeesapply.entity.EmployeesApply;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
|
@ -19,4 +20,6 @@ public interface IEmployeesApplyService extends IService<EmployeesApply> {
|
||||||
List<Map<String, Object>> getModifyInfo(EmployeesApply employeesApply);
|
List<Map<String, Object>> getModifyInfo(EmployeesApply employeesApply);
|
||||||
|
|
||||||
void audit(EmployeesApply employeesApply);
|
void audit(EmployeesApply employeesApply);
|
||||||
|
|
||||||
|
void initialization(JSONObject j);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ import com.nu.utils.RabbitMQUtil;
|
||||||
import com.nu.utils.SafetyUtil;
|
import com.nu.utils.SafetyUtil;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.jeecg.common.system.api.ISysBaseAPI;
|
import org.jeecg.common.system.api.ISysBaseAPI;
|
||||||
|
import org.jeecg.common.system.api.ISysUserAPI;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
|
@ -53,6 +54,8 @@ public class EmployeesApplyServiceImpl extends ServiceImpl<EmployeesApplyMapper,
|
||||||
private IMediaAsyncErrorLogService mediaAsyncErrorLogService;
|
private IMediaAsyncErrorLogService mediaAsyncErrorLogService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysBaseAPI sysBaseAPI;
|
private ISysBaseAPI sysBaseAPI;
|
||||||
|
@Autowired
|
||||||
|
private ISysUserAPI sysUserAPI;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void cleanErrorInvided(String employeeId) {
|
public void cleanErrorInvided(String employeeId) {
|
||||||
|
|
@ -201,4 +204,14 @@ public class EmployeesApplyServiceImpl extends ServiceImpl<EmployeesApplyMapper,
|
||||||
//通知管理平台修改相关数据
|
//通知管理平台修改相关数据
|
||||||
rabbitMQUtil.sendToExchange("hldy.employee", "hldy.employee.infoUp.result", mqdto);
|
rabbitMQUtil.sendToExchange("hldy.employee", "hldy.employee.infoUp.result", mqdto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账号初始化
|
||||||
|
* @param j
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void initialization(JSONObject j) {
|
||||||
|
sysUserAPI.initialization(j);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
@ -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>
|
||||||
|
|
@ -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> {
|
||||||
|
}
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,26 +5,22 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.nu.dto.EmployeesApplyMQDto;
|
import com.nu.dto.EmployeesApplyMQDto;
|
||||||
import com.nu.dto.SysUserMQDto;
|
import com.nu.dto.SysUserMQDto;
|
||||||
|
import com.nu.entity.SysUserEntity;
|
||||||
import com.nu.modules.employeesInfo.entity.BizEmployeesInfo;
|
import com.nu.modules.employeesInfo.entity.BizEmployeesInfo;
|
||||||
import com.nu.modules.employeesInfo.service.IBizEmployeesInfoService;
|
import com.nu.modules.employeesInfo.service.IBizEmployeesInfoService;
|
||||||
import com.nu.modules.employeesapply.entity.EmployeesApply;
|
import com.nu.modules.employeesapply.entity.EmployeesApply;
|
||||||
import com.nu.modules.employeesapply.service.IEmployeesApplyService;
|
import com.nu.modules.employeesapply.service.IEmployeesApplyService;
|
||||||
import com.nu.modules.employeesmedia.entity.BizEmployeesMedia;
|
import com.nu.modules.employeesmedia.entity.BizEmployeesMedia;
|
||||||
import com.nu.modules.employeesmedia.service.IBizEmployeesMediaService;
|
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.mediaasyncerrorlog.service.IMediaAsyncErrorLogService;
|
||||||
import com.nu.modules.sysconfig.ISysConfigApi;
|
import com.nu.modules.sysconfig.ISysConfigApi;
|
||||||
import com.nu.utils.FileDownloader;
|
|
||||||
import com.nu.utils.RabbitMQUtil;
|
import com.nu.utils.RabbitMQUtil;
|
||||||
import com.nu.utils.SafetyUtil;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.constant.CommonConstant;
|
||||||
import org.jeecg.common.system.api.ISysBaseAPI;
|
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.PasswordUtil;
|
||||||
import org.jeecg.common.util.oConvertUtils;
|
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.core.ExchangeTypes;
|
||||||
import org.springframework.amqp.rabbit.annotation.Exchange;
|
import org.springframework.amqp.rabbit.annotation.Exchange;
|
||||||
import org.springframework.amqp.rabbit.annotation.Queue;
|
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.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Component;
|
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.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|
@ -64,6 +56,7 @@ public class EmployeesMQListener {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISysBaseAPI sysBaseAPI;
|
private ISysBaseAPI sysBaseAPI;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 员工申请提交
|
* 员工申请提交
|
||||||
*
|
*
|
||||||
|
|
@ -1397,32 +1390,42 @@ public class EmployeesMQListener {
|
||||||
BizEmployeesInfo employeesInfo = employeesInfoService.getOne(qw);
|
BizEmployeesInfo employeesInfo = employeesInfoService.getOne(qw);
|
||||||
SysUserEntity user = sysUserAPI.getOne(employeeId);
|
SysUserEntity user = sysUserAPI.getOne(employeeId);
|
||||||
if(user==null) {
|
if(user==null) {
|
||||||
user = new SysUserEntity();
|
// user = new SysUserEntity();
|
||||||
user.setUsername(employeesInfo.getTel());
|
// user.setUsername(employeesInfo.getTel());
|
||||||
user.setRealname(employeesInfo.getName());
|
// user.setRealname(employeesInfo.getName());
|
||||||
String salt = oConvertUtils.randomGen(8);
|
// String salt = oConvertUtils.randomGen(8);
|
||||||
String passwordEncode = PasswordUtil.encrypt(user.getUsername(), "123456", salt);
|
// String passwordEncode = PasswordUtil.encrypt(user.getUsername(), "123456", salt);
|
||||||
user.setPassword(passwordEncode);
|
// user.setPassword(passwordEncode);
|
||||||
user.setSalt(salt);
|
// user.setSalt(salt);
|
||||||
String avatar = employeesInfo.getHeadPath();
|
// String avatar = employeesInfo.getHeadPath();
|
||||||
user.setAvatar(avatar);
|
// user.setAvatar(avatar);
|
||||||
Date birthday = employeesInfo.getDateOfBirth();
|
// Date birthday = employeesInfo.getDateOfBirth();
|
||||||
user.setBirthday(birthday);
|
// user.setBirthday(birthday);
|
||||||
String sex = employeesInfo.getSex();
|
// String sex = employeesInfo.getSex();
|
||||||
if(sex.equals("男")){
|
// if(sex.equals("男")){
|
||||||
user.setSex(1);
|
// user.setSex(1);
|
||||||
}else if(sex.equals("女")){
|
// }else if(sex.equals("女")){
|
||||||
user.setSex(2);
|
// user.setSex(2);
|
||||||
}else{
|
// }else{
|
||||||
user.setSex(0);
|
// user.setSex(0);
|
||||||
}
|
// }
|
||||||
user.setPhone(employeesInfo.getTel());
|
// user.setPhone(employeesInfo.getTel());
|
||||||
user.setOrgCode(employeesInfo.getSysOrgCode());
|
// user.setOrgCode(employeesInfo.getSysOrgCode());
|
||||||
user.setStatus(1);
|
// user.setStatus(1);
|
||||||
user.setDelFlag(CommonConstant.DEL_FLAG_0);
|
// user.setDelFlag(CommonConstant.DEL_FLAG_0);
|
||||||
user.setCreateTime(new Date());//设置创建时间
|
// user.setCreateTime(new Date());//设置创建时间
|
||||||
user.setEmployessId(employeeId);
|
// user.setEmployessId(employeeId);
|
||||||
sysUserAPI.save(user);
|
// 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{
|
}else{
|
||||||
user.setUsername(employeesInfo.getTel());
|
user.setUsername(employeesInfo.getTel());
|
||||||
user.setRealname(employeesInfo.getName());
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,11 @@
|
||||||
package org.jeecg.common.system.api;
|
package org.jeecg.common.system.api;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.nu.entity.SysUserEntity;
|
import com.nu.entity.SysUserEntity;
|
||||||
|
import org.jeecg.common.api.vo.Result;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
|
|
@ -14,4 +19,6 @@ public interface ISysUserAPI{
|
||||||
SysUserEntity getOne(String employeeId);
|
SysUserEntity getOne(String employeeId);
|
||||||
void save(SysUserEntity sysUserEntity);
|
void save(SysUserEntity sysUserEntity);
|
||||||
void updateById(SysUserEntity sysUserEntity);
|
void updateById(SysUserEntity sysUserEntity);
|
||||||
|
|
||||||
|
Result<Map<String,String>> initialization(@RequestBody JSONObject jsonObject);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,12 @@
|
||||||
<version>2.0.0</version>
|
<version>2.0.0</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.nursingunit.boot</groupId>
|
||||||
|
<artifactId>nu-employee-local-api</artifactId>
|
||||||
|
<version>2.0.0</version>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -458,4 +458,6 @@ public interface ISysUserService extends IService<SysUser> {
|
||||||
* @param username
|
* @param username
|
||||||
*/
|
*/
|
||||||
void userLogOff(JSONObject jsonObject, String username);
|
void userLogOff(JSONObject jsonObject, String username);
|
||||||
|
|
||||||
|
void saveUserInitialization(String dataSourceCode, SysUser user, String selectedRoles, String selectedDeparts, String relTenantIds);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1838,6 +1838,7 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||||
qw.eq("del_flag","0");
|
qw.eq("del_flag","0");
|
||||||
List<SysDepart> list = sysDepartService.list(qw);
|
List<SysDepart> list = sysDepartService.list(qw);
|
||||||
if(list!=null && !list.isEmpty()){
|
if(list!=null && !list.isEmpty()){
|
||||||
|
map.put("id",list.get(0).getId());
|
||||||
map.put("code",list.get(0).getOrgCode());
|
map.put("code",list.get(0).getOrgCode());
|
||||||
map.put("name",list.get(0).getDepartName());
|
map.put("name",list.get(0).getDepartName());
|
||||||
map.put("url",list.get(0).getUrl());
|
map.put("url",list.get(0).getUrl());
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package org.jeecg.modules.system.service.impl;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
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.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
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.base.Joiner;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.nu.entity.SysUserEntity;
|
import com.nu.entity.SysUserEntity;
|
||||||
|
import com.nu.modules.IEmployeesOrgApi;
|
||||||
import freemarker.core.TemplateClassResolver;
|
import freemarker.core.TemplateClassResolver;
|
||||||
import freemarker.template.Configuration;
|
import freemarker.template.Configuration;
|
||||||
import freemarker.template.Template;
|
import freemarker.template.Template;
|
||||||
|
|
@ -20,9 +22,11 @@ import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.shiro.SecurityUtils;
|
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.DataLogDTO;
|
||||||
import org.jeecg.common.api.dto.OnlineAuthDTO;
|
import org.jeecg.common.api.dto.OnlineAuthDTO;
|
||||||
import org.jeecg.common.api.dto.message.*;
|
import org.jeecg.common.api.dto.message.*;
|
||||||
|
import org.jeecg.common.api.vo.Result;
|
||||||
import org.jeecg.common.aspect.UrlMatchEnum;
|
import org.jeecg.common.aspect.UrlMatchEnum;
|
||||||
import org.jeecg.common.constant.*;
|
import org.jeecg.common.constant.*;
|
||||||
import org.jeecg.common.constant.enums.EmailTemplateEnum;
|
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.query.QueryRuleEnum;
|
||||||
import org.jeecg.common.system.vo.*;
|
import org.jeecg.common.system.vo.*;
|
||||||
import org.jeecg.common.util.HTMLUtils;
|
import org.jeecg.common.util.HTMLUtils;
|
||||||
|
import org.jeecg.common.util.PasswordUtil;
|
||||||
import org.jeecg.common.util.YouBianCodeUtil;
|
import org.jeecg.common.util.YouBianCodeUtil;
|
||||||
import org.jeecg.common.util.dynamic.db.FreemarkerParseFactory;
|
import org.jeecg.common.util.dynamic.db.FreemarkerParseFactory;
|
||||||
import org.jeecg.common.util.oConvertUtils;
|
import org.jeecg.common.util.oConvertUtils;
|
||||||
import org.jeecg.config.firewall.SqlInjection.IDictTableWhiteListHandler;
|
import org.jeecg.config.firewall.SqlInjection.IDictTableWhiteListHandler;
|
||||||
import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
|
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.entity.SysMessageTemplate;
|
||||||
import org.jeecg.modules.message.handle.impl.DdSendMsgHandle;
|
import org.jeecg.modules.message.handle.impl.DdSendMsgHandle;
|
||||||
import org.jeecg.modules.message.handle.impl.EmailSendMsgHandle;
|
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.AntPathMatcher;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
import org.springframework.util.PathMatcher;
|
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.annotation.Resource;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
@ -84,32 +93,111 @@ import java.util.stream.Collectors;
|
||||||
@Service
|
@Service
|
||||||
public class SysUserApiImpl implements ISysUserAPI {
|
public class SysUserApiImpl implements ISysUserAPI {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ISysUserService service;
|
private ISysUserService service;
|
||||||
|
@Autowired
|
||||||
|
private ISysDepartService sysDepartService;
|
||||||
|
@Autowired
|
||||||
|
private ISysUserService sysUserService;
|
||||||
|
@Autowired
|
||||||
|
private BaseCommonService baseCommonService;
|
||||||
|
@Autowired
|
||||||
|
private IEmployeesOrgApi employeesOrgApi;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SysUserEntity getOne(String employeeId) {
|
public SysUserEntity getOne(String employeeId) {
|
||||||
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.eq("employess_id", employeeId);
|
queryWrapper.eq("employess_id", employeeId);
|
||||||
SysUser user = service.getOne(queryWrapper);
|
SysUser user = service.getOne(queryWrapper);
|
||||||
SysUserEntity sysUserEntity = new SysUserEntity();
|
SysUserEntity sysUserEntity = new SysUserEntity();
|
||||||
BeanUtils.copyProperties(user, sysUserEntity);
|
if (user != null) {
|
||||||
return sysUserEntity;
|
BeanUtils.copyProperties(user, sysUserEntity);
|
||||||
}
|
return sysUserEntity;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save(SysUserEntity sysUserEntity) {
|
public void save(SysUserEntity sysUserEntity) {
|
||||||
SysUser user = new SysUser();
|
SysUser user = new SysUser();
|
||||||
BeanUtils.copyProperties(sysUserEntity, user);
|
BeanUtils.copyProperties(sysUserEntity, user);
|
||||||
service.save(user);
|
service.save(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateById(SysUserEntity sysUserEntity) {
|
public void updateById(SysUserEntity sysUserEntity) {
|
||||||
SysUser user = new SysUser();
|
SysUser user = new SysUser();
|
||||||
BeanUtils.copyProperties(sysUserEntity, user);
|
BeanUtils.copyProperties(sysUserEntity, user);
|
||||||
service.updateById(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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue