344 lines
12 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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) {
}
}