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:
pserimal
2023-06-26 13:30:12 +08:00
17 changed files with 184 additions and 47 deletions

View File

@@ -66,7 +66,7 @@ public class CoolDateUtils {
LocalDate today = LocalDate.now();
LocalDate thirdDay = today.plusDays(day);
LocalDateTime thirdDayMidnight = LocalDateTime.of(thirdDay, LocalTime.MIDNIGHT);
LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MIN);
LocalDateTime thirdDay235959 = thirdDayMidnight.with(LocalTime.MAX);
ZonedDateTime zonedDateTime = ZonedDateTime.of(thirdDay235959, ZoneId.systemDefault());
return Date.from(zonedDateTime.toInstant());
}

View File

@@ -7,6 +7,7 @@ import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Repository
public class HyInterviewDAO {
@@ -31,4 +32,18 @@ public class HyInterviewDAO {
lineInfoMapper.updateWorkflowStatus(lineId, status.getCode());
}
/**
* 根据线索id批量修改面试状态和线索表子流程状态
* @param lineIds
* @param status
*/
@Transactional
public void batchUpdateInterviewWorkflowStatus(List<Long> lineIds, Integer status){
//修改面试状态
interviewMapper.batchUpdateStatusByLineIds(lineIds, status);
//修改线索表子流程状态
lineInfoMapper.batchUpdateStatusByLineIds(lineIds, status);
}
}

View File

@@ -69,7 +69,11 @@ public interface HyPartnerInterviewMapper {
* @return
*/
List<HyPartnerInterviewDO> getInterviewBaseInfoList(@Param("record") GetInterviewListReq request);
void batchUpdateInterviewStatus(@Param("interviewIds") List<Long> interviewIdList, @Param("interviewStatus") Integer interviewStatus);
List<HyPartnerInterviewDO> getInterviewBaseInfoListByLineIds(@Param("lineIds") List<Long> lineIds);
void batchUpdateInterviewStatus(@Param("interviewIds") List<Long> interviewIdList, @Param("status") Integer interviewStatus,@Param("deleted") Integer deleted);
void batchUpdateStatusByLineIds(@Param("lineIds") List<Long> lineIds, @Param("status") Integer interviewStatus);
HyPartnerInterviewDO getInterviewInfoByInterviewPlanId(@Param("interviewPlanId") String interviewPlanId);

View File

@@ -119,10 +119,9 @@ public interface HyPartnerInterviewPlanMapper {
/**
* 仅适用于开启面试房间
* @param record
* @param roomStatus
* @param lineIds
*/
void openInterviewRoom(@Param("record") HyPartnerInterviewPlanDO record,@Param("roomStatus")Integer roomStatus);
void openInterviewRoom(@Param("lineIds") List<Long> lineIds,@Param("roomStatus")Integer roomStatu);
/**
* 仅适用于关闭面试房间
@@ -153,4 +152,5 @@ public interface HyPartnerInterviewPlanMapper {
* @return
*/
HyPartnerInterviewPlanDO getInterviewPlanById(String interviewPlanId);
}

View File

@@ -215,4 +215,13 @@ public interface HyPartnerLineInfoMapper {
* 修改线索状态
*/
void updateWorkflowStatus(@Param("lineId") String lineId, @Param("status") String status);
List<HyPartnerLineInfoDO> getOverTimeReserveLineList(@Param("deadlineEnd") Date deadlineEnd,
@Param("workflowStage") String workflowStage,
@Param("workflowStatus") String workflowStatus);
List<HyPartnerLineInfoDO> getWaitForOpenInterviewLineList(@Param("startTime") Date startTime,
@Param("endTime") Date endTime);
void batchUpdateStatusByLineIds(@Param("lineIds") List<Long> lineIds, @Param("status")Integer status);
}

View File

@@ -363,8 +363,11 @@
<update id="batchUpdateInterviewStatus">
UPDATE hy_partner_interview
<set>
<if test="interviewStatus != null and interviewStatus != ''">
status = #{status}
<if test="status != null and status != ''">
status = #{status},
</if>
<if test="deleted != null ">
deleted = #{deleted},
</if>
</set>
WHERE id in
@@ -389,7 +392,7 @@
</select>
<select id="getInterviewBaseInfoList" resultType="com.cool.store.entity.HyPartnerInterviewDO">
select
<include refid="Base_Column_List"/>
*
from hy_partner_interview_plan hpip
left join hy_partner_interview hpi on hpi.interview_plan_id = hpip.id
<where>
@@ -412,6 +415,17 @@
</select>
<select id="getOverTimeReserveInterviewList" resultType="com.cool.store.entity.HyPartnerInterviewDO">
SELECT
<include refid="Base_Column_List"></include>
FROM hy_partner_interview_plan where
partner_line_id in ( select id from hy_partner_line_info
WHERE workflow_flow_stage = #{workflowStage}
AND workflow_flow_status = #{workflowStatus}
AND deadline &lt;= NOW()
AND deleted = 0) and deleted = 0
</select>
<!-- 根据面试计划id获取面试信息 -->
<select id="getInterviewInfoByInterviewPlanId" resultType="com.cool.store.entity.HyPartnerInterviewDO">
select
@@ -428,6 +442,20 @@
SET status = #{status}
WHERE interview_plan_id = #{interviewPlanId}
</update>
<update id="batchUpdateStatusByLineIds">
UPDATE hy_partner_interview
<set>
<if test="status != null and status != ''">
status = #{status}
</if>
</set>
WHERE partner_line_id in
<foreach collection="lineIds" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and deleted = 0
</update>
<!-- 获取面试对应的线索id -->
<select id="getLineId" resultType="java.lang.String">
@@ -435,6 +463,13 @@
FROM hy_partner_interview
WHERE interview_plan_id = #{interviewPlanId}
</select>
<select id="getInterviewBaseInfoListByLineIds" resultType="com.cool.store.entity.HyPartnerInterviewDO">
select <include refid="Base_Column_List"/> from hy_partner_interview where partner_line_id in
<foreach collection="lineIds" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and deleted = 0
</select>
<!-- 获取面试流程状态 -->
<select id="getStatus" resultType="java.lang.String">

View File

@@ -221,18 +221,11 @@
update hy_partner_interview_plan
set room_status = #{roomStatus},update_time = now()
<where>
<if test="record.roomStatus !=null and record.roomStatus!=''">
and room_status = #{record.roomStatus}
</if>
<if test="record.startTime !=null">
and start_time &gt;= #{record.startTime}
</if>
<if test="record.endTime !=null">
and start_time &lt;= #{record.endTime}
</if>
<if test="record.deleted !=null and record.deleted!=''">
and deleted = #{deleted}
</if>
partner_line_id in
<foreach collection="lineIds" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
and deleted = 0
</where>
</update>

View File

@@ -457,12 +457,14 @@
hpuinfo.mobile as partnerUserPhone,
hpuinfo.shop_name as storeName,
hpuinfo.recommend_partner_name as recommendPartnerName,
eu.name as investmentManagerName
eu.name as investmentManagerName,
hpip.id as interviewPlanId
FROM
hy_partner_line_info hpli
LEFT JOIN hy_partner_intent_info hpii ON hpli.id = hpii.partner_line_id
LEFT JOIN hy_partner_user_info hpuinfo ON hpli.partner_id = hpuinfo.partner_id
LEFT JOIN enterprise_user eu ON hpli.investment_manager = eu.user_id
LEFT JOIN hy_partner_interview_plan hpip on hpli.id = hpip.partner_line_id
WHERE line_status in (1,2)
<if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
AND (eu.name like concat('%',#{keyword},'%') or hpuinfo.username like concat('%',#{keyword},'%'))
@@ -573,11 +575,44 @@
WHERE id = #{interviewPlanId}
)
</select>
<select id="getWaitForOpenInterviewLineList" resultType="com.cool.store.entity.HyPartnerLineInfoDO">
SELECT <include refid="Base_Column_List"></include>
FROM hy_partner_line_info hpli
WHERE line_status = 1
AND workflow_stage = 3
AND workflow_status = 2
AND hpli.deleted = 0
AND id IN (
SELECT partner_line_id
FROM hy_partner_interview_plan
WHERE start_time &gt;= #{startTime}
AND start_time &lt;= #{endTime}
AND room_status = 0
AND deleted = 0
)
</select>
<select id="getOverTimeReserveLineList" resultType="com.cool.store.entity.HyPartnerLineInfoDO">
SELECT <include refid="Base_Column_List"></include>
FROM hy_partner_line_info hpli
WHERE line_status = 1
AND workflow_stage = #{workflowStage}
AND workflow_status = #{workflowStatus}
AND hpli.deleted = 0
AND deadline &lt;= #{deadlineEnd}
</select>
<update id="updateWorkflowStatus">
UPDATE hy_partner_line_info
SET workflow_status = #{status}
WHERE id = #{lineId}
</update>
<update id="batchUpdateStatusByLineIds">
UPDATE hy_partner_line_info
SET workflow_status = #{status}
WHERE id IN
<foreach collection="lineIds" item="lineId" open="(" close=")" separator=",">
#{lineId}
</foreach>
</update>
</mapper>

View File

@@ -206,6 +206,6 @@
</update>
<select id="getSubRegionIds" resultType="string">
select region_id from region where deleted = 0 and <foreach collection="regionPathList" item="regionPath" open="(" close=")" separator="or"> region_path like (#{regionPath, '%'})</foreach>
select region_id from region where deleted = 0 and <foreach collection="regionPathList" item="regionPath" open="(" close=")" separator="or"> region_path like concat(#{regionPath, '%'})</foreach>
</select>
</mapper>

View File

@@ -69,4 +69,6 @@ public class PrivateSeaLineDTO {
@ApiModelProperty("推荐加盟商名称")
private String recommendPartnerName;
private Long interviewPlanId;
}

View File

@@ -83,6 +83,8 @@ public class PrivateSeaLineListVo {
@ApiModelProperty("推荐加盟商名称")
private String recommendPartnerName;
private Long interviewPlanId;
public static List<PrivateSeaLineListVo> convertList(List<PrivateSeaLineDTO> list, Map<String, String> finalDevManagerMap, Map<String, String> wantShopAreaNameMap){
List<PrivateSeaLineListVo> resultList = new ArrayList<>();
@@ -111,6 +113,7 @@ public class PrivateSeaLineListVo {
privateSeaLineListVo.setInvestmentManager(x.getInvestmentManager());
privateSeaLineListVo.setRecommendPartnerName(x.getRecommendPartnerName());
privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage());
privateSeaLineListVo.setInterviewPlanId(x.getInterviewPlanId());
privateSeaLineListVo.setWantShopArea(x.getWantShopArea());
privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage());
privateSeaLineListVo.setDevelopmentManagerName(finalDevManagerMap.get(x.getDevelopmentManager()));

View File

@@ -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("面试缺席定时任务开始");

View File

@@ -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);

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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);

View File

@@ -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());