私海列表查询sql优化

This commit is contained in:
xiaodong.hu
2023-11-24 14:02:35 +08:00
parent 25a4a0cc4f
commit 8fc0a38dc8
5 changed files with 23 additions and 7 deletions

View File

@@ -24,12 +24,13 @@
<result column="create_user_mobile" jdbcType="VARCHAR" property="createUserMobile" /> <result column="create_user_mobile" jdbcType="VARCHAR" property="createUserMobile" />
<result column="operator_type" jdbcType="VARCHAR" property="operatorType" /> <result column="operator_type" jdbcType="VARCHAR" property="operatorType" />
<result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" /> <result column="update_user_id" jdbcType="VARCHAR" property="updateUserId" />
<result column="allot_time" jdbcType="TIMESTAMP" property="allotTime" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, partner_id, workflow_stage, workflow_status, line_status, investment_manager, id, partner_id, workflow_stage, workflow_status, line_status, investment_manager,
development_director, development_manager, deadline, pass_reason, reject_public_reason, development_director, development_manager, deadline, pass_reason, reject_public_reason,
reject_real_reason, certify_file, deleted, create_time, update_time, close_time, reject_real_reason, certify_file, deleted, create_time, update_time, close_time,
close_user_id,create_user_id,create_user_mobile,operator_type,update_user_id close_user_id,create_user_id,create_user_mobile,operator_type,update_user_id,allot_time
</sql> </sql>
<select id="selectByPrimaryKeySelective" resultMap="BaseResultMap"> <select id="selectByPrimaryKeySelective" resultMap="BaseResultMap">
@@ -140,6 +141,9 @@
<if test="record.updateUserId != null"> <if test="record.updateUserId != null">
update_user_id, update_user_id,
</if> </if>
<if test="record.allotTime != null">
allot_time,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="record.partnerId != null"> <if test="record.partnerId != null">
@@ -205,6 +209,9 @@
<if test="record.updateUserId != null"> <if test="record.updateUserId != null">
#{record.updateUserId}, #{record.updateUserId},
</if> </if>
<if test="record.allotTime != null">
#{record.allotTime},
</if>
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective"> <update id="updateByPrimaryKeySelective">
@@ -267,6 +274,9 @@
<if test="record.removeBlackReason != null"> <if test="record.removeBlackReason != null">
remove_black_reason = #{record.removeBlackReason}, remove_black_reason = #{record.removeBlackReason},
</if> </if>
<if test="record.allotTime != null">
allot_time = #{record.allotTime},
</if>
</set> </set>
where id = #{record.id} where id = #{record.id}
</update> </update>
@@ -388,7 +398,7 @@
<update id="updateInvestmentManager"> <update id="updateInvestmentManager">
update hy_partner_line_info update hy_partner_line_info
set investment_manager = #{userId}, line_status= '1' set investment_manager = #{userId}, line_status= '1',allot_time=now()
<if test="lineIdList!=null and lineIdList.size>0"> <if test="lineIdList!=null and lineIdList.size>0">
<foreach collection="lineIdList" open="where id in (" close=")" separator="," item="lineId"> <foreach collection="lineIdList" open="where id in (" close=")" separator="," item="lineId">
#{lineId} #{lineId}
@@ -536,7 +546,7 @@
bi.user_portrait as userPortrait, bi.user_portrait as userPortrait,
eu.name as investmentManagerName, eu.name as investmentManagerName,
eu.mobile as investmentManagerMobile, eu.mobile as investmentManagerMobile,
hptil.create_time AS allotTime hpli.allot_time AS allotTime
FROM FROM
hy_partner_line_info hpli hy_partner_line_info hpli
LEFT JOIN hy_partner_intent_info hpii ON hpli.id = hpii.partner_line_id LEFT JOIN hy_partner_intent_info hpii ON hpli.id = hpii.partner_line_id
@@ -544,7 +554,6 @@
LEFT JOIN hy_partner_user_info hpuinfo ON hpli.partner_id = hpuinfo.partner_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 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 hy_open_area_info hoai ON hoai.id = hpuinfo.want_shop_area
LEFT JOIN ( SELECT create_time,partner_line_id FROM hy_partner_task_info_log WHERE id IN ( SELECT max( id ) FROM hy_partner_task_info_log WHERE operate_type IN ( 'allocation_investment_manager', 'transfer_investment_manager', 'ec_sync_add_line' ) AND deleted = 0 AND operate_user_id = #{investmentManagerId} GROUP BY partner_line_id ) ) hptil ON hpli.id = hptil.partner_line_id
WHERE hpli.line_status in (1,2) WHERE hpli.line_status in (1,2)
AND ( hpli.deleted IS NULL OR hpli.deleted = 0 ) AND ( hpli.deleted IS NULL OR hpli.deleted = 0 )
<if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'"> <if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
@@ -829,7 +838,6 @@
LEFT JOIN hy_partner_user_info hpuinfo ON hpli.partner_id = hpuinfo.partner_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 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 hy_open_area_info hoai ON hoai.id = hpuinfo.want_shop_area
LEFT JOIN ( SELECT create_time,partner_line_id FROM hy_partner_task_info_log WHERE id IN ( SELECT max( id ) FROM hy_partner_task_info_log WHERE operate_type IN ( 'allocation_investment_manager', 'transfer_investment_manager', 'ec_sync_add_line' ) AND deleted = 0 AND operate_user_id = #{investmentManagerId} GROUP BY partner_line_id ) ) hptil ON hpli.id = hptil.partner_line_id
WHERE hpli.line_status in (1,2) WHERE hpli.line_status in (1,2)
AND ( hpli.deleted IS NULL OR hpli.deleted = 0 ) AND ( hpli.deleted IS NULL OR hpli.deleted = 0 )
<if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'"> <if test="keyword!=null and keyword!='' and keywordType!=null and keywordType=='name'">
@@ -956,7 +964,7 @@
</if> </if>
</if> </if>
<if test="sortField!=null and sortField != '' and sortField=='allotTime' "> <if test="sortField!=null and sortField != '' and sortField=='allotTime' ">
order by hptil.create_time order by hpli.allot_time
<if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' "> <if test="sortOrder!=null and sortOrder != '' and sortOrder=='descend' ">
desc desc
</if> </if>

View File

@@ -94,4 +94,7 @@ public class HyPartnerLineInfoDO implements Serializable {
@ApiModelProperty("更新人") @ApiModelProperty("更新人")
private String updateUserId; private String updateUserId;
@ApiModelProperty("分配时间")
private Date allotTime;
} }

View File

@@ -218,7 +218,9 @@ public class EcSyncServiceImpl implements EcSyncService {
String followUserName = customerInfoItem.getFollowUserName(); String followUserName = customerInfoItem.getFollowUserName();
String followUserMobile = customerInfoItem.getFollowUserMobile(); String followUserMobile = customerInfoItem.getFollowUserMobile();
//获取招商经理 //获取招商经理
resultLine.setInvestmentManager(getInvestmentManager(followUserName, followUserMobile)); String investmentManager = getInvestmentManager(followUserName, followUserMobile);
resultLine.setInvestmentManager(investmentManager);
resultLine.setAllotTime(StringUtil.isEmpty(investmentManager)?null:new Date());
resultLine.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()) resultLine.setWorkflowStage(WorkflowStageEnum.INTENT.getCode())
.setLineStatus(StringUtil.isEmpty(customerInfoItem.getFollowUserName()) ? LineStatusEnum.PUBLIC_SEAS.getCode() : LineStatusEnum.PRIVATE_SEAS.getCode()); .setLineStatus(StringUtil.isEmpty(customerInfoItem.getFollowUserName()) ? LineStatusEnum.PUBLIC_SEAS.getCode() : LineStatusEnum.PRIVATE_SEAS.getCode());
resultBase.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile()); resultBase.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile());

View File

@@ -252,6 +252,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
String investmentManager = hyPartnerLineInfoService.getAssignFollowUser(request.getPartnerId(), "intent"); String investmentManager = hyPartnerLineInfoService.getAssignFollowUser(request.getPartnerId(), "intent");
hyPartnerLineInfoDO.setInvestmentManager(investmentManager); hyPartnerLineInfoDO.setInvestmentManager(investmentManager);
userIdList.add(investmentManager); userIdList.add(investmentManager);
hyPartnerLineInfoDO.setAllotTime(new Date());
} }
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);

View File

@@ -895,11 +895,13 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode());
hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode()); hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode());
hyPartnerLineInfoDO.setInvestmentManager(investmentManager); hyPartnerLineInfoDO.setInvestmentManager(investmentManager);
hyPartnerLineInfoDO.setAllotTime(new Date());
hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO); hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO);
} else { } else {
if (LineStatusEnum.PUBLIC_SEAS.getCode().equals(hyPartnerLineInfoDO.getLineStatus())) { if (LineStatusEnum.PUBLIC_SEAS.getCode().equals(hyPartnerLineInfoDO.getLineStatus())) {
hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode()); hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode());
hyPartnerLineInfoDO.setInvestmentManager(investmentManager); hyPartnerLineInfoDO.setInvestmentManager(investmentManager);
hyPartnerLineInfoDO.setAllotTime(new Date());
hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO);
} }
} }