修改单点登录,保存企业信息

This commit is contained in:
chenshaohua
2026-06-17 00:00:36 +08:00
parent 666c49aa11
commit 8aa6091e0c
4 changed files with 57 additions and 9 deletions

View File

@@ -2,10 +2,12 @@ package com.ruoyi.framework.web.service;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.ruoyi.cms.service.ICompanyService;
import com.ruoyi.cms.service.impl.AppUserServiceImpl;
import com.ruoyi.cms.util.StringUtil;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.entity.AppUser;
import com.ruoyi.common.core.domain.entity.Company;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginSiteUser;
import com.ruoyi.common.core.domain.model.LoginUser;
@@ -40,6 +42,8 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
/**
* @Author: chenyanchang
@@ -69,6 +73,8 @@ public class SsoService {
@Autowired
private UserDetailsService userDetailsService;
@Autowired
private ICompanyService companyService;
//一体机pc个人企业
@Value("${lc_web_auth.appId}")
@@ -230,6 +236,17 @@ public class SsoService {
//获取身份证号
String personCardNo = null;
JSONObject info = null;
//判断是否是企业
boolean hasRecruitRole = Optional.ofNullable(userJson.getJSONArray("roles"))
.filter(arr -> !arr.isEmpty())
.map(JSONArray::stream)
.orElse(Stream.empty())
.anyMatch(obj -> {
JSONObject role = (JSONObject) obj;
Long roleCode = role.getLong("roleCode");
return roleCode != null && roleCode == 1102L;
});
//获取用户信息
if (userJson.containsKey("info")) {
info = userJson.getJSONObject("info");
if (ObjectUtils.isNotEmpty(info) && info.containsKey("personCardNo")) {
@@ -240,7 +257,17 @@ public class SsoService {
}
personCardNo = EncryptUtil.decryptByAppIdAndSecret(personCardNo, webAppId, webAppSecret);
}else{
personCardNo=info.getString("entCreditCode");
//保存企业信息
if(hasRecruitRole){
personCardNo=info.getString("entCreditCode");
if (personCardNo != null) {
Company company=companyService.queryCodeCompany(personCardNo);
if(company==null){
JSONObject infoJson = userJson.getJSONObject("info");
saveCompany(infoJson);
}
}
}
}
}
@@ -268,6 +295,21 @@ public class SsoService {
return backJson;
}
/**
* 保存企业信息
* @param object
*/
public void saveCompany(JSONObject object){
Company company=new Company();
company.setCode(object.getString("entCreditCode"));
company.setName(object.getString("entName"));
company.setLegalPerson(object.getString("entLegalPersonName"));
company.setLegalIdCard(object.getString("entLegalPersonCardNo"));
company.setLegalPhone(object.getString("entLegalPersonPhone"));
company.setIndustry(object.getString("entIndustry"));
company.setRegisteredAddress(object.getString("entRegisteredAddress"));
companyService.insertCompany(company);
}
/**
* pc端监管端单点登录-code
* @param param