344 lines
12 KiB
Java
Raw Normal View History

2023-03-28 19:07:12 +08:00
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.*;
2023-03-30 16:29:06 +08:00
import com.zhgd.xmgl.modules.basicdata.entity.BaseModuleUser;
2023-03-28 19:07:12 +08:00
import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
2023-03-30 16:29:06 +08:00
import com.zhgd.xmgl.modules.basicdata.mapper.BaseModuleUserMapper;
2023-03-28 19:07:12 +08:00
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;
2023-03-28 19:07:12 +08:00
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
2023-03-28 19:07:12 +08:00
2023-03-30 16:29:06 +08:00
import java.util.List;
2023-03-28 19:07:12 +08:00
import java.util.Map;
@Component
2023-03-28 19:07:12 +08:00
@Slf4j
public class SjMqService {
@Autowired
private CompanyMapper companyMapper;
@Autowired
private SystemUserMapper systemUserMapper;
2023-03-30 16:29:06 +08:00
@Autowired
private BaseModuleUserMapper baseModuleUserMapper;
2023-03-28 19:07:12 +08:00
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));
2023-03-28 19:07:12 +08:00
Company company = new Company();
//公司sn就是那边的id
company.setCompanySn(id);
company.setCompanyName(name);
company.setCompanyType(parentCompany.getCompanyType() + 1);
company.setParentId(parentCompany.getCompanyId());
company.setHeadquartersSn("2e07f0e2569c43fb835ae2082d1d314f");
2023-03-28 19:07:12 +08:00
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
}
*/
2023-03-28 19:07:12 +08:00
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);
2023-03-30 16:29:06 +08:00
insertBaseModuleUser(systemUser);
} else if (type.equals(UserOrgChangeType.MOVE)) {
2023-03-30 16:29:06 +08:00
//移动用户,什么不用做
} else if (type.equals(UserOrgChangeType.DELETE)) {
//删除用户
systemUserMapper.delete(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getSjUnifiedAuthenticationUserId, userOrgChangeMessage.getId()));
}
}
2023-03-30 16:29:06 +08:00
/**
* 添加模块人员数据菜单
*
* @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);
}
2023-03-30 16:29:06 +08:00
}
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);
2023-03-30 16:29:06 +08:00
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) {
}
2023-03-28 19:07:12 +08:00
}