diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCompanyContactController.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCompanyContactController.java new file mode 100644 index 0000000..71f8073 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/controller/app/AppCompanyContactController.java @@ -0,0 +1,58 @@ +package com.ruoyi.cms.controller.app; + + +import com.ruoyi.cms.domain.vo.CompanyContactVo; +import com.ruoyi.cms.service.CompanyContactService; +import com.ruoyi.cms.util.ListUtil; +import com.ruoyi.common.annotation.BussinessLog; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.entity.CompanyContact; +import com.ruoyi.common.core.page.TableDataInfo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +/** + * 公司联系人 + * + * @author + * @email + * @date 2025-09-30 15:57:06 + */ +@RestController +@RequestMapping("/app/companycontact") +@Api(tags = "移动端:公司联系人") +public class AppCompanyContactController extends BaseController { + @Autowired + private CompanyContactService companyContactService; + + /** + * 列表 + */ + @ApiOperation("公司联系人列表") + @GetMapping("/list") + public TableDataInfo list(CompanyContact companyContact){ + List list=companyContactService.getSelectList(companyContact); + return getDataTable(list); + } + + @BussinessLog(title = "移动端保存企业联系人") + @PostMapping("/batchInsertUpdate") + public AjaxResult batchInsertUpdate(@RequestBody CompanyContactVo contactVo) + { + if (contactVo == null) { + return AjaxResult.error("请求参数不能为空"); + } + List contactList = contactVo.getCompanyContactList(); + if (ListUtil.isListObjectEmptyOrNull(contactList)) { // 假设 ListUtil 工具类判断 null 或空集合 + return AjaxResult.error("请至少填写一条联系人信息"); + } + companyContactService.insertUpadteCompanyContact(contactList); + return success(); + } +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/vo/CompanyContactVo.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/vo/CompanyContactVo.java new file mode 100644 index 0000000..b80d526 --- /dev/null +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/domain/vo/CompanyContactVo.java @@ -0,0 +1,12 @@ +package com.ruoyi.cms.domain.vo; + +import com.ruoyi.common.core.domain.entity.CompanyContact; +import lombok.Data; + +import java.util.List; + +@Data +public class CompanyContactVo { + + private List companyContactList; +} diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyContactMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyContactMapper.java index 7508f65..fb3f98f 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyContactMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/CompanyContactMapper.java @@ -17,4 +17,6 @@ public interface CompanyContactMapper extends BaseMapper { List getSelectList(CompanyContact companyContact); int batchInsert(List list); + + int batchUpdate(List list); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/CompanyContactService.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/CompanyContactService.java index a1d5f3c..bedfd33 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/CompanyContactService.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/CompanyContactService.java @@ -14,5 +14,7 @@ import java.util.List; public interface CompanyContactService { List getSelectList(CompanyContact companyContact); + + int insertUpadteCompanyContact(List list); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyContactServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyContactServiceImpl.java index 8768587..c8e592e 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyContactServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/CompanyContactServiceImpl.java @@ -5,9 +5,13 @@ import com.ruoyi.cms.mapper.CompanyContactMapper; import com.ruoyi.cms.service.CompanyContactService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; @Service @@ -19,4 +23,20 @@ public class CompanyContactServiceImpl extends ServiceImpl getSelectList(CompanyContact companyContact){ return companyContactMapper.getSelectList(companyContact); } + + @Override + @Transactional + public int insertUpadteCompanyContact(List list) { + Map> partitioned = list.stream() + .collect(Collectors.partitioningBy(it -> it.getId() != null)); + List add=partitioned.get(false); + List udp=partitioned.get(true); + if(add.size()>0){ + companyContactMapper.batchInsert(add); + } + if(udp.size()>0){ + companyContactMapper.batchUpdate(udp); + } + return 0; + } } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java index 40dbe6b..3e9ff6e 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/ESJobSearchImpl.java @@ -11,6 +11,7 @@ import com.ruoyi.cms.service.IESJobSearchService; import com.ruoyi.cms.util.ListUtil; import com.ruoyi.cms.util.StringUtil; import com.ruoyi.common.core.domain.entity.Company; +import com.ruoyi.common.core.domain.model.LoginSiteUser; import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.utils.SiteSecurityUtils; import com.ruoyi.common.utils.bean.BeanUtils; @@ -438,7 +439,14 @@ public class ESJobSearchImpl implements IESJobSearchService wrapper.orderByDesc(ESJobDocument::getMaxSalary); } } - if(!ListUtil.isListEmptyOrNull(jobIds)){ + //企业用户排除es去除jobIds + boolean needExclude = true; + if (SiteSecurityUtils.isLogin()) { + LoginSiteUser siteUser = SiteSecurityUtils.getLoginSiteUser(); + AppUser appUser = siteUser.getUser(); + needExclude = !StringUtil.IS_COMPANY_USER.equals(appUser.getIsCompanyUser()); + } + if(needExclude && !ListUtil.isListEmptyOrNull(jobIds)){ wrapper.not().in(ESJobDocument::getJobId, jobIds); } return wrapper; diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/ListUtil.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/ListUtil.java index 2d1bfd5..1a7bf76 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/ListUtil.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/ListUtil.java @@ -1,7 +1,5 @@ package com.ruoyi.cms.util; -import org.apache.poi.ss.formula.functions.T; - import java.util.List; import java.util.Objects; @@ -15,4 +13,8 @@ public class ListUtil { return s.isEmpty(); } + public static boolean isListObjectEmptyOrNull(List list) { + // 先判断 null,再判断空集合(短路逻辑避免 NPE) + return list == null || list.isEmpty(); + } } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java index 1fa8245..61ad596 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/util/StringUtil.java @@ -12,6 +12,11 @@ public class StringUtil { public static final Long COMPANY_ADMIN_ROLE_KEY = 100L; + /** + * 企业用户 + */ + public static final String IS_COMPANY_USER = "0"; + public static Boolean isEmptyOrNull(String s){ if(Objects.isNull(s)){return true;} return s.isEmpty(); diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/CompanyContactMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/CompanyContactMapper.xml index 9b89186..d9e3dc5 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/CompanyContactMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/CompanyContactMapper.xml @@ -49,4 +49,44 @@ + + UPDATE company_contact + SET + contact_person = CASE + + WHEN id = #{item.id} THEN #{item.contactPerson} + + ELSE contact_person + END, + contact_person_phone = CASE + + WHEN id = #{item.id} THEN #{item.contactPersonPhone} + + ELSE contact_person_phone + END, + update_by = CASE + + WHEN id = #{item.id} THEN #{item.updateBy} + + ELSE update_by + END, + update_time = CASE + + WHEN id = #{item.id} THEN NOW() + + ELSE update_time + END, + remark = CASE + + WHEN id = #{item.id} THEN #{item.remark} + + ELSE remark + END + WHERE + id IN + + #{item.id} + + +