diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/OauthLoginHlwService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/OauthLoginHlwService.java index e0dd48d..cab44d2 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/OauthLoginHlwService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/OauthLoginHlwService.java @@ -26,7 +26,7 @@ import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.framework.security.context.AuthenticationContextHolder; import com.ruoyi.system.service.ISysUserService; -import io.jsonwebtoken.lang.Collections; +import org.springframework.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; @@ -34,8 +34,7 @@ import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.stereotype.Service; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.concurrent.TimeUnit; @Service @@ -167,15 +166,9 @@ public class OauthLoginHlwService { newUser.setNickName(wwTyInfo.getEnterprisename()); newUser.setIdCard(wwTyInfo.getEnterprisecode()); newUser.setRoleIds(new Long[]{parseStringToLoing(StringUtil.SYS_QY)}); - //企业联系人->现根据社会信用代码查询企业信息 - Company company=companyService.queryCodeCompany(wwTyInfo.getEnterprisecode()); - if(company!=null){ - CompanyContact companyContact=new CompanyContact(); - companyContact.setContactPerson(wwTyInfo.getContactperson()); - companyContact.setContactPersonPhone(wwTyInfo.getContactphone()); - companyContact.setCompanyId(company.getCompanyId()); - companyContactService.insertContact(companyContact); - } + //修改企业和企业联系人 + updateCompanyContact(wwTyInfo); + //移动端 appUserParm.setPhone(wwTyInfo.getPhone()); appUserParm.setIdCard(wwTyInfo.getEnterprisecode()); @@ -320,20 +313,51 @@ public class OauthLoginHlwService { * 修改联系人信息 * @param wwTyInfo */ - public void updateCompanyContact(WwTyInfo wwTyInfo){ - Company company=companyService.queryCodeCompany(wwTyInfo.getEnterprisecode()); - if(company!=null){ - CompanyContact parm=new CompanyContact(); - parm.setContactPerson(wwTyInfo.getContactperson()); - parm.setContactPersonPhone(wwTyInfo.getContactphone()); - parm.setCompanyId(company.getCompanyId()); - List companyContacts=companyContactService.getSelectList(parm); - if(Collections.isEmpty(companyContacts)){ - CompanyContact companyContact=new CompanyContact(); - companyContact.setContactPerson(wwTyInfo.getContactperson()); - companyContact.setContactPersonPhone(wwTyInfo.getContactphone()); - companyContact.setCompanyId(company.getCompanyId()); - companyContactService.insertContact(companyContact); + public void updateCompanyContact(WwTyInfo wwTyInfo) { + if (wwTyInfo == null) { + throw new IllegalArgumentException("参数WwTyInfo不能为空"); + } + String enterpriseCode = wwTyInfo.getEnterprisecode(); + String enterpriseName = wwTyInfo.getEnterprisename(); + + String contactPerson = wwTyInfo.getContactperson(); + String contactPhone = wwTyInfo.getContactphone(); + + Company company = companyService.queryCodeCompany(enterpriseCode); + + CompanyContact contact = new CompanyContact(); + contact.setContactPerson(contactPerson); + contact.setContactPersonPhone(contactPhone); + + if (Objects.nonNull(company)) { + Company updateCompany = new Company(); + updateCompany.setCompanyId(company.getCompanyId()); + updateCompany.setCode(enterpriseCode); + updateCompany.setName(enterpriseName); + companyService.updateCompany(updateCompany); + + contact.setCompanyId(company.getCompanyId()); + List existingContacts = companyContactService.getSelectList(contact); + + List contactList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(existingContacts)) { + contact.setId(existingContacts.get(0).getId()); + contactList.add(contact); + companyContactService.insertUpadteCompanyContact(contactList); + } else { + companyContactService.insertContact(contact); + } + } else { + Company newCompany = new Company(); + newCompany.setCode(enterpriseCode); + newCompany.setName(enterpriseName); + companyService.insertCompany(newCompany); + + if (Objects.nonNull(newCompany.getCompanyId())) { + contact.setCompanyId(newCompany.getCompanyId()); + companyContactService.insertContact(contact); + } else { + throw new RuntimeException("新增企业失败:社会信用代码=" + enterpriseCode + ",未返回有效企业ID"); } } }