Browse Source

feat: support phone push app

master
wangxiang 1 year ago
parent
commit
75a786048c
  1. 60
      kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/vo/ConcernFanEnhancedVO.java
  2. 3
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/mapper/PushConcernFanMapper.java
  3. 11
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java
  4. 56
      kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/resources/mapper/PushConcernFanMapper.xml

60
kicc-platform/kicc-platform-api/kicc-common-api/src/main/java/com/cloud/kicc/commonbiz/api/vo/ConcernFanEnhancedVO.java

@ -0,0 +1,60 @@
package com.cloud.kicc.commonbiz.api.vo;
import com.cloud.kicc.common.data.entity.CommonEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
/**
*<p>
* 关注粉丝扩展属性VO
*</p>
*
* @Author: wangxiang4
* @Since: 2023/12/28
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class ConcernFanEnhancedVO extends CommonEntity {
/** 关注用户 */
private String concernUserId;
/** 粉丝用户 */
private String fanUserId;
/** 关注类型 */
private String type;
/** 审核状态 */
private String status;
/** 用户名称 */
private String userName;
/** 用户昵称 */
private String nickName;
/** 邮箱 */
private String email;
/** 手机号 */
private String phone;
/** 性别 */
private String sex;
/** 头像 */
private String avatar;
/** 用户类型 */
private String userType;
/** 部门id */
private String deptId;
/** 部门名称 */
private String deptName;
}

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

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cloud.kicc.commonbiz.api.entity.PushBlacklist; import com.cloud.kicc.commonbiz.api.entity.PushBlacklist;
import com.cloud.kicc.commonbiz.api.entity.PushConcernFan; import com.cloud.kicc.commonbiz.api.entity.PushConcernFan;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cloud.kicc.commonbiz.api.vo.ConcernFanEnhancedVO;
import com.cloud.kicc.system.api.entity.User; import com.cloud.kicc.system.api.entity.User;
import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -27,6 +28,6 @@ public interface PushConcernFanMapper extends BaseMapper<PushConcernFan> {
IPage<Map<String, Object>> selectPushFriendList(@Param("page") IPage<Map<String, Object>> page, @Param("map") Map map); IPage<Map<String, Object>> selectPushFriendList(@Param("page") IPage<Map<String, Object>> page, @Param("map") Map map);
List<PushConcernFan> pushFriendByPhoneList(String Phone); List<ConcernFanEnhancedVO> selectConcernFanEnhancedList(@Param("map") Map map);
} }

11
kicc-platform/kicc-platform-biz/kicc-common-biz/src/main/java/com/cloud/kicc/commonbiz/service/impl/PushApplicationServiceImpl.java

@ -1,6 +1,7 @@
package com.cloud.kicc.commonbiz.service.impl; package com.cloud.kicc.commonbiz.service.impl;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -13,6 +14,7 @@ import com.cloud.kicc.common.data.entity.KiccUser;
import com.cloud.kicc.common.security.util.SecurityUtils; import com.cloud.kicc.common.security.util.SecurityUtils;
import com.cloud.kicc.commonbiz.api.entity.*; import com.cloud.kicc.commonbiz.api.entity.*;
import com.cloud.kicc.commonbiz.api.enums.PushAuditStatusEnum; import com.cloud.kicc.commonbiz.api.enums.PushAuditStatusEnum;
import com.cloud.kicc.commonbiz.api.vo.ConcernFanEnhancedVO;
import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper; import com.cloud.kicc.commonbiz.mapper.PushApplicationMapper;
import com.cloud.kicc.commonbiz.mapper.PushConcernFanMapper; import com.cloud.kicc.commonbiz.mapper.PushConcernFanMapper;
import com.cloud.kicc.commonbiz.service.*; import com.cloud.kicc.commonbiz.service.*;
@ -87,8 +89,13 @@ public class PushApplicationServiceImpl extends ServiceImpl<PushApplicationMappe
// 根据手机号筛选关联用户 // 根据手机号筛选关联用户
if (StrUtil.isNotBlank(pushChatMessage.getPhone())) { if (StrUtil.isNotBlank(pushChatMessage.getPhone())) {
List<PushConcernFan> pushConcernFanList = pushConcernFanMapper.pushFriendByPhoneList(pushChatMessage.getPhone()); List<ConcernFanEnhancedVO> pushConcernFanList = pushConcernFanMapper.selectConcernFanEnhancedList(MapUtil.<String, Object>builder()
pushChatMessage.setAlias(pushConcernFanList.stream().map(PushConcernFan::getFanUserId).collect(Collectors.joining(","))); .put("status",PushAuditStatusEnum.APPROVED.getValue())
.put("dynamicJoinType", "1")
.put("phone", pushChatMessage.getPhone())
.put("concernUserId", pushChatMessage.getUserId())
.build());
pushChatMessage.setAlias(pushConcernFanList.stream().map(ConcernFanEnhancedVO::getFanUserId).collect(Collectors.joining(",")));
// 不选择推送用户默认设置全部当前企业下的粉丝用户 // 不选择推送用户默认设置全部当前企业下的粉丝用户
} else if (StrUtil.isBlank(pushChatMessage.getAlias())) { } else if (StrUtil.isBlank(pushChatMessage.getAlias())) {
List<PushConcernFan> pushConcernFanList = iPushConcernFanService.list(Wrappers.<PushConcernFan>lambdaQuery() List<PushConcernFan> pushConcernFanList = iPushConcernFanService.list(Wrappers.<PushConcernFan>lambdaQuery()

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

@ -142,7 +142,7 @@
sys_user u sys_user u
LEFT JOIN (select * FROM common_push_concern_fan WHERE del_flag = 0 LEFT JOIN (select * FROM common_push_concern_fan WHERE del_flag = 0
<choose> <choose>
<!--企业用户进行粉丝查询连表--> <!--查询粉丝连表-->
<when test="map.dynamicJoinType == 1"> <when test="map.dynamicJoinType == 1">
AND concern_user_id = ${@com.cloud.kicc.common.security.util.SecurityUtils@getUser().id}) cf AND concern_user_id = ${@com.cloud.kicc.common.security.util.SecurityUtils@getUser().id}) cf
ON u.id = cf.fan_user_id ON u.id = cf.fan_user_id
@ -172,12 +172,56 @@
</select> </select>
<select id="pushFriendByPhoneList" resultType="PushConcernFan"> <select id="selectConcernFanEnhancedList" resultType="com.cloud.kicc.commonbiz.api.vo.ConcernFanEnhancedVO">
select * from common_push_concern_fan select
cf.concern_user_id,
cf.fan_user_id,
cf.type,
cf.status,
cf.create_by_id,
cf.create_by_name,
cf.create_time,
cf.update_by_id,
cf.update_by_name,
cf.update_time,
cf.remarks,
cf.tenant_id,
cf.del_flag,
seu.user_name,
seu.nick_name,
seu.email,
seu.phone,
seu.sex,
seu.avatar,
seu.user_type,
seu.dept_id,
seu.dept_name
from
common_push_concern_fan cf
left join sso_enhanced_user_view seu
<choose>
<!--查询粉丝连表-->
<when test="map.dynamicJoinType == 1">
on cf.fan_user_id = seu.id
</when>
<otherwise>
on cf.concern_user_id = seu.id
</otherwise>
</choose>
<where> <where>
del_flag = 0 cf.del_flag = 0 and seu.del_flag = 0
and status = 2 <if test="map.concernUserId != null and map.concernUserId != ''">
and fan_user_id = (select id from sso_enhanced_user_view where phone = #{phone} and status = 0 and del_flag = 0 limit 1) and concern_user_id = #{map.concernUserId}
</if>
<if test="map.fanUserId != null and map.fanUserId != ''">
and fan_user_id = #{map.fanUserId}
</if>
<if test="map.status != null and map.status != ''">
and cf.status = #{map.status}
</if>
<if test="map.phone != null and map.phone != ''">
and phone = #{map.phone}
</if>
</where> </where>
</select> </select>

Loading…
Cancel
Save