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<>();
|
||||
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){
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
//重复了
|
||||
// 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("审核成功!");
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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.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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue