Commit 25157c99 by 墨竹

fix:解绑入口统一,并将好友关系解除通知会员

parent 634e9590
package com.gic.haoban.manage.service.dao.mapper; package com.gic.haoban.manage.service.dao.mapper;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO; import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated; import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.Date;
import java.util.List;
public interface TabHaobanExternalClerkRelatedMapper { public interface TabHaobanExternalClerkRelatedMapper {
...@@ -146,7 +145,7 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -146,7 +145,7 @@ public interface TabHaobanExternalClerkRelatedMapper {
List<TabHaobanExternalClerkRelated> listByMemberIdAndWxEnterpriseId(@Param("memberId") String memberId, List<TabHaobanExternalClerkRelated> listByMemberIdAndWxEnterpriseId(@Param("memberId") String memberId,
@Param("wxEnterpriseId") String wxEnterpriseId, @Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId); @Param("enterpriseId") String enterpriseId);
/** /**
* 查询会员在企业下的好友关系 * 查询会员在企业下的好友关系
* *
...@@ -156,8 +155,9 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -156,8 +155,9 @@ public interface TabHaobanExternalClerkRelatedMapper {
* @return * @return
*/ */
List<ExternalClerkRelatedDTO> listByMemberIdList(@Param("memberIdList") List<String> memberIdList, List<ExternalClerkRelatedDTO> listByMemberIdList(@Param("memberIdList") List<String> memberIdList,
@Param("wxEnterpriseId") String wxEnterpriseId, @Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId); @Param("enterpriseId") String enterpriseId);
/** /**
* 获取最新的最近的外部联系人 * 获取最新的最近的外部联系人
* *
...@@ -270,7 +270,7 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -270,7 +270,7 @@ public interface TabHaobanExternalClerkRelatedMapper {
* 根据企业id分页 * 根据企业id分页
* *
* @param wxEnterpriseId 企业标识 * @param wxEnterpriseId 企业标识
* @return {@link List<TabHaobanWxEnterprise> } * @return {@link List<TabHaobanExternalClerkRelated> }
* @author mozhu * @author mozhu
* @date 2021-12-13 14:59:03 * @date 2021-12-13 14:59:03
*/ */
...@@ -295,7 +295,7 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -295,7 +295,7 @@ public interface TabHaobanExternalClerkRelatedMapper {
* *
* @param wxEnterpriseId 企业id * @param wxEnterpriseId 企业id
* @param enterpriseId 商户id * @param enterpriseId 商户id
* @param staffId 企业微信导购账号 * @param staffId 企业微信导购账号
* @param clerkId 导购id * @param clerkId 导购id
* @return * @return
*/ */
...@@ -315,10 +315,11 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -315,10 +315,11 @@ public interface TabHaobanExternalClerkRelatedMapper {
* 查询所有好友关系 * 查询所有好友关系
* *
* @param wxEnterpriseId wx企业标识 * @param wxEnterpriseId wx企业标识
* @param staffId wx用户id * @param staffId wx用户id
* @return {@link List}<{@link TabHaobanExternalClerkRelated}> * @return {@link List}<{@link TabHaobanExternalClerkRelated}>
*/ */
List<TabHaobanExternalClerkRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffId") String staffId); List<TabHaobanExternalClerkRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId);
/** /**
...@@ -354,7 +355,18 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -354,7 +355,18 @@ public interface TabHaobanExternalClerkRelatedMapper {
*/ */
int countByMemberId(@Param("memberId") String memberId, int countByMemberId(@Param("memberId") String memberId,
@Param("enterpriseId") String enterpriseId); @Param("enterpriseId") String enterpriseId);
List<TabHaobanExternalClerkRelated> listPageByWxenterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId, List<TabHaobanExternalClerkRelated> listPageByWxenterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("startItem") int startItem , @Param("pageSize") int pageSize ); @Param("startItem") int startItem, @Param("pageSize") int pageSize);
/**
* 获取所有的好友会员id
*
* @param storeId 存储id
* @param staffId 员工id
* @return {@link List}<{@link String}>
*/
List<String> getByStoreIdAndStaffId(@Param("storeId") String storeId,
@Param("staffId") String staffId);
} }
\ No newline at end of file
...@@ -36,7 +36,7 @@ public interface ExternalClerkRelatedService { ...@@ -36,7 +36,7 @@ public interface ExternalClerkRelatedService {
TabHaobanExternalClerkRelated getByParams(String staffId, String wxEnterpriseId, String name, String createTime); TabHaobanExternalClerkRelated getByParams(String staffId, String wxEnterpriseId, String name, String createTime);
List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserId(String externalUserid, String staffId); List<TabHaobanExternalClerkRelated> listByExternalUseridAndWxUserId(String externalUserid, String staffId);
List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserIdAllStatus(String wxEnterpriseId, String externalUserid, String wxUserId); List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserIdAllStatus(String wxEnterpriseId, String externalUserid, String wxUserId);
...@@ -71,4 +71,13 @@ public interface ExternalClerkRelatedService { ...@@ -71,4 +71,13 @@ public interface ExternalClerkRelatedService {
void repairExternalUserId(String wxEnterpriseId); void repairExternalUserId(String wxEnterpriseId);
/**
* 获取所有的好友会员id
*
* @param storeId 存储id
* @param staffId 员工id
* @return {@link List}<{@link String}>
*/
List<String> getByStoreIdAndStaffId(String storeId,String staffId);
} }
...@@ -269,7 +269,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -269,7 +269,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
} }
@Override @Override
public List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserId(String externalUserid, String staffId) { public List<TabHaobanExternalClerkRelated> listByExternalUseridAndWxUserId(String externalUserid, String staffId) {
return mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 1); return mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 1);
} }
...@@ -468,4 +468,9 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -468,4 +468,9 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
} }
} }
} }
@Override
public List<String> getByStoreIdAndStaffId(String storeId, String staffId) {
return mapper.getByStoreIdAndStaffId(storeId, staffId);
}
} }
...@@ -20,6 +20,7 @@ import com.gic.haoban.manage.service.entity.MemberClerkChatConfig; ...@@ -20,6 +20,7 @@ import com.gic.haoban.manage.service.entity.MemberClerkChatConfig;
import com.gic.haoban.manage.service.entity.TabHaobanStaff; import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation; import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.*; import com.gic.haoban.manage.service.service.*;
import com.gic.member.api.service.MemberApiService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
...@@ -60,6 +61,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -60,6 +61,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
private HmClerkRelationApiService hmClerkRelationApiService; private HmClerkRelationApiService hmClerkRelationApiService;
@Autowired @Autowired
private WxEnterpriseService wxEnterpriseService; private WxEnterpriseService wxEnterpriseService;
@Autowired
private MemberApiService memberApiService;
@Override @Override
public List<StaffClerkRelationDTO> listBindCode(String enterpriseId, Set<String> clerkCodeList) { public List<StaffClerkRelationDTO> listBindCode(String enterpriseId, Set<String> clerkCodeList) {
...@@ -80,17 +83,20 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService ...@@ -80,17 +83,20 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
} }
int i = mapper.changeStatusByClerkId(clerkId, 0); int i = mapper.changeStatusByClerkId(clerkId, 0);
String enterpriseId = clerkRelation.getEnterpriseId();
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(clerkRelation.getStoreId(), clerkRelation.getStaffId());
for (String memberId : memberIds) {
//解绑通知会员
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 0, new Date());
}
//删除 并设置主门店 //删除 并设置主门店
clerkMainStoreRelatedService.delMainStore(clerkRelation.getStaffId(), clerkRelation.getStoreId(), clerkRelation.getWxEnterpriseId()); clerkMainStoreRelatedService.delMainStore(clerkRelation.getStaffId(), clerkRelation.getStoreId(), clerkRelation.getWxEnterpriseId());
boolean b = i >= 0; //推入日志
if (b) { staffClerkBindLogService.pushToMq(clerkRelation.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, clerkRelation.getStaffClerkRelationId());
//推入日志 //废弃活码
staffClerkBindLogService.pushToMq(clerkRelation.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, clerkRelation.getStaffClerkRelationId()); hmClerkRelationApiService.delByClerkId(clerkId, enterpriseId, clerkRelation.getWxEnterpriseId(), channelCode);
//废弃活码 return i > 0;
hmClerkRelationApiService.delByClerkId(clerkId, clerkRelation.getEnterpriseId(), clerkRelation.getWxEnterpriseId(), channelCode);
// TODO: 2022/9/15 解绑通知会员
}
return b;
} }
@Override @Override
......
...@@ -202,7 +202,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -202,7 +202,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId); TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
String staffId = staff.getStaffId(); String staffId = staff.getStaffId();
memberUnionidRelatedDTO.setStaffId(staffId); memberUnionidRelatedDTO.setStaffId(staffId);
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = externalClerkRelatedService.listByExTernalUseridAndWxUserId(memberUnionidRelatedDTO.getExternalUserid(), memberUnionidRelatedDTO.getStaffId()); List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = externalClerkRelatedService.listByExternalUseridAndWxUserId(memberUnionidRelatedDTO.getExternalUserid(), memberUnionidRelatedDTO.getStaffId());
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) { if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
log.error("无好友记录"); log.error("无好友记录");
return; return;
...@@ -231,7 +231,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -231,7 +231,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Override @Override
public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String staffId, String storeId) { public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String staffId, String storeId) {
List<TabHaobanExternalClerkRelated> list = externalClerkRelatedService.listByExTernalUseridAndWxUserId(externalUserid, staffId); List<TabHaobanExternalClerkRelated> list = externalClerkRelatedService.listByExternalUseridAndWxUserId(externalUserid, staffId);
List<MemberStoreDTO> result = new ArrayList<>(); List<MemberStoreDTO> result = new ArrayList<>();
if (CollectionUtil.isEmpty(list)) { if (CollectionUtil.isEmpty(list)) {
return null; return null;
...@@ -1803,7 +1803,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1803,7 +1803,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
Set<String> externalUserIdList = list.stream().map(external -> external.getExternalUserId()).collect(Collectors.toSet()); Set<String> externalUserIdList = list.stream().map(external -> external.getExternalUserId()).collect(Collectors.toSet());
Sets.SetView<String> delExternalUserIds = Sets.difference(new HashSet<>(externalUserIds), externalUserIdList); Sets.SetView<String> delExternalUserIds = Sets.difference(new HashSet<>(externalUserIds), externalUserIdList);
if (CollectionUtils.isEmpty(delExternalUserIds)) { if (CollectionUtils.isEmpty(delExternalUserIds)) {
log.info("没有需要删除的外部联系人:{},{}", staffId); log.info("没有需要删除的外部联系人:{}", staffId);
return; return;
} }
//删除成员与union的关联关系 //删除成员与union的关联关系
......
...@@ -652,6 +652,8 @@ ...@@ -652,6 +652,8 @@
</if> </if>
order by create_time desc limit 1 order by create_time desc limit 1
</select> </select>
<select id="countByMemberId" resultType="int"> <select id="countByMemberId" resultType="int">
select count(*) select count(*)
from tab_haoban_external_clerk_related from tab_haoban_external_clerk_related
...@@ -666,4 +668,13 @@ ...@@ -666,4 +668,13 @@
limit ${startItem},${pageSize} limit ${startItem},${pageSize}
</select> </select>
<select id="getByStoreIdAndStaffId" resultType="java.lang.String">
select member_id
from tab_haoban_external_clerk_related
where store_id = #{storeId,jdbcType=VARCHAR}
and staff_id = #{staffId}
and status_flag in (1, 3, 4)
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
from tab_haoban_staff_clerk_relation from tab_haoban_staff_clerk_relation
where staff_clerk_relation_id = #{staffClerkRelationId,jdbcType=VARCHAR} where staff_clerk_relation_id = #{staffClerkRelationId,jdbcType=VARCHAR}
</select> </select>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation"> <insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation">
insert into tab_haoban_staff_clerk_relation (staff_clerk_relation_id, staff_id, wx_enterprise_id, insert into tab_haoban_staff_clerk_relation (staff_clerk_relation_id, staff_id, wx_enterprise_id,
enterprise_id, store_id, enterprise_id, store_id,
...@@ -194,9 +194,10 @@ ...@@ -194,9 +194,10 @@
where clerk_id = #{clerkId,jdbcType=VARCHAR} where clerk_id = #{clerkId,jdbcType=VARCHAR}
and status_flag=1 order by create_time desc limit 1 and status_flag=1 order by create_time desc limit 1
</select> </select>
<select id="getByClerkIdForWxUserId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO" parameterType="java.lang.String"> <select id="getByClerkIdForWxUserId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO"
parameterType="java.lang.String">
select select
a.staff_clerk_relation_id staffClerkRelationId, a.staff_clerk_relation_id staffClerkRelationId,
a.staff_id staffId, a.staff_id staffId,
...@@ -212,7 +213,7 @@ ...@@ -212,7 +213,7 @@
left join tab_haoban_staff b on b.staff_id = a.staff_id left join tab_haoban_staff b on b.staff_id = a.staff_id
where a.clerk_id = #{clerkId,jdbcType=VARCHAR} and a.status_flag=1 where a.clerk_id = #{clerkId,jdbcType=VARCHAR} and a.status_flag=1
</select> </select>
<select id="getByClerkIdNoStatus" resultMap="BaseResultMap" parameterType="java.lang.String"> <select id="getByClerkIdNoStatus" resultMap="BaseResultMap" parameterType="java.lang.String">
select select
...@@ -262,8 +263,8 @@ ...@@ -262,8 +263,8 @@
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR} where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag =1 and status_flag =1
</select> </select>
<select id="lisByStaffId" resultMap="BaseResultMap"> <select id="lisByStaffId" resultMap="BaseResultMap">
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation from tab_haoban_staff_clerk_relation
...@@ -271,15 +272,15 @@ ...@@ -271,15 +272,15 @@
wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR} wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and staff_id = #{staffId} and staff_id = #{staffId}
and status_flag = 1 and status_flag = 1
<if test="null != storeIdList"> <if test="null != storeIdList">
and store_id in and store_id in
<foreach collection="storeIdList" item="item" separator="," open="(" close=")"> <foreach collection="storeIdList" item="item" separator="," open="(" close=")">
#{item} #{item}
</foreach> </foreach>
</if> </if>
order by create_time desc order by create_time desc
</select> </select>
<select id="pageByWxEnterpriseId" resultMap="BaseResultMap"> <select id="pageByWxEnterpriseId" resultMap="BaseResultMap">
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
...@@ -287,7 +288,7 @@ ...@@ -287,7 +288,7 @@
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR} where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag =1 and status_flag =1
</select> </select>
<select id="listBindByStoreId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO"> <select id="listBindByStoreId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
select select
a.staff_clerk_relation_id staffClerkRelationId, a.staff_clerk_relation_id staffClerkRelationId,
...@@ -369,31 +370,31 @@ ...@@ -369,31 +370,31 @@
</select> </select>
<select id="listMemberStaffRelNew" resultType="com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO"> <select id="listMemberStaffRelNew" resultType="com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO">
select * from ( select * from (
select ecr.member_id as memberId, select ecr.member_id as memberId,
ecr.external_user_id as memberExternalUserId, ecr.external_user_id as memberExternalUserId,
scr.staff_id as staffId, scr.staff_id as staffId,
scr.clerk_id as staffClerkId scr.clerk_id as staffClerkId
from tab_haoban_external_clerk_related as ecr from tab_haoban_external_clerk_related as ecr
left join left join
(select b.staff_id, (select b.staff_id,
a.clerk_id a.clerk_id
from tab_haoban_staff_clerk_relation a from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on a.staff_id = b.staff_id and b.status_flag = 1 left join tab_haoban_staff b on a.staff_id = b.staff_id and b.status_flag = 1
where a.clerk_id in where a.clerk_id in
<foreach collection="clerkIdList" item="item" separator="," open="(" close=")"> <foreach collection="clerkIdList" item="item" separator="," open="(" close=")">
#{item} #{item}
</foreach> </foreach>
and a.status_flag = 1 and a.status_flag = 1
group by a.staff_id, a.clerk_id) as scr on scr.staff_id = ecr.staff_id group by a.staff_id, a.clerk_id) as scr on scr.staff_id = ecr.staff_id
where ecr.status_flag = 1 where ecr.status_flag = 1
and ecr.enterprise_id = #{enterpriseId,jdbcType=VARCHAR} and ecr.enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and ecr.wx_enterprise_id=#{wxEnterpriseId} and ecr.wx_enterprise_id=#{wxEnterpriseId}
and ecr.member_id in and ecr.member_id in
<foreach collection="memberIdList" item="item" separator="," open="(" close=")"> <foreach collection="memberIdList" item="item" separator="," open="(" close=")">
#{item} #{item}
</foreach> </foreach>
) t where t.staffId is not null ) t where t.staffId is not null
</select> </select>
...@@ -535,9 +536,9 @@ ...@@ -535,9 +536,9 @@
#{id,jdbcType=VARCHAR} #{id,jdbcType=VARCHAR}
</foreach> </foreach>
</select> </select>
<update id="deleteByEnterpriseId"> <update id="deleteByEnterpriseId">
update tab_haoban_staff_clerk_relation set status_flag = 0 , update_time=now() where enterprise_id = #{enterpriseId} update tab_haoban_staff_clerk_relation set status_flag = 0 , update_time=now() where enterprise_id = #{enterpriseId}
</update> </update>
</mapper> </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