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,5 +1,7 @@
package com.cool.store.utils; package com.cool.store.utils;
import cn.hutool.core.date.DateUtil;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -39,6 +41,21 @@ public class CoolDateUtils {
return now.getTime(); return now.getTime();
} }
/**
* n天后 的最小时间 20230613 2天后最小时间---->2023-06-15 00:00:00
* @param day
* @return
*/
public static Date getDateFormatDayMinTime(int day){
LocalDate today = LocalDate.now();
LocalDate thirdDay = today.plusDays(day);
LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT);
LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MIN);
ZonedDateTime zonedDateTime = ZonedDateTime.of(thirdDay235959, ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}
/** /**
* n天后 的最大时间 20230613 2天后最大时间---->2023-06-15 23:59:59 * n天后 的最大时间 20230613 2天后最大时间---->2023-06-15 23:59:59

View File

@@ -140,7 +140,7 @@
from hy_intend_developement_mapping a inner join hy_intend_dev_zone_info b on a.mapping_id = b.id from hy_intend_developement_mapping a inner join hy_intend_dev_zone_info b on a.mapping_id = b.id
<where> <where>
<if test="type!=null and type !=''"> <if test="type!=null and type !=''">
and type = #{type} and a.type = #{type}
</if> </if>
<if test="openAreaMappingIdList!=null and openAreaMappingIdList.size>0"> <if test="openAreaMappingIdList!=null and openAreaMappingIdList.size>0">
<foreach collection="openAreaMappingIdList" open="and a.open_area_mapping_id in (" close=")" separator="," item="mappingId"> <foreach collection="openAreaMappingIdList" open="and a.open_area_mapping_id in (" close=")" separator="," item="mappingId">

View File

@@ -185,6 +185,8 @@
select * from select * from
hy_open_area_info hy_open_area_info
where area_status = 'keyOpen' where area_status = 'keyOpen'
and province_city_flag = 1
and parent_id is null
</select> </select>
<select id="queryByKeyword" resultMap="BaseResultMap"> <select id="queryByKeyword" resultMap="BaseResultMap">

View File

@@ -38,7 +38,7 @@
values values
<foreach collection="records" item="record" separator=","> <foreach collection="records" item="record" separator=",">
(#{record.partnerId}, (#{record.partnerId},
#{record.partnerLineId} #{record.partnerLineId})
</foreach> </foreach>
</insert> </insert>

View File

@@ -292,7 +292,9 @@
SELECT t1.id interviewId, t1.id interview_id, t2.id as interviewPlanId, `status`, start_time, end_time, room_id, t1.partner_id partnerId, t1.interviewer interviewerId SELECT t1.id interviewId, t1.id interview_id, t2.id as interviewPlanId, `status`, start_time, end_time, room_id, t1.partner_id partnerId, t1.interviewer interviewerId
FROM hy_partner_interview t1 FROM hy_partner_interview t1
LEFT JOIN hy_partner_interview_plan t2 ON t1.interview_plan_id = t2.id LEFT JOIN hy_partner_interview_plan t2 ON t1.interview_plan_id = t2.id
WHERE t1.partner_id = #{partnerId} and deleted = 0 WHERE t1.partner_id = #{partnerId}
AND t1.deleted = 0
AND t2.deleted = 0
</select> </select>
<select id="queryPartnerName" resultType="string"> <select id="queryPartnerName" resultType="string">
SELECT username SELECT username

View File

@@ -270,7 +270,7 @@
<select id="getInterviewCount" resultType="com.cool.store.dto.partner.SpecialDateRangeInterviewCountDTO"> <select id="getInterviewCount" resultType="com.cool.store.dto.partner.SpecialDateRangeInterviewCountDTO">
select select
ifnull(sum(if(interview_date=#{currentDate},1,0)),0) as currentDayInterviewCount, ifnull(sum(if(interview_date=#{currentDate},1,0)),0) as currentDayInterviewCount,
ifnull(sum(if(start_time>#{startTime} and #{endTime},1,0)),0) as lastSevenDayInterviewCount ifnull(sum(if(start_time>#{startTime} and end_time <![CDATA[<]]> #{endTime},1,0)),0) as lastSevenDayInterviewCount
FROM hy_partner_interview_plan FROM hy_partner_interview_plan
where interviewer = #{userId} where interviewer = #{userId}
and application_approved = 0 and application_approved = 0
@@ -335,6 +335,7 @@
left join hy_partner_user_info hpui on hpui.partner_id = hpip.partner_id left join hy_partner_user_info hpui on hpui.partner_id = hpip.partner_id
left join enterprise_user eu on hpip.interviewer = eu.user_id left join enterprise_user eu on hpip.interviewer = eu.user_id
<where> <where>
hpip.deleted = 0
<if test="record.partnerName !=null and record.partnerName!=''"> <if test="record.partnerName !=null and record.partnerName!=''">
hpui.username like concat('%',#{record.partnerName},'%') hpui.username like concat('%',#{record.partnerName},'%')
</if> </if>
@@ -350,7 +351,7 @@
<if test="record.interviewerMobile !=null and record.interviewerMobile!=''"> <if test="record.interviewerMobile !=null and record.interviewerMobile!=''">
and hpui.mobile like concat('%',#{record.interviewerMobile},'%') and hpui.mobile like concat('%',#{record.interviewerMobile},'%')
</if> </if>
<if test="record.roomStatus !=null and record.roomStatus!=''"> <if test="record.roomStatus !=null">
and hpip.room_status = #{record.roomStatus} and hpip.room_status = #{record.roomStatus}
</if> </if>
<if test="record.startTime !=null"> <if test="record.startTime !=null">

View File

@@ -37,7 +37,7 @@ public class PartnerIntentInfoRequest {
private Integer isHaveWantShop; private Integer isHaveWantShop;
@ApiModelProperty("意向铺位信息,json字段,最多5个") @ApiModelProperty("意向铺位信息,json字段,最多5个")
private String wantShopInfo; private List<WantShopInfoRequest> wantShopInfo;
@ApiModelProperty("最大预算") @ApiModelProperty("最大预算")
private String maxBudget; private String maxBudget;

View File

@@ -35,7 +35,7 @@ public class PrivateSeaLineListRequest extends PageInfoRequest {
private Date deadlineEnd; private Date deadlineEnd;
@ApiModelProperty("意向区域") @ApiModelProperty("意向区域")
private String IntentArea; private String intentArea;
@ApiModelProperty("调剂方式") @ApiModelProperty("调剂方式")
private Integer acceptAdjustType; private Integer acceptAdjustType;

View File

@@ -0,0 +1,45 @@
package com.cool.store.request;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2023/6/21 22:07
* @Version 1.0
*/
@Data
public class WantShopInfoRequest {
private ShopInfo shopInfo;
private String uuid;
@Data
static class ShopInfo{
private ShopAddress shopAddress;
private String storeIsTakeDown;
private String takeDown;
}
@Data
static class ShopAddress{
private String address;
private String longitude;
private String latitude;
}
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author wxp
* @Date 2023/6/25 9:49
* @Version 1.0
*/
@Data
@ApiModel
public class ApplyBaseInfoVO {
@ApiModelProperty("状态 open-开放 keyOpen-重点开放 notOpen-未开放 saturated-已饱和")
private String selectAreaStatus;
@ApiModelProperty("所选省内是否含有开放城市")
private Boolean provinceHasOpenArea;
}

View File

@@ -1,6 +1,7 @@
package com.cool.store.service; package com.cool.store.service;
import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.exception.ApiException;
import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.CloseFollowRequest;
import com.cool.store.request.LineRequest; import com.cool.store.request.LineRequest;
import com.cool.store.request.PrivateSeaLineListRequest; import com.cool.store.request.PrivateSeaLineListRequest;
@@ -147,7 +148,7 @@ public interface HyPartnerLineInfoService {
*/ */
String getAssignFollowUser(String partnerId,String type); 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 * @param request
* @return * @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.entity.HyPartnerUserInfoDO;
import com.cool.store.request.PartnerUserInfoRequest; import com.cool.store.request.PartnerUserInfoRequest;
import com.cool.store.vo.ApplyBaseInfoVO;
import com.cool.store.vo.InviteCodeDetailVO; import com.cool.store.vo.InviteCodeDetailVO;
public interface PartnerUserInfoService { public interface PartnerUserInfoService {
@@ -14,6 +15,6 @@ public interface PartnerUserInfoService {
InviteCodeDetailVO selectInviteCodeDetail(String partnerId); 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 currentDate = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY);
String startTime = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_SEC); String startTime = DateUtil.format(CoolDateUtils.getDateFormatDayMinTime(1), CoolDateUtils.DATE_FORMAT_SEC);
String endTime = DateUtil.format(CoolDateUtils.getDateBefore(dateTime, 7), CoolDateUtils.DATE_FORMAT_SEC); String endTime = DateUtil.format(CoolDateUtils.getDateFormatDay(7), CoolDateUtils.DATE_FORMAT_SEC);
SpecialDateRangeInterviewCountDTO interviewCount = hyPartnerInterviewPlanDAO.getInterviewCount(userId, currentDate, startTime, endTime); SpecialDateRangeInterviewCountDTO interviewCount = hyPartnerInterviewPlanDAO.getInterviewCount(userId, currentDate, startTime, endTime);
interviewScheduleInfoVO.setCurrentDayInterviewCount(interviewCount.getCurrentDayInterviewCount()); interviewScheduleInfoVO.setCurrentDayInterviewCount(interviewCount.getCurrentDayInterviewCount());

View File

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

View File

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

View File

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

View File

@@ -71,9 +71,7 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId())); hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
//1. 将面试状态改为 --> 2已开始 //1. 将面试状态改为 --> 2已开始
hyPartnerInterviewDO.setStatus(2); hyPartnerInterviewDO.setStatus(2);
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改 //2. 修改加盟商或面试官进入面试时间
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
//4. 修改加盟商或面试官进入面试时间
//加盟商 //加盟商
if (dto.getUserType().equals(2)) { if (dto.getUserType().equals(2)) {
hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date()); hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date());
@@ -84,15 +82,17 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
interviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO); interviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO(); HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setId(Long.parseLong(dto.getInterviewPlanId())); 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)) { if (dto.getUserType().equals(2)) {
hyPartnerInterviewPlanDO.setIsPartnerInterview(1); hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
} }
//6. 修改房间状态为已开放 //5. 修改房间状态为已开放
interviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO); interviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
//7. 查询对应的面试官id、姓名及加盟商姓名 //6. 查询对应的面试官id、姓名及加盟商姓名
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId()); EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//8. 生成 userSign //7. 生成 userSign
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId()); String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
vo.setUserSign(userSig); vo.setUserSign(userSig);
return vo; return vo;
@@ -105,8 +105,12 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
* 获取通知函详情 * 获取通知函详情
*/ */
@Override @Override
public PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId) { public PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId) throws ApiException {
PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewPlanId); PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewPlanId);
//如果面试信息为空,抛出异常
if (vo == null) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
//解析意向开店区域为市级行政区 //解析意向开店区域为市级行政区
String verifyCity = vo.getVerifyCity(); String verifyCity = vo.getVerifyCity();
String[] split = verifyCity.split("/"); 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.HyPartnerBaseInfoService;
import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.service.HyPartnerLineInfoService;
import com.cool.store.service.PartnerUserInfoService; import com.cool.store.service.PartnerUserInfoService;
import com.cool.store.vo.ApplyBaseInfoVO;
import com.cool.store.vo.InviteCodeDetailVO; import com.cool.store.vo.InviteCodeDetailVO;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
@Service @Service
public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
@@ -72,11 +75,12 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
} }
@Override @Override
public String updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest) { public ApplyBaseInfoVO updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest) {
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(partnerUserInfoRequest.getPartnerId())); HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(partnerUserInfoRequest.getPartnerId()));
if (hyPartnerUserInfoDO == null){ if (hyPartnerUserInfoDO == null){
throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST);
} }
ApplyBaseInfoVO applyBaseInfoVO = new ApplyBaseInfoVO();
hyPartnerUserInfoDO.setUsername(partnerUserInfoRequest.getUsername()); hyPartnerUserInfoDO.setUsername(partnerUserInfoRequest.getUsername());
hyPartnerUserInfoDO.setMobile(partnerUserInfoRequest.getMobile()); hyPartnerUserInfoDO.setMobile(partnerUserInfoRequest.getMobile());
hyPartnerUserInfoDO.setLiveArea(partnerUserInfoRequest.getLiveArea()); hyPartnerUserInfoDO.setLiveArea(partnerUserInfoRequest.getLiveArea());
@@ -95,6 +99,17 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
// 生成一条意向基本信息 // 生成一条意向基本信息
hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId()); hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, hyPartnerLineInfoDO.getId());
HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea())); 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;
} }
} }

View File

@@ -291,7 +291,7 @@ public class DeskController {
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "lineId", value = "线索ID", required = false), @ApiImplicitParam(name = "lineId", value = "线索ID", required = false),
}) })
public ResponseResult<InterviewVO> getInterviewInfoByLineId(@RequestParam(value = "lineId",required = false)Long lineId){ public ResponseResult<InterviewVO> getInterviewInfoByLineId(@RequestParam(value = "lineId",required = false)Long lineId) throws ApiException {
return ResponseResult.success(hyPartnerLineInfoService.getInterviewInfo(lineId)); return ResponseResult.success(hyPartnerLineInfoService.getInterviewInfo(lineId));
} }
} }

View File

@@ -42,7 +42,7 @@ public class InterviewController {
@PostMapping("/queryByInterviewPlanId") @PostMapping("/queryByInterviewPlanId")
@ApiOperation("根据面试会议计划id查询面试信息") @ApiOperation("根据面试会议计划id查询面试信息")
public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) { public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) throws ApiException {
InterviewVO interviewVO = interviewService.getInterviewInfo(request); InterviewVO interviewVO = interviewService.getInterviewInfo(request);
return ResponseResult.success(interviewVO); return ResponseResult.success(interviewVO);
} }

View File

@@ -44,7 +44,7 @@ public class InterviewController {
@PostMapping("/passLetter/detail") @PostMapping("/passLetter/detail")
@ApiOperation("通过函详情") @ApiOperation("通过函详情")
public ResponseResult<PartnerPassLetterDetailVO> passLetterDetail(@RequestBody PartnerGetPassLetterDetailDto dto) { public ResponseResult<PartnerPassLetterDetailVO> passLetterDetail(@RequestBody PartnerGetPassLetterDetailDto dto) throws ApiException {
return ResponseResult.success(interviewService.passLetterDetail(dto.getInterviewPlanId())); return ResponseResult.success(interviewService.passLetterDetail(dto.getInterviewPlanId()));
} }

View File

@@ -52,7 +52,7 @@ public class PartnerController {
@PostMapping(path = "/applyBaseInfo") @PostMapping(path = "/applyBaseInfo")
@ApiOperation("提交加盟商基本信息") @ApiOperation("提交加盟商基本信息")
public ResponseResult<String> applyBaseInfo(@RequestBody PartnerUserInfoRequest partnerUserInfoRequest){ public ResponseResult<ApplyBaseInfoVO> applyBaseInfo(@RequestBody PartnerUserInfoRequest partnerUserInfoRequest){
return ResponseResult.success(partnerUserInfoService.updatePartnerUserInfo(partnerUserInfoRequest)); return ResponseResult.success(partnerUserInfoService.updatePartnerUserInfo(partnerUserInfoRequest));
} }