Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
# Conflicts: # coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java
This commit is contained in:
@@ -40,9 +40,9 @@ public class JobHandler {
|
||||
@XxlJob("updateInterviewOverTime")
|
||||
public void updateInterviewOverTime(){
|
||||
try {
|
||||
log.info("面试超时定时任务开始");
|
||||
log.info("面试超时预约定时任务开始");
|
||||
hyPartnerInterviewPlanService.updateInterviewOverTime();
|
||||
log.info("面试超时定时任务结束");
|
||||
log.info("面试超时预约定时任务结束");
|
||||
XxlJobHelper.handleSuccess();
|
||||
}catch (Exception e){
|
||||
log.error("面试超时定时任务异常",e);
|
||||
@@ -63,6 +63,7 @@ public class JobHandler {
|
||||
}
|
||||
}
|
||||
|
||||
@XxlJob("updateAbsentInterview")
|
||||
public void updateAbsentInterview(){
|
||||
try {
|
||||
log.info("面试缺席定时任务开始");
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.cool.store.service.HyPartnerLineInfoService;
|
||||
import com.cool.store.utils.RedisUtilPool;
|
||||
import com.cool.store.vo.PartnerBaseInfoVO;
|
||||
import com.cool.store.vo.PartnerUserInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -38,6 +39,7 @@ import java.util.Date;
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
|
||||
|
||||
@Resource
|
||||
@@ -76,6 +78,8 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
|
||||
*/
|
||||
@Override
|
||||
public Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request, PartnerUserInfoVO currentUser) {
|
||||
log.info("HyPartnerBaseInfoServiceImpl#submitPartnerBaseInfo request:{}", JSONObject.toJSONString(request));
|
||||
|
||||
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_BASEINFO_CACHE_KEY, request.getPartnerId(), request.getPartnerLineId());
|
||||
if(!request.getSubmitFlag()){
|
||||
// 自动保存时
|
||||
@@ -101,6 +105,12 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
|
||||
hyPartnerBaseInfoDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_1.getCode()));
|
||||
hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO);
|
||||
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(request.getPartnerId());
|
||||
if(!hyPartnerUserInfoDO.getUsername().equals(request.getUsername())){
|
||||
hyPartnerUserInfoDO.setUsername(request.getUsername());
|
||||
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
|
||||
}
|
||||
|
||||
HyPartnerTaskInfoLogDO logDO = new HyPartnerTaskInfoLogDO(request.getPartnerId(), request.getPartnerLineId(), WorkflowStageEnum.INTENT.getCode(), WorkflowStatusEnum.INTENT_1.getCode(), currentUser.getPartnerId(), currentUser.getUsername(), null);
|
||||
|
||||
hyPartnerTaskInfoLogDAO.insertSelective(logDO);
|
||||
|
||||
@@ -146,6 +146,11 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
||||
}
|
||||
redisUtilPool.delKey(cacheKey);
|
||||
if(StringUtils.isNotBlank(request.getWantShopArea())){
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(request.getPartnerId());
|
||||
hyPartnerUserInfoDO.setWantShopArea(request.getWantShopArea());
|
||||
hyPartnerUserInfoDO.setLiveArea(request.getLiveArea());
|
||||
hyPartnerUserInfoDO.setAcceptAdjustType(request.getAcceptAdjustType());
|
||||
hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(request.getWantShopArea()));
|
||||
return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : null;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.cool.store.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.HyInterviewDAO;
|
||||
import com.cool.store.dao.HyPartnerInterviewPlanDAO;
|
||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||
@@ -15,6 +16,7 @@ import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.request.CloseFollowRequest;
|
||||
import com.cool.store.request.GetInterviewListReq;
|
||||
import com.cool.store.service.HyPartnerInterviewPlanService;
|
||||
@@ -28,6 +30,7 @@ import com.google.common.collect.Lists;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
@@ -61,6 +64,13 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
@Autowired
|
||||
HyPartnerLineInfoService hyPartnerLineInfoService;
|
||||
|
||||
@Autowired
|
||||
HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
|
||||
|
||||
@Autowired
|
||||
private HyInterviewDAO interviewDAO;
|
||||
|
||||
|
||||
@Override
|
||||
public List<InterviewDetailInfoVO> getInterviewPlanList(String userId) {
|
||||
String currentTime = DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_DAY);
|
||||
@@ -155,15 +165,14 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateInterviewOverTime() {
|
||||
//查询三天前到两天前未预约的数据
|
||||
String startTime = DateUtil.formatDate(DateUtil.offsetDay(new Date(),-3));
|
||||
String endTime = DateUtil.formatDate(DateUtil.offsetDay(new Date(),-2));
|
||||
GetInterviewListReq getInterviewListReq = new GetInterviewListReq();
|
||||
getInterviewListReq.setStartTime(startTime);
|
||||
getInterviewListReq.setEndTime(endTime);
|
||||
getInterviewListReq.setStatus(Integer.valueOf(WorkflowStatusEnum.RESERVATION_0.getCode()));
|
||||
List<HyPartnerInterviewDO> interviewBaseInfoList = hyPartnerInterviewMapper.getInterviewBaseInfoList(getInterviewListReq);
|
||||
List<HyPartnerLineInfoDO> overTimeReserveLineList = hyPartnerLineInfoMapper.getOverTimeReserveLineList(new Date(), WorkflowStageEnum.RESERVATION.getCode(), WorkflowStatusEnum.RESERVATION_0.getCode());
|
||||
if(CollectionUtils.isEmpty(overTimeReserveLineList)){
|
||||
return;
|
||||
}
|
||||
List<Long> lineIds = overTimeReserveLineList.stream().map(o -> o.getId()).collect(Collectors.toList());
|
||||
List<HyPartnerInterviewDO> interviewBaseInfoList = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(lineIds);
|
||||
if(CollectionUtils.isEmpty(interviewBaseInfoList)){
|
||||
return;
|
||||
}
|
||||
@@ -171,27 +180,32 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void openInterviewRoom() {
|
||||
//更新会议开始时间为十分钟之内的房间状态为开启
|
||||
//更新会议开始时间为5分钟之内的房间状态为开启,会议状态变为已开始
|
||||
Date startTime = new Date();
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanDO.setStartTime(startTime);
|
||||
hyPartnerInterviewPlanDO.setEndTime(DateUtil.offsetMinute(startTime,10));
|
||||
hyPartnerInterviewPlanDO.setRoomStatus(RoomStatus.WAIT_FOR_OPEN.getCode());
|
||||
hyPartnerInterviewPlanDO.setDeleted(false);
|
||||
hyPartnerInterviewPlanMapper.openInterviewRoom(hyPartnerInterviewPlanDO, RoomStatus.OPEN.getCode());
|
||||
|
||||
List<HyPartnerLineInfoDO> waitForOpenInterviewLineList = hyPartnerLineInfoMapper.getWaitForOpenInterviewLineList(startTime, DateUtil.offsetMinute(startTime, 5));
|
||||
if(CollectionUtils.isEmpty(waitForOpenInterviewLineList)){
|
||||
return;
|
||||
}
|
||||
//更新房间状态为开启
|
||||
List<Long> lineIds = waitForOpenInterviewLineList.stream().map(HyPartnerLineInfoDO::getId).collect(Collectors.toList());
|
||||
hyPartnerInterviewPlanMapper.openInterviewRoom(lineIds,RoomStatus.OPEN.getCode());
|
||||
interviewDAO.batchUpdateInterviewWorkflowStatus(lineIds,Integer.parseInt(WorkflowStatusEnum.INTERVIEW_3.getCode()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void updateAbsentInterview() {
|
||||
Date now = new Date();
|
||||
//查询当天未参加的面试
|
||||
String startTime = DateUtil.formatDate(DateUtil.offsetHour(now,-6));
|
||||
String endTime = DateUtil.formatDate(now);
|
||||
String startTime = DateUtil.formatDateTime(DateUtil.offsetHour(now,-6));
|
||||
String endTime = DateUtil.formatDateTime(now);
|
||||
GetInterviewListReq getInterviewListReq = new GetInterviewListReq();
|
||||
getInterviewListReq.setStartTime(startTime);
|
||||
getInterviewListReq.setEndTime(endTime);
|
||||
getInterviewListReq.setStatus(Integer.valueOf(WorkflowStatusEnum.RESERVATION_0.getCode()));
|
||||
getInterviewListReq.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_3.getCode()));
|
||||
getInterviewListReq.setIsPartnerInterview(0);
|
||||
List<HyPartnerInterviewDO> interviewBaseInfoList = hyPartnerInterviewMapper.getInterviewBaseInfoList(getInterviewListReq);
|
||||
if(CollectionUtils.isEmpty(interviewBaseInfoList)){
|
||||
@@ -206,17 +220,17 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
* @param rejectPublicReason
|
||||
*/
|
||||
public void handleOverTimeInterview(List<HyPartnerInterviewDO> interviewBaseInfoList,String rejectPublicReason){
|
||||
//1.更新面试信息表中超时未预约的面试信息
|
||||
//1.更新面试信息表中超时的面试信息
|
||||
List<Long> interviewIds = interviewBaseInfoList.stream().map(HyPartnerInterviewDO::getId).distinct().collect(Collectors.toList());
|
||||
hyPartnerInterviewMapper.batchUpdateInterviewStatus(interviewIds,Integer.valueOf(WorkflowStatusEnum.RESERVATION_8.getCode()));
|
||||
//2.更新面试计划表中超时未预约的信息
|
||||
hyPartnerInterviewMapper.batchUpdateInterviewStatus(interviewIds,Integer.valueOf(WorkflowStatusEnum.RESERVATION_8.getCode()),1);
|
||||
//2.更新面试计划表中超时的信息
|
||||
List<Long> interviewPlanIds = interviewBaseInfoList.stream().map(HyPartnerInterviewDO::getInterviewPlanId).distinct().collect(Collectors.toList());
|
||||
hyPartnerInterviewPlanMapper.batchDeleteInterviewPlans(interviewPlanIds);
|
||||
//3.更新线索表中超时未预约的线路信息
|
||||
List<Long> lineIds = interviewBaseInfoList.stream().map(HyPartnerInterviewDO::getPartnerLineId).distinct().collect(Collectors.toList());
|
||||
for (Long lineId : lineIds) {
|
||||
CloseFollowRequest closeFollowRequest = new CloseFollowRequest();
|
||||
closeFollowRequest.setRejectPublicReason("超时未面试");
|
||||
closeFollowRequest.setRejectPublicReason(rejectPublicReason);
|
||||
closeFollowRequest.setLineId(lineId);
|
||||
closeFollowRequest.setType("overtime_interview");
|
||||
hyPartnerLineInfoService.closeOrPassFollow(null,closeFollowRequest);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
package com.cool.store.service.impl;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.HyOpenAreaInfoDAO;
|
||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||
@@ -13,6 +14,7 @@ import com.cool.store.service.HyPartnerLineInfoService;
|
||||
import com.cool.store.service.PartnerUserInfoService;
|
||||
import com.cool.store.vo.ApplyBaseInfoVO;
|
||||
import com.cool.store.vo.InviteCodeDetailVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -21,6 +23,7 @@ import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
||||
|
||||
@Autowired
|
||||
@@ -76,6 +79,7 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
||||
|
||||
@Override
|
||||
public ApplyBaseInfoVO updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest) {
|
||||
log.info("PartnerUserInfoServiceImpl#updatePartnerUserInfo partnerUserInfoRequest:{}", JSONObject.toJSONString(partnerUserInfoRequest));
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(partnerUserInfoRequest.getPartnerId()));
|
||||
if (hyPartnerUserInfoDO == null){
|
||||
throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST);
|
||||
|
||||
@@ -109,6 +109,9 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
||||
hyPartnerUserPlatformBindDO.setBindTime(new Date());
|
||||
hyPartnerUserPlatformBindDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId());
|
||||
hyPartnerUserPlatformBindDAO.insertSelective(hyPartnerUserPlatformBindDO);
|
||||
}else if(!hyPartnerUserPlatformBindDO.getPartnerId().equals(hyPartnerUserInfoDO.getPartnerId())){
|
||||
hyPartnerUserPlatformBindDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId());
|
||||
hyPartnerUserPlatformBindDAO.updateByPrimaryKeySelective(hyPartnerUserPlatformBindDO);
|
||||
}
|
||||
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
|
||||
HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
|
||||
@@ -146,6 +149,9 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
||||
PhoneInfoDTO phoneInfoDTO = wechatRest.getUserPhoneNumber(request.getMobileCode(), accessToken);
|
||||
if(phoneInfoDTO != null && phoneInfoDTO.getPhoneInfo() != null && StringUtils.isNotBlank(phoneInfoDTO.getPhoneInfo().getPhoneNumber())){
|
||||
newMobile = phoneInfoDTO.getPhoneInfo().getPhoneNumber();
|
||||
if(newMobile.equals(oldUserInfo.getMobile())){
|
||||
return newMobile;
|
||||
}
|
||||
HyPartnerUserInfoDO newUserInfo = hyPartnerUserInfoDAO.selectByMobile(newMobile);
|
||||
if (newUserInfo != null) {
|
||||
throw new ServiceException(ErrorCodeEnum.NEW_MOBILE_HAS_EXIST);
|
||||
@@ -168,7 +174,8 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService {
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByMobile(mobile);
|
||||
BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO);
|
||||
HyPartnerUserPlatformBindDO hyPartnerUserPlatformBindDO = hyPartnerUserPlatformBindDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId());
|
||||
userInfoVO.setOpenid(hyPartnerUserPlatformBindDO.getPlatformUserId());
|
||||
|
||||
userInfoVO.setOpenid(hyPartnerUserPlatformBindDO != null ? hyPartnerUserPlatformBindDO.getPlatformUserId() : "");
|
||||
if(StringUtils.isNotBlank(hyPartnerUserInfoDO.getWantShopArea())){
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
|
||||
userInfoVO.setWantShopAreaName(hyOpenAreaInfoDO.getAreaPath().replace("/", " ").trim());
|
||||
|
||||
Reference in New Issue
Block a user