Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -35,4 +35,11 @@ public interface EnterpriseUserService {
|
||||
|
||||
List<EnterpriseUserSingleInfoVO> getDevelopmentDirectorList(String wantShopArea);
|
||||
|
||||
/**
|
||||
* 根据意向区域获取开发主管
|
||||
* @param zoneId
|
||||
* @return
|
||||
*/
|
||||
EnterpriseUserDO getDevelopmentByZoneId(Long zoneId);
|
||||
|
||||
}
|
||||
|
||||
@@ -130,6 +130,14 @@ public interface HyPartnerLineInfoService {
|
||||
*/
|
||||
Boolean assignFollowUser(Long lineId);
|
||||
|
||||
/**
|
||||
* 线索状态
|
||||
* @param wantShopAreaId
|
||||
* @param acceptAdjustType
|
||||
* @return
|
||||
*/
|
||||
Boolean getLineStatus(Long wantShopAreaId,Integer acceptAdjustType);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@ public interface InterviewService {
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
CreateAppointmentVO createAppointment(CreateAppointmentReq request);
|
||||
CreateAppointmentVO createAppointment(CreateAppointmentReq request) throws ApiException;
|
||||
|
||||
/**
|
||||
* 同意面试预约
|
||||
|
||||
@@ -13,6 +13,7 @@ import com.cool.store.service.ZoneService;
|
||||
import com.cool.store.vo.EnterpriseUserSingleInfoVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
@@ -82,15 +83,7 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService {
|
||||
if (CommonConstants.TRANSFER.equals(type)){
|
||||
enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, Boolean.TRUE);
|
||||
}
|
||||
List<EnterpriseUserSingleInfoVO> enterpriseUserSingleInfoVOS = new ArrayList<>();
|
||||
enterpriseUserDOS.forEach(x->{
|
||||
EnterpriseUserSingleInfoVO enterpriseUserSingleInfoVO = new EnterpriseUserSingleInfoVO();
|
||||
enterpriseUserSingleInfoVO.setUserId(x.getUserId());
|
||||
enterpriseUserSingleInfoVO.setUserName(x.getName());
|
||||
enterpriseUserSingleInfoVO.setMobile(x.getMobile());
|
||||
enterpriseUserSingleInfoVOS.add(enterpriseUserSingleInfoVO);
|
||||
});
|
||||
return enterpriseUserSingleInfoVOS;
|
||||
return EnterpriseUserSingleInfoVO.convertVO(enterpriseUserDOS);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -125,7 +118,7 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService {
|
||||
result.setInvestmentUserIds(userList);
|
||||
}
|
||||
//开发区域
|
||||
List<String> developmentList = zoneInfoList.stream().filter(o -> "developement".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList());
|
||||
List<String> developmentList = zoneInfoList.stream().filter(o -> "dev".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList());
|
||||
if(CollectionUtils.isNotEmpty(developmentList)){
|
||||
//获取负责的区域
|
||||
developmentList.retainAll(subRegionIds);
|
||||
@@ -138,6 +131,23 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService {
|
||||
|
||||
@Override
|
||||
public List<EnterpriseUserSingleInfoVO> getDevelopmentDirectorList(String wantShopArea) {
|
||||
return null;
|
||||
List<HyIntendDevZoneInfoDO> devList = hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList("dev");
|
||||
List<String> regionIds = ListUtils.emptyIfNull(devList).stream().flatMap(o -> JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList());
|
||||
List<EnterpriseUserDO> userList = enterpriseUserDAO.getUserListByDeptLeaders(regionIds);
|
||||
return EnterpriseUserSingleInfoVO.convertVO(userList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnterpriseUserDO getDevelopmentByZoneId(Long zoneId) {
|
||||
HyIntendDevZoneInfoDO zoneInfo = hyIntendDevZoneInfoDAO.selectById(zoneId);
|
||||
if(Objects.isNull(zoneInfo)){
|
||||
throw new ServiceException(ErrorCodeEnum.ZONE_NOT_EXIST);
|
||||
}
|
||||
List<String> regionIds = JSONObject.parseArray(zoneInfo.getAssociatedRegionId(), String.class);
|
||||
List<EnterpriseUserDO> userList = enterpriseUserDAO.getUserListByDeptLeaders(regionIds);
|
||||
if(CollectionUtils.isEmpty(userList)){
|
||||
return null;
|
||||
}
|
||||
return userList.stream().findAny().get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,11 +4,13 @@ import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.cool.store.dto.calendar.UserFreeBusyInfoDTO;
|
||||
import com.cool.store.entity.HyPartnerInterviewPlanDO;
|
||||
import com.cool.store.entity.HyPartnerLineInfoDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.http.ISVHttpRequest;
|
||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.request.GetFreeBusyListReq;
|
||||
import com.cool.store.service.FeiShuService;
|
||||
import com.cool.store.vo.interview.CalendarInfo;
|
||||
@@ -36,6 +38,9 @@ public class FeiShuServiceImpl implements FeiShuService {
|
||||
@Autowired
|
||||
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
|
||||
|
||||
@Override
|
||||
public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException {
|
||||
GetFreeBusyListVO freeBusyListVO = new GetFreeBusyListVO();
|
||||
@@ -43,21 +48,24 @@ public class FeiShuServiceImpl implements FeiShuService {
|
||||
String endDate = request.getEndDate();//结束日期
|
||||
String partnerId = request.getPartnerId();//加盟商用户ID
|
||||
String interviewerId = request.getInterviewerId();//面试官ID
|
||||
String lineId = request.getLineId();//线索id
|
||||
//如果加盟商用户ID为空且面试官ID为空,返回错误信息
|
||||
if (StringUtils.isEmpty(partnerId) && StringUtils.isEmpty(interviewerId)) {
|
||||
if (!(StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) && StringUtils.isEmpty(interviewerId)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_AND_PARTNER_ID_IS_NULL);
|
||||
}
|
||||
//如果加盟商用户ID不为空且面试官ID为空
|
||||
if (StringUtils.isNotEmpty(partnerId) && StringUtils.isEmpty(interviewerId)) {
|
||||
if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) {
|
||||
//根据加盟商用户ID查询面试官ID
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanDO.setPartnerId(partnerId);
|
||||
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
//如果查询结果为空,返回错误信息
|
||||
//如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
|
||||
if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) {
|
||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_IS_NULL);
|
||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(lineId));
|
||||
interviewerId = hyPartnerLineInfoDO.getInvestmentManager();
|
||||
}else {
|
||||
interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer();
|
||||
}
|
||||
interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer();
|
||||
}
|
||||
long startTime = 0L;
|
||||
long endTime = 0L;
|
||||
|
||||
@@ -247,20 +247,20 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
@Override
|
||||
public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) {
|
||||
//确认是招商经理还是部门负责人
|
||||
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
|
||||
List<String> userIds = new ArrayList<>();
|
||||
if (userInfo.getIsLeader()){
|
||||
if (StringUtil.isNotEmpty(userInfo.getLeaderDeptIds())){
|
||||
List<String> regionIds = JSONObject.parseArray(userInfo.getLeaderDeptIds(), String.class);
|
||||
List<EnterpriseUserDO> enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(regionIds, null, true);
|
||||
userIds =enterpriseUserDOS.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList());
|
||||
}
|
||||
}else {
|
||||
userIds = Arrays.asList(userId);
|
||||
}
|
||||
// EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
|
||||
// List<String> userIds = new ArrayList<>();
|
||||
// if (userInfo.getIsLeader()){
|
||||
// if (StringUtil.isNotEmpty(userInfo.getLeaderDeptIds())){
|
||||
// List<String> regionIds = JSONObject.parseArray(userInfo.getLeaderDeptIds(), String.class);
|
||||
// List<EnterpriseUserDO> enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(regionIds, null, true);
|
||||
// userIds =enterpriseUserDOS.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList());
|
||||
// }
|
||||
// }else {
|
||||
// userIds = Arrays.asList(userId);
|
||||
// }
|
||||
PageHelper.startPage(lineRequest.getPageNum(),lineRequest.getPageSize());
|
||||
PageInfo publicSeaLineList = new PageInfo(hyPartnerLineInfoDAO.getPublicSeaLineList(lineRequest.getUserNameKeyword(), lineRequest.getPhoneKeyword(),
|
||||
lineRequest.getIntentArea(), lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), userIds));
|
||||
lineRequest.getIntentArea(), lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), null));
|
||||
|
||||
List<PublicSeaLineDTO> list = publicSeaLineList.getList();
|
||||
if (CollectionUtils.isEmpty(list)){
|
||||
@@ -395,21 +395,34 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId());
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()));
|
||||
|
||||
Boolean lineStatus = getLineStatus(Long.valueOf(hyPartnerUserInfoDO.getWantShopArea()), hyPartnerUserInfoDO.getAcceptAdjustType());
|
||||
return lineStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* 线索状态
|
||||
* @param wantShopAreaId
|
||||
* @param acceptAdjustType
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Boolean getLineStatus(Long wantShopAreaId,Integer acceptAdjustType){
|
||||
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(wantShopAreaId);
|
||||
|
||||
if (AreaStatusEnum.OPEN.getCode().equals(hyOpenAreaInfoDO.getAreaStatus()) || AreaStatusEnum.KEY_OPEN.getCode().equals(hyOpenAreaInfoDO.getAreaStatus())){
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
if (AreaStatusEnum.NOT_OPEN.getCode().equals(hyOpenAreaInfoDO.getAreaStatus()) || AreaStatusEnum.SATURATED.getCode().equals(hyOpenAreaInfoDO.getAreaStatus())){
|
||||
if (AcceptAdjustTypeEnum.NOT_ACCEPT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.NOT_ACCEPT.getCode().equals(acceptAdjustType)){
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
//全国调剂 默认分配呗 有啥好说的
|
||||
if (AcceptAdjustTypeEnum.NATIONAL_ADJUSTMENT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.NATIONAL_ADJUSTMENT.getCode().equals(acceptAdjustType)){
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
//省内调剂 有重点或者开放的 分配
|
||||
if (AcceptAdjustTypeEnum.PROVINCIAL_ADJUSTMENT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.PROVINCIAL_ADJUSTMENT.getCode().equals(acceptAdjustType)){
|
||||
Integer apply = hyOpenAreaInfoDAO.getChildrenCount("apply", hyOpenAreaInfoDO.getId());
|
||||
if (apply>CommonConstants.ZERO){
|
||||
return Boolean.TRUE;
|
||||
@@ -417,7 +430,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
//市内调剂 不分配
|
||||
if (AcceptAdjustTypeEnum.LOCAL_ADJUSTMENT.getCode().equals(hyPartnerUserInfoDO.getAcceptAdjustType())){
|
||||
if (AcceptAdjustTypeEnum.LOCAL_ADJUSTMENT.getCode().equals(acceptAdjustType)){
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,11 +28,11 @@ import com.cool.store.vo.EnterpriseUserBaseInfoVO;
|
||||
import com.cool.store.vo.interview.CreateAppointmentVO;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
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;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -207,7 +207,14 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public CreateAppointmentVO createAppointment(CreateAppointmentReq request) {
|
||||
@Transactional
|
||||
public CreateAppointmentVO createAppointment(CreateAppointmentReq request) throws ApiException {
|
||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||
hyPartnerInterviewPlanDO.setPartnerLineId(request.getPartnerLineId());
|
||||
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
if(CollectionUtils.isNotEmpty(hyPartnerInterviewPlanDOS)){
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ALREADY_EXIST);
|
||||
}
|
||||
CreateAppointmentVO vo = new CreateAppointmentVO();
|
||||
//1.创建面试计划
|
||||
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
||||
@@ -226,14 +233,21 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
record.setRoomId(StringUtil.generateRoomId(startBookingTime));
|
||||
record.setRoomStatus(RoomStatus.WAIT_FOR_OPEN.getCode());
|
||||
record.setDeleted(false);
|
||||
long interviewPlanId = hyPartnerInterviewPlanMapper.insertSelective(record);
|
||||
record.setApplicationApproved(0);
|
||||
hyPartnerInterviewPlanMapper.insertSelective(record);
|
||||
|
||||
List<HyPartnerInterviewPlanDO> interviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
|
||||
if(CollectionUtils.isEmpty(interviewPlanDOS)){
|
||||
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
|
||||
}
|
||||
Long interviewPlanId = interviewPlanDOS.get(0).getId();
|
||||
vo.setInterviewPlanId(String.valueOf(interviewPlanId));
|
||||
|
||||
//2.创建面试信息
|
||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||
hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId);
|
||||
hyPartnerInterviewDO.setPartnerId(request.getPartnerId());
|
||||
hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId());
|
||||
hyPartnerInterviewDO.setPartnerId(request.getPartnerId());
|
||||
hyPartnerInterviewDO.setInterviewer(request.getInterviewerId());
|
||||
hyPartnerInterviewDO.setCreateTime(new Date());
|
||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||
@@ -245,6 +259,7 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
|
||||
@Override
|
||||
public void approveAppointment(ApproveAppointmentReq request) throws ApiException {
|
||||
|
||||
//查询面试计划信息
|
||||
InterviewVO interviewVO = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
|
||||
//如果面试计划不存在,抛出异常
|
||||
|
||||
@@ -86,7 +86,7 @@ public class ZoneServiceImpl implements ZoneService {
|
||||
hyIntendDevZoneInfoDO.setId(intentAreaSettingRequest.getId());
|
||||
hyIntendDevZoneInfoDO.setZoneName(intentAreaSettingRequest.getZoneName());
|
||||
hyIntendDevZoneInfoDO.setUpdateUserId(userId);
|
||||
hyIntendDevZoneInfoDO.setAssociatedRegionId(CollectionUtils.isNotEmpty(intentAreaSettingRequest.getOrgIdList())?JSONObject.toJSONString(intentAreaSettingRequest.getOrgIdList()):"");
|
||||
hyIntendDevZoneInfoDO.setAssociatedRegionId(CollectionUtils.isNotEmpty(intentAreaSettingRequest.getOrgIdList())?JSONObject.toJSONString(intentAreaSettingRequest.getOrgIdList()):null);
|
||||
hyIntendDevZoneInfoDAO.updateByPrimaryKeySelective(hyIntendDevZoneInfoDO);
|
||||
//添加战区映射的意向区域
|
||||
hyIntendDevMappingDAO.deleteByOpenAreaIds(intentAreaSettingRequest.getOpenAreaIdList(),intentAreaSettingRequest.getType());
|
||||
@@ -202,7 +202,7 @@ public class ZoneServiceImpl implements ZoneService {
|
||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||
}
|
||||
//查询已经绑定战区的 意向区域
|
||||
List<ZoneCheckDTO> list = hyIntendDevMappingDAO.selectByMappingIdList(intentAreaSettingRequest.getOpenAreaIdList());
|
||||
List<ZoneCheckDTO> list = hyIntendDevMappingDAO.selectByOpenAreaMappingIdList(intentAreaSettingRequest.getOpenAreaIdList());
|
||||
List<Long> openAreaIdList = list.stream().map(ZoneCheckDTO::getOpenAreaMappingId).collect(Collectors.toList());
|
||||
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOList = openAreaInfoDAO.selectByIds(openAreaIdList);
|
||||
Map<Long, String> areaNameMap = hyOpenAreaInfoDOList.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, HyOpenAreaInfoDO::getAreaName));
|
||||
|
||||
Reference in New Issue
Block a user