Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner

This commit is contained in:
俞扬
2023-06-25 14:38:38 +08:00
25 changed files with 166 additions and 43 deletions

View File

@@ -1,6 +1,7 @@
package com.cool.store.service;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.exception.ApiException;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest;
import com.cool.store.request.PrivateSeaLineListRequest;
@@ -147,7 +148,7 @@ public interface HyPartnerLineInfoService {
*/
String getAssignFollowUser(String partnerId,String type);
InterviewVO getInterviewInfo(Long lineId);
InterviewVO getInterviewInfo(Long lineId) throws ApiException;
/**
* 生成一条默认线索

View File

@@ -22,7 +22,7 @@ public interface InterviewService {
* @param request
* @return
*/
InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request);
InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request) throws ApiException;
/**
* 委托他人

View File

@@ -27,7 +27,7 @@ public interface PartnerInterviewService {
/**
* 获取通知函详情
*/
PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId);
PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId) throws ApiException;
/**
* 修改面试时间

View File

@@ -2,6 +2,7 @@ package com.cool.store.service;
import com.cool.store.entity.HyPartnerUserInfoDO;
import com.cool.store.request.PartnerUserInfoRequest;
import com.cool.store.vo.ApplyBaseInfoVO;
import com.cool.store.vo.InviteCodeDetailVO;
public interface PartnerUserInfoService {
@@ -14,6 +15,6 @@ public interface PartnerUserInfoService {
InviteCodeDetailVO selectInviteCodeDetail(String partnerId);
String updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest);
ApplyBaseInfoVO updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest);
}

View File

@@ -65,8 +65,8 @@ public class DeskServiceImpl implements DeskService {
//查询面试数量
String currentDate = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY);
String startTime = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_SEC);
String endTime = DateUtil.format(CoolDateUtils.getDateBefore(dateTime, 7), CoolDateUtils.DATE_FORMAT_SEC);
String startTime = DateUtil.format(CoolDateUtils.getDateFormatDayMinTime(1), CoolDateUtils.DATE_FORMAT_SEC);
String endTime = DateUtil.format(CoolDateUtils.getDateFormatDay(7), CoolDateUtils.DATE_FORMAT_SEC);
SpecialDateRangeInterviewCountDTO interviewCount = hyPartnerInterviewPlanDAO.getInterviewCount(userId, currentDate, startTime, endTime);
interviewScheduleInfoVO.setCurrentDayInterviewCount(interviewCount.getCurrentDayInterviewCount());

View File

@@ -157,6 +157,7 @@ public class FlowServiceImpl implements FlowService {
hyPartnerInterviewDO.setUpdateTime(new Date());
//更新
hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_5.getCode()));
hyPartnerInterviewDO.setAuthCode(authCode);
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
//4. 更新线索信息(开发主管)

View File

@@ -173,7 +173,9 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
intentInfoDO.setWantShopArea(request.getWantShopArea());
intentInfoDO.setAcceptAdjustType(request.getAcceptAdjustType());
intentInfoDO.setIsHaveWantShop(request.getIsHaveWantShop());
intentInfoDO.setWantShopInfo(request.getWantShopInfo());
if (CollectionUtils.isNotEmpty(request.getWantShopInfo())){
intentInfoDO.setWantShopInfo(JSONObject.toJSONString(request.getWantShopInfo()));
}
intentInfoDO.setMaxBudget(request.getMaxBudget());
intentInfoDO.setMoneySource(request.getMoneySource());
if(CollectionUtils.isNotEmpty(request.getMoneyProve())){

View File

@@ -10,6 +10,7 @@ import com.cool.store.dto.buser.UserPositionAndUserScopeDTO;
import com.cool.store.dto.partner.*;
import com.cool.store.entity.*;
import com.cool.store.enums.*;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest;
@@ -336,7 +337,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
List<LineCountDTO> followCountList = hyPartnerLineInfoDAO.getFollowCountList(partnerIdList);
Map<String, Integer> countMap = followCountList.stream().collect(Collectors.toMap(LineCountDTO::getPartnerId, LineCountDTO::getFollowCount));
List<Long> wantShopAreaList = list.stream().map(PublicSeaLineDTO::getWantShopArea).map(Long::parseLong).distinct().collect(Collectors.toList());
List<Long> wantShopAreaList = list.stream().map(PublicSeaLineDTO::getWantShopArea).filter(Objects::nonNull).map(Long::parseLong).distinct().collect(Collectors.toList());
Map<String, String> wantShopAreaNameMap = hyOpenAreaInfoDAO.selectNameMapByIds(wantShopAreaList);
List<PublicSeaLineListVo> result = new ArrayList<>();
list.forEach(x->{
@@ -432,6 +433,11 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
Boolean lineStatus = getLineStatus(Long.valueOf(wantShopArea), acceptAdjustType);
return lineStatus;
}
//如果意向区域没有绑定战区 不分配招商经理
HyIntendDevelopementMappingDO hyIntendDevelopementMappingDO = hyIntendDevMappingDAO.selectByOpenAreaMappingId(Long.valueOf(wantShopArea), "intent");
if (hyIntendDevelopementMappingDO==null){
return Boolean.FALSE;
}
//如果是私海线索 不需要重新分配招商经理 或者跟进次数大于1
if (HyPartnerLineInfo.getLineStatus()==1||CollectionUtils.isEmpty(lineFollowHistoryList)){
return Boolean.FALSE;
@@ -486,11 +492,10 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
//意向区域
String wantShopArea = hyPartnerUserInfoDO.getWantShopArea();
EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO();
// TODO: 2023/6/21 如果意向区域没有绑定战区 分配给谁
//查询意向区域绑定的组织架构
//查询意向区域绑定的组织架构 没有绑定战区 分配
HyIntendDevelopementMappingDO hyIntendDevelopementMappingDO = hyIntendDevMappingDAO.selectByOpenAreaMappingId(Long.valueOf(wantShopArea),type);
if (hyIntendDevelopementMappingDO==null){
throw new ServiceException(ErrorCodeEnum.INTENT_AREA_NOT_BING_ZONE);
return "";
}
List<String> result = new ArrayList<>();
if (hyIntendDevelopementMappingDO!=null){
@@ -516,7 +521,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
@Override
public InterviewVO getInterviewInfo(Long lineId) {
public InterviewVO getInterviewInfo(Long lineId) throws ApiException {
Long interviewId = hyPartnerInterviewPlanDAO.selectInterviewIdByLineId(lineId);
QueryByInterviewPlanIdReq queryByInterviewPlanIdReq = new QueryByInterviewPlanIdReq();
if (interviewId!=null){

View File

@@ -93,9 +93,13 @@ public class InterviewServiceImpl implements InterviewService {
}
@Override
public InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request) {
public InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request) throws ApiException {
String interviewPlanId = request.getInterviewPlanId();
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
//如果面试信息为空,抛出异常
if (vo == null) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
//将 processInfo 解析为 List
if (!StringUtils.isEmpty(vo.getProcessInfo())) {
List<String> split = Arrays.asList(vo.getProcessInfo().split(","));
@@ -239,9 +243,7 @@ public class InterviewServiceImpl implements InterviewService {
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
//1. 将面试状态改为 --> 2已开始
hyPartnerInterviewDO.setStatus(2);
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
hyPartnerInterviewDO.setInterviewer(DateUtil.now());
//4. 修改加盟商或面试官进入面试时间
//2. 修改加盟商或面试官进入面试时间
//加盟商
if (dto.getUserType().equals(2)) {
hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date());
@@ -252,14 +254,17 @@ public class InterviewServiceImpl implements InterviewService {
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setId(Long.parseLong(dto.getInterviewPlanId()));
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
//6. 修改房间状态为已开放
hyPartnerInterviewPlanDO.setRoomStatus(1);
//3. TODO待确认 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
hyPartnerInterviewPlanDO.setActualEndTime(DateUtil.date());
//4. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
if (dto.getUserType().equals(2)) {
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
}
//5. 修改房间状态为已开放
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
//7. 查询对应的面试官id、姓名及加盟商姓名
//6. 查询对应的面试官id、姓名及加盟商姓名
EnterInterviewVO vo = hyPartnerInterviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//8. 生成 userSign
//7. 生成 userSign
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
vo.setUserSign(userSig);
return vo;

View File

@@ -71,9 +71,7 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
//1. 将面试状态改为 --> 2已开始
hyPartnerInterviewDO.setStatus(2);
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
//4. 修改加盟商或面试官进入面试时间
//2. 修改加盟商或面试官进入面试时间
//加盟商
if (dto.getUserType().equals(2)) {
hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date());
@@ -84,15 +82,17 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
interviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setId(Long.parseLong(dto.getInterviewPlanId()));
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
//3. TODO待确认 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
hyPartnerInterviewPlanDO.setActualEndTime(DateUtil.date());
//4. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
if (dto.getUserType().equals(2)) {
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
}
//6. 修改房间状态为已开放
//5. 修改房间状态为已开放
interviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
//7. 查询对应的面试官id、姓名及加盟商姓名
//6. 查询对应的面试官id、姓名及加盟商姓名
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//8. 生成 userSign
//7. 生成 userSign
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
vo.setUserSign(userSig);
return vo;
@@ -105,8 +105,12 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
* 获取通知函详情
*/
@Override
public PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId) {
public PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId) throws ApiException {
PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewPlanId);
//如果面试信息为空,抛出异常
if (vo == null) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
//解析意向开店区域为市级行政区
String verifyCity = vo.getVerifyCity();
String[] split = verifyCity.split("/");

View File

@@ -11,11 +11,14 @@ import com.cool.store.request.PartnerUserInfoRequest;
import com.cool.store.service.HyPartnerBaseInfoService;
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 org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
@@ -72,11 +75,12 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
}
@Override
public String updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest) {
public ApplyBaseInfoVO updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest) {
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(partnerUserInfoRequest.getPartnerId()));
if (hyPartnerUserInfoDO == null){
throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST);
}
ApplyBaseInfoVO applyBaseInfoVO = new ApplyBaseInfoVO();
hyPartnerUserInfoDO.setUsername(partnerUserInfoRequest.getUsername());
hyPartnerUserInfoDO.setMobile(partnerUserInfoRequest.getMobile());
hyPartnerUserInfoDO.setLiveArea(partnerUserInfoRequest.getLiveArea());
@@ -95,6 +99,17 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
// 生成一条意向基本信息
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId());
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea()));
return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : "";
List<HyOpenAreaInfoDO> hyOpenAreaInfoDOS = null;
if(hyOpenAreaInfoDO != null){
applyBaseInfoVO.setSelectAreaStatus(hyOpenAreaInfoDO.getAreaStatus());
String areaPath = hyOpenAreaInfoDO.getAreaPath();
String province = areaPath.substring(0, areaPath.indexOf("/", areaPath.indexOf("/") + 1));
hyOpenAreaInfoDOS = hyOpenAreaInfoDAO.queryByKeyword(province, true, null, true);
}
applyBaseInfoVO.setProvinceHasOpenArea(false);
if (CollectionUtils.isNotEmpty(hyOpenAreaInfoDOS)) {
applyBaseInfoVO.setProvinceHasOpenArea(true);
}
return applyBaseInfoVO;
}
}