Commit 5d07fe15 by xugaojun

【3.0】11-1迭代:群发任务创建结束处理逻辑优化,后置处理待优化

parent 86282b50
......@@ -8,6 +8,7 @@ import com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
......@@ -15,149 +16,160 @@ import java.util.List;
*/
public interface ExternalClerkRelatedApiService {
/**
* 查询导购好友关联
*
* @param wxUserId : 微信用户id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回好友关联
*/
List<ExternalClerkRelatedDTO> listByWxUserIdAndWxEnterpriseId(String wxUserId, String wxEnterpriseId, String enterpriseId);
/**
* 查询会员在企业下的好友关系
*
* @param memberId : 会员id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回会员导购关联关系
*/
List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId);
List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(String enterpriseId,Date date);
Page<ExternalClerkRelatedDTO> pageMemberUnionByParams(List<String> userIdList, List<String> sendMemberIds,
String enterpriseId, BasePageInfo pageInfo);
List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String wxUserId, String wxEnterpriseId);
List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> userIdList, String wxEnterpriseId);
/**
* 根据关联key查询待关联的记录-触达待完善记录
*
* @return
*/
ExternalClerkRelatedDTO getExternalClerkByRelationKeyAndPre(String relationKey);
/**
* 根据关联key查询待关联的记录
*
* @return
*/
Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String wxUserId, List<Integer> statusFlags, BasePageInfo pageInfo);
/**
* 推送外部联系人 更新次数以及状态
*
* @param relationKey
* @return
*/
boolean pushExternalByRelationKey(String relationKey);
/**
* 推送外部联系人 更新次数以及状态
*
* @param relationKey
* @return
*/
ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid);
/**
* 查询clerk与union好友关系
*
* @param enterpriseId
* @return
*/
ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedDTO> listExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String wxUserId, String enterpriseId, String externalUserId);
/**
* 根据id查询列表
*
* @param wxEnterpriseId
* @param ids
* @return
*/
List<ExternalClerkRelatedDTO> listByIds(String wxEnterpriseId, List<String> ids);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize);
/**
* 获取企业下的关联关系的 memberIds
*
* @return
*/
List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId);
/**
* gic删除会员,解除好办与gic关联关系
*
* @param memberId 会员ID
* @param enterpriseId 企业标识
* @param mergeMemberId 合并后的会员ID 删除传null,
* @author mozhu
* @date 2021-09-13 16:52:31
*/
void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId);
/**
* 导购和会员是否是好友关系,true是好友
*
* @param memberId 会员id
* @param clerkId 导购id
* @param enterpriseId 企业ID
* @return boolean
* @author mozhu
* @date 2021-10-15 11:36:36
*/
boolean isFriends(String memberId, String clerkId, String enterpriseId);
/**
* 查询导购好友关联
*
* @param wxUserId : 微信用户id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回好友关联
*/
List<ExternalClerkRelatedDTO> listByWxUserIdAndWxEnterpriseId(String wxUserId, String wxEnterpriseId, String enterpriseId);
/**
* 查询会员在企业下的好友关系
*
* @param memberId : 会员id
* @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id
* @return : 返回会员导购关联关系
*/
List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId);
List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(String enterpriseId, Date date);
Page<ExternalClerkRelatedDTO> pageMemberUnionByParams(List<String> userIdList, List<String> sendMemberIds,
String enterpriseId, BasePageInfo pageInfo);
List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String wxUserId, String wxEnterpriseId);
List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> userIdList, String wxEnterpriseId);
/**
* 根据关联key查询待关联的记录-触达待完善记录
*
* @return
*/
ExternalClerkRelatedDTO getExternalClerkByRelationKeyAndPre(String relationKey);
/**
* 根据关联key查询待关联的记录
*
* @return
*/
Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String wxUserId, List<Integer> statusFlags, BasePageInfo pageInfo);
/**
* 推送外部联系人 更新次数以及状态
*
* @param relationKey
* @return
*/
boolean pushExternalByRelationKey(String relationKey);
/**
* 推送外部联系人 更新次数以及状态
*
* @param relationKey
* @return
*/
ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid);
/**
* 查询clerk与union好友关系
*
* @param enterpriseId
* @return
*/
ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedDTO> listExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String wxUserId, String enterpriseId, String externalUserId);
/**
* 根据id查询列表
*
* @param wxEnterpriseId
* @param ids
* @return
*/
List<ExternalClerkRelatedDTO> listByIds(String wxEnterpriseId, List<String> ids);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo);
/**
* 查询导购好友关联
*
* @param wxEnterpriseId : 微信企业id
* @return : 返回好友关联
*/
Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize);
/**
* 获取企业下的关联关系的 memberIds
*
* @return
*/
List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberIds(String wxEnterpriseId, List<String> memberIds);
/**
* 获取企业下的关联关系列表
*
* @return
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId);
/**
* gic删除会员,解除好办与gic关联关系
*
* @param memberId 会员ID
* @param enterpriseId 企业标识
* @param mergeMemberId 合并后的会员ID 删除传null,
* @author mozhu
* @date 2021-09-13 16:52:31
*/
void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId);
/**
* 导购和会员是否是好友关系,true是好友
*
* @param memberId 会员id
* @param clerkId 导购id
* @param enterpriseId 企业ID
* @return boolean
* @author mozhu
* @date 2021-10-15 11:36:36
*/
boolean isFriends(String memberId, String clerkId, String enterpriseId);
/**
* 批量查询会员与导购好友关系
*
* @param memberIdList 会员id列表
* @param clerkIdList 导购id列表
* @param enterpriseId 企业id
* @return map:key-会员id value-导购的wxUserId
* @author: YongEn
*/
Map<String, String> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId);
}
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -143,4 +144,17 @@ public interface TabHaobanStaffClerkRelationMapper {
* @return {@link List<String>}
*/
List<String> listRelationsStaffId(@Param("staffIdList") Set<String> staffIdList);
/**
* 批量查询会员与导购关系并且返回关联信息
*
* @param memberIdList 会员id列表
* @param clerkIdList 导购id列表
* @param enterpriseId 企业id
* @return {@link MemberStaffRelExtDO}
*/
List<MemberStaffRelExtDO> listMemberStaffRel(
@Param("memberIdList") List<String> memberIdList,
@Param("clerkIdList") List<String> clerkIdList,
@Param("enterpriseId") String enterpriseId);
}
\ No newline at end of file
package com.gic.haoban.manage.service.entity.ext;
import java.io.Serializable;
/**
* desc:会员导购关系扩展实体类
*
* @author: YongEn
* @date: 2021/11/4
**/
public class MemberStaffRelExtDO implements Serializable {
private static final long serialVersionUID = 5537923492917182848L;
/**
* 会员Id
*/
private String memberId;
/**
* 导购员工的外部联系人id-wxUserId
*/
private String staffWxUserId;
public String getMemberId() {
return memberId;
}
public void setMemberId(String memberId) {
this.memberId = memberId;
}
public String getStaffWxUserId() {
return staffWxUserId;
}
public void setStaffWxUserId(String staffWxUserId) {
this.staffWxUserId = staffWxUserId;
}
}
......@@ -19,19 +19,20 @@ import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMappe
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.mq.sdk.GicMQClient;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService {
......@@ -253,4 +254,17 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
return externalClerkRelated.getStatusFlag() == 1;
}
@Override
public Map<String, String> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId) {
if (CollectionUtils.isEmpty(memberIdList) || CollectionUtils.isEmpty(clerkIdList)) {
// 2个列表都为空查不了关系
return Collections.emptyMap();
}
List<MemberStaffRelExtDO> res = staffClerkRelationMapper.listMemberStaffRel(memberIdList, clerkIdList, enterpriseId);
if (CollectionUtils.isEmpty(res)) {
return Collections.emptyMap();
}
return res.stream().collect(Collectors.toMap(MemberStaffRelExtDO::getMemberId, MemberStaffRelExtDO::getStaffWxUserId));
}
}
......@@ -463,4 +463,25 @@
and status_flag = 1 group by staff_id;
</select>
<select id="listMemberStaffRel" resultType="com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO">
select ecr.member_id as memberId,
scr.wx_user_id as staffWxUserId
from (select staff_id,
wx_user_id
from tab_haoban_staff_clerk_relation
where clerk_id in
<foreach collection="clerkIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
and status_flag = 1
group by staff_id) as scr
left join tab_haoban_external_clerk_related as ecr on scr.staff_id = ecr.staff_id
where ecr.status_flag = 1
and ecr.enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and ecr.member_id in
<foreach collection="memberIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>;
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment