三江统一登录修改

This commit is contained in:
Administrator 2023-03-28 19:07:12 +08:00
parent 573295d316
commit f0940ad897
9 changed files with 143 additions and 93 deletions

View File

@ -38,7 +38,7 @@ public class UopModifyMessageReceiveListener {
receiver = new UopMQMessageReceiverServiceImpl(name, password, url); receiver = new UopMQMessageReceiverServiceImpl(name, password, url);
// 将上一步自定义的Listener加进去 // 将上一步自定义的Listener加进去
receiver.addListener(new UopCustomMessageReceiverServiceImpl()); receiver.addListener(new UopCustomMessageReceiverServiceImpl());
//receiver.start(); receiver.start();
System.out.println("启动消费者"); System.out.println("启动消费者");
} }
} }

View File

@ -0,0 +1,48 @@
package com.zhgd.sjmq.service;
import com.chinacreator.c2.uop.sync.message.org.OrgCreateMessage;
import com.gexin.fastjson.JSON;
import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
@Service
@Slf4j
public class SjMqService {
@Autowired
private CompanyMapper companyMapper;
@Autowired
private SystemUserMapper systemUserMapper;
private Company convertToCompany(OrgCreateMessage orgCreateMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(orgCreateMessage));
Map<String, Object> organization = orgCreateMessage.getOrganization();
Company company = new Company();
//company.setCompanyId();
//company.setCompanySn();
//company.setCompanyName();
//company.setCreateTime();
//company.setCompanyTel();
//company.setCompanyType();
//company.setParentId();
//company.setHeadquartersSn();
//company.setLongitude();
//company.setLatitude();
//company.setPropagateFile();
//company.setFullSn();
//company.setRangeAddr();
//company.setParentSn();
//company.setEditType();
return company;
}
public void onOrgCreated(OrgCreateMessage orgCreateMessage) {
Company company = convertToCompany(orgCreateMessage);
companyMapper.insert(company);
}
}

View File

@ -20,22 +20,95 @@ import com.chinacreator.c2.uop.sync.message.user.UserDeleteMessage;
import com.chinacreator.c2.uop.sync.message.user.UserOrgChangeMessage; import com.chinacreator.c2.uop.sync.message.user.UserOrgChangeMessage;
import com.chinacreator.c2.uop.sync.message.user.UserUpdateMessage; import com.chinacreator.c2.uop.sync.message.user.UserUpdateMessage;
import com.chinacreator.c2.uop.sync.receiver.UopModifyMessageListener; import com.chinacreator.c2.uop.sync.receiver.UopModifyMessageListener;
import com.gexin.fastjson.JSON;
import com.zhgd.xmgl.modules.basicdata.entity.Company; import com.zhgd.xmgl.modules.basicdata.entity.Company;
import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper; import com.zhgd.xmgl.modules.basicdata.mapper.CompanyMapper;
import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper; import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper;
import org.jetbrains.annotations.NotNull; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map; import java.util.Map;
/** /**
* 三江统一登录的mq数据同步处理service * 三江统一登录的mq数据同步处理service
*/ */
@Slf4j
public class UopCustomMessageReceiverServiceImpl implements UopModifyMessageListener { public class UopCustomMessageReceiverServiceImpl implements UopModifyMessageListener {
@Autowired @Autowired
private CompanyMapper companyMapper; private SjMqService service;
@Autowired
private SystemUserMapper systemUserMapper; @Override
public void onOrgCreated(OrgCreateMessage orgCreateMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(orgCreateMessage));
service.onOrgCreated(orgCreateMessage);
}
@Override
public void onOrgUpdated(OrgUpdateMessage orgUpdateMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(orgUpdateMessage));
}
@Override
public void onOrgDeleted(OrgDeleteMessage orgDeleteMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(orgDeleteMessage));
}
@Override
public void onOrgCategoryChanged(OrgCategoryChangeMessage orgCategoryChangeMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(orgCategoryChangeMessage));
}
@Override
public void onBatchOrgCategoryChanged(BatchOrgCategoryChangeMessage arg0) {
log.info("sj的mq接收{}", JSON.toJSONString(arg0));
}
@Override
public void onCategoryOrgCreate(CategoryOrgCreateMessage arg0) {
log.info("sj的mq接收{}", JSON.toJSONString(arg0));
}
@Override
public void onCategoryOrgUpdate(CategoryOrgUpdateMessage categoryOrgUpdateMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(categoryOrgUpdateMessage));
}
@Override
public void onCategoryOrgDelete(CategoryOrgDeleteMessage categoryOrgDeleteMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(categoryOrgDeleteMessage));
}
@Override
public void onUserOrgChanged(UserOrgChangeMessage userOrgChangeMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(userOrgChangeMessage));
}
@Override
public void onUserCreated(UserCreateMessage userCreateMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(userCreateMessage));
}
@Override
public void onUserUpdated(UserUpdateMessage userUpdateMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(userUpdateMessage));
}
@Override
public void onUserDeleted(UserDeleteMessage userDeleteMessage) {
log.info("sj的mq接收{}", JSON.toJSONString(userDeleteMessage));
}
/*************************************************************************/
@Override @Override
public void onAppSystemManageMessage(Map<String, Object> arg0) { public void onAppSystemManageMessage(Map<String, Object> arg0) {
@ -77,88 +150,6 @@ public class UopCustomMessageReceiverServiceImpl implements UopModifyMessageList
} }
@Override
public void onUserCreated(UserCreateMessage userCreateMessage) {
}
@Override
public void onUserUpdated(UserUpdateMessage userUpdateMessage) {
}
@Override
public void onUserDeleted(UserDeleteMessage userDeleteMessage) {
}
@Override
public void onUserOrgChanged(UserOrgChangeMessage userOrgChangeMessage) {
}
@Override
public void onOrgCreated(OrgCreateMessage orgCreateMessage) {
Company company = convertToCompany(orgCreateMessage);
companyMapper.insert(company);
}
private Company convertToCompany(OrgCreateMessage orgCreateMessage) {
Map<String, Object> organization = orgCreateMessage.getOrganization();
Company company = new Company();
//company.setCompanyId();
//company.setCompanySn();
//company.setCompanyName();
//company.setCreateTime();
//company.setCompanyTel();
//company.setCompanyType();
//company.setParentId();
//company.setHeadquartersSn();
//company.setLongitude();
//company.setLatitude();
//company.setPropagateFile();
//company.setFullSn();
//company.setRangeAddr();
//company.setParentSn();
//company.setEditType();
return company;
}
@Override
public void onOrgUpdated(OrgUpdateMessage orgUpdateMessage) {
}
@Override
public void onOrgDeleted(OrgDeleteMessage orgDeleteMessage) {
}
@Override
public void onOrgCategoryChanged(OrgCategoryChangeMessage orgCategoryChangeMessage) {
}
@Override
public void onBatchOrgCategoryChanged(BatchOrgCategoryChangeMessage arg0) {
}
@Override
public void onCategoryOrgCreate(CategoryOrgCreateMessage arg0) {
}
@Override
public void onCategoryOrgUpdate(CategoryOrgUpdateMessage categoryOrgUpdateMessage) {
}
@Override
public void onCategoryOrgDelete(CategoryOrgDeleteMessage categoryOrgDeleteMessage) {
}
@Override @Override
public void onMetaClassCreate(MetaClassCreateMessage metaClassCreateMessage) { public void onMetaClassCreate(MetaClassCreateMessage metaClassCreateMessage) {

View File

@ -13,6 +13,9 @@ public class JwtPayloadUserInfo {
private List<String> orginsids; private List<String> orginsids;
private List<String> oid; private List<String> oid;
private String uid; private String uid;
/**
* cer当做我们的account
*/
private String cer; private String cer;
private String certype; private String certype;
private String phone; private String phone;

View File

@ -11,6 +11,7 @@ import com.zhgd.xmgl.util.sj.SjUnifiedAuthenticationHttpUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -38,6 +39,8 @@ public class SjLoginController {
@Autowired @Autowired
private StringRedisTemplate redisTemplate; private StringRedisTemplate redisTemplate;
public static String SJ_TOKEN_PREFIX = "SJ_UNIFIEDAUTHENTICATION_TOKEN:"; public static String SJ_TOKEN_PREFIX = "SJ_UNIFIEDAUTHENTICATION_TOKEN:";
@Value("${sj.unifiedAuthentication.success.redirect:}")
private String sjUnifiedAuthenticationSuccessRedirect;
/** /**
* 根据code获取token * 根据code获取token
@ -63,7 +66,7 @@ public class SjLoginController {
} }
//获取用户信息 //获取用户信息
//重定向到应用页面一般为首页 //重定向到应用页面一般为首页
response.sendRedirect("http://192.168.34.150:8080/index.html#/login?UID=" + access_token); response.sendRedirect(sjUnifiedAuthenticationSuccessRedirect + access_token);
} }
/** /**
@ -91,6 +94,7 @@ public class SjLoginController {
@GetMapping("getLoginInfoByToken") @GetMapping("getLoginInfoByToken")
@ResponseBody @ResponseBody
public Result getLoginInfoByToken(@RequestParam String uid) throws InvalidKeySpecException { public Result getLoginInfoByToken(@RequestParam String uid) throws InvalidKeySpecException {
log.info("uid>>>{}", uid);
JwtPayloadUserInfo jwtPayloadUserInfo = JwtRsaUtils.verifyWithUserInfo(uid); JwtPayloadUserInfo jwtPayloadUserInfo = JwtRsaUtils.verifyWithUserInfo(uid);
if (jwtPayloadUserInfo != null) { if (jwtPayloadUserInfo != null) {
Result result = systemUserService.sjLogin(jwtPayloadUserInfo); Result result = systemUserService.sjLogin(jwtPayloadUserInfo);

View File

@ -873,11 +873,12 @@ public class SystemUserServiceImpl extends ServiceImpl<SystemUserMapper, SystemU
@Override @Override
public Result sjLogin(JwtPayloadUserInfo jwtPayloadUserInfo) { public Result sjLogin(JwtPayloadUserInfo jwtPayloadUserInfo) {
QueryWrapper<SystemUser> queryWrapper = new QueryWrapper(); QueryWrapper<SystemUser> queryWrapper = new QueryWrapper();
String account = jwtPayloadUserInfo.getCer();
queryWrapper.lambda() queryWrapper.lambda()
.eq(SystemUser::getAccount, jwtPayloadUserInfo.getAc()); .eq(SystemUser::getAccount, account);
SystemUser systemUser = systemUserMapper.selectOne(queryWrapper); SystemUser systemUser = systemUserMapper.selectOne(queryWrapper);
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("account", jwtPayloadUserInfo.getAc()); map.put("account", account);
Map<String, Object> rsMap = doLogin(map, systemUser); Map<String, Object> rsMap = doLogin(map, systemUser);
return Result.success(rsMap); return Result.success(rsMap);
} }

View File

@ -103,6 +103,7 @@ public class JwtTokenFilter extends OncePerRequestFilter {
//判断用户类型统一登录还是这边登录的 //判断用户类型统一登录还是这边登录的
String account = auth.getName(); String account = auth.getName();
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getAccount, account)); SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getAccount, account));
SecurityContextHolder.getContext().setAuthentication(auth);
//统一登录的redis中维护统一登录token //统一登录的redis中维护统一登录token
Integer accountType = systemUser.getAccountType(); Integer accountType = systemUser.getAccountType();
if (Objects.equals(accountType, 2) || Objects.equals(accountType, 3) if (Objects.equals(accountType, 2) || Objects.equals(accountType, 3)

View File

@ -86,3 +86,5 @@ c2_orguser_subscription=true
sj.unifiedAuthentication.login.url=http://116.169.63.183:30913 sj.unifiedAuthentication.login.url=http://116.169.63.183:30913
#\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u6210\u529F\u8DF3\u8F6C\u540E\u63A5\u6536code\u7684\u5730\u5740 #\u4E09\u6C5F\u7EDF\u4E00\u767B\u5F55\u6210\u529F\u8DF3\u8F6C\u540E\u63A5\u6536code\u7684\u5730\u5740
sj.unifiedAuthentication.login.code.url=http://wbtqry.natappfree.cc/xmgl/sj/unifiedAuthentication/getTokenByCode sj.unifiedAuthentication.login.code.url=http://wbtqry.natappfree.cc/xmgl/sj/unifiedAuthentication/getTokenByCode
#\u7EDF\u4E00\u767B\u5F55\u6210\u529F\u540E\u8DF3\u8F6Curl
sj.unifiedAuthentication.success.redirect = "http://192.168.34.150:8080/index.html#/login?UID=";

View File

@ -6,7 +6,7 @@
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--> <!--格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}) - %highlight(%msg) %n <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %method:%L %cyan(%logger{50}) - %highlight(%msg) %n
</pattern> </pattern>
</encoder> </encoder>
</appender> </appender>
@ -44,7 +44,7 @@
<file>${log.path}/zhgd-info.log</file> <file>${log.path}/zhgd-info.log</file>
<!--日志文件输出格式--> <!--日志文件输出格式-->
<encoder> <encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n</pattern>
<charset>UTF-8</charset> <charset>UTF-8</charset>
</encoder> </encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 --> <!-- 日志记录器的滚动策略,按日期,按大小记录 -->