Merge remote-tracking branch 'hsayi/dev/feat/partner1.5.2_20231121' into dev/feat/partner1.5.2_20231121

This commit is contained in:
苏竹红
2023-11-13 15:11:23 +08:00
21 changed files with 677 additions and 178 deletions

View File

@@ -0,0 +1,23 @@
package com.cool.store.enums;
public enum PageTurnTypeEnum {
PREVIOUS("previous"),
NEXT("next");
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
private String text;
PageTurnTypeEnum(String text) {
this.text = text;
}
}

View File

@@ -5,6 +5,7 @@ import com.cool.store.constants.CommonConstants;
import com.cool.store.dto.partner.*;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.mapper.HyPartnerLineInfoMapper;
import com.cool.store.vo.LinePageInfoVo;
import com.google.common.collect.Lists;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
@@ -137,10 +138,10 @@ public class HyPartnerLineInfoDAO {
String intentAreaName, Integer acceptAdjustType, String storeKeyword, String storeKeywordType, List<String> userIdList,
List<String> developmentManagerList,List<Long> userPortraitIdList,List<Long> userChannelIdList, String updateStartTime, String updateEndTime
,String partnerName,String partnerMobile,String investmentManagerId,String userPortraitQueryType
,String intentAreaQueryType,String lineStartTime,String lineEndTime,String userChannelQueryType){
,String intentAreaQueryType,String lineStartTime,String lineEndTime,String userChannelQueryType,String sortField,String sortOrder){
return hyPartnerLineInfoMapper.getPrivateSeaLineList( keyword, keywordType, workflowStage, workflowStatus, deadlineStart, deadlineEnd,
intentAreaName, acceptAdjustType, storeKeyword, storeKeywordType, userIdList,developmentManagerList,userPortraitIdList,userChannelIdList, updateStartTime, updateEndTime
,partnerName,partnerMobile,investmentManagerId,userPortraitQueryType,intentAreaQueryType,lineStartTime,lineEndTime,userChannelQueryType);
,partnerName,partnerMobile,investmentManagerId,userPortraitQueryType,intentAreaQueryType,lineStartTime,lineEndTime,userChannelQueryType,sortField,sortOrder);
}
@@ -211,5 +212,18 @@ public class HyPartnerLineInfoDAO {
}
return hyPartnerLineInfoMapper.getHyPartnerLineInfoList(lineIds,investmentManager);
}
public List<LinePageInfoVo> getPublicSeaPageInfoNext(Long lineId, String userNameKeyword, String phoneKeyword, String intentAreaName, Integer acceptAdjustType, String updateStartTime, String updateEndTime, List<String> userIdList, String createStartTime, String createEndTime,String pageTurn,Integer limit1,Integer limit2){
return hyPartnerLineInfoMapper.getPublicSeaPageInfoNext(lineId,userNameKeyword,phoneKeyword,intentAreaName,acceptAdjustType,updateStartTime,updateEndTime,userIdList, createStartTime, createEndTime,pageTurn,limit1,limit2);
}
public List<LinePageInfoVo> getPrivateSeaPageInfoNext(Long lineId,String keyword, String keywordType, String workflowStage, String workflowStatus, String deadlineStart, String deadlineEnd,
String intentAreaName, Integer acceptAdjustType, String storeKeyword, String storeKeywordType, List<String> userIdList,
List<String> developmentManagerList,List<Long> userPortraitIdList,List<Long> userChannelIdList, String updateStartTime, String updateEndTime
,String partnerName,String partnerMobile,String investmentManagerId,String userPortraitQueryType
,String intentAreaQueryType,String lineStartTime,String lineEndTime,String userChannelQueryType,String sortField,String sortOrder,Integer limit1,Integer limit2){
return hyPartnerLineInfoMapper.getPrivateSeaPageInfoNext(lineId,keyword, keywordType, workflowStage, workflowStatus, deadlineStart, deadlineEnd,
intentAreaName, acceptAdjustType, storeKeyword, storeKeywordType, userIdList,developmentManagerList,userPortraitIdList,userChannelIdList, updateStartTime, updateEndTime
,partnerName,partnerMobile,investmentManagerId,userPortraitQueryType,intentAreaQueryType,lineStartTime,lineEndTime,userChannelQueryType,sortField,sortOrder,limit1,limit2);
}
}

View File

@@ -5,6 +5,7 @@ import com.cool.store.dto.partner.PartnerBlackListDTO;
import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO;
import com.cool.store.dto.partner.StageCountDTO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.vo.LinePageInfoVo;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
@@ -189,7 +190,9 @@ public interface HyPartnerLineInfoMapper {
@Param("intentAreaQueryType") String intentAreaQueryType,
@Param("lineStartTime") String lineStartTime,
@Param("lineEndTime") String lineEndTime,
@Param("userChannelQueryType") String userChannelQueryType);
@Param("userChannelQueryType") String userChannelQueryType,
@Param("sortField") String sortField,
@Param("sortOrder") String sortOrder);
/**
@@ -262,4 +265,54 @@ public interface HyPartnerLineInfoMapper {
* @return 线索转让次数
*/
Integer getTransferTimes(@Param("lineId") Long partnerLineId);
/**
*
* @return
*/
List<LinePageInfoVo> getPrivateSeaPageInfoNext(@Param("lineId") Long lineId,@Param("keyword") String keyword,
@Param("keywordType") String keywordType,
@Param("workflowStage") String workflowStage,
@Param("workflowStatus") String workflowStatus,
@Param("deadlineStart") String deadlineStart,
@Param("deadlineEnd") String deadlineEnd,
@Param("intentAreaName") String intentAreaName,
@Param("acceptAdjustType") Integer acceptAdjustType,
@Param("storeKeyword") String storeKeyword,
@Param("storeKeywordType") String storeKeywordType,
@Param("userIdList") List<String> userIdList,
@Param("developmentManagerList") List<String> developmentManagerList,
@Param("userPortraitIdList") List<Long> userPortraitIdList,
@Param("userChannelIdList") List<Long> userChannelIdList,
@Param("updateStartTime") String updateStartTime,
@Param("updateEndTime") String updateEndTime,
@Param("partnerName") String partnerName,
@Param("partnerMobile") String partnerMobile,
@Param("investmentManagerId") String investmentManagerId,
@Param("userPortraitQueryType") String userPortraitQueryType,
@Param("intentAreaQueryType") String intentAreaQueryType,
@Param("lineStartTime") String lineStartTime,
@Param("lineEndTime") String lineEndTime,
@Param("userChannelQueryType") String userChannelQueryType,
@Param("sortField") String sortField,
@Param("sortOrder") String sortOrder,
@Param("limit1") Integer limit1,
@Param("limit2") Integer limit2
);
List<LinePageInfoVo> getPublicSeaPageInfoNext(@Param("lineId") Long lineId,@Param("userNameKeyword") String userNameKeyword,
@Param("phoneKeyword") String phoneKeyword,
@Param("intentAreaName") String intentAreaName,
@Param("acceptAdjustType") Integer acceptAdjustType,
@Param("updateStartTime") String updateStartTime,
@Param("updateEndTime") String updateEndTime,
@Param("userIdList") List<String> userIdList,
@Param("createStartTime") String createStartTime,
@Param("createEndTime") String createEndTime,
@Param("pageTurn") String pageTurn,
@Param("limit1") Integer limit1,
@Param("limit2") Integer limit2
);
}

View File

@@ -13,6 +13,7 @@
<result column="max_budget" jdbcType="VARCHAR" property="maxBudget" />
<result column="money_source" jdbcType="VARCHAR" property="moneySource" />
<result column="money_prove" jdbcType="VARCHAR" property="moneyProve" />
<result column="credit_prove" jdbcType="VARCHAR" property="creditProve" />
<result column="education" jdbcType="VARCHAR" property="education" />
<result column="work_year" jdbcType="VARCHAR" property="workYear" />
<result column="is_have_work_exp" jdbcType="TINYINT" property="isHaveWorkExp" />
@@ -35,7 +36,7 @@
<sql id="Base_Column_List">
id, partner_id, partner_line_id, live_area, want_shop_area, accept_adjust_type, is_have_want_shop,
want_shop_info, max_budget, money_source, money_prove, education, work_year, is_have_work_exp,
work_exp, is_consumer, other_band, brand_strength, need_improve, strength, weakness,
work_exp, is_consumer, other_band, brand_strength, need_improve, strength, weakness,credit_prove,
create_time, update_time,detailed_address,email ,acquaintance_flag,acquaintance_name,acquaintance_relationship_type,other_relationship_type
</sql>
<select id="selectByPrimaryKeySelective" resultMap="BaseResultMap">
@@ -79,6 +80,9 @@
<if test="record.moneyProve != null">
money_prove,
</if>
<if test="record.creditProve != null">
credit_prove,
</if>
<if test="record.education != null">
education,
</if>
@@ -165,6 +169,9 @@
<if test="record.moneyProve != null">
#{record.moneyProve},
</if>
<if test="record.creditProve != null">
#{record.creditProve},
</if>
<if test="record.education != null">
#{record.education},
</if>
@@ -254,6 +261,9 @@
<if test="record.moneyProve != null">
money_prove = #{record.moneyProve},
</if>
<if test="record.creditProve != null">
credit_prove = #{record.creditProve},
</if>
<if test="record.education != null">
education = #{record.education},
</if>
@@ -361,10 +371,10 @@
and a.workflow_status = #{workflowStatus}
</if>
<if test="workflowStatus!=null and workflowStatus=='1'">
order by b.update_time
order by a.create_time
</if>
<if test="workflowStatus!=null and workflowStatus=='0'">
order by a.create_time
order by a.update_time
</if>
</select>
@@ -428,6 +438,9 @@
<if test="record.moneyProve != null">
money_prove = #{record.moneyProve},
</if>
<if test="record.creditProve != null">
credit_prove = #{record.creditProve},
</if>
<if test="record.education != null">
education = #{record.education},
</if>

View File

@@ -335,6 +335,24 @@
<if test="userId!=null and userId!=''">
and hpli.investment_manager = #{userId}
</if>
<if test="workflowStage!=null and workflowStage!='' and workflowStage=='4' and workflowStage!=null and workflowStage!='' and workflowStage=='1'">
order by hpli.create_time
</if>
<if test="workflowStage!=null and workflowStage!='' and workflowStage=='5' and workflowStage!=null and workflowStage!='' and workflowStage=='1'">
order by hpli.update_time
</if>
<if test="workflowStage!=null and workflowStage!='' and workflowStage=='1' and workflowStage!=null and workflowStage!='' and workflowStage=='2'">
order by hpli.create_time
</if>
<if test="workflowStage!=null and workflowStage!='' and workflowStage=='0' and workflowStage!=null and workflowStage!='' and workflowStage=='2'">
order by hpli.update_time
</if>
<if test="workflowStage!=null and workflowStage!='' and workflowStage=='4' and workflowStage!=null and workflowStage!='' and workflowStage=='3'">
order by hpli.create_time
</if>
<if test="workflowStage!=null and workflowStage!='' and workflowStage=='5' and workflowStage!=null and workflowStage!='' and workflowStage=='3'">
order by hpli.update_time
</if>
</select>
<select id="getInterviewList" resultType="com.cool.store.vo.interview.InterviewVO">

View File

@@ -354,6 +354,7 @@
hpuinfo.accept_adjust_type as acceptAdjustType,
hpuinfo.mobile as partnerUserPhone,
hpuinfo.username as partnerUserName,
hpuinfo.ec_want_shop_area as ecWantShopArea,
hpuc.channel_name as channelName,
hpii.education as education,
hpii.detailed_address as detailedAddress,
@@ -534,7 +535,8 @@
hpuinfo.recommend_partner_mobile as recommendPartnerMobile,
bi.user_portrait as userPortrait,
eu.name as investmentManagerName,
eu.mobile as investmentManagerMobile
eu.mobile as investmentManagerMobile,
hptil.create_time AS allotTime
FROM
hy_partner_line_info hpli
LEFT JOIN hy_partner_intent_info hpii ON hpli.id = hpii.partner_line_id
@@ -542,6 +544,8 @@
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_open_area_info hoai ON hoai.id = hpuinfo.want_shop_area
LEFT JOIN ( SELECT max(create_time) as create_time, partner_id,id FROM hy_partner_task_info_log WHERE operate_type
IN ( 'allocation_investment_manager', 'transfer_investment_manager','ec_sync_add_line' ) and deleted=0 GROUP BY partner_id ) hptil ON hpli.partner_id = hptil.partner_id
WHERE hpli.line_status in (1,2)
AND ( hpli.deleted IS NULL OR hpli.deleted = 0 )
<if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
@@ -643,7 +647,33 @@
#{developmentManager}
</foreach>
</if>
order by hpli.update_time desc
<if test="sortField!=null and sortField != '' and sortField=='updateTime' ">
order by hpli.update_time
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' ">
desc
</if>
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='ascend' ">
asc
</if>
</if>
<if test="sortField!=null and sortField != '' and sortField=='deadline' ">
order by hpli.deadline
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' ">
desc
</if>
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='ascend' ">
asc
</if>
</if>
<if test="sortField!=null and sortField != '' and sortField=='allotTime' ">
order by hptil.create_time
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' ">
desc
</if>
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='ascend' ">
asc
</if>
</if>
</select>
@@ -787,5 +817,184 @@
and partner_line_id = #{lineId}
-- and deleted = 0
</select>
<select id="getPrivateSeaPageInfoNext" resultType="com.cool.store.vo.LinePageInfoVo">
SELECT
hpli.id as lineId,
hpli.partner_id as partnerId
FROM
hy_partner_line_info hpli
LEFT JOIN hy_partner_intent_info hpii ON hpli.id = hpii.partner_line_id
left join hy_partner_base_info bi on hpli.id = bi.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_open_area_info hoai ON hoai.id = hpuinfo.want_shop_area
LEFT JOIN ( SELECT max(create_time) as create_time, partner_id,id FROM hy_partner_task_info_log WHERE operate_type
IN ( 'allocation_investment_manager', 'transfer_investment_manager','ec_sync_add_line' ) and deleted=0 GROUP BY partner_id ) hptil ON hpli.partner_id = hptil.partner_id
WHERE hpli.line_status in (1,2)
AND ( hpli.deleted IS NULL OR hpli.deleted = 0 )
<if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
AND (eu.name like concat('%',#{keyword},'%') or hpuinfo.username like concat('%',#{keyword},'%'))
</if>
<if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='mobile'">
AND ( eu.mobile like concat('%',#{keyword},'%') or hpuinfo.mobile like concat('%',#{keyword},'%'))
</if>
<if test="workflowStage!=null and workflowStage!=''">
AND hpli.workflow_stage = #{workflowStage}
</if>
<if test="workflowStatus!=null and workflowStatus!=''">
AND hpli.workflow_status = #{workflowStatus}
</if>
<if test="deadlineStart!=null and deadlineEnd!=null">
AND hpli.deadline BETWEEN #{deadlineStart} and #{deadlineEnd}
</if>
<if test="updateStartTime!=null and updateEndTime!=null">
AND hpli.update_time BETWEEN #{updateStartTime} and #{updateEndTime}
</if>
<if test="lineStartTime != null and lineEndTime != null">
AND hpli.create_time BETWEEN #{lineStartTime} and #{lineEndTime}
</if>
<if test="intentAreaName!=null and intentAreaName!='' and intentAreaQueryType!=null and intentAreaQueryType == 'contains'">
and hoai.area_path like concat('%/',#{intentAreaName},'/%')
</if>
<if test="intentAreaName!=null and intentAreaName!='' and intentAreaQueryType!=null and intentAreaQueryType == 'notContains'">
and hoai.area_path not like concat('%/',#{intentAreaName},'/%')
</if>
<if test="intentAreaQueryType !=null and intentAreaQueryType == 'blank'">
AND hpuinfo.want_shop_area is null
</if>
<if test="acceptAdjustType!=null">
AND hpuinfo.accept_adjust_type = #{acceptAdjustType}
</if>
<if test="partnerName !=null and partnerName!=''">
AND hpuinfo.username like concat('%',#{partnerName},'%')
</if>
<if test="partnerMobile !=null and partnerMobile!=''">
AND hpuinfo.mobile like concat('%',#{partnerMobile},'%')
</if>
<if test="investmentManagerId !=null and investmentManagerId!=''">
AND hpli.investment_manager = #{investmentManagerId}
</if>
<if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='storeCode'">
AND hpuinfo.shop_code like concat('%',#{storeKeyword},'%')
</if>
<if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='storeName'">
AND hpuinfo.shop_name like concat('%',#{storeKeyword},'%')
</if>
<if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='partnerName'">
AND hpuinfo.recommend_partner_name like concat('%',#{storeKeyword},'%')
</if>
<if test="storeKeyword!=null and storeKeyword!='' and storeKeywordType!=null and storeKeywordType=='partnerMobile'">
AND hpuinfo.recommend_partner_mobile like concat('%',#{storeKeyword},'%')
</if>
<if test="userIdList!=null and userIdList.size>0 and developmentManagerList!=null and developmentManagerList.size==0">
<foreach collection="userIdList" item="userId" open="and hpli.investment_manager in (" close=")" separator=",">
#{userId}
</foreach>
</if>
<if test="userPortraitIdList!=null and userPortraitIdList.size>0 and userPortraitQueryType!=null and userPortraitQueryType=='contains'">
<foreach collection="userPortraitIdList" separator="or" open="and (" close=")" item="userPortraitId">
bi.user_portrait like concat("%,", #{userPortraitId}, ",%")
</foreach>
</if>
<if test="userPortraitIdList!=null and userPortraitIdList.size>0 and userPortraitQueryType!=null and userPortraitQueryType=='notContains'">
<foreach collection="userPortraitIdList" separator="or" open="and (" close=")" item="userPortraitId">
bi.user_portrait not like concat("%,", #{userPortraitId}, ",%")
</foreach>
</if>
<if test="userPortraitQueryType!=null and userPortraitQueryType=='blank'">
AND bi.user_portrait is null
</if>
<if test="userChannelIdList!=null and userChannelIdList.size>0 and userChannelQueryType!=null and userChannelQueryType == 'contains' ">
<foreach collection="userChannelIdList" open="and hpuinfo.user_channel_id in (" close=")" separator="," item="userChannelId">
#{userChannelId}
</foreach>
</if>
<if test="userChannelIdList!=null and userChannelIdList.size>0 and userChannelQueryType!=null and userChannelQueryType == 'notContains' ">
<foreach collection="userChannelIdList" open="and hpuinfo.user_channel_id not in (" close=")" separator="," item="userChannelId">
#{userChannelId}
</foreach>
</if>
<if test="userChannelQueryType!=null and userChannelQueryType == 'blank' ">
AND hpuinfo.user_channel_id is null
</if>
<if test="userIdList!=null and userIdList.size==0 and developmentManagerList!=null and developmentManagerList.size>0">
<foreach collection="developmentManagerList" item="developmentManager" open="and hpli.development_manager in (" close=")" separator=",">
#{developmentManager}
</foreach>
</if>
<if test="userIdList!=null and userIdList.size>0 and developmentManagerList!=null and developmentManagerList.size>0">
<foreach collection="userIdList" item="userId" open="and (hpli.investment_manager in (" close=")" separator=",">
#{userId}
</foreach>
<foreach collection="developmentManagerList" item="developmentManager" open="or hpli.development_manager in (" close="))" separator=",">
#{developmentManager}
</foreach>
</if>
<if test="sortField!=null and sortField != '' and sortField=='updateTime' ">
order by hpli.update_time
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' ">
desc
</if>
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='ascend' ">
asc
</if>
</if>
<if test="sortField!=null and sortField != '' and sortField=='deadline' ">
order by hpli.deadline
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' ">
desc
</if>
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='ascend' ">
asc
</if>
</if>
<if test="sortField!=null and sortField != '' and sortField=='allotTime' ">
order by hptil.create_time
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' ">
desc
</if>
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='ascend' ">
asc
</if>
</if>
limit #{limit1},#{limit2}
</select>
<select id="getPublicSeaPageInfoNext" resultType="com.cool.store.vo.LinePageInfoVo">
select
a.id as lineId,
a.partner_id as partnerId
FROM hy_partner_line_info a
inner JOIN hy_partner_user_info b on a.partner_id = b.partner_id
left join hy_partner_base_info bi on a.id = bi.partner_line_id
LEFT JOIN hy_open_area_info hoai ON hoai.id = b.want_shop_area
LEFT JOIN hy_phone_location hpl ON hpl.phone_number = b.mobile
where a.line_status = 0 and a.deleted = 0
<if test="userNameKeyword!=null and userNameKeyword!=''">
and b.username like concat('%',#{userNameKeyword},'%')
</if>
<if test="phoneKeyword!=null and phoneKeyword!=''">
and b.mobile like concat('%',#{phoneKeyword},'%')
</if>
<if test="intentAreaName!=null and intentAreaName!=''">
and hoai.area_path like concat('%/',#{intentAreaName},'/%')
</if>
<if test="acceptAdjustType!=null">
and b.accept_adjust_type = #{acceptAdjustType}
</if>
<if test="updateStartTime!=null and updateEndTime!=''">
and a.update_time BETWEEN #{updateStartTime} and #{updateEndTime}
</if>
<if test="createStartTime!=null and createEndTime!=''">
and a.create_time BETWEEN #{createStartTime} and #{createEndTime}
</if>
<if test="userIdList!=null and userIdList.size>0">
<foreach collection="userIdList" item="userId" open="and a.investment_manager in (" close=")" separator=",">
#{userId}
</foreach>
</if>
order by a.create_time desc limit #{limit1},#{limit2}
</select>
</mapper>

View File

@@ -71,6 +71,9 @@ public class PartnerLineInfoAndBaseInfoDTO {
@ApiModelProperty("意向开店区域")
private String wantShopArea;
@ApiModelProperty("EC意向开店区域")
private String ecWantShopArea;
@ApiModelProperty("意向开店区域名称")
private String wantShopAreaName;

View File

@@ -83,4 +83,6 @@ public class PrivateSeaLineDTO {
private String ecWantShopArea;
private String allotTime;
}

View File

@@ -105,6 +105,9 @@ public class HyPartnerIntentInfoDO implements Serializable {
@ApiModelProperty("邮箱地址")
private String email;
@ApiModelProperty("征信证明")
private String creditProve;
private Integer acquaintanceFlag;
private String acquaintanceName;

View File

@@ -41,6 +41,15 @@ public class LineRequest extends PageInfoRequest{
@ApiModelProperty("创建结束时间")
private String createEndTime;
@ApiModelProperty("线索id")
private Long lineId;
/**
* pageTurn: previous(上一页) next(下一页)
*/
@ApiModelProperty("排序顺序")
private String pageTurn;
}

View File

@@ -54,6 +54,9 @@ public class PartnerIntentInfoRequest {
@ApiModelProperty("资金证明")
private List<String> moneyProve;
@ApiModelProperty("征信证明")
private List<String> creditProve;
@ApiModelProperty("学历")
private String education;

View File

@@ -80,5 +80,28 @@ public class PrivateSeaLineListRequest extends PageInfoRequest {
@ApiModelProperty("创建时间_结束")
private String lineEndTime;
@ApiModelProperty("线索id")
private Long lineId;
/**
* deadline 截至时间
* updateTime 更新时间
* allotTime 分配时间
*/
@ApiModelProperty("排序字段")
private String sortField;
/**
* sortOrder: descend(降序) ascend(升序)
*/
@ApiModelProperty("排序顺序")
private String sortOrder;
/**
* pageTurn: previous(上一页) next(下一页)
*/
@ApiModelProperty("排序顺序")
private String pageTurn;
}

View File

@@ -0,0 +1,22 @@
package com.cool.store.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
/**
* @Author hxd
*/
@Data
@ApiModel
@Slf4j
public class LinePageInfoVo {
@ApiModelProperty("线索ID")
private Long lineId;
@ApiModelProperty("加盟商用户ID")
private String partnerId;
}

View File

@@ -66,6 +66,9 @@ public class PartnerIntentInfoVO {
@ApiModelProperty("资金证明")
private List<String> moneyProve;
@ApiModelProperty("征信证明")
private List<String> creditProve;
@ApiModelProperty("学历")
private String education;

View File

@@ -106,4 +106,7 @@ public class PartnerLineInfoAndBaseInfoVO {
private String developmentDirectorName;
@ApiModelProperty("开发主管手机号")
private String developmentDirectorMobile;
@ApiModelProperty("EC意向开店区域名称")
private String ecWantShopAreaName;
}

View File

@@ -96,6 +96,8 @@ public class PrivateSeaLineListVo {
private Date startTime;
private String allotTime;
private String investmentManagerMobile;
@ApiModelProperty("用户画像")
@@ -136,6 +138,7 @@ public class PrivateSeaLineListVo {
privateSeaLineListVo.setRecommendPartnerName(x.getRecommendPartnerName());
privateSeaLineListVo.setRecommendPartnerMobile(x.getRecommendPartnerMobile());
privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage());
privateSeaLineListVo.setAllotTime(x.getAllotTime());
privateSeaLineListVo.setWantShopArea(x.getWantShopArea());
privateSeaLineListVo.setWorkflowStage(x.getWorkflowStage());
privateSeaLineListVo.setStartTime(hyPartnerInterviewPlanDOMap.getOrDefault(x.getLineId(),new HyPartnerInterviewPlanDO()).getStartTime());

View File

@@ -176,4 +176,9 @@ public interface HyPartnerLineInfoService {
* @return
*/
PartnerSimpleBaseInfoVO queryBaseInfo(Long partnerLineId);
LinePageInfoVo privateSeaPageDetailNext(String userId, PrivateSeaLineListRequest privateSeaLineListRequest, Boolean aFalse);
LinePageInfoVo publicSeaPageDetailNext(String userId, LineRequest lineRequest);
}

View File

@@ -475,6 +475,9 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
if(CollectionUtils.isNotEmpty(request.getMoneyProve())){
intentInfoDO.setMoneyProve(JSONObject.toJSONString(request.getMoneyProve()));
}
if(CollectionUtils.isNotEmpty(request.getCreditProve())){
intentInfoDO.setCreditProve(JSONObject.toJSONString(request.getCreditProve()));
}
intentInfoDO.setEducation(request.getEducation());
intentInfoDO.setWorkYear(request.getWorkYear());
intentInfoDO.setIsHaveWorkExp(request.getIsHaveWorkExp());
@@ -510,6 +513,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
partnerIntentInfoVO.setIsHaveWorkExp(hyPartnerIntentInfoDO.getIsHaveWorkExp());
partnerIntentInfoVO.setMoneyProve(StringUtil.isEmpty(hyPartnerIntentInfoDO.getMoneyProve())?
Lists.newArrayList(): JSONObject.parseArray(hyPartnerIntentInfoDO.getMoneyProve(),String.class));
partnerIntentInfoVO.setCreditProve(StringUtil.isEmpty(hyPartnerIntentInfoDO.getCreditProve())?
Lists.newArrayList(): JSONObject.parseArray(hyPartnerIntentInfoDO.getCreditProve(),String.class));
partnerIntentInfoVO.setMoneySource(hyPartnerIntentInfoDO.getMoneySource());
partnerIntentInfoVO.setWorkYear(hyPartnerIntentInfoDO.getWorkYear());
partnerIntentInfoVO.setWorkExp(hyPartnerIntentInfoDO.getWorkExp());

View File

@@ -37,6 +37,7 @@ import javax.annotation.Resource;
import java.text.MessageFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* @Author suzhuhong
@@ -103,6 +104,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
@Autowired
private WechatMiniAppService wechatMiniAppService;
@Override
public StageCountVO selectStagePendingCount(String userId) {
StageCountDTO stageCountDTO = hyPartnerLineInfoDAO.selectStagePendingCount(userId);
@@ -550,7 +552,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
@Override
public PageInfo<PublicSeaLineListVo> publicSeaLineList(String userId, LineRequest lineRequest) {
//确认是招商经理还是部门负责人
@@ -629,8 +630,6 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
@Override
public PageInfo<PrivateSeaLineListVo> privateSeaLineList(String userId, PrivateSeaLineListRequest request,Boolean allPrivateSeaFlag) {
//allPrivateSeaFlag 为true的时候 查询全量私海
@@ -653,7 +652,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
request.getWorkflowStatus(), request.getDeadlineStart(), request.getDeadlineEnd(), intentAreaName, request.getAcceptAdjustType(), request.getStoreKeyword(),
request.getStoreKeywordType(), userIdsByScope.getInvestmentUserIds(),userIdsByScope.getDevelopmentUserIds(),request.getUserPortraitIdList(),request.getUserChannelIdList()
, request.getUpdateStartTime(), request.getUpdateEndTime(), request.getPartnerName(),request.getPartnerMobile(),request.getInvestmentManagerId(),request.getUserPortraitQueryType()
,request.getIntentAreaQueryType(),request.getLineStartTime(),request.getLineEndTime(),request.getUserChannelQueryType()));
,request.getIntentAreaQueryType(),request.getLineStartTime(),request.getLineEndTime(),request.getUserChannelQueryType(),request.getSortField(),request.getSortOrder()));
List<PrivateSeaLineDTO> list = privateLineList.getList();
if (CollectionUtils.isEmpty(list)){
return privateLineList;
@@ -775,6 +774,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
/**
* 线索状态
*
* @param wantShopAreaId
* @param acceptAdjustType
* @return
@@ -869,6 +869,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
return null;
}
@Override
public HyPartnerLineInfoDO generateDefaultLineInfo(String partnerId, String wantShopArea, Integer acceptAdjustType, Boolean assignFlag, String investmentManagerId) throws ApiException {
// 生成一条线索
@@ -981,9 +982,66 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
return result;
}
@Override
public LinePageInfoVo privateSeaPageDetailNext(String userId, PrivateSeaLineListRequest request, Boolean allPrivateSeaFlag) {
request.setPageNum((int) Math.ceil((double) request.getPageNum() / request.getPageSize()));
//allPrivateSeaFlag 为true的时候 查询全量私海
UserPositionAndUserScopeDTO userIdsByScope = new UserPositionAndUserScopeDTO();
if (!allPrivateSeaFlag) {
userIdsByScope = enterpriseUserService.getUserIdsByScope(userId);
}
String intentAreaName = getIntentAreaName(request.getIntentAreaId());
Integer pageNum = request.getPageNum();
Integer pageSize = request.getPageSize();
List<LinePageInfoVo> linePageInfoVo = hyPartnerLineInfoDAO.getPrivateSeaPageInfoNext(request.getLineId(), request.getKeyword(), request.getKeywordType(), request.getWorkflowStage(),
request.getWorkflowStatus(), request.getDeadlineStart(), request.getDeadlineEnd(), intentAreaName, request.getAcceptAdjustType(), request.getStoreKeyword(),
request.getStoreKeywordType(), userIdsByScope.getInvestmentUserIds(), userIdsByScope.getDevelopmentUserIds(), request.getUserPortraitIdList(), request.getUserChannelIdList()
, request.getUpdateStartTime(), request.getUpdateEndTime(), request.getPartnerName(), request.getPartnerMobile(), request.getInvestmentManagerId(), request.getUserPortraitQueryType()
, request.getIntentAreaQueryType(), request.getLineStartTime(), request.getLineEndTime(), request.getUserChannelQueryType(), request.getSortField(), request.getSortOrder(), (pageNum - 1) * pageSize == 0 ? 0 : (pageNum - 1) * pageSize - 1, pageSize + 2);
Optional<Integer> first = Stream.iterate(0, i -> i + 1).limit(linePageInfoVo.size()).filter(item -> request.getLineId().equals(linePageInfoVo.get(item).getLineId())).findFirst();
if (!first.isPresent()) {
return null;
}
if (PageTurnTypeEnum.NEXT.getText().equals(request.getPageTurn())) {
//下一页
return first.get() +1>linePageInfoVo.size()?null:linePageInfoVo.get(first.get() +1);
}
if (PageTurnTypeEnum.PREVIOUS.getText().equals(request.getPageTurn())) {
//上一页
return first.get() - 1<0?null:linePageInfoVo.get(first.get() - 1);
}
return null;
}
@Override
public LinePageInfoVo publicSeaPageDetailNext(String userId, LineRequest lineRequest) {
lineRequest.setPageNum((int) Math.ceil((double) lineRequest.getPageNum() / lineRequest.getPageSize()));
String intentAreaName = getIntentAreaName(lineRequest.getIntentArea());
Integer pageNum = lineRequest.getPageNum();
Integer pageSize = lineRequest.getPageSize();
List<LinePageInfoVo> linePageInfoVoList = hyPartnerLineInfoDAO.getPublicSeaPageInfoNext(lineRequest.getLineId(), lineRequest.getUserNameKeyword(), lineRequest.getPhoneKeyword(),
intentAreaName, lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), null, lineRequest.getCreateStartTime(), lineRequest.getCreateEndTime(),lineRequest.getPageTurn()
, (pageNum - 1) * pageSize == 0 ? 0 : (pageNum - 1) * pageSize - 1, pageSize + 2);
Optional<Integer> first = Stream.iterate(0, i -> i + 1).limit(linePageInfoVoList.size()).filter(item -> lineRequest.getLineId().equals(linePageInfoVoList.get(item).getLineId())).findFirst();
if (!first.isPresent()) {
return null;
}
if (PageTurnTypeEnum.NEXT.getText().equals(lineRequest.getPageTurn())) {
//下一页
return first.get() +1>linePageInfoVoList.size()?null:linePageInfoVoList.get(first.get() +1);
}
if (PageTurnTypeEnum.PREVIOUS.getText().equals(lineRequest.getPageTurn())) {
//上一页
return first.get() - 1<0?null:linePageInfoVoList.get(first.get() - 1);
}
return null;
}
/**
* convertPartnerBlackListDTOToVo
*
* @param partnerBlackListDTO
* @return
*/
@@ -1010,10 +1068,9 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
/**
* convertPartnerLineInfoAndBaseInfoDTOToVo
*
* @param partnerLineInfoAndBaseInfoDTO
* @return
*/
@@ -1037,6 +1094,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
partnerLineInfoAndBaseInfoVO.setPartnerUserName(partnerLineInfoAndBaseInfoDTO.getPartnerUserName());
partnerLineInfoAndBaseInfoVO.setAcceptAdjustType(partnerLineInfoAndBaseInfoDTO.getAcceptAdjustType());
partnerLineInfoAndBaseInfoVO.setWantShopArea(partnerLineInfoAndBaseInfoDTO.getWantShopArea());
partnerLineInfoAndBaseInfoVO.setEcWantShopAreaName(partnerLineInfoAndBaseInfoDTO.getEcWantShopArea());
partnerLineInfoAndBaseInfoVO.setLiveArea(partnerLineInfoAndBaseInfoDTO.getLiveArea());
partnerLineInfoAndBaseInfoVO.setDetailedAddress(partnerLineInfoAndBaseInfoDTO.getDetailedAddress());
partnerLineInfoAndBaseInfoVO.setEmail(partnerLineInfoAndBaseInfoDTO.getEmail());
@@ -1053,9 +1111,9 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
/**
* stageCountDTOToVo
*
* @param stageCountDTO
* @return
*/
@@ -1069,6 +1127,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
/**
* getIntentAreaName
*
* @param intentArea
* @return
*/

View File

@@ -326,6 +326,13 @@ public class InterviewServiceImpl implements InterviewService {
hyPartnerInterviewDO.setUpdateTime(new Date());
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
//如果是待面试阶段修改面试时间需要发短信通知
if (interviewInfo.getStatus().equals(Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode()))) {
HyPartnerBaseInfoDO partnerBaseInfo = hyPartnerBaseInfoMapper.getByPartnerLineId(interviewInfo.getPartnerLineId());
//异步发送短信给加盟商
eventCenterHttpRequest.sendSmsVariable(partnerBaseInfo.getMobile(), SMSMsgEnum.INTERVIEW_APPOINTMENT_PASS,DateUtil.format(DateUtil.parse(interviewInfo.getStartTime()), DatePattern.NORM_DATETIME_MINUTE_PATTERN),wechatMiniAppService.getMiniAppUrl());
}
//记录日志
LoginUserInfo operator = CurrentUserHolder.getUser();
ModifyInterviewTimeDTO log = ModifyInterviewTimeDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getUserId()).operateUsername(operator.getName())

View File

@@ -220,6 +220,25 @@ public class DeskController {
return ResponseResult.success(hyPartnerLineInfoService.privateSeaLineList(CurrentUserHolder.getUserId(),privateSeaLineListRequest,Boolean.FALSE));
}
@PostMapping(path = "/getPrivateSeaPageDetailNext")
@ApiOperation("私海列表详情翻页")
public ResponseResult<LinePageInfoVo> getPrivateSeaPageDetailNext(@RequestBody PrivateSeaLineListRequest privateSeaLineListRequest){
return ResponseResult.success(hyPartnerLineInfoService.privateSeaPageDetailNext(CurrentUserHolder.getUserId(),privateSeaLineListRequest,Boolean.FALSE));
}
@PostMapping(path = "/getPrivateAllSeaPageDetailNext")
@ApiOperation("全量私海列表详情翻页")
public ResponseResult<LinePageInfoVo> getPrivateAllSeaPageDetailNext(@RequestBody PrivateSeaLineListRequest privateSeaLineListRequest){
return ResponseResult.success(hyPartnerLineInfoService.privateSeaPageDetailNext(CurrentUserHolder.getUserId(),privateSeaLineListRequest,Boolean.TRUE));
}
@PostMapping(path = "/getPublicSeaPageDetailNext")
@ApiOperation("公海列表详情翻页")
public ResponseResult<LinePageInfoVo> getPublicSeaPageDetailNext(@RequestBody LineRequest LineRequest){
return ResponseResult.success(hyPartnerLineInfoService.publicSeaPageDetailNext(CurrentUserHolder.getUserId(),LineRequest));
}
@PostMapping(path = "/queryAllPrivateSeqLineList")
@ApiOperation("全量私海")