344 lines
12 KiB
Java
344 lines
12 KiB
Java
package com.zhgd.sjmq.service;
|
||
|
||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||
import com.chinacreator.c2.uop.sync.message.categoryorg.CategoryOrgCreateMessage;
|
||
import com.chinacreator.c2.uop.sync.message.categoryorg.CategoryOrgDeleteMessage;
|
||
import com.chinacreator.c2.uop.sync.message.categoryorg.CategoryOrgUpdateMessage;
|
||
import com.chinacreator.c2.uop.sync.message.org.*;
|
||
import com.chinacreator.c2.uop.sync.message.user.*;
|
||
import com.zhgd.xmgl.modules.basicdata.entity.BaseModuleUser;
|
||
import com.zhgd.xmgl.modules.basicdata.entity.Company;
|
||
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
|
||
import com.zhgd.xmgl.modules.basicdata.mapper.BaseModuleUserMapper;
|
||
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
|
||
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
|
||
import lombok.extern.slf4j.Slf4j;
|
||
import org.apache.commons.lang3.StringUtils;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
import org.springframework.stereotype.Component;
|
||
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
@Component
|
||
@Slf4j
|
||
public class SjMqService {
|
||
@Autowired
|
||
private CompanyMapper companyMapper;
|
||
@Autowired
|
||
private SystemUserMapper systemUserMapper;
|
||
@Autowired
|
||
private BaseModuleUserMapper baseModuleUserMapper;
|
||
|
||
private Company convertToCompany(OrgCreateMessage orgCreateMessage) {
|
||
String id = orgCreateMessage.getId();
|
||
Map<String, Object> oMap = orgCreateMessage.getOrganization();
|
||
String name = String.valueOf(oMap.get("name"));
|
||
String pids = String.valueOf(oMap.get("pid"));
|
||
String pid = StringUtils.substringAfterLast(pids, "-");
|
||
Company parentCompany = companyMapper.selectOne(new LambdaQueryWrapper<Company>().eq(Company::getCompanySn, pid));
|
||
Company company = new Company();
|
||
//公司sn就是那边的id
|
||
company.setCompanySn(id);
|
||
company.setCompanyName(name);
|
||
company.setCompanyType(parentCompany.getCompanyType() + 1);
|
||
company.setParentId(parentCompany.getCompanyId());
|
||
company.setHeadquartersSn("2e07f0e2569c43fb835ae2082d1d314f");
|
||
return company;
|
||
}
|
||
|
||
public void onOrgCreated(OrgCreateMessage orgCreateMessage) {
|
||
/*
|
||
{
|
||
"category": "2-2",
|
||
"id": "eNiamYRsRSfibgy1o9KaukNg",
|
||
"organization": {
|
||
"creator": "Z4K0Un08TibykTF5tiauD15Q",
|
||
"code": "",
|
||
"jgzt": "",
|
||
"name": "测试名称",
|
||
"pid": "2-2-le5DuXudTHe7jjUfCEDIGQ",
|
||
"sn": 999,
|
||
"id": "eNiamYRsRSfibgy1o9KaukNg"
|
||
},
|
||
"timestamp": 1680073256840
|
||
}
|
||
*/
|
||
Company company = convertToCompany(orgCreateMessage);
|
||
companyMapper.insert(company);
|
||
}
|
||
|
||
public void onOrgUpdated(OrgUpdateMessage orgUpdateMessage) {
|
||
|
||
}
|
||
|
||
public void onOrgDeleted(OrgDeleteMessage orgDeleteMessage) {
|
||
/*
|
||
{
|
||
"category": "2-2",
|
||
"id": "BkIaPt9FT626g68qZJ95xQ",
|
||
"organization": {
|
||
"categoryOrgId": "2-2",
|
||
"creator": "1",
|
||
"allUserInstanceIds": [],
|
||
"jgzt": "",
|
||
"name": "测试2",
|
||
"pid": "2-2",
|
||
"allOrgInstanceIds": [
|
||
"2-2-BkIaPt9FT626g68qZJ95xQ"
|
||
],
|
||
"id": "BkIaPt9FT626g68qZJ95xQ",
|
||
"lastModified": 1680075024794,
|
||
"sn": 999,
|
||
"delflag": "n",
|
||
"createAt": 1680075025000
|
||
},
|
||
"timestamp": 1680075115353
|
||
}
|
||
*/
|
||
companyMapper.delete(new LambdaQueryWrapper<Company>().eq(Company::getCompanySn, orgDeleteMessage.getId()));
|
||
|
||
}
|
||
|
||
public void onOrgCategoryChanged(OrgCategoryChangeMessage orgCategoryChangeMessage) {
|
||
|
||
}
|
||
|
||
public void onBatchOrgCategoryChanged(BatchOrgCategoryChangeMessage arg0) {
|
||
|
||
}
|
||
|
||
public void onCategoryOrgCreate(CategoryOrgCreateMessage arg0) {
|
||
|
||
|
||
}
|
||
|
||
public void onCategoryOrgUpdate(CategoryOrgUpdateMessage categoryOrgUpdateMessage) {
|
||
|
||
}
|
||
|
||
public void onCategoryOrgDelete(CategoryOrgDeleteMessage categoryOrgDeleteMessage) {
|
||
|
||
}
|
||
|
||
public void onUserOrgChanged(UserOrgChangeMessage userOrgChangeMessage) {
|
||
/*
|
||
新增用户:
|
||
{
|
||
"category": "2-2",
|
||
"id": "wnibicyw0TTVSymhmKmWW1ZA",
|
||
"orgId": "le5DuXudTHe7jjUfCEDIGQ",
|
||
"timestamp": 1680080521157,
|
||
"type": "COPY",
|
||
"user": {
|
||
"creator": "Z4K0Un08TibykTF5tiauD15Q",
|
||
"$opType": "copy",
|
||
"sex": "0",
|
||
"jobs": "测试岗位",
|
||
"categoryUsers": [],
|
||
"workno": "",
|
||
"phone": "17708138875",
|
||
"name": "测试234",
|
||
"state": "1",
|
||
"sn": 0,
|
||
"id": "wnibicyw0TTVSymhmKmWW1ZA",
|
||
"certificateNum": "511622199408010230",
|
||
"authLevel": "0",
|
||
"email": "",
|
||
"effectiveDate": 0,
|
||
"certificateType": "idcard"
|
||
}
|
||
}
|
||
*/
|
||
/*
|
||
转移用户:
|
||
{
|
||
"category": "2-2",
|
||
"id": "906WVquxTvuICklTCib2ycw",
|
||
"oldOrgId": "le5DuXudTHe7jjUfCEDIGQ",
|
||
"orgId": "u0D9zibI1TjKUCVjub94DiaA",
|
||
"timestamp": 1680082252596,
|
||
"type": "MOVE",
|
||
"user": {
|
||
"creator": "Z4K0Un08TibykTF5tiauD15Q",
|
||
"jp": "csdjzh",
|
||
"sex": "1",
|
||
"jobs": "",
|
||
"createAt": 1680128267000,
|
||
"orgId": "2-2-u0D9zibI1TjKUCVjub94DiaA",
|
||
"workno": "",
|
||
"categoryOrgId": "2-2",
|
||
"orgIds": [
|
||
"le5DuXudTHe7jjUfCEDIGQ"
|
||
],
|
||
"$orgAttrs": [
|
||
{
|
||
"org": {
|
||
"orgName": "宜宾三江投资集团",
|
||
"orgId": "le5DuXudTHe7jjUfCEDIGQ"
|
||
},
|
||
"attrs": {
|
||
"orgInstanceId": "2-2-le5DuXudTHe7jjUfCEDIGQ",
|
||
"sn": ""
|
||
}
|
||
}
|
||
],
|
||
"phone": "023432434",
|
||
"name": "测试顶级账号",
|
||
"id": "906WVquxTvuICklTCib2ycw",
|
||
"lastModified": 1680081467472,
|
||
"state": "1",
|
||
"certificateNum": "540102197511230593",
|
||
"authLevel": "0",
|
||
"delflag": "n",
|
||
"email": "",
|
||
"certificateType": "idcard",
|
||
"qp": "ceshidingjizhanghao"
|
||
}
|
||
}
|
||
*/
|
||
/*
|
||
删除用户:
|
||
{
|
||
"category": "2-2",
|
||
"id": "wnibicyw0TTVSymhmKmWW1ZA",
|
||
"orgId": "le5DuXudTHe7jjUfCEDIGQ",
|
||
"timestamp": 1680083189110,
|
||
"type": "DELETE"
|
||
}
|
||
*/
|
||
UserOrgChangeType type = userOrgChangeMessage.getType();
|
||
if (type.equals(UserOrgChangeType.COPY)) {
|
||
//复制 新增用户
|
||
SystemUser systemUser = convertToSystemUser(userOrgChangeMessage);
|
||
systemUserMapper.insert(systemUser);
|
||
insertBaseModuleUser(systemUser);
|
||
} else if (type.equals(UserOrgChangeType.MOVE)) {
|
||
//移动用户,什么不用做
|
||
} else if (type.equals(UserOrgChangeType.DELETE)) {
|
||
//删除用户
|
||
systemUserMapper.delete(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, userOrgChangeMessage.getId()));
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 添加模块人员数据,菜单
|
||
*
|
||
* @param systemUser
|
||
*/
|
||
private void insertBaseModuleUser(SystemUser systemUser) {
|
||
//查询yb123的模块人员数据,添加到其他账号中
|
||
List<BaseModuleUser> baseModuleUsers = baseModuleUserMapper.selectList(new LambdaQueryWrapper<BaseModuleUser>().eq(BaseModuleUser::getUserId, "1621447260403818497"));
|
||
System.out.println(baseModuleUsers);
|
||
for (BaseModuleUser baseModuleUser : baseModuleUsers) {
|
||
baseModuleUser.setId(null);
|
||
baseModuleUser.setUserId(systemUser.getUserId());
|
||
baseModuleUserMapper.insert(baseModuleUser);
|
||
}
|
||
}
|
||
|
||
private SystemUser convertToSystemUser(UserOrgChangeMessage userOrgChangeMessage) {
|
||
Map<String, Object> userMap = userOrgChangeMessage.getUser();
|
||
String account = String.valueOf(userMap.get("certificateNum"));
|
||
String name = String.valueOf(userMap.get("name"));
|
||
String phone = String.valueOf(userMap.get("phone"));
|
||
SystemUser systemUser = new SystemUser();
|
||
systemUser.setAccount(account);
|
||
//默认密码:123456
|
||
systemUser.setPassword("$2a$12$Bb9UuoLJQSYchIgl3yW05eyc1qPCMf4ogKn20VsN22VjELa73kjpu");
|
||
systemUser.setShowPassword("123456");
|
||
systemUser.setRealName(name);
|
||
systemUser.setUserTel(phone);
|
||
systemUser.setSn("B386480F85E84592B8E102224D090794");
|
||
systemUser.setAccountType(7);
|
||
systemUser.setSjUnifiedAuthenticationUserId(userOrgChangeMessage.getId());
|
||
return systemUser;
|
||
}
|
||
|
||
private Integer getAccountType(Integer companyType) {
|
||
/*
|
||
`company_type` tinyint(3) DEFAULT NULL COMMENT '企业类型,1总部,2区域,3城市,4项目部',
|
||
`account_type` tinyint(3) DEFAULT '2' COMMENT '账号类型,1系统管理员,2企业管理员账号,3企业区账号,4企业市账号,5项目账号,6项目子账号,7项目部账号,8参建单位,9政务',
|
||
*/
|
||
switch (companyType) {
|
||
case 2:
|
||
return 3;
|
||
case 3:
|
||
return 4;
|
||
case 4:
|
||
return 5;
|
||
}
|
||
return null;
|
||
}
|
||
|
||
public void onUserCreated(UserCreateMessage userCreateMessage) {
|
||
|
||
}
|
||
|
||
public void onUserUpdated(UserUpdateMessage userUpdateMessage) {
|
||
/*
|
||
{
|
||
"category": "2-2",
|
||
"id": "906WVquxTvuICklTCib2ycw",
|
||
"timestamp": 1680081467489,
|
||
"user": {
|
||
"creator": "Z4K0Un08TibykTF5tiauD15Q",
|
||
"jp": "csdjzh",
|
||
"sex": "1",
|
||
"jobs": "",
|
||
"createAt": 1680128267000,
|
||
"workno": "",
|
||
"categoryOrgId": "2-2",
|
||
"orgIds": [
|
||
"le5DuXudTHe7jjUfCEDIGQ"
|
||
],
|
||
"$orgAttrs": [
|
||
{
|
||
"org": {
|
||
"orgName": "宜宾三江投资集团",
|
||
"orgId": "le5DuXudTHe7jjUfCEDIGQ"
|
||
},
|
||
"attrs": {
|
||
"orgInstanceId": "2-2-le5DuXudTHe7jjUfCEDIGQ",
|
||
"sn": ""
|
||
}
|
||
}
|
||
],
|
||
"phone": "023432434",
|
||
"name": "测试顶级账号",
|
||
"id": "906WVquxTvuICklTCib2ycw",
|
||
"lastModified": 1680081467472,
|
||
"state": "1",
|
||
"certificateNum": "540102197511230593",
|
||
"authLevel": "0",
|
||
"delflag": "n",
|
||
"email": "",
|
||
"certificateType": "idcard",
|
||
"qp": "ceshidingjizhanghao"
|
||
}
|
||
}
|
||
*/
|
||
SystemUser systemUser = convertToSystemUserUpdate(userUpdateMessage);
|
||
systemUserMapper.update(systemUser, new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, userUpdateMessage.getId()));
|
||
}
|
||
|
||
private SystemUser convertToSystemUserUpdate(UserUpdateMessage userUpdateMessage) {
|
||
Map<String, Object> userMap = userUpdateMessage.getUser();
|
||
String account = String.valueOf(userMap.get("certificateNum"));
|
||
String name = String.valueOf(userMap.get("name"));
|
||
String phone = String.valueOf(userMap.get("phone"));
|
||
SystemUser systemUser = new SystemUser();
|
||
systemUser.setAccount(account);
|
||
//默认密码:123456
|
||
systemUser.setPassword("$2a$12$Bb9UuoLJQSYchIgl3yW05eyc1qPCMf4ogKn20VsN22VjELa73kjpu");
|
||
systemUser.setShowPassword("123456");
|
||
systemUser.setRealName(name);
|
||
systemUser.setUserTel(phone);
|
||
return systemUser;
|
||
}
|
||
|
||
public void onUserDeleted(UserDeleteMessage userDeleteMessage) {
|
||
|
||
}
|
||
}
|