Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -243,4 +243,9 @@ public class RedisConstant {
|
|||||||
*/
|
*/
|
||||||
public static final String MDM_AREA_OTHERS = "mdm:area:others:{0}";
|
public static final String MDM_AREA_OTHERS = "mdm:area:others:{0}";
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态标题
|
||||||
|
*/
|
||||||
|
public static final String CONTENT_TITLES = "content:titles";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ public enum ErrorCodeEnum {
|
|||||||
INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null),
|
INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null),
|
||||||
INTERVIEW_PARTNER_NOT_EXIST(1021115, "线索下的加盟商不存在!", null),
|
INTERVIEW_PARTNER_NOT_EXIST(1021115, "线索下的加盟商不存在!", null),
|
||||||
ROOM_STATUS_ERROR(10211156, "当前面试房间状态不允许进行该操作!", null),
|
ROOM_STATUS_ERROR(10211156, "当前面试房间状态不允许进行该操作!", null),
|
||||||
|
CONTENT_DUPLICATED(10211200, "动态标题重复!", null),
|
||||||
SIGN_FAIL(600000, "验签失败", null),
|
SIGN_FAIL(600000, "验签失败", null),
|
||||||
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
|
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
|
||||||
NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),
|
NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),
|
||||||
|
|||||||
@@ -39,9 +39,24 @@ public interface HyContentInfoMapper {
|
|||||||
*/
|
*/
|
||||||
List<HyContentInfoVO> queryContentList(ContentQueryListDto dto);
|
List<HyContentInfoVO> queryContentList(ContentQueryListDto dto);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* B 端使用的动态查询
|
||||||
|
*/
|
||||||
|
List<HyContentInfoVO> queryContentListForB(ContentQueryListDto dto);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据contentId查询动态详情
|
* 根据contentId查询动态详情
|
||||||
*/
|
*/
|
||||||
HyContentInfoDO queryContentInfo(@Param("contentId") String contentId);
|
HyContentInfoDO queryContentInfo(@Param("contentId") String contentId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题是否重复
|
||||||
|
*/
|
||||||
|
Boolean whetherTitleDuplicated(@Param("contentTitle") String contentTitle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询动态标题
|
||||||
|
*/
|
||||||
|
List<String> queryTitles();
|
||||||
}
|
}
|
||||||
@@ -179,6 +179,29 @@
|
|||||||
and user_id = #{updateUserId}
|
and user_id = #{updateUserId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- B 端使用的动态查询 -->
|
||||||
|
<select id="queryContentListForB" resultType="com.cool.store.vo.HyContentInfoVO">
|
||||||
|
select <include refid="Base_Column_List"></include>
|
||||||
|
from hy_content_info
|
||||||
|
where deleted = 0
|
||||||
|
and status = 1
|
||||||
|
<if test="contentTitle != null and contentTitle != ''">
|
||||||
|
and content_title like concat('%', #{contentTitle}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="subject != null">
|
||||||
|
and subject = #{subject}
|
||||||
|
</if>
|
||||||
|
<if test="contentType != null">
|
||||||
|
and content_type = #{contentType}
|
||||||
|
</if>
|
||||||
|
<if test="startTime != null and startTime != ''">
|
||||||
|
and update_time >= #{startTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
and update_time <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</select>
|
||||||
|
|
||||||
<!-- 查询动态详情 -->
|
<!-- 查询动态详情 -->
|
||||||
<select id="queryContentInfo" resultType="com.cool.store.entity.HyContentInfoDO">
|
<select id="queryContentInfo" resultType="com.cool.store.entity.HyContentInfoDO">
|
||||||
select <include refid="Base_Column_List"></include>
|
select <include refid="Base_Column_List"></include>
|
||||||
@@ -186,4 +209,19 @@
|
|||||||
where deleted = 0
|
where deleted = 0
|
||||||
and id = #{contentId}
|
and id = #{contentId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 标题是否重复 -->
|
||||||
|
<select id="whetherTitleDuplicated" resultType="java.lang.Boolean">
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM hy_content_info
|
||||||
|
WHERE deleted = 0
|
||||||
|
AND content_title = #{contentTitle}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 获取所有标题 -->
|
||||||
|
<select id="queryTitles" resultType="java.lang.String">
|
||||||
|
SELECT content_title
|
||||||
|
FROM hy_content_info
|
||||||
|
WHERE deleted = 0
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -386,6 +386,8 @@
|
|||||||
hpll.id as partnerLineId,
|
hpll.id as partnerLineId,
|
||||||
hpci.qualify_verify_id as qualifyVerifyId,
|
hpci.qualify_verify_id as qualifyVerifyId,
|
||||||
hpci.intention_contract_no as intentionContractNo,
|
hpci.intention_contract_no as intentionContractNo,
|
||||||
|
hpll.workflow_stage as workflowStage,
|
||||||
|
hpll.line_status as lineStatus,
|
||||||
hpi.pass_time as passTime,
|
hpi.pass_time as passTime,
|
||||||
hpi.pass_reason as passReason,
|
hpi.pass_reason as passReason,
|
||||||
hpi.recorder as recorderId,
|
hpi.recorder as recorderId,
|
||||||
|
|||||||
@@ -52,8 +52,8 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
<select id="selectByHourDate" resultType="com.cool.store.entity.SyncEcCustomerDO" >
|
<select id="selectByHourDate" resultType="com.cool.store.entity.SyncEcCustomerDO" >
|
||||||
SELECT a.id as id, a.username as customername,a.mobile as customermobile,c.`name` as followname,c.mobile as followmobile FROM hy_partner_user_info a LEFT join hy_partner_line_info b on
|
SELECT a.id as id, a.username as customername,a.mobile as customermobile,c.`name` as followname,c.mobile as followmobile ,d.channel_id as channelId FROM hy_partner_user_info a LEFT join hy_partner_line_info b on
|
||||||
a.partner_id=b.partner_id left join enterprise_user c on b.investment_manager=c.user_id
|
a.partner_id=b.partner_id left join enterprise_user c on b.investment_manager=c.user_id LEFT join hy_partner_user_channel d on b.user_channel_id=d.id
|
||||||
WHERE a.create_time BETWEEN #{selectTime} and #{now} or
|
WHERE a.create_time BETWEEN #{selectTime} and #{now} or
|
||||||
a.update_time BETWEEN #{selectTime} and #{now} order by a.id Limit #{limit1},#{limit2}
|
a.update_time BETWEEN #{selectTime} and #{now} order by a.id Limit #{limit1},#{limit2}
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.cool.store.dto.content;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ContentQueryTitlesDto {
|
||||||
|
|
||||||
|
@ApiModelProperty("用户输入标题")
|
||||||
|
private String tittle;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -16,4 +16,6 @@ public class SyncEcCustomerDO {
|
|||||||
private String followname;
|
private String followname;
|
||||||
|
|
||||||
private String followmobile;
|
private String followmobile;
|
||||||
|
|
||||||
|
private Integer channelId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class OpenAreaTreeVO {
|
|||||||
public static List<OpenAreaTreeVO> convertTree(List<HyOpenAreaInfoDO> allOpenArea, String keyword, Boolean applyFlag){
|
public static List<OpenAreaTreeVO> convertTree(List<HyOpenAreaInfoDO> allOpenArea, String keyword, Boolean applyFlag){
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
List<HyOpenAreaInfoDO> firstArea = allOpenArea.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList());
|
List<HyOpenAreaInfoDO> firstArea = allOpenArea.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList());
|
||||||
Map<Long, List<HyOpenAreaInfoDO>> openAreaParentMap = allOpenArea.stream().filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
Map<Long, List<HyOpenAreaInfoDO>> openAreaParentMap = allOpenArea.stream().distinct().filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
||||||
List<OpenAreaTreeVO> allTree = new ArrayList<>();
|
List<OpenAreaTreeVO> allTree = new ArrayList<>();
|
||||||
for (HyOpenAreaInfoDO openAreaInfo : firstArea) {
|
for (HyOpenAreaInfoDO openAreaInfo : firstArea) {
|
||||||
OpenAreaTreeVO node = copyProperties(openAreaInfo);
|
OpenAreaTreeVO node = copyProperties(openAreaInfo);
|
||||||
@@ -62,29 +62,33 @@ public class OpenAreaTreeVO {
|
|||||||
node.setChildNode(childList);
|
node.setChildNode(childList);
|
||||||
allTree.add(node);
|
allTree.add(node);
|
||||||
}
|
}
|
||||||
|
//不需要过滤 直接返回
|
||||||
|
if(StringUtils.isBlank(keyword) && (Objects.isNull(applyFlag) || !applyFlag)){
|
||||||
|
return allTree;
|
||||||
|
}
|
||||||
log.info("1#耗时:{}", System.currentTimeMillis() - startTime);
|
log.info("1#耗时:{}", System.currentTimeMillis() - startTime);
|
||||||
Map<Long, List<OpenAreaTreeVO>> childMap = allTree.stream().collect(Collectors.toMap(k -> k.getId(), v -> v.getChildNode()));
|
Map<Long, List<OpenAreaTreeVO>> childMap = allTree.stream().collect(Collectors.toMap(k -> k.getId(), v -> v.getChildNode()));
|
||||||
List<HyOpenAreaInfoDO> filterList = allOpenArea.stream().filter(o -> (StringUtils.isBlank(keyword) || o.getAreaPath().contains(keyword))
|
List<HyOpenAreaInfoDO> filterList = allOpenArea.stream().filter(o -> (StringUtils.isBlank(keyword) || o.getAreaPath().contains(keyword))
|
||||||
&& (Objects.isNull(applyFlag) || AreaStatusEnum.OPEN.getCode().equals(o.getAreaStatus()) || AreaStatusEnum.OPEN.getCode().equals(o.getAreaStatus())))
|
&& (Objects.isNull(applyFlag) || AreaStatusEnum.OPEN.getCode().equals(o.getAreaStatus()) || AreaStatusEnum.OPEN.getCode().equals(o.getAreaStatus())))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
Map<Long, HyOpenAreaInfoDO> openAreaMap = allOpenArea.stream().collect(Collectors.toMap(k -> k.getId(), Function.identity()));
|
Map<Long, HyOpenAreaInfoDO> openAreaMap = allOpenArea.stream().collect(Collectors.toMap(k -> k.getId(), Function.identity()));
|
||||||
List<HyOpenAreaInfoDO> list = new ArrayList<>();
|
List<HyOpenAreaInfoDO> filterAndParentList = new ArrayList<>();
|
||||||
//向上处理节点
|
//向上处理节点
|
||||||
for (HyOpenAreaInfoDO openAreaInfo : filterList) {
|
for (HyOpenAreaInfoDO openAreaInfo : filterList) {
|
||||||
list.add(openAreaInfo);
|
filterAndParentList.add(openAreaInfo);
|
||||||
while (Objects.nonNull(openAreaInfo) && Objects.nonNull(openAreaInfo.getParentId())){
|
while (Objects.nonNull(openAreaInfo) && Objects.nonNull(openAreaInfo.getParentId())){
|
||||||
openAreaInfo = openAreaMap.get(openAreaInfo.getParentId());
|
openAreaInfo = openAreaMap.get(openAreaInfo.getParentId());
|
||||||
if(Objects.isNull(openAreaInfo)){
|
if(Objects.nonNull(openAreaInfo) && !filterAndParentList.contains(openAreaInfo)){
|
||||||
continue;
|
filterAndParentList.add(openAreaInfo);
|
||||||
}
|
}
|
||||||
list.add(openAreaInfo);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.info("2#耗时:{}", System.currentTimeMillis() - startTime);
|
log.info("2#耗时:{}", System.currentTimeMillis() - startTime);
|
||||||
List<OpenAreaTreeVO> resultList = new ArrayList<>();
|
List<OpenAreaTreeVO> resultList = new ArrayList<>();
|
||||||
List<HyOpenAreaInfoDO> filterFirstArea = list.stream().filter(o -> Objects.isNull(o.getParentId())).distinct().collect(Collectors.toList());
|
List<HyOpenAreaInfoDO> filterFirstArea = filterAndParentList.stream().filter(o -> Objects.isNull(o.getParentId())).collect(Collectors.toList());
|
||||||
Map<Long, List<HyOpenAreaInfoDO>> filterOpenAreaParentMap = list.stream().filter(Objects::nonNull).filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
Map<Long, List<HyOpenAreaInfoDO>> filterOpenAreaParentMap = filterAndParentList.stream().filter(Objects::nonNull).filter(o->Objects.nonNull(o.getParentId())).collect(Collectors.groupingBy(k -> k.getParentId()));
|
||||||
for (HyOpenAreaInfoDO openAreaInfo : filterFirstArea) {
|
for (HyOpenAreaInfoDO openAreaInfo : filterFirstArea) {
|
||||||
|
Long id = openAreaInfo.getId();
|
||||||
OpenAreaTreeVO node = copyProperties(openAreaInfo);
|
OpenAreaTreeVO node = copyProperties(openAreaInfo);
|
||||||
List<OpenAreaTreeVO> childList = dealChild(openAreaInfo, filterOpenAreaParentMap);
|
List<OpenAreaTreeVO> childList = dealChild(openAreaInfo, filterOpenAreaParentMap);
|
||||||
if(CollectionUtils.isEmpty(childList)){
|
if(CollectionUtils.isEmpty(childList)){
|
||||||
|
|||||||
@@ -25,6 +25,12 @@ public class InterviewVO {
|
|||||||
@ApiModelProperty(value = "线索id", required = true)
|
@ApiModelProperty(value = "线索id", required = true)
|
||||||
private Long partnerLineId;
|
private Long partnerLineId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "流程阶段")
|
||||||
|
private Long workflowStage;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "线索状态")
|
||||||
|
private Long lineStatus;
|
||||||
|
|
||||||
@ApiModelProperty("资质审核流程id")
|
@ApiModelProperty("资质审核流程id")
|
||||||
private String qualifyVerifyId;
|
private String qualifyVerifyId;
|
||||||
|
|
||||||
|
|||||||
@@ -76,5 +76,17 @@ public class JobHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@XxlJob("approvalReminder")
|
||||||
|
public void approvalReminder(){
|
||||||
|
try {
|
||||||
|
log.info("审批即将超时提醒开始");
|
||||||
|
hyPartnerInterviewPlanService.approvalReminder();
|
||||||
|
log.info("审批即将超时提醒结束");
|
||||||
|
XxlJobHelper.handleSuccess();
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("审批即将超时提醒定时任务异常",e);
|
||||||
|
XxlJobHelper.log("审批即将超时提醒定时任务异常"+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.cool.store.dto.content.ContentAddDto;
|
|||||||
import com.cool.store.dto.content.ContentQueryListDto;
|
import com.cool.store.dto.content.ContentQueryListDto;
|
||||||
import com.cool.store.dto.content.ContentUpdateDto;
|
import com.cool.store.dto.content.ContentUpdateDto;
|
||||||
import com.cool.store.entity.HyContentInfoDO;
|
import com.cool.store.entity.HyContentInfoDO;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.vo.HyContentInfoVO;
|
import com.cool.store.vo.HyContentInfoVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -15,7 +16,7 @@ public interface ContentService {
|
|||||||
* @param dto
|
* @param dto
|
||||||
* @return contentId 新增动态id
|
* @return contentId 新增动态id
|
||||||
*/
|
*/
|
||||||
String addNews(ContentAddDto dto);
|
String addNews(ContentAddDto dto) throws ApiException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除动态
|
* 删除动态
|
||||||
@@ -41,4 +42,9 @@ public interface ContentService {
|
|||||||
*/
|
*/
|
||||||
HyContentInfoDO queryContentInfo(String contentId);
|
HyContentInfoDO queryContentInfo(String contentId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题是否重复
|
||||||
|
*/
|
||||||
|
Boolean queryTitles(String title);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,4 +62,5 @@ public interface HyPartnerInterviewPlanService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
void updateAbsentInterview() throws ApiException;
|
void updateAbsentInterview() throws ApiException;
|
||||||
|
void approvalReminder() throws ApiException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,14 +72,14 @@ public class CommonServiceImpl implements CommonService {
|
|||||||
if(partnerCertificationInfoDO != null){
|
if(partnerCertificationInfoDO != null){
|
||||||
intentionContractNo = partnerCertificationInfoDO.getIntentionContractNo();
|
intentionContractNo = partnerCertificationInfoDO.getIntentionContractNo();
|
||||||
}
|
}
|
||||||
return getInterviewTips(partnerLineId, OperateTypeEnum.FINISH_INTERVIEW, "发起加盟商资质审核|"+intentionContractNo);
|
return getInterviewTips(partnerLineId, OperateTypeEnum.FINISH_INTERVIEW, "发起加盟商资质审核 | "+intentionContractNo);
|
||||||
}else if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_6.getCode())) {
|
}else if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_6.getCode())) {
|
||||||
HyPartnerCertificationInfoDO partnerCertificationInfoDO = hyPartnerCertificationInfoMapper.selectByPartnerLineId(partnerLineId);
|
HyPartnerCertificationInfoDO partnerCertificationInfoDO = hyPartnerCertificationInfoMapper.selectByPartnerLineId(partnerLineId);
|
||||||
String intentionContractNo = null;
|
String intentionContractNo = null;
|
||||||
if(partnerCertificationInfoDO != null){
|
if(partnerCertificationInfoDO != null){
|
||||||
intentionContractNo = partnerCertificationInfoDO.getIntentionContractNo();
|
intentionContractNo = partnerCertificationInfoDO.getIntentionContractNo();
|
||||||
}
|
}
|
||||||
return getInterviewTips(partnerLineId, OperateTypeEnum.FINISH_INTERVIEW, "审核通过|"+intentionContractNo);
|
return getInterviewTips(partnerLineId, OperateTypeEnum.FINISH_INTERVIEW, "审核通过 | "+intentionContractNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -1,13 +1,18 @@
|
|||||||
package com.cool.store.service.impl;
|
package com.cool.store.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.cool.store.constants.RedisConstant;
|
||||||
import com.cool.store.dao.ContentDAO;
|
import com.cool.store.dao.ContentDAO;
|
||||||
import com.cool.store.dto.content.ContentAddDto;
|
import com.cool.store.dto.content.ContentAddDto;
|
||||||
import com.cool.store.dto.content.ContentQueryListDto;
|
import com.cool.store.dto.content.ContentQueryListDto;
|
||||||
import com.cool.store.dto.content.ContentUpdateDto;
|
import com.cool.store.dto.content.ContentUpdateDto;
|
||||||
import com.cool.store.entity.HyContentInfoDO;
|
import com.cool.store.entity.HyContentInfoDO;
|
||||||
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.mapper.HyContentInfoMapper;
|
import com.cool.store.mapper.HyContentInfoMapper;
|
||||||
import com.cool.store.service.ContentService;
|
import com.cool.store.service.ContentService;
|
||||||
|
import com.cool.store.utils.RedisUtilPool;
|
||||||
import com.cool.store.vo.HyContentInfoVO;
|
import com.cool.store.vo.HyContentInfoVO;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -23,13 +28,21 @@ public class ContentServiceImpl implements ContentService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HyContentInfoMapper contentInfoMapper;
|
private HyContentInfoMapper contentInfoMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RedisUtilPool redisUtilPool;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param dto
|
* @param dto
|
||||||
* @return contentId 新增动态id
|
* @return contentId 新增动态id
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String addNews(ContentAddDto dto) {
|
public String addNews(ContentAddDto dto) throws ApiException {
|
||||||
|
//增加不允许重复标题的逻辑
|
||||||
|
Boolean isDuplicated = contentInfoMapper.whetherTitleDuplicated(dto.getContentTitle());
|
||||||
|
if (isDuplicated) {
|
||||||
|
throw new ApiException(ErrorCodeEnum.DATA_CONVERT_ERROR);
|
||||||
|
}
|
||||||
HyContentInfoDO hyContentInfoDO = new HyContentInfoDO();
|
HyContentInfoDO hyContentInfoDO = new HyContentInfoDO();
|
||||||
BeanUtil.copyProperties(dto, hyContentInfoDO);
|
BeanUtil.copyProperties(dto, hyContentInfoDO);
|
||||||
hyContentInfoDO.setUpdateUserId(dto.getCreateUserId());
|
hyContentInfoDO.setUpdateUserId(dto.getCreateUserId());
|
||||||
@@ -62,7 +75,7 @@ public class ContentServiceImpl implements ContentService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<HyContentInfoVO> queryContentList(ContentQueryListDto dto) {
|
public List<HyContentInfoVO> queryContentList(ContentQueryListDto dto) {
|
||||||
return contentInfoMapper.queryContentList(dto);
|
return contentInfoMapper.queryContentListForB(dto);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -75,4 +88,18 @@ public class ContentServiceImpl implements ContentService {
|
|||||||
return contentInfoMapper.queryContentInfo(contentId);
|
return contentInfoMapper.queryContentInfo(contentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标题是否重复
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean queryTitles(String title) {
|
||||||
|
List<String> titles = (List<String>) JSONObject.parseObject(redisUtilPool.getString(RedisConstant.CONTENT_TITLES), List.class);
|
||||||
|
if (titles != null && titles.size() != 0) {
|
||||||
|
return titles.contains(title);
|
||||||
|
}
|
||||||
|
titles = contentInfoMapper.queryTitles();
|
||||||
|
redisUtilPool.setString(RedisConstant.CONTENT_TITLES, JSONObject.toJSONString(titles), 60);
|
||||||
|
return titles.contains(title);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -167,6 +167,9 @@ public class EcSyncServiceImpl implements EcSyncService {
|
|||||||
if (StringUtil.isEmpty(partnerLine.getInvestmentManager())) {
|
if (StringUtil.isEmpty(partnerLine.getInvestmentManager())) {
|
||||||
if (StringUtil.isNotEmpty(resultLine.getInvestmentManager())) {
|
if (StringUtil.isNotEmpty(resultLine.getInvestmentManager())) {
|
||||||
resultLine.setId(partnerLine.getId()).setUpdateTime(new Date());
|
resultLine.setId(partnerLine.getId()).setUpdateTime(new Date());
|
||||||
|
//沪姨合伙人线索存在黑名单,EC该线索分配跟进人同步到沪姨合伙人但线索状态不变,还存在黑名单中
|
||||||
|
resultLine.setLineStatus(partnerLine.getLineStatus().intValue()==LineStatusEnum.BLACKLIST.getCode().intValue()
|
||||||
|
?LineStatusEnum.BLACKLIST.getCode():resultLine.getLineStatus());
|
||||||
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(resultLine);
|
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(resultLine);
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
|
|||||||
@@ -194,8 +194,9 @@ public class FlowServiceImpl implements FlowService {
|
|||||||
//更新面试状态
|
//更新面试状态
|
||||||
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_5);
|
interviewDAO.updateInterviewWorkflowStatus(request.getInterviewPlanId(), WorkflowStatusEnum.INTERVIEW_5);
|
||||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||||
//获取当前操作人
|
//注意将 hyPartnerInterviewDO 的 status 设置为 null,否则又会修改回 4
|
||||||
hyPartnerInterviewDO.setStatus(null);
|
hyPartnerInterviewDO.setStatus(null);
|
||||||
|
//获取当前操作人并添加面试总结/记录信息
|
||||||
LoginUserInfo operator = CurrentUserHolder.getUser();
|
LoginUserInfo operator = CurrentUserHolder.getUser();
|
||||||
hyPartnerInterviewDO.setRecorder(operator.getUserId());
|
hyPartnerInterviewDO.setRecorder(operator.getUserId());
|
||||||
hyPartnerInterviewDO.setRecordTime(new Date());
|
hyPartnerInterviewDO.setRecordTime(new Date());
|
||||||
|
|||||||
@@ -221,6 +221,16 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
|||||||
handleOverTimeInterview(interviewBaseInfoList,"超时未面试");
|
handleOverTimeInterview(interviewBaseInfoList,"超时未面试");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void approvalReminder() throws ApiException {
|
||||||
|
//查询即将超时但未审批的面试
|
||||||
|
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||||
|
hyPartnerInterviewPlanDO.setDeleted(Boolean.FALSE);
|
||||||
|
hyPartnerInterviewPlanDO.setApplicationApproved(0);
|
||||||
|
// hyPartnerInterviewPlanDO.setStartTime();
|
||||||
|
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统一处理面试超时情况,包括超时未预约和超时未面试
|
* 统一处理面试超时情况,包括超时未预约和超时未面试
|
||||||
* @param interviewBaseInfoList
|
* @param interviewBaseInfoList
|
||||||
|
|||||||
@@ -587,6 +587,8 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
//根据加盟商用户ID查询面试官ID
|
//根据加盟商用户ID查询面试官ID
|
||||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||||
hyPartnerInterviewPlanDO.setPartnerId(partnerId);
|
hyPartnerInterviewPlanDO.setPartnerId(partnerId);
|
||||||
|
hyPartnerInterviewPlanDO.setPartnerLineId(Long.valueOf(lineId));
|
||||||
|
hyPartnerInterviewPlanDO.setDeleted(false);
|
||||||
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||||
//如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
|
//如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
|
||||||
if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) {
|
if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) {
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
|
|||||||
}
|
}
|
||||||
Integer status = interviewInfo.getStatus();
|
Integer status = interviewInfo.getStatus();
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
if (status == Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode()) ||
|
if (status == Integer.parseInt(WorkflowStatusEnum.INTERVIEW_3.getCode()) ||
|
||||||
(interviewInfo.getRoomStatus()!=null && String.valueOf(RoomStatus.OPEN.getCode()).equals(interviewInfo.getRoomStatus())) ||
|
(interviewInfo.getRoomStatus()!=null && String.valueOf(RoomStatus.OPEN.getCode()).equals(interviewInfo.getRoomStatus())) ||
|
||||||
(DateUtil.compare(DateUtil.parse(interviewInfo.getStartTime()), now) <= 0
|
(DateUtil.compare(DateUtil.parse(interviewInfo.getStartTime()), now) <= 0
|
||||||
&& DateUtil.compare(DateUtil.parse(interviewInfo.getEndTime()), now) >= 0)) {
|
&& DateUtil.compare(DateUtil.parse(interviewInfo.getEndTime()), now) >= 0)) {
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package com.cool.store.controller;
|
package com.cool.store.controller;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cool.store.dto.content.*;
|
import com.cool.store.dto.content.*;
|
||||||
import com.cool.store.entity.HyContentInfoDO;
|
import com.cool.store.entity.HyContentInfoDO;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
import com.cool.store.service.ContentService;
|
import com.cool.store.service.ContentService;
|
||||||
import com.cool.store.vo.HyContentInfoVO;
|
import com.cool.store.vo.HyContentInfoVO;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -24,9 +27,15 @@ public class ContentController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ContentService contentService;
|
private ContentService contentService;
|
||||||
|
|
||||||
|
@PostMapping("/queryTitles")
|
||||||
|
@ApiOperation("搜索标题是否重复")
|
||||||
|
public ResponseResult<Boolean> queryTitles(@RequestBody ContentQueryTitlesDto title) {
|
||||||
|
return ResponseResult.success(contentService.queryTitles(title.getTittle()));
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping("/add")
|
@PostMapping("/add")
|
||||||
@ApiOperation("新增动态")
|
@ApiOperation("新增动态")
|
||||||
public ResponseResult<String> addContent(@RequestBody ContentAddDto dto) {
|
public ResponseResult<String> addContent(@RequestBody ContentAddDto dto) throws ApiException {
|
||||||
return ResponseResult.success(contentService.addNews(dto));
|
return ResponseResult.success(contentService.addNews(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,4 +81,4 @@ hs.sms.accessKeySecret = iVOiK74k7C1wVbuUbipgJbfpAh1Zdb
|
|||||||
hs.sms.templateCode = SMS_461530041
|
hs.sms.templateCode = SMS_461530041
|
||||||
|
|
||||||
|
|
||||||
ec.baseUrl=http://58.33.58.162:10019
|
ec.baseUrl=https://oapi-gateway.shpr.top/basic
|
||||||
@@ -74,4 +74,4 @@ xxl.job.executor.logretentiondays = 3
|
|||||||
xxl.job.accessToken =
|
xxl.job.accessToken =
|
||||||
|
|
||||||
|
|
||||||
ec.baseUrl=http://58.33.58.162:10019
|
ec.baseUrl=https://oapi-gateway.shpr.top/basic
|
||||||
@@ -83,4 +83,4 @@ xxl.job.executor.logpath = logs/xxl-job/jobhandler
|
|||||||
xxl.job.executor.logretentiondays = 30
|
xxl.job.executor.logretentiondays = 30
|
||||||
xxl.job.accessToken =
|
xxl.job.accessToken =
|
||||||
|
|
||||||
ec.baseUrl=http://58.33.58.162:10019
|
ec.baseUrl=http://127.0.0.1:8017
|
||||||
@@ -53,7 +53,7 @@ public class OpenAreaController {
|
|||||||
})
|
})
|
||||||
public ResponseResult<List<OpenAreaTreeVO>> getOpenAreaList(@RequestParam(value = "keyword",required = false)String keyword,
|
public ResponseResult<List<OpenAreaTreeVO>> getOpenAreaList(@RequestParam(value = "keyword",required = false)String keyword,
|
||||||
@RequestParam(value = "applyFlag",required = false)Boolean applyFlag){
|
@RequestParam(value = "applyFlag",required = false)Boolean applyFlag){
|
||||||
List<OpenAreaTreeVO> openAreaTreeVOS = openAreaService.queryAllOpenAreaByKeyword(keyword,applyFlag,Boolean.FALSE);
|
List<OpenAreaTreeVO> openAreaTreeVOS = openAreaService.searchOpenArea(keyword,applyFlag,Boolean.FALSE);
|
||||||
return ResponseResult.success(openAreaTreeVOS);
|
return ResponseResult.success(openAreaTreeVOS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user