Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -63,19 +63,6 @@ public class JobHandler {
|
||||
}
|
||||
}
|
||||
|
||||
// @XxlJob("updateAbsentInterview")
|
||||
// public void updateAbsentInterview(){
|
||||
// try {
|
||||
// log.info("面试缺席定时任务开始");
|
||||
// hyPartnerInterviewPlanService.updateAbsentInterview();
|
||||
// log.info("面试缺席定时任务结束");
|
||||
// XxlJobHelper.handleSuccess();
|
||||
// }catch (Exception e){
|
||||
// log.error("面试缺席定时任务异常",e);
|
||||
// XxlJobHelper.log("面试缺席定时任务异常"+e.getMessage());
|
||||
// }
|
||||
// }
|
||||
|
||||
@XxlJob("approvalReminder")
|
||||
public void approvalReminder(){
|
||||
try {
|
||||
|
||||
@@ -69,4 +69,6 @@ public interface InterviewService {
|
||||
|
||||
public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile);
|
||||
|
||||
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime);
|
||||
|
||||
}
|
||||
|
||||
@@ -55,7 +55,8 @@ public class CommonServiceImpl implements CommonService {
|
||||
String workflowStage = hyPartnerLineInfoDO.getWorkflowStage();
|
||||
String workflowStatus = hyPartnerLineInfoDO.getWorkflowStatus();
|
||||
Long partnerLineId = hyPartnerLineInfoDO.getId();
|
||||
if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_2.getCode())) {
|
||||
if ((workflowStage.equals(WorkflowStageEnum.RESERVATION.getCode()) && workflowStatus.equals(WorkflowStatusEnum.RESERVATION_1.getCode()))||
|
||||
(workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_2.getCode()))) {
|
||||
return getInterviewTips(partnerLineId, OperateTypeEnum.INTERVIEW_APPOINTMENT, "提交面试预约时间");
|
||||
} else if (workflowStage.equals(WorkflowStageEnum.INTERVIEW.getCode()) && workflowStatus.equals(WorkflowStatusEnum.INTERVIEW_3.getCode())) {
|
||||
String tips = getInterviewTips(partnerLineId, OperateTypeEnum.MODIFY_INTERVIEW_TIME, "");
|
||||
|
||||
@@ -3,12 +3,16 @@ package com.cool.store.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dto.message.RemindInterviewMsgDTO;
|
||||
import com.cool.store.dto.message.SendCardMessageDTO;
|
||||
import com.cool.store.dto.partner.PartnerInterviewInfoDTO;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.enums.MessageTypeEnum;
|
||||
import com.cool.store.enums.RoomStatus;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.http.ISVHttpRequest;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
@@ -16,15 +20,18 @@ import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.GetInterviewListReq;
|
||||
import com.cool.store.service.HyPartnerInterviewPlanService;
|
||||
import com.cool.store.service.HyPartnerLineInfoService;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.utils.CoolDateUtils;
|
||||
import com.cool.store.vo.InterviewDetailInfoVO;
|
||||
import com.cool.store.vo.PartnerInterviewInfoVO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -40,6 +47,7 @@ import java.util.stream.Collectors;
|
||||
* @Date 2023/6/8 19:32
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlanService {
|
||||
|
||||
@@ -68,8 +76,15 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
@Resource
|
||||
EnterpriseUserDAO enterpriseUserDAO;
|
||||
|
||||
@Autowired
|
||||
private InterviewService interviewService;
|
||||
|
||||
|
||||
@Value("${feishu.notice.link.url:null}")
|
||||
private String linkUrl;
|
||||
|
||||
@Autowired
|
||||
private ISVHttpRequest isvHttpRequest;
|
||||
@Override
|
||||
public List<InterviewDetailInfoVO> getInterviewPlanList(String userId,Date dateTime) {
|
||||
String currentDay = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY);
|
||||
@@ -227,11 +242,28 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
@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);
|
||||
Date startTime = new Date();
|
||||
Date endTime = DateUtil.offsetMinute(startTime,30);
|
||||
List<RemindInterviewMsgDTO> remindInterviewMsgDTOS = hyPartnerInterviewPlanMapper.selectRemindInterviewPlan(startTime, endTime, WorkflowStageEnum.RESERVATION.getCode(), WorkflowStatusEnum.RESERVATION_1.getCode());
|
||||
if(CollectionUtils.isEmpty(remindInterviewMsgDTOS)){
|
||||
return;
|
||||
}
|
||||
//发送消息
|
||||
remindInterviewMsgDTOS.stream().forEach(interviewMsgDTO->{
|
||||
try {
|
||||
List<String> userIds = new ArrayList<>();
|
||||
userIds.add(interviewMsgDTO.getInterviewerId());
|
||||
SendCardMessageDTO sendCardMessageDTO = new SendCardMessageDTO();
|
||||
sendCardMessageDTO.setUserIds(userIds);
|
||||
sendCardMessageDTO.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
|
||||
sendCardMessageDTO.setMessageUrl(linkUrl);
|
||||
sendCardMessageDTO.setTitle("面试预约申请");
|
||||
sendCardMessageDTO.setContent(interviewService.generateFeiShuInterviewMsg(interviewMsgDTO.getPartnerName(), interviewMsgDTO.getPartnerMobile(), interviewMsgDTO.getStartTime()));
|
||||
isvHttpRequest.sendFeiShuCardMessage(sendCardMessageDTO);
|
||||
} catch (ApiException e) {
|
||||
log.error("发送面试提醒消息失败",e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -570,12 +570,13 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
// hyPartnerLineInfoService.closeOrPassFollow(request.getOperatorId(),closeFollowRequest);
|
||||
// }
|
||||
|
||||
@Override
|
||||
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime){
|
||||
//"您有一个【面试预约申请】待处理,预约人【姓名】手机号【13xxxxxxxxx】,预约面试时间【YYYY年MM月DD日 hh:mm】,请及时处理】"
|
||||
StringBuffer sb = new StringBuffer();
|
||||
sb.append("您有一个【面试预约申请】待处理,预约人")
|
||||
sb.append("您有一个【面试预约申请】待处理,预约人 ")
|
||||
.append(partnerName)
|
||||
.append("手机号")
|
||||
.append(" 手机号 ")
|
||||
.append(partnerMobile)
|
||||
.append(",预约面试时间")
|
||||
.append(DateUtil.format(DateUtil.parse(interviewTime), "yyyy年MM月dd日 HH:mm"));
|
||||
|
||||
@@ -1,24 +1,29 @@
|
||||
package com.cool.store.service.impl;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.constants.RedisConstant;
|
||||
import com.cool.store.context.PartnerUserHolder;
|
||||
import com.cool.store.dao.HyOpenAreaInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||
import com.cool.store.dto.log.UserInfoUpdateDTO;
|
||||
import com.cool.store.entity.HyOpenAreaInfoDO;
|
||||
import com.cool.store.entity.HyPartnerLineInfoDO;
|
||||
import com.cool.store.entity.HyPartnerUserInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.OperateTypeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.PartnerIntentInfoRequest;
|
||||
import com.cool.store.request.PartnerUserInfoRequest;
|
||||
import com.cool.store.request.PartnerWantShopInfoRequest;
|
||||
import com.cool.store.service.HyPartnerBaseInfoService;
|
||||
import com.cool.store.service.HyPartnerLineInfoService;
|
||||
import com.cool.store.service.LogService;
|
||||
import com.cool.store.service.PartnerUserInfoService;
|
||||
import com.cool.store.utils.CoolDateUtils;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.vo.ApplyBaseInfoVO;
|
||||
import com.cool.store.vo.InviteCodeDetailVO;
|
||||
import com.cool.store.vo.PartnerIntentInfoVO;
|
||||
import com.cool.store.vo.PartnerUserInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -27,6 +32,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -47,6 +53,8 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
||||
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
|
||||
@Resource
|
||||
private RedisUtilPool redisUtilPool;
|
||||
@Autowired
|
||||
private LogService logService;
|
||||
|
||||
@Override
|
||||
public HyPartnerUserInfoDO selectByPartnerId(String partnerId) {
|
||||
@@ -93,6 +101,9 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
||||
if (hyPartnerUserInfoDO == null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST);
|
||||
}
|
||||
UserInfoUpdateDTO.UserInfoUpdate beforeUserinfoUpdate = new UserInfoUpdateDTO.UserInfoUpdate(hyPartnerUserInfoDO.getUsername(), hyPartnerUserInfoDO.getMobile(), hyPartnerUserInfoDO.getLiveArea(), hyPartnerUserInfoDO.getWantShopArea(), hyPartnerUserInfoDO.getAcceptAdjustType());
|
||||
UserInfoUpdateDTO.UserInfoUpdate afterUserinfoUpdate = new UserInfoUpdateDTO.UserInfoUpdate(partnerUserInfoRequest.getUsername(), partnerUserInfoRequest.getMobile(), partnerUserInfoRequest.getLiveArea(), partnerUserInfoRequest.getWantShopArea(), partnerUserInfoRequest.getAcceptAdjustType());
|
||||
|
||||
ApplyBaseInfoVO applyBaseInfoVO = new ApplyBaseInfoVO();
|
||||
fillUserInfoDOByRequest(hyPartnerUserInfoDO, partnerUserInfoRequest);
|
||||
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
|
||||
@@ -124,6 +135,12 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
||||
redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS);
|
||||
}
|
||||
}
|
||||
//记录日志
|
||||
PartnerUserInfoVO operator = PartnerUserHolder.getUser();
|
||||
UserInfoUpdateDTO log = UserInfoUpdateDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getPartnerId()).operateUsername(operator.getUsername())
|
||||
.operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC))
|
||||
.beforeUserinfoUpdate(beforeUserinfoUpdate).afterUserinfoUpdate(afterUserinfoUpdate).build();
|
||||
logService.recordPartnerBizLog(operator,hyPartnerLineInfoDO.getId(), OperateTypeEnum.USERINFO_UPDATE,log);
|
||||
return applyBaseInfoVO;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user