Merge remote-tracking branch 'origin/dev/feat/partner1.1_20230727' into dev/feat/partner1.1_20230727

This commit is contained in:
俞扬
2023-07-19 14:13:41 +08:00
10 changed files with 63 additions and 33 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -80,6 +80,4 @@ public class HyPartnerLineInfoDO implements Serializable {
@ApiModelProperty("移除黑名单原因")
private String removeBlackReason;
@ApiModelProperty("hy_partner_user_channel.id")
private Integer userChannelId;
}

View File

@@ -70,4 +70,6 @@ public class HyPartnerUserInfoDO implements Serializable {
@ApiModelProperty("推荐加盟商手机号")
private String recommendPartnerMobile;
private Integer userChannelId;
}

View File

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

View File

@@ -275,7 +275,6 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
oldLineInfo.setCloseUserId(null);
oldLineInfo.setJoinBlackReason(null);
oldLineInfo.setRemoveBlackReason(null);
oldLineInfo.setUserChannelId(null);
}
@Override

View File

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

View File

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