重新分配逻辑
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -20,13 +20,12 @@
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
<result column="close_time" jdbcType="TIMESTAMP" property="closeTime" />
|
||||
<result column="close_user_id" jdbcType="VARCHAR" property="closeUserId" />
|
||||
<result column="user_channel_id" jdbcType="BIGINT" property="userChannelId" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
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
|
||||
</sql>
|
||||
|
||||
<select id="selectByPrimaryKeySelective" resultMap="BaseResultMap">
|
||||
@@ -45,8 +44,7 @@
|
||||
workflow_stage,
|
||||
workflow_status,
|
||||
line_status,
|
||||
investment_manager,
|
||||
user_channel_id
|
||||
investment_manager
|
||||
)
|
||||
values
|
||||
<foreach collection="recordList" item="record" separator=",">
|
||||
@@ -54,8 +52,7 @@
|
||||
#{record.workflowStage},
|
||||
#{record.workflowStatus},
|
||||
#{record.lineStatus},
|
||||
#{record.investmentManager},
|
||||
#{record.userChannelId})
|
||||
#{record.investmentManager}
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
@@ -127,9 +124,6 @@
|
||||
<if test="record.closeUserId != null">
|
||||
close_user_id,
|
||||
</if>
|
||||
<if test="record.userChannelId != null">
|
||||
user_channel_id,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="record.partnerId != null">
|
||||
@@ -183,9 +177,6 @@
|
||||
<if test="record.closeUserId != null">
|
||||
#{record.closeUserId},
|
||||
</if>
|
||||
<if test="record.userChannelId != null">
|
||||
#{record.userChannelId},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
<update id="updateByPrimaryKeySelective">
|
||||
@@ -248,9 +239,6 @@
|
||||
<if test="record.removeBlackReason != null">
|
||||
remove_black_reason = #{record.removeBlackReason},
|
||||
</if>
|
||||
<if test="record.userChannelId != null">
|
||||
user_channel_id = #{record.userChannelId},
|
||||
</if>
|
||||
</set>
|
||||
where id = #{record.id}
|
||||
</update>
|
||||
@@ -273,8 +261,7 @@
|
||||
close_time = #{record.closeTime},
|
||||
close_user_id = #{record.closeUserId},
|
||||
join_black_reason = #{record.joinBlackReason},
|
||||
remove_black_reason = #{record.removeBlackReason},
|
||||
user_channel_id = #{record.userChannelId}
|
||||
remove_black_reason = #{record.removeBlackReason}
|
||||
where id = #{record.id}
|
||||
</update>
|
||||
|
||||
@@ -346,7 +333,7 @@
|
||||
left join hy_partner_base_info b on a.id = b.partner_line_id
|
||||
LEFT JOIN hy_partner_intent_info hpii ON a.id = hpii.partner_line_id
|
||||
LEFT JOIN hy_partner_user_info hpuinfo ON a.partner_id = hpuinfo.partner_id
|
||||
LEFT JOIN hy_partner_user_channel hpuc ON a.user_channel_id = hpuc.channel_id
|
||||
LEFT JOIN hy_partner_user_channel hpuc ON hpuinfo.user_channel_id = hpuc.channel_id
|
||||
LEFT JOIN hy_phone_location hpl ON hpl.phone_number = hpuinfo.mobile
|
||||
<where>
|
||||
<if test="lineId!=null">
|
||||
@@ -613,8 +600,9 @@
|
||||
<select id="getLineFollowHistoryList" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"></include>
|
||||
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
|
||||
</select>
|
||||
|
||||
<!-- 根据面试计划 id 查询战区 id -->
|
||||
|
||||
@@ -19,10 +19,12 @@
|
||||
<result column="recommend_partner_id" jdbcType="VARCHAR" property="recommendPartnerId" />
|
||||
<result column="recommend_partner_name" jdbcType="VARCHAR" property="recommendPartnerName" />
|
||||
<result column="recommend_partner_mobile" jdbcType="VARCHAR" property="recommendPartnerMobile" />
|
||||
<result column="user_channel_id" jdbcType="BIGINT" property="userChannelId" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
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
|
||||
</sql>
|
||||
<select id="selectByPartnerId" resultMap="BaseResultMap" >
|
||||
select
|
||||
@@ -53,13 +55,13 @@
|
||||
</select>
|
||||
<select id="selectByHourDate" resultType="com.cool.store.entity.SyncEcCustomerDO" >
|
||||
SELECT a.id as id, a.username as customername,a.mobile as customermobile,d.`name` as followname,d.mobile as followmobile ,c.channel_id as channelId FROM hy_partner_user_info a LEFT join hy_partner_line_info b on
|
||||
a.partner_id=b.partner_id LEFT join hy_partner_user_channel c on b.user_channel_id=c.channel_id left join enterprise_user d on b.investment_manager=d.user_id
|
||||
a.partner_id=b.partner_id LEFT join hy_partner_user_channel c on a.user_channel_id=c.channel_id left join enterprise_user d on b.investment_manager=d.user_id
|
||||
WHERE ( a.create_time BETWEEN #{selectTime} and #{now} or
|
||||
a.update_time BETWEEN #{selectTime} and #{now} ) order by a.id Limit #{limit1},#{limit2}
|
||||
</select>
|
||||
<select id="selectByHourDateCount" resultType="java.lang.Integer">
|
||||
SELECT count(*) FROM hy_partner_user_info a LEFT join hy_partner_line_info b on
|
||||
a.partner_id=b.partner_id LEFT join hy_partner_user_channel c on b.user_channel_id=c.channel_id left join enterprise_user d on b.investment_manager=d.user_id
|
||||
a.partner_id=b.partner_id LEFT join hy_partner_user_channel c on a.user_channel_id=c.channel_id left join enterprise_user d on b.investment_manager=d.user_id
|
||||
WHERE (a.create_time BETWEEN #{selectTime} and #{now} or
|
||||
a.update_time BETWEEN #{selectTime} and #{now} )
|
||||
</select>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -80,6 +80,4 @@ public class HyPartnerLineInfoDO implements Serializable {
|
||||
@ApiModelProperty("移除黑名单原因")
|
||||
private String removeBlackReason;
|
||||
|
||||
@ApiModelProperty("hy_partner_user_channel.id")
|
||||
private Integer userChannelId;
|
||||
}
|
||||
@@ -70,4 +70,6 @@ public class HyPartnerUserInfoDO implements Serializable {
|
||||
|
||||
@ApiModelProperty("推荐加盟商手机号")
|
||||
private String recommendPartnerMobile;
|
||||
|
||||
private Integer userChannelId;
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
@@ -275,7 +275,6 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
|
||||
oldLineInfo.setCloseUserId(null);
|
||||
oldLineInfo.setJoinBlackReason(null);
|
||||
oldLineInfo.setRemoveBlackReason(null);
|
||||
oldLineInfo.setUserChannelId(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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<HyPartnerLineInfoDO> 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<HyPartnerLineInfoDO> 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());
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user