面谈/面试
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.request.AppointmentTimeRequest;
|
||||
import com.cool.store.vo.interview.AppointmentTimeVO;
|
||||
|
||||
import java.time.LocalDate;
|
||||
@@ -21,4 +22,11 @@ public interface LineInterviewService {
|
||||
* @return
|
||||
*/
|
||||
List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate);
|
||||
|
||||
/**
|
||||
* 面试预约
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
Boolean appointmentTime(AppointmentTimeRequest request);
|
||||
}
|
||||
|
||||
@@ -1,17 +1,27 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.dao.LineCalendarsEventDAO;
|
||||
import com.cool.store.dao.LineInfoDAO;
|
||||
import com.cool.store.dao.LineInterviewDAO;
|
||||
import com.cool.store.entity.LineCalendarsEventDO;
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.entity.LineInterviewDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.enums.InterviewTypeEnum;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.request.AppointmentTimeRequest;
|
||||
import com.cool.store.service.LineInterviewService;
|
||||
import com.cool.store.utils.UUIDUtils;
|
||||
import com.cool.store.utils.poi.DateUtils;
|
||||
import com.cool.store.vo.interview.AppointmentTimeVO;
|
||||
import org.apache.commons.lang3.tuple.Pair;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
@@ -22,6 +32,8 @@ import java.util.List;
|
||||
@Service
|
||||
public class LineInterviewServiceImpl implements LineInterviewService {
|
||||
|
||||
@Resource
|
||||
private LineInfoDAO lineInfoDAO;
|
||||
@Resource
|
||||
private LineInterviewDAO lineInterviewDAO;
|
||||
@Resource
|
||||
@@ -32,13 +44,69 @@ public class LineInterviewServiceImpl implements LineInterviewService {
|
||||
InterviewTypeEnum interviewTypeEnum = InterviewTypeEnum.match(interviewType);
|
||||
List<Pair<String, Boolean>> timeSlots = InterviewTypeEnum.getTimeSlots(interviewTypeEnum, appointmentDate);
|
||||
List<LineCalendarsEventDO> eventList = null;
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
|
||||
if(Objects.isNull(lineInfo)){
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
|
||||
}
|
||||
//如果是面谈 获取招商经理的时间 如果是面试 获取大区的时间
|
||||
if(InterviewTypeEnum.MEET.equals(interviewTypeEnum)){
|
||||
eventList = lineCalendarsEventDAO.getInterviewerLineCalendarsEvent("1", appointmentDate);
|
||||
eventList = lineCalendarsEventDAO.getInterviewerLineCalendarsEvent(lineInfo.getInvestmentManager(), appointmentDate);
|
||||
}else{
|
||||
eventList = lineCalendarsEventDAO.getRegionLineCalendarsEvent(1L, appointmentDate);
|
||||
eventList = lineCalendarsEventDAO.getRegionLineCalendarsEvent(lineInfo.getRegionId(), appointmentDate);
|
||||
}
|
||||
List<AppointmentTimeVO> resultList = AppointmentTimeVO.getAppointmentTime(appointmentDate, timeSlots, eventList);
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean appointmentTime(AppointmentTimeRequest request) {
|
||||
//查询线索信息
|
||||
//如果是面谈获取招商经理 如果是面试获取大区经理
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
|
||||
if(Objects.isNull(lineInfo)){
|
||||
throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST);
|
||||
}
|
||||
InterviewTypeEnum interviewType = InterviewTypeEnum.match(request.getInterviewType());
|
||||
String interviewer = InterviewTypeEnum.MEET.equals(interviewType) ? lineInfo.getInvestmentManager() : InterviewTypeEnum.INTERVIEW.equals(interviewType) ? lineInfo.getFirstInterviewer() : lineInfo.getSecondInterviewer();
|
||||
Boolean occupied = lineCalendarsEventDAO.isOccupied(request.getInterviewType(), lineInfo.getRegionId(), interviewer, request.getStartTime(), request.getEndTime());
|
||||
if(occupied){
|
||||
throw new ServiceException(ErrorCodeEnum.TIME_OCCUPIED);
|
||||
}
|
||||
Date startTime = DateUtils.strToDate(request.getStartTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
Date endTime = DateUtils.strToDate(request.getEndTime(), DateUtils.YYYY_MM_DD_HH_MM_SS);
|
||||
LineCalendarsEventDO calendarsEvent = new LineCalendarsEventDO();
|
||||
calendarsEvent.setRegionId(lineInfo.getRegionId());
|
||||
calendarsEvent.setLineId(lineInfo.getId());
|
||||
calendarsEvent.setPartnerId(lineInfo.getPartnerId());
|
||||
calendarsEvent.setEventTitle(lineInfo.getUsername() + " " + (InterviewTypeEnum.MEET.equals(interviewType) ? "面谈" :"面审"));
|
||||
calendarsEvent.setInterviewType(request.getInterviewType());
|
||||
calendarsEvent.setStartTime(startTime);
|
||||
calendarsEvent.setEndTime(endTime);
|
||||
calendarsEvent.setInterviewer(interviewer);
|
||||
Long eventId = lineCalendarsEventDAO.addCalendarsEvent(calendarsEvent);
|
||||
//跟新线索状态为已预约
|
||||
lineInfoDAO.updateLineStage(request.getLineId());
|
||||
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineInfo.getId(), interviewType);
|
||||
if(Objects.isNull(interviewInfo)){
|
||||
LineInterviewDO addInterview = new LineInterviewDO();
|
||||
addInterview.setLineId(lineInfo.getId());
|
||||
addInterview.setPartnerId(lineInfo.getPartnerId());
|
||||
addInterview.setRegionId(lineInfo.getRegionId());
|
||||
addInterview.setInterviewDate(startTime);
|
||||
addInterview.setStartTime(startTime);
|
||||
addInterview.setEndTime(endTime);
|
||||
addInterview.setRoomId(UUIDUtils.get8UUID());
|
||||
addInterview.setInterviewer(interviewer);
|
||||
addInterview.setInterviewType(interviewType.getCode());
|
||||
addInterview.setCalendarsEventId(eventId);
|
||||
lineInterviewDAO.addInterviewInfo(addInterview);
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
interviewInfo.setInterviewDate(startTime);
|
||||
interviewInfo.setCalendarsEventId(eventId);
|
||||
interviewInfo.setStartTime(startTime);
|
||||
interviewInfo.setEndTime(endTime);
|
||||
lineInterviewDAO.updateInterviewInfo(interviewInfo);
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user