diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java index 1eb9582dd..1d98c27ac 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java @@ -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()); } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyInterviewDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyInterviewDAO.java index c0ebcce7f..686ccc629 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyInterviewDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyInterviewDAO.java @@ -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 lineIds, Integer status){ + //修改面试状态 + interviewMapper.batchUpdateStatusByLineIds(lineIds, status); + //修改线索表子流程状态 + lineInfoMapper.batchUpdateStatusByLineIds(lineIds, status); + + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java index 2d8335042..ac540195c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java @@ -69,7 +69,11 @@ public interface HyPartnerInterviewMapper { * @return */ List getInterviewBaseInfoList(@Param("record") GetInterviewListReq request); - void batchUpdateInterviewStatus(@Param("interviewIds") List interviewIdList, @Param("interviewStatus") Integer interviewStatus); + + List getInterviewBaseInfoListByLineIds(@Param("lineIds") List lineIds); + void batchUpdateInterviewStatus(@Param("interviewIds") List interviewIdList, @Param("status") Integer interviewStatus,@Param("deleted") Integer deleted); + + void batchUpdateStatusByLineIds(@Param("lineIds") List lineIds, @Param("status") Integer interviewStatus); HyPartnerInterviewDO getInterviewInfoByInterviewPlanId(@Param("interviewPlanId") String interviewPlanId); diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java index da1d3bb2d..8b574df73 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java @@ -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 lineIds,@Param("roomStatus")Integer roomStatu); /** * 仅适用于关闭面试房间 @@ -153,4 +152,5 @@ public interface HyPartnerInterviewPlanMapper { * @return */ HyPartnerInterviewPlanDO getInterviewPlanById(String interviewPlanId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java index 666d50413..24314e0ca 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java @@ -215,4 +215,13 @@ public interface HyPartnerLineInfoMapper { * 修改线索状态 */ void updateWorkflowStatus(@Param("lineId") String lineId, @Param("status") String status); + + List getOverTimeReserveLineList(@Param("deadlineEnd") Date deadlineEnd, + @Param("workflowStage") String workflowStage, + @Param("workflowStatus") String workflowStatus); + + List getWaitForOpenInterviewLineList(@Param("startTime") Date startTime, + @Param("endTime") Date endTime); + + void batchUpdateStatusByLineIds(@Param("lineIds") List lineIds, @Param("status")Integer status); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index 46523fb8d..86078fe33 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -363,8 +363,11 @@ UPDATE hy_partner_interview - - status = #{status} + + status = #{status}, + + + deleted = #{deleted}, WHERE id in @@ -389,7 +392,7 @@ + + @@ -435,6 +463,13 @@ FROM hy_partner_interview WHERE interview_plan_id = #{interviewPlanId} + + + UPDATE hy_partner_line_info SET workflow_status = #{status} WHERE id = #{lineId} + + UPDATE hy_partner_line_info + SET workflow_status = #{status} + WHERE id IN + + #{lineId} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml index 384477ea1..e174f3d00 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml @@ -206,6 +206,6 @@ \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java index cfd98e6a0..d4861e884 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PrivateSeaLineDTO.java @@ -69,4 +69,6 @@ public class PrivateSeaLineDTO { @ApiModelProperty("推荐加盟商名称") private String recommendPartnerName; + private Long interviewPlanId; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java index 1692151cc..bf304c86e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java @@ -83,6 +83,8 @@ public class PrivateSeaLineListVo { @ApiModelProperty("推荐加盟商名称") private String recommendPartnerName; + private Long interviewPlanId; + public static List convertList(List list, Map finalDevManagerMap, Map wantShopAreaNameMap){ List 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())); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java b/coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java index 4f5ae6b51..a62df02c9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/job/JobHandler.java @@ -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("面试缺席定时任务开始"); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java index 97d7be449..f8f9fc7fa 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java @@ -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); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index c1c2060e2..1fc22153b 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -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; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java index 369b0f6a4..181944ca6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java @@ -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 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 interviewBaseInfoList = hyPartnerInterviewMapper.getInterviewBaseInfoList(getInterviewListReq); + List overTimeReserveLineList = hyPartnerLineInfoMapper.getOverTimeReserveLineList(new Date(), WorkflowStageEnum.RESERVATION.getCode(), WorkflowStatusEnum.RESERVATION_0.getCode()); + if(CollectionUtils.isEmpty(overTimeReserveLineList)){ + return; + } + List lineIds = overTimeReserveLineList.stream().map(o -> o.getId()).collect(Collectors.toList()); + List 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 waitForOpenInterviewLineList = hyPartnerLineInfoMapper.getWaitForOpenInterviewLineList(startTime, DateUtil.offsetMinute(startTime, 5)); + if(CollectionUtils.isEmpty(waitForOpenInterviewLineList)){ + return; + } + //更新房间状态为开启 + List 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 interviewBaseInfoList = hyPartnerInterviewMapper.getInterviewBaseInfoList(getInterviewListReq); if(CollectionUtils.isEmpty(interviewBaseInfoList)){ @@ -206,17 +220,17 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan * @param rejectPublicReason */ public void handleOverTimeInterview(List interviewBaseInfoList,String rejectPublicReason){ - //1.更新面试信息表中超时未预约的面试信息 + //1.更新面试信息表中超时的面试信息 List 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 interviewPlanIds = interviewBaseInfoList.stream().map(HyPartnerInterviewDO::getInterviewPlanId).distinct().collect(Collectors.toList()); hyPartnerInterviewPlanMapper.batchDeleteInterviewPlans(interviewPlanIds); //3.更新线索表中超时未预约的线路信息 List 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); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java index f59267b10..b568b8edd 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java @@ -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); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java index af59940d4..610301034 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java @@ -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());