1.修改推荐岗位时,es查询角色时企业时,排除jobIds,企业用户则不排除

2.添加企业联系人新增和修改问题
This commit is contained in:
sh
2025-10-25 11:54:18 +08:00
parent 5ee26b01d0
commit 267d010ce7
9 changed files with 154 additions and 5 deletions

View File

@@ -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<CompanyContact> list=companyContactService.getSelectList(companyContact);
return getDataTable(list);
}
@BussinessLog(title = "移动端保存企业联系人")
@PostMapping("/batchInsertUpdate")
public AjaxResult batchInsertUpdate(@RequestBody CompanyContactVo contactVo)
{
if (contactVo == null) {
return AjaxResult.error("请求参数不能为空");
}
List<CompanyContact> contactList = contactVo.getCompanyContactList();
if (ListUtil.isListObjectEmptyOrNull(contactList)) { // 假设 ListUtil 工具类判断 null 或空集合
return AjaxResult.error("请至少填写一条联系人信息");
}
companyContactService.insertUpadteCompanyContact(contactList);
return success();
}
}

View File

@@ -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<CompanyContact> companyContactList;
}

View File

@@ -17,4 +17,6 @@ public interface CompanyContactMapper extends BaseMapper<CompanyContact> {
List<CompanyContact> getSelectList(CompanyContact companyContact); List<CompanyContact> getSelectList(CompanyContact companyContact);
int batchInsert(List<CompanyContact> list); int batchInsert(List<CompanyContact> list);
int batchUpdate(List<CompanyContact> list);
} }

View File

@@ -14,5 +14,7 @@ import java.util.List;
public interface CompanyContactService { public interface CompanyContactService {
List<CompanyContact> getSelectList(CompanyContact companyContact); List<CompanyContact> getSelectList(CompanyContact companyContact);
int insertUpadteCompanyContact(List<CompanyContact> list);
} }

View File

@@ -5,9 +5,13 @@ import com.ruoyi.cms.mapper.CompanyContactMapper;
import com.ruoyi.cms.service.CompanyContactService; import com.ruoyi.cms.service.CompanyContactService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; 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 @Service
@@ -19,4 +23,20 @@ public class CompanyContactServiceImpl extends ServiceImpl<CompanyContactMapper,
public List<CompanyContact> getSelectList(CompanyContact companyContact){ public List<CompanyContact> getSelectList(CompanyContact companyContact){
return companyContactMapper.getSelectList(companyContact); return companyContactMapper.getSelectList(companyContact);
} }
@Override
@Transactional
public int insertUpadteCompanyContact(List<CompanyContact> list) {
Map<Boolean, List<CompanyContact>> partitioned = list.stream()
.collect(Collectors.partitioningBy(it -> it.getId() != null));
List<CompanyContact> add=partitioned.get(false);
List<CompanyContact> udp=partitioned.get(true);
if(add.size()>0){
companyContactMapper.batchInsert(add);
}
if(udp.size()>0){
companyContactMapper.batchUpdate(udp);
}
return 0;
}
} }

View File

@@ -11,6 +11,7 @@ import com.ruoyi.cms.service.IESJobSearchService;
import com.ruoyi.cms.util.ListUtil; import com.ruoyi.cms.util.ListUtil;
import com.ruoyi.cms.util.StringUtil; import com.ruoyi.cms.util.StringUtil;
import com.ruoyi.common.core.domain.entity.Company; 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.core.text.Convert;
import com.ruoyi.common.utils.SiteSecurityUtils; import com.ruoyi.common.utils.SiteSecurityUtils;
import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.common.utils.bean.BeanUtils;
@@ -438,7 +439,14 @@ public class ESJobSearchImpl implements IESJobSearchService
wrapper.orderByDesc(ESJobDocument::getMaxSalary); 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); wrapper.not().in(ESJobDocument::getJobId, jobIds);
} }
return wrapper; return wrapper;

View File

@@ -1,7 +1,5 @@
package com.ruoyi.cms.util; package com.ruoyi.cms.util;
import org.apache.poi.ss.formula.functions.T;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@@ -15,4 +13,8 @@ public class ListUtil {
return s.isEmpty(); return s.isEmpty();
} }
public static boolean isListObjectEmptyOrNull(List<?> list) {
// 先判断 null再判断空集合短路逻辑避免 NPE
return list == null || list.isEmpty();
}
} }

View File

@@ -12,6 +12,11 @@ public class StringUtil {
public static final Long COMPANY_ADMIN_ROLE_KEY = 100L; public static final Long COMPANY_ADMIN_ROLE_KEY = 100L;
/**
* 企业用户
*/
public static final String IS_COMPANY_USER = "0";
public static Boolean isEmptyOrNull(String s){ public static Boolean isEmptyOrNull(String s){
if(Objects.isNull(s)){return true;} if(Objects.isNull(s)){return true;}
return s.isEmpty(); return s.isEmpty();

View File

@@ -49,4 +49,44 @@
</foreach> </foreach>
</insert> </insert>
<update id="batchUpdate" parameterType="java.util.List">
UPDATE company_contact
SET
contact_person = CASE
<foreach collection="list" item="item" separator="">
WHEN id = #{item.id} THEN #{item.contactPerson}
</foreach>
ELSE contact_person
END,
contact_person_phone = CASE
<foreach collection="list" item="item" separator="">
WHEN id = #{item.id} THEN #{item.contactPersonPhone}
</foreach>
ELSE contact_person_phone
END,
update_by = CASE
<foreach collection="list" item="item" separator="">
WHEN id = #{item.id} THEN #{item.updateBy}
</foreach>
ELSE update_by
END,
update_time = CASE
<foreach collection="list" item="item" separator="">
WHEN id = #{item.id} THEN NOW()
</foreach>
ELSE update_time
END,
remark = CASE
<foreach collection="list" item="item" separator="">
WHEN id = #{item.id} THEN #{item.remark}
</foreach>
ELSE remark
END
WHERE
id IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</update>
</mapper> </mapper>