From 8aa6091e0cbbf9254fb62573fdcb77020c2ae4b6 Mon Sep 17 00:00:00 2001 From: chenshaohua <635616957@qq.com> Date: Wed, 17 Jun 2026 00:00:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=EF=BC=8C=E4=BF=9D=E5=AD=98=E4=BC=81=E4=B8=9A=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/cms/CmsJobController.java | 3 ++ .../cms/controller/cms/CompanyController.java | 3 +- .../cms/service/impl/CompanyServiceImpl.java | 16 ++++--- .../framework/web/service/SsoService.java | 44 ++++++++++++++++++- 4 files changed, 57 insertions(+), 9 deletions(-) diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java index 6853079..96f8a0b 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CmsJobController.java @@ -73,6 +73,9 @@ public class CmsJobController extends BaseController { if (RoleUtils.isCompanyAdmin()) { Company company = companyService.queryCodeCompany(RoleUtils.getCurrentUseridCard()); + if(company==null){ + return getDataTable(new ArrayList<>()); + } job.setCompanyId(Objects.nonNull(company) ? company.getCompanyId() : null); } startPage(); diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CompanyController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CompanyController.java index 4f56357..bcf442a 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CompanyController.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/cms/CompanyController.java @@ -54,8 +54,7 @@ public class CompanyController extends BaseController if(StringUtils.isNotEmpty(RoleUtils.getCurrentUseridCard())){ company.setCode(RoleUtils.getCurrentUseridCard()); }else{ - List list = new ArrayList<>(); - return getDataTable(list); + return getDataTable(new ArrayList<>()); } } startPage(); diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java index b4c8b74..004eea6 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyServiceImpl.java @@ -129,12 +129,16 @@ public class CompanyServiceImpl extends ServiceImpl impl } int insert =companyMapper.insert(company); if(insert>0){ - company.getCompanyContactList().forEach(x->{ - CompanyContact companyContact=new CompanyContact(); - BeanUtils.copyProperties(x,companyContact); - companyContact.setCompanyId(company.getCompanyId()); - companyContactMapper.insert(companyContact); - }); + List contactList = company.getCompanyContactList(); + if (contactList != null) { + Long companyId = company.getCompanyId(); + contactList.forEach(x->{ + CompanyContact companyContact=new CompanyContact(); + BeanUtils.copyProperties(x,companyContact); + companyContact.setCompanyId(companyId); + companyContactMapper.insert(companyContact); + }); + } } return insert; } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java index 406f1ed..cde793c 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SsoService.java @@ -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