diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java new file mode 100644 index 000000000..4db251d24 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/UserChannelEnum.java @@ -0,0 +1,34 @@ +package com.cool.store.enums; + +/** + * @Author suzhuhong + * @Date 2023/7/18 17:01 + * @Version 1.0 + */ +public enum UserChannelEnum { + + EXHIBITION("exhibition", 45000,"北京展会"), + RECOMMENDED("recommended", 45100,"李德龙推荐"); + + private final String code; + private final Integer channelId; + private final String desc; + + UserChannelEnum(String code, Integer channelId, String desc) { + this.code = code; + this.channelId = channelId; + this.desc = desc; + } + + public String getCode() { + return code; + } + + public Integer getChannelId() { + return channelId; + } + + public String getDesc() { + return desc; + } +} diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 4ba9db126..0aea443ad 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -20,13 +20,12 @@ - id, partner_id, workflow_stage, workflow_status, line_status, investment_manager, development_director, development_manager, deadline, pass_reason, reject_public_reason, reject_real_reason, certify_file, deleted, create_time, update_time, close_time, - close_user_id,user_channel_id + close_user_id SELECT FROM hy_partner_line_info - where (deleted = 1 or (deleted=0 and line_status in (0,3) and close_time is not null)) + where (deleted = 1 or (deleted=0 and line_status in (0,3) and close_time is not null and investment_manager is not null)) and partner_id = #{partner_id} + order by id desc diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml index bf8536c1c..b9702e175 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml @@ -19,10 +19,12 @@ + id, partner_id, mobile, username, live_area, want_shop_area, accept_adjust_type, - invite_code, is_write_partner_know, create_time, update_time, shop_code, shop_name, shop_id, recommend_partner_id, recommend_partner_name, recommend_partner_mobile + invite_code, is_write_partner_know, create_time, update_time, shop_code, shop_name, shop_id, + recommend_partner_id, recommend_partner_name, recommend_partner_mobile,user_channel_id diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java index 94932f671..aac2d2937 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/wx/MiniProgramLoginDTO.java @@ -1,5 +1,6 @@ package com.cool.store.dto.wx; +import com.cool.store.enums.UserChannelEnum; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -24,4 +25,6 @@ public class MiniProgramLoginDTO { @NotBlank(message = "ivStr不能为空") private String ivStr; + + private UserChannelEnum userChannelEnum; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLineInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLineInfoDO.java index beda39416..e6ff6ce8a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLineInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLineInfoDO.java @@ -80,6 +80,4 @@ public class HyPartnerLineInfoDO implements Serializable { @ApiModelProperty("移除黑名单原因") private String removeBlackReason; - @ApiModelProperty("hy_partner_user_channel.id") - private Integer userChannelId; } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java index c1f77aeae..b770bc746 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java @@ -70,4 +70,6 @@ public class HyPartnerUserInfoDO implements Serializable { @ApiModelProperty("推荐加盟商手机号") private String recommendPartnerMobile; + + private Integer userChannelId; } \ No newline at end of file diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java index 730d50eaa..d8c9212d2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java @@ -140,7 +140,7 @@ public class EcSyncServiceImpl implements EcSyncService { } resultLine.setInvestmentManager(userId); } - resultLine.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()).setUserChannelId(Convert.toInt(channelId)) + resultLine.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()) .setLineStatus(StringUtil.isEmpty(customerInfoItem.getFollowUserName()) ? LineStatusEnum.PUBLIC_SEAS.getCode() : LineStatusEnum.PRIVATE_SEAS.getCode()); HyPartnerBaseInfoDO resultBase = new HyPartnerBaseInfoDO(); 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 ca44812f5..69313b7fb 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 @@ -275,7 +275,6 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { oldLineInfo.setCloseUserId(null); oldLineInfo.setJoinBlackReason(null); oldLineInfo.setRemoveBlackReason(null); - oldLineInfo.setUserChannelId(null); } @Override diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java index 816466d2d..a733b4238 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java @@ -198,7 +198,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); hyPartnerLineInfoDO.setLineStatus(1); - hyPartnerLineInfoDO.setUserChannelId(x.getUserChannelId()); list.add(hyPartnerLineInfoDO); }); hyPartnerLineInfoDAO.batchInsert(list); @@ -307,7 +306,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { newHyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); newHyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); newHyPartnerLineInfoDO.setLineStatus(status); - newHyPartnerLineInfoDO.setUserChannelId(hyPartnerLineInfo.getUserChannelId()); hyPartnerLineInfoDAO.insertSelective(newHyPartnerLineInfoDO); HyPartnerBaseInfoDO oldHyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerLineId(lineId); @@ -555,7 +553,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { @Override public Boolean assignFollowUser(String partnerId, String wantShopArea, Integer acceptAdjustType) { log.info("assignFollowUser partnerId:{},wantShopArea:{},acceptAdjustType:{}",partnerId,wantShopArea,acceptAdjustType); - List lineFollowHistoryList = hyPartnerLineInfoDAO.getLineFollowHistoryList(partnerId); //当前加盟商线索 HyPartnerLineInfoDO HyPartnerLineInfo = hyPartnerLineInfoDAO.getByPartnerId(partnerId); //如果意向区域没有绑定战区 不分配招商经理 @@ -578,9 +575,9 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { return Boolean.FALSE; } - //如果是私海线索 不需要重新分配招商经理 或者跟进次数大于等于1 - if ((HyPartnerLineInfo != null && HyPartnerLineInfo.getLineStatus()==1) || CollectionUtils.isNotEmpty(lineFollowHistoryList)){ - log.info("如果是私海线索 不需要重新分配招商经理 或者跟进次数大于等于1 lineStatus:{},lineFollowHistoryList:{}",HyPartnerLineInfo.getLineStatus(),lineFollowHistoryList.size()); + //如果是私海线索 不需要重新分配招商经理 + if ((HyPartnerLineInfo != null && HyPartnerLineInfo.getLineStatus()==1)){ + log.info("如果是私海线索 不需要重新分配招商经理 或者跟进次数大于等于1 lineStatus:{}",HyPartnerLineInfo.getLineStatus()); return Boolean.FALSE; } @@ -642,6 +639,11 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { public String getAssignFollowUser(String partnerId,String type) { //查询意向区域 HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + List lineFollowHistoryList = hyPartnerLineInfoDAO.getLineFollowHistoryList(partnerId); + //如果跟进次数大于1 直接使用上一次的招商经理 + if (CollectionUtils.isNotEmpty(lineFollowHistoryList)){ + return lineFollowHistoryList.get(0).getInvestmentManager(); + } //意向区域 String wantShopArea = hyPartnerUserInfoDO.getWantShopArea(); //查询意向区域绑定的组织架构 没有绑定战区 分配空 @@ -723,7 +725,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId()); // 生成一条新线索 HyPartnerLineInfoDO newLineInfoDO = this.generateDefaultLineInfo(hyPartnerLineInfoDO.getPartnerId(), hyPartnerUserInfoDO.getWantShopArea(), hyPartnerUserInfoDO.getAcceptAdjustType()); - newLineInfoDO.setUserChannelId(hyPartnerLineInfoDO.getUserChannelId()); // 生成一条意向基本信息 HyPartnerBaseInfoDO oldBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(hyPartnerUserInfoDO.getPartnerId(), lineId); hyPartnerBaseInfoService.generateBaseInfo(hyPartnerUserInfoDO, newLineInfoDO.getId(), oldBaseInfoDO.getUserPortrait()); 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 042839a6b..bf0c1d5e0 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 @@ -13,6 +13,7 @@ import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.entity.HyPartnerUserPlatformBindDO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.UserChannelEnum; import com.cool.store.enums.UserPlatformTypeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.http.WechatRest; @@ -108,6 +109,8 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { // hyPartnerUserInfoDO.setUsername(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); hyPartnerUserInfoDO.setPartnerId(UUIDUtils.get32UUID()); hyPartnerUserInfoDO.setIsWritePartnerKnow(0); + Integer channelId = param.getUserChannelEnum() != null ? param.getUserChannelEnum().getChannelId() : null; + hyPartnerUserInfoDO.setUserChannelId(channelId); hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO); } hyPartnerUserPlatformBindDO = new HyPartnerUserPlatformBindDO();