Browse Source

perf: 企业方跟用户方动态连表查询

master
wangxiang 2 years ago
parent
commit
30a15053ff
  1. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java
  2. 2
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushConcernFanMapper.java
  3. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IPushConcernFanService.java
  4. 4
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushConcernFanServiceImpl.java
  5. 28
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/PushConcernFanMapper.xml

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/controller/PushConcernFanController.java

@ -62,8 +62,8 @@ public class PushConcernFanController { @@ -62,8 +62,8 @@ public class PushConcernFanController {
@ApiOperation("根据ID查询")
@GetMapping("/getById")
public R getById(String id, String onType) {
return R.ok(iPushConcernFanService.getByPushConcernFanId(id, onType));
public R getById(String id, String dynamicJoinType) {
return R.ok(iPushConcernFanService.getByPushConcernFanId(id, dynamicJoinType));
}
@ApiOperation("根据关注用户ID与粉丝用户ID查询")

2
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushConcernFanMapper.java

@ -22,7 +22,7 @@ public interface PushConcernFanMapper extends BaseMapper<PushConcernFan> { @@ -22,7 +22,7 @@ public interface PushConcernFanMapper extends BaseMapper<PushConcernFan> {
IPage<Map<String, Object>> selectPushConcernFanList(@Param("page") IPage<Map<String, Object>> page, @Param("map") Map map);
Map<String, Object> getByPushConcernFanId(@Param("id") String id, @Param("onType") String onType);
Map<String, Object> getByPushConcernFanId(@Param("id") String id, @Param("dynamicJoinType") String dynamicJoinType);
IPage<Map<String, Object>> selectPushFriendList(@Param("page") IPage<Map<String, Object>> page, @Param("map") Map map);

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/IPushConcernFanService.java

@ -26,10 +26,10 @@ public interface IPushConcernFanService extends IService<PushConcernFan> { @@ -26,10 +26,10 @@ public interface IPushConcernFanService extends IService<PushConcernFan> {
/**
* 根据ID查询
* @param id 关注粉丝表Id
* @param onType 关注粉丝类型 0关联粉丝表 1关联关注表
* @param dynamicJoinType 动态切换连表类型 0关联粉丝表 1关联关注表
* @return
*/
Map<String, Object> getByPushConcernFanId(String id, String onType);
Map<String, Object> getByPushConcernFanId(String id, String dynamicJoinType);
/**
* 查询好友列表

4
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushConcernFanServiceImpl.java

@ -26,8 +26,8 @@ public class PushConcernFanServiceImpl extends ServiceImpl<PushConcernFanMapper, @@ -26,8 +26,8 @@ public class PushConcernFanServiceImpl extends ServiceImpl<PushConcernFanMapper,
}
@Override
public Map<String, Object> getByPushConcernFanId(String id, String onType) {
return baseMapper.getByPushConcernFanId(id, onType);
public Map<String, Object> getByPushConcernFanId(String id, String dynamicJoinType) {
return baseMapper.getByPushConcernFanId(id, dynamicJoinType);
}
@Override

28
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/PushConcernFanMapper.xml

@ -33,7 +33,7 @@ @@ -33,7 +33,7 @@
common_push_concern_fan cf JOIN sys_user u
ON
<choose>
<when test="map.onType == 1">
<when test="map.dynamicJoinType == 1">
cf.concern_user_id = u.id
</when>
<otherwise>
@ -89,7 +89,7 @@ @@ -89,7 +89,7 @@
common_push_concern_fan cf JOIN sys_user u
ON
<choose>
<when test="onType == 1">
<when test="dynamicJoinType == 1">
cf.concern_user_id = u.id
</when>
<otherwise>
@ -103,7 +103,6 @@ @@ -103,7 +103,6 @@
</where>
</select>
<!-- todo: 多条 common_push_concern_fan 相同跟 sys_user 关联可能会出现问题 -->
<select id="selectPushFriendList" resultType="Map">
SELECT
cf.`status` cf_status,
@ -112,12 +111,22 @@ @@ -112,12 +111,22 @@
u.*
FROM
sys_user u
LEFT JOIN (select * FROM common_push_concern_fan
WHERE del_flag = 0
AND fan_user_id = ${@com.cloud.kicc.common.security.util.SecurityUtils@getUser().id}) cf
ON u.id = cf.concern_user_id
LEFT JOIN common_push_blacklist b
ON u.id = b.concern_user_id
LEFT JOIN (select * FROM common_push_concern_fan WHERE del_flag = 0
<choose>
<!--企业用户进行粉丝查询连表-->
<when test="map.dynamicJoinType == 1">
AND concern_user_id = ${@com.cloud.kicc.common.security.util.SecurityUtils@getUser().id}) cf
ON u.id = cf.fan_user_id
LEFT JOIN common_push_blacklist b
ON u.id = b.fan_user_id
</when>
<otherwise>
AND fan_user_id = ${@com.cloud.kicc.common.security.util.SecurityUtils@getUser().id}) cf
ON u.id = cf.concern_user_id
LEFT JOIN common_push_blacklist b
ON u.id = b.concern_user_id
</otherwise>
</choose>
<where>
u.del_flag = 0
AND u.status = 0
@ -129,6 +138,7 @@ @@ -129,6 +138,7 @@
<if test="map.nickName != null and map.nickName != ''">
AND u.nick_name = #{map.nickName}
</if>
ORDER BY u.create_time ASC
</where>
</select>

Loading…
Cancel
Save