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 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().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().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().eq(SystemUser::getSjUnifiedAuthenticationUserId, userOrgChangeMessage.getId())); } } /** * 添加模块人员数据,菜单 * * @param systemUser */ private void insertBaseModuleUser(SystemUser systemUser) { //查询yb123的模块人员数据,添加到其他账号中 List baseModuleUsers = baseModuleUserMapper.selectList(new LambdaQueryWrapper().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 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().eq(SystemUser::getSjUnifiedAuthenticationUserId, userUpdateMessage.getId())); } private SystemUser convertToSystemUserUpdate(UserUpdateMessage userUpdateMessage) { Map 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) { } }