Commit 3b9926c6 by 徐高华

Merge branch 'feature/五月二期' into 'developer'

好友查询

See merge request !1306
parents 4e9217cf 2b5a2950
package com.gic.haoban.manage.service.dao.mapper; package com.gic.haoban.manage.service.dao.mapper;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param; 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;
public interface TabHaobanExternalClerkRelatedMapper { public interface TabHaobanExternalClerkRelatedMapper {
int insertSelective(TabHaobanExternalClerkRelated record); int insertSelective(TabHaobanExternalClerkRelated record);
TabHaobanExternalClerkRelated selectByPrimaryKey(String externalClerkRelatedId); TabHaobanExternalClerkRelated selectByPrimaryKey(String externalClerkRelatedId);
int updateByPrimaryKeySelective(TabHaobanExternalClerkRelated record); int updateByPrimaryKeySelective(TabHaobanExternalClerkRelated record);
TabHaobanExternalClerkRelated selectByClerkIdAndExternalUserId(@Param("clerkId") String clerkId, TabHaobanExternalClerkRelated selectByClerkIdAndExternalUserId(@Param("clerkId") String clerkId,
@Param("externalUserId") String externalUserId); @Param("externalUserId") String externalUserId);
int delByUserIdAndExternalUserId(@Param("externalUserId") String externalUserId , @Param("staffId") String staffId); int delByUserIdAndExternalUserId(@Param("externalUserId") String externalUserId , @Param("staffId") String staffId);
void delByUserIdAndExternalUserIdBatch(@Param("staffId") String staffId, void delByUserIdAndExternalUserIdBatch(@Param("staffId") String staffId,
@Param("wxEnterpriseId") String wxEnterpriseId, @Param("wxEnterpriseId") String wxEnterpriseId,
@Param("externalUserIds") List<String> externalUserIds); @Param("externalUserIds") List<String> externalUserIds);
void delByClerkIdAndStaffId(@Param("clerkId") String clerkId, @Param("staffId") String staffId); void delByClerkIdAndStaffId(@Param("clerkId") String clerkId, @Param("staffId") String staffId);
void delByStoreIdAndStaffId(@Param("storeId") String storeId, @Param("staffId") String staffId); void delByStoreIdAndStaffId(@Param("storeId") String storeId, @Param("staffId") String staffId);
int delByStoreIds(@Param("storeIds") Collection<String> storeIds); int delByStoreIds(@Param("storeIds") Collection<String> storeIds);
void cleanStaffRelated(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffIds") List<String> staffIds); void cleanStaffRelated(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffIds") List<String> staffIds);
List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserId(@Param("externalUserid") String externalUserid, List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserId(@Param("externalUserid") String externalUserid,
@Param("staffId") String staffId, @Param("staffId") String staffId,
@Param("statusFlag") Integer statusFlag); @Param("statusFlag") Integer statusFlag);
/** /**
* 查询该会员该企业下的好友关系 * 查询该会员该企业下的好友关系
* *
* @param externalUserid 外部用户标识 * @param externalUserid 外部用户标识
* @param wxEnterpriseId wx企业标识 * @param wxEnterpriseId wx企业标识
* @param statusFlags 状态标志 * @param statusFlags 状态标志
* @return {@link List<TabHaobanExternalClerkRelated> } * @return {@link List<TabHaobanExternalClerkRelated> }
* @author mozhu * @author mozhu
* @date 2022-02-10 10:11:21 * @date 2022-02-10 10:11:21
*/ */
List<TabHaobanExternalClerkRelated> listByExternalUseridAndWxEnterpriseId(@Param("externalUserid") String externalUserid, List<TabHaobanExternalClerkRelated> listByExternalUseridAndWxEnterpriseId(@Param("externalUserid") String externalUserid,
@Param("wxEnterpriseId") String wxEnterpriseId, @Param("wxEnterpriseId") String wxEnterpriseId,
@Param("statusFlags") List<String> statusFlags); @Param("statusFlags") List<String> statusFlags);
List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserIdAllStatus(@Param("wxEnterpriseId") String wxEnterpriseId, List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserIdAllStatus(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("externalUserid") String externalUserid, @Param("externalUserid") String externalUserid,
@Param("staffId") String staffId); @Param("staffId") String staffId);
List<TabHaobanExternalClerkRelated> listByEnterpriseIdAndDate(@Param("enterpriseId") String enterpriseId, List<TabHaobanExternalClerkRelated> listByEnterpriseIdAndDate(@Param("enterpriseId") String enterpriseId,
@Param("date") Date date); @Param("date") Date date);
Page<TabHaobanExternalClerkRelated> pageMemberUnionByParams(@Param("staffIdList") List<String> staffIdList, Page<TabHaobanExternalClerkRelated> pageMemberUnionByParams(@Param("staffIdList") List<String> staffIdList,
@Param("sendMemberIds") List<String> sendMemberIds, @Param("sendMemberIds") List<String> sendMemberIds,
@Param("enterpriseId") String enterpriseId); @Param("enterpriseId") String enterpriseId);
List<TabHaobanExternalClerkRelated> listByWxEnterpriseIdAndWxUserId(@Param("staffId") String staffId, List<TabHaobanExternalClerkRelated> listByWxEnterpriseIdAndWxUserId(@Param("staffId") String staffId,
@Param("wxEnterpriseId") String wxEnterpriseId); @Param("wxEnterpriseId") String wxEnterpriseId);
List<TabHaobanExternalClerkRelated> listByWxEnterpriseIdAndWxUserIds(@Param("staffIdList") List<String> staffIdList, List<TabHaobanExternalClerkRelated> listByWxEnterpriseIdAndWxUserIds(@Param("staffIdList") List<String> staffIdList,
@Param("wxEnterpriseId") String wxEnterpriseId); @Param("wxEnterpriseId") String wxEnterpriseId);
TabHaobanExternalClerkRelated getByMemberId(@Param("staffId") String staffId, @Param("memberId") String memberId); TabHaobanExternalClerkRelated getByMemberId(@Param("staffId") String staffId, @Param("memberId") String memberId);
/** /**
* 外部联系人的unionid * 外部联系人的unionid
* *
* @param enterpriseId * @param enterpriseId
* @param unionId * @param unionId
* @return * @return
*/ */
List<TabHaobanExternalClerkRelated> listExternalByUnionId(@Param("enterpriseId") String enterpriseId, List<TabHaobanExternalClerkRelated> listExternalByUnionId(@Param("enterpriseId") String enterpriseId,
@Param("unionId") String unionId); @Param("unionId") String unionId);
/** /**
* @param relationKey * @param relationKey
* @return * @return
*/ */
TabHaobanExternalClerkRelated getByRelationKey(@Param("relationKey") String relationKey , @Param("filterMember")int filterMember); TabHaobanExternalClerkRelated getByRelationKey(@Param("relationKey") String relationKey , @Param("filterMember")int filterMember);
/** /**
* 列表数据 根据状态 时间倒序 * 列表数据 根据状态 时间倒序
* *
* @param wxEnterpriseId * @param wxEnterpriseId
* @param staffId * @param staffId
* @param statusFlags * @param statusFlags
* @return * @return
*/ */
List<TabHaobanExternalClerkRelated> listByWxEnterpriseIdAndWxUserIdAndStatus(@Param("wxEnterpriseId") String wxEnterpriseId, List<TabHaobanExternalClerkRelated> listByWxEnterpriseIdAndWxUserIdAndStatus(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId, @Param("staffId") String staffId,
@Param("statusFlags") List<Integer> statusFlags); @Param("statusFlags") List<Integer> statusFlags);
/** /**
* 触达会员 给会员发送 * 触达会员 给会员发送
* *
* @param relationKey * @param relationKey
* @return * @return
*/ */
int pushExternalByRelationKey(@Param("relationKey") String relationKey); int pushExternalByRelationKey(@Param("relationKey") String relationKey);
/** /**
* 获取企业下的关联关系列表 * 获取企业下的关联关系列表
* *
* @param wxEnterpriseId * @param wxEnterpriseId
* @param wxUserId * @param wxUserId
* @param enterpriseId * @param enterpriseId
* @param externalUserId * @param externalUserId
* @return * @return
*/ */
TabHaobanExternalClerkRelated getExternalClerkByWxUserIdAncExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId, TabHaobanExternalClerkRelated getExternalClerkByWxUserIdAncExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId, @Param("staffId") String staffId,
@Param("enterpriseId") String enterpriseId, @Param("enterpriseId") String enterpriseId,
@Param("externalUserId") String externalUserId); @Param("externalUserId") String externalUserId);
/** TabHaobanExternalClerkRelated getExternalClerkByWxUserIdAncExternalUserIdSelf(@Param("wxEnterpriseId") String wxEnterpriseId,
* 查询会员在企业下的好友关系 @Param("staffId") String staffId,
* @Param("enterpriseId") String enterpriseId,
* @param memberId @Param("externalUserId") String externalUserId);
* @param wxEnterpriseId
* @param enterpriseId /**
* @return * 查询会员在企业下的好友关系
*/ *
List<TabHaobanExternalClerkRelated> listByMemberIdAndWxEnterpriseId(@Param("memberId") String memberId, * @param memberId
@Param("wxEnterpriseId") String wxEnterpriseId, * @param wxEnterpriseId
@Param("enterpriseId") String enterpriseId); * @param enterpriseId
* @return
/** */
* 查询会员在企业下的好友关系 List<TabHaobanExternalClerkRelated> listByMemberIdAndWxEnterpriseId(@Param("memberId") String memberId,
* @Param("wxEnterpriseId") String wxEnterpriseId,
* @param memberId @Param("enterpriseId") String enterpriseId);
* @param wxEnterpriseId
* @param enterpriseId /**
* @return * 查询会员在企业下的好友关系
*/ *
List<ExternalClerkRelatedDTO> listByMemberIdList(@Param("memberIdList") List<String> memberIdList, * @param memberId
@Param("wxEnterpriseId") String wxEnterpriseId, * @param wxEnterpriseId
@Param("enterpriseId") String enterpriseId); * @param enterpriseId
* @return
/** */
* 获取最新的最近的外部联系人 List<ExternalClerkRelatedDTO> listByMemberIdList(@Param("memberIdList") List<String> memberIdList,
* @Param("wxEnterpriseId") String wxEnterpriseId,
* @param externalUserid @Param("enterpriseId") String enterpriseId);
* @param wxUserId
* @return /**
*/ * 获取最新的最近的外部联系人
TabHaobanExternalClerkRelated getLastByExTernalUseridAndWxUserIdNoStatus(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("externalUserid") String externalUserid, @Param("staffId") String staffId); *
* @param externalUserid
/** * @param wxUserId
* 根据id 查询列表 * @return
* */
* @param wxEnterpriseId TabHaobanExternalClerkRelated getLastByExTernalUseridAndWxUserIdNoStatus(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("externalUserid") String externalUserid, @Param("staffId") String staffId);
* @param ids
* @return /**
*/ * 根据id 查询列表
List<TabHaobanExternalClerkRelated> listByIds(@Param("wxEnterpriseId") String wxEnterpriseId, *
@Param("ids") List<String> ids); * @param wxEnterpriseId
* @param ids
/** * @return
* 根据企业id 查询列表 */
* List<TabHaobanExternalClerkRelated> listByIds(@Param("wxEnterpriseId") String wxEnterpriseId,
* @param wxEnterpriseId @Param("ids") List<String> ids);
* @return
*/ /**
List<String> listMemberIdByEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId, * 根据企业id 查询列表
@Param("enterpriseId") String enterpriseId); *
* @param wxEnterpriseId
* @return
/** */
* 查询会员在企业下的好友关系memberIds 根据会员ids List<String> listMemberIdByEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
* @Param("enterpriseId") String enterpriseId);
* @param memberIds
* @param wxEnterpriseId
* @return /**
*/ * 查询会员在企业下的好友关系memberIds 根据会员ids
List<String> listMemberIdsByMemberIds(@Param("memberIds") List<String> memberIds, *
@Param("wxEnterpriseId") String wxEnterpriseId); * @param memberIds
* @param wxEnterpriseId
/** * @return
* 查询会员在企业下的好友关系 根据会员id */
* List<String> listMemberIdsByMemberIds(@Param("memberIds") List<String> memberIds,
* @param memberId @Param("wxEnterpriseId") String wxEnterpriseId);
* @param enterpriseId
* @return /**
*/ * 查询会员在企业下的好友关系 根据会员id
List<TabHaobanExternalClerkRelated> listByMemberId(@Param("memberId") String memberId, *
@Param("enterpriseId") String enterpriseId); * @param memberId
* @param enterpriseId
/** * @return
* 通过会员id查询门店id */
* List<TabHaobanExternalClerkRelated> listByMemberId(@Param("memberId") String memberId,
* @param memberId 成员身份 @Param("enterpriseId") String enterpriseId);
* @return {@link List }<{@link String }>
* @author mozhu /**
* @date 2022-07-06 14:40:15 * 通过会员id查询门店id
*/ *
List<String> listStoreIdByMemberId(@Param("memberId") String memberId); * @param memberId 成员身份
* @return {@link List }<{@link String }>
/** * @author mozhu
* 查询会员在企业下的好友关系 根据会员id * @date 2022-07-06 14:40:15
* */
* @param wxEnterpriseId List<String> listStoreIdByMemberId(@Param("memberId") String memberId);
* @return
*/ /**
List<TabHaobanExternalClerkRelated> listByExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId, * 查询会员在企业下的好友关系 根据会员id
@Param("externalUserId") String externalUserId); *
* @param wxEnterpriseId
/** * @return
* 根据会员id更新新老会员id */
* List<TabHaobanExternalClerkRelated> listByExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId,
* @param memberId @Param("externalUserId") String externalUserId);
* @param oldMemberId 老会员id
* @param enterpriseId 企业标识 /**
* @return int * 根据会员id更新新老会员id
* @author mozhu *
* @date 2022-03-24 10:28:40 * @param memberId
*/ * @param oldMemberId 老会员id
int updateMemberIdByMemberId(@Param("memberId") String memberId, * @param enterpriseId 企业标识
@Param("oldMemberId") String oldMemberId, * @return int
@Param("enterpriseId") String enterpriseId); * @author mozhu
* @date 2022-03-24 10:28:40
/** */
* 更新状态通过会员id int updateMemberIdByMemberId(@Param("memberId") String memberId,
* @Param("oldMemberId") String oldMemberId,
* @param memberId 会员ID @Param("enterpriseId") String enterpriseId);
* @param enterpriseId 企业id
* @return int /**
* @author mozhu * 更新状态通过会员id
* @date 2021-09-13 16:59:49 *
*/ * @param memberId 会员ID
int updateStatusByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId); * @param enterpriseId 企业id
* @return int
* @author mozhu
/** * @date 2021-09-13 16:59:49
* 通过会员id和员工id查询数据 */
* int updateStatusByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId);
* @param staffId 员工id
* @param enterpriseId 企业标识
* @param memberId 会员ID /**
* @return {@link TabHaobanExternalClerkRelated } * 通过会员id和员工id查询数据
* @author mozhu *
* @date 2021-10-21 10:41:28 * @param staffId 员工id
*/ * @param enterpriseId 企业标识
TabHaobanExternalClerkRelated getByMemberIdAndStaffId(@Param("staffId") String staffId, * @param memberId 会员ID
@Param("enterpriseId") String enterpriseId, * @return {@link TabHaobanExternalClerkRelated }
@Param("memberId") String memberId); * @author mozhu
* @date 2021-10-21 10:41:28
TabHaobanExternalClerkRelated getByUnionIdAndStaffId(@Param("staffId") String staffId, */
@Param("enterpriseId") String enterpriseId, TabHaobanExternalClerkRelated getByMemberIdAndStaffId(@Param("staffId") String staffId,
@Param("unionId") String unionId); @Param("enterpriseId") String enterpriseId,
@Param("memberId") String memberId);
/**
* 根据企业id分页 TabHaobanExternalClerkRelated getByUnionIdAndStaffId(@Param("staffId") String staffId,
* @Param("enterpriseId") String enterpriseId,
* @param wxEnterpriseId 企业标识 @Param("unionId") String unionId);
* @return {@link List<TabHaobanExternalClerkRelated> }
* @author mozhu /**
* @date 2021-12-13 14:59:03 * 根据企业id分页
*/ *
List<TabHaobanExternalClerkRelated> pageExternalByEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId); * @param wxEnterpriseId 企业标识
* @return {@link List<TabHaobanExternalClerkRelated> }
/** * @author mozhu
* 更新外部用户id的老外部用户id * @date 2021-12-13 14:59:03
* */
* @param newExternalUserId 外部用户id List<TabHaobanExternalClerkRelated> pageExternalByEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
* @param oldExternalUserId 旧的外部用户id
* @param wxEnterpriseId wx企业标识 /**
* @return int * 更新外部用户id的老外部用户id
* @author mozhu *
* @date 2021-12-13 15:33:41 * @param newExternalUserId 外部用户id
*/ * @param oldExternalUserId 旧的外部用户id
int updateExternalUserIdByOldExternalUserId(@Param("newExternalUserId") String newExternalUserId, * @param wxEnterpriseId wx企业标识
@Param("oldExternalUserId") String oldExternalUserId, * @return int
@Param("wxEnterpriseId") String wxEnterpriseId); * @author mozhu
* @date 2021-12-13 15:33:41
/** */
* 获取好友数量 int updateExternalUserIdByOldExternalUserId(@Param("newExternalUserId") String newExternalUserId,
* @Param("oldExternalUserId") String oldExternalUserId,
* @param wxEnterpriseId 企业id @Param("wxEnterpriseId") String wxEnterpriseId);
* @param enterpriseId 商户id
* @param staffId 企业微信导购账号 /**
* @param clerkId 导购id * 获取好友数量
* @return *
*/ * @param wxEnterpriseId 企业id
int countByClerkId(@Param("wxEnterpriseId") String wxEnterpriseId, * @param enterpriseId 商户id
@Param("enterpriseId") String enterpriseId, * @param staffId 企业微信导购账号
@Param("staffId") String staffId, * @param clerkId 导购id
@Param("clerkId") String clerkId); * @return
*/
/** int countByClerkId(@Param("wxEnterpriseId") String wxEnterpriseId,
* 客户好友需触达列表 @Param("enterpriseId") String enterpriseId,
*/ @Param("staffId") String staffId,
TabHaobanExternalClerkRelated getByEnterpriseIdAndExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffId") String staffId, @Param("clerkId") String clerkId);
@Param("enterpriseId") String enterpriseId, @Param("externalUserId") String externalUserId);
/**
* 客户好友需触达列表
/** */
* 查询所有好友关系 TabHaobanExternalClerkRelated getByEnterpriseIdAndExternalUserId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffId") String staffId,
* @Param("enterpriseId") String enterpriseId, @Param("externalUserId") String externalUserId);
* @param wxEnterpriseId wx企业标识
* @param staffId wx用户id
* @return {@link List}<{@link TabHaobanExternalClerkRelated}> /**
*/ * 查询所有好友关系
List<TabHaobanExternalClerkRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId, *
@Param("staffId") String staffId); * @param wxEnterpriseId wx企业标识
* @param staffId wx用户id
* @return {@link List}<{@link TabHaobanExternalClerkRelated}>
/** */
* 根据staffId和会员unionid进行查询数据 List<TabHaobanExternalClerkRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
*/ @Param("staffId") String staffId);
TabHaobanExternalClerkRelated getByWxEnterpriseIdAndUnionId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId,
@Param("unionid") String unionid); /**
* 根据staffId和会员unionid进行查询数据
*/
/** TabHaobanExternalClerkRelated getByWxEnterpriseIdAndUnionId(@Param("wxEnterpriseId") String wxEnterpriseId,
* 查询最新的会员好友 @Param("staffId") String staffId,
* @Param("unionid") String unionid);
* @param enterpriseId 企业标识
* @param memberId 成员身份
* @param statusFlag 状态标志 /**
* @return {@link TabHaobanExternalClerkRelated } * 查询最新的会员好友
* @author mozhu *
* @date 2022-04-15 17:12:38 * @param enterpriseId 企业标识
*/ * @param memberId 成员身份
TabHaobanExternalClerkRelated getByEnterpriseIdAndMemberId(@Param("enterpriseId") String enterpriseId, * @param statusFlag 状态标志
@Param("memberId") String memberId, * @return {@link TabHaobanExternalClerkRelated }
@Param("statusFlag") Integer statusFlag); * @author mozhu
* @date 2022-04-15 17:12:38
/** */
* 会员好友数量 TabHaobanExternalClerkRelated getByEnterpriseIdAndMemberId(@Param("enterpriseId") String enterpriseId,
* @Param("memberId") String memberId,
* @param memberId 成员身份 @Param("statusFlag") Integer statusFlag);
* @param enterpriseId 企业标识
* @return int /**
* @author mozhu * 会员好友数量
* @date 2022-04-21 10:06:21 *
*/ * @param memberId 成员身份
int countByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId); * @param enterpriseId 企业标识
* @return int
List<String> getIdList(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId) ; * @author mozhu
* @date 2022-04-21 10:06:21
void updateMemberByIdList(@Param("memberId") String memberId, @Param("list") List<String> idList) ; */
int countByMemberId(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId);
List<TabHaobanExternalClerkRelated> listPageByWxenterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("startItem") int startItem, @Param("pageSize") int pageSize ,@Param("type") int type); List<String> getIdList(@Param("memberId") String memberId, @Param("enterpriseId") String enterpriseId) ;
void updateMemberByIdList(@Param("memberId") String memberId, @Param("list") List<String> idList) ;
/**
* 获取所有的好友会员id List<TabHaobanExternalClerkRelated> listPageByWxenterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
* @Param("startItem") int startItem, @Param("pageSize") int pageSize ,@Param("type") int type);
* @param storeId 存储id
* @param staffId 员工id
* @return {@link List}<{@link String}> /**
*/ * 获取所有的好友会员id
List<String> getByStoreIdAndStaffId(@Param("storeId") String storeId, *
@Param("staffId") String staffId); * @param storeId 存储id
* @param staffId 员工id
List<String> listMemberAndClerk(@Param("memberIdList")List<String> memberIdList, @Param("clerkIdList")List<String> clerkIdList, @Param("enterpriseId")String enterpriseId); * @return {@link List}<{@link String}>
*/
int getCountExternalClerk(@Param("wxEnterpriseId") String wxEnterpriseId, List<String> getByStoreIdAndStaffId(@Param("storeId") String storeId,
@Param("staffId") String staffId, @Param("staffId") String staffId);
@Param("statusFlags") List<Integer> statusFlags);
List<String> listMemberAndClerk(@Param("memberIdList")List<String> memberIdList, @Param("clerkIdList")List<String> clerkIdList, @Param("enterpriseId")String enterpriseId);
int getCountByMemberId(@Param("memberId") String memberId);
int getCountExternalClerk(@Param("wxEnterpriseId") String wxEnterpriseId,
void updateClerkInfo(@Param("staffId")String staffId, @Param("oldClerkId")String oldClerkId, @Param("newClerkId")String newClerkId, @Param("storeId")String storeId); @Param("staffId") String staffId,
@Param("statusFlags") List<Integer> statusFlags);
List<String> listByClerkId(@Param("staffId")String staffId, @Param("clerkId")String clerkId) ;
int getCountByMemberId(@Param("memberId") String memberId);
int updateExternalStatus(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("externalUserid")String externalUserid, @Param("status")int status);
void updateClerkInfo(@Param("staffId")String staffId, @Param("oldClerkId")String oldClerkId, @Param("newClerkId")String newClerkId, @Param("storeId")String storeId);
/**
* 通过第三方或者待开发查询是否好友 List<String> listByClerkId(@Param("staffId")String staffId, @Param("clerkId")String clerkId) ;
*/
TabHaobanExternalClerkRelated getMemberForExternalId(@Param("wxEnterpriseId") String wxEnterpriseId, int updateExternalStatus(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("externalUserid")String externalUserid, @Param("status")int status);
@Param("externalUserId") String externalUserId);
/**
List<String> listMemberAndStaff(@Param("memberIdList")List<String> memberIdList, @Param("staffId")String staffId, @Param("enterpriseId")String enterpriseId); * 通过第三方或者待开发查询是否好友
*/
/** TabHaobanExternalClerkRelated getMemberForExternalId(@Param("wxEnterpriseId") String wxEnterpriseId,
* 查询成员的好友列表 @Param("externalUserId") String externalUserId);
*/
List<String> queryExternalUserIdWithStaffId(@Param("staffId") String staffId); List<String> listMemberAndStaff(@Param("memberIdList")List<String> memberIdList, @Param("staffId")String staffId, @Param("enterpriseId")String enterpriseId);
/**
/** * 查询成员的好友列表
* 查询会员与导购的好友关系 */
* @param staffId List<String> queryExternalUserIdWithStaffId(@Param("staffId") String staffId);
* @param memberIds
* @return
*/ /**
List<TabHaobanExternalClerkRelated> queryClerkMemberRelations(@Param("staffId") String staffId, @Param("memberIds") List<String> memberIds); * 查询会员与导购的好友关系
* @param staffId
/** * @param memberIds
* 查询企业微信下面 外部联系人是null的所有成员 * @return
* @param wxEnterpriseId */
* @param enterpriseIdList List<TabHaobanExternalClerkRelated> queryClerkMemberRelations(@Param("staffId") String staffId, @Param("memberIds") List<String> memberIds);
* @return
*/ /**
List<String> listByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseIdList") List<String> enterpriseIdList); * 查询企业微信下面 外部联系人是null的所有成员
* @param wxEnterpriseId
/** * @param enterpriseIdList
* 删除企业微信下面,所有外部联系人是null的成员 * @return
* @param wxEnterpriseId */
* @param enterpriseIdList List<String> listByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseIdList") List<String> enterpriseIdList);
*/
void deleteByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseIdList") List<String> enterpriseIdList); /**
* 删除企业微信下面,所有外部联系人是null的成员
* @param wxEnterpriseId
* @param enterpriseIdList
*/
void deleteByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("enterpriseIdList") List<String> enterpriseIdList);
} }
\ No newline at end of file
package com.gic.haoban.manage.service.service.out.impl; package com.gic.haoban.manage.service.service.out.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.dto.SubscribeMessageDTO; import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO; import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService; import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.dubbo.entity.ProviderLocalTag; import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.enterprise.api.dto.StoreDTO; import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService; import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.app.customer.enums.GicQywxSyncTypeEnum; import com.gic.haoban.app.customer.enums.GicQywxSyncTypeEnum;
import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum; import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum;
import com.gic.haoban.base.api.common.BasePageInfo; import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.base.api.common.errCode.HaoBanErrCodeCommon; import com.gic.haoban.base.api.common.errCode.HaoBanErrCodeCommon;
import com.gic.haoban.common.utils.PageUtil; import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*; import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.AlertTypeEnum; import com.gic.haoban.manage.api.enums.AlertTypeEnum;
import com.gic.haoban.manage.api.enums.SyncTaskTypeEnum; import com.gic.haoban.manage.api.enums.SyncTaskTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService; import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
import com.gic.haoban.manage.api.service.DealSyncOperationApiService; import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService; import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService; import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.service.config.Config; import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.*; import com.gic.haoban.manage.service.dao.mapper.*;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated; import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise; import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO; import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo; import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.haoban.manage.service.service.WxEnterpriseService; import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService; import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO; import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO; import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO; import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberApiService; import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberEntranceApiService; import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient; import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
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;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.redisson.api.RRateLimiter; import org.redisson.api.RRateLimiter;
import org.redisson.api.RateIntervalUnit; import org.redisson.api.RateIntervalUnit;
import org.redisson.api.RateType; import org.redisson.api.RateType;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService { public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService {
private static final Logger log = LogManager.getLogger(ExternalClerkRelatedApiServiceImpl.class); private static final Logger log = LogManager.getLogger(ExternalClerkRelatedApiServiceImpl.class);
@Autowired @Autowired
private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper; private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper;
@Autowired @Autowired
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper; private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired @Autowired
private WxEnterpriseMapper wxEnterriseMapper; private WxEnterpriseMapper wxEnterriseMapper;
@Autowired @Autowired
private QywxUserApiService qywxUserApiService; private QywxUserApiService qywxUserApiService;
@Autowired @Autowired
private Config config; private Config config;
@Autowired @Autowired
private ExternalUseridLogMapper externalUseridLogMapper; private ExternalUseridLogMapper externalUseridLogMapper;
@Autowired @Autowired
private CheckQywxSettingApiService checkQywxSettingApiService; private CheckQywxSettingApiService checkQywxSettingApiService;
@Autowired @Autowired
private WxEnterpriseApiService wxEnterpriseApiService; private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired @Autowired
private MemberApiService memberApiService; private MemberApiService memberApiService;
@Autowired @Autowired
private WxUserAddLogService wxUserAddLogService; private WxUserAddLogService wxUserAddLogService;
@Autowired @Autowired
private WxEnterpriseService wxEnterpriseService; private WxEnterpriseService wxEnterpriseService;
@Autowired @Autowired
private DealSyncOperationApiService dealSyncOperationApiService; private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired @Autowired
private MemberEntranceApiService memberEntranceApiService; private MemberEntranceApiService memberEntranceApiService;
@Autowired @Autowired
private StoreService storeService; private StoreService storeService;
@Autowired @Autowired
private ClerkService clerkService; private ClerkService clerkService;
@Autowired @Autowired
private MemberService memberService; private MemberService memberService;
/** /**
* 查询会员在企业下的好友关系 * 查询会员在企业下的好友关系
* *
* @param memberId : 会员id * @param memberId : 会员id
* @param wxEnterpriseId : 微信企业id * @param wxEnterpriseId : 微信企业id
* @param enterpriseId : 企业id * @param enterpriseId : 企业id
* @return : 返回会员导购关联关系 * @return : 返回会员导购关联关系
*/ */
@Override @Override
public List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId) { public List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdAndWxEnterpriseId(memberId, wxEnterpriseId, enterpriseId); List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdAndWxEnterpriseId(memberId, wxEnterpriseId, enterpriseId);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list); return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list);
} }
@Override @Override
public List<ExternalClerkRelatedDTO> listByMemberIdList(List<String> memberIdList, String wxEnterpriseId, public List<ExternalClerkRelatedDTO> listByMemberIdList(List<String> memberIdList, String wxEnterpriseId,
String enterpriseId) { String enterpriseId) {
List<ExternalClerkRelatedDTO> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdList(memberIdList, wxEnterpriseId, enterpriseId); List<ExternalClerkRelatedDTO> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdList(memberIdList, wxEnterpriseId, enterpriseId);
return list; return list;
} }
@Override @Override
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String staffId, String wxEnterpriseId) { public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String staffId, String wxEnterpriseId) {
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserId(staffId, wxEnterpriseId)); return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserId(staffId, wxEnterpriseId));
} }
@Override @Override
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> staffIdList, String wxEnterpriseId) { public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> staffIdList, String wxEnterpriseId) {
if (CollectionUtils.isEmpty(staffIdList)) { if (CollectionUtils.isEmpty(staffIdList)) {
return Collections.emptyList(); return Collections.emptyList();
} }
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIds(staffIdList, wxEnterpriseId)); return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIds(staffIdList, wxEnterpriseId));
} }
@Override @Override
public ExternalClerkRelatedDTO getExternalClerkByRelationKeyAndPre(String relationKey) { public ExternalClerkRelatedDTO getExternalClerkByRelationKeyAndPre(String relationKey) {
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey,0); TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey,0);
return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, related); return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, related);
} }
@Override @Override
public Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags, BasePageInfo pageInfo) { public Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo); PageHelper.startPage(pageInfo);
List<TabHaobanExternalClerkRelated> ret = tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIdAndStatus(wxEnterpriseId, staffId, statusFlags); List<TabHaobanExternalClerkRelated> ret = tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIdAndStatus(wxEnterpriseId, staffId, statusFlags);
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(ret), ExternalClerkRelatedDTO.class); return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(ret), ExternalClerkRelatedDTO.class);
} }
@Override @Override
public boolean pushExternalByRelationKey(String relationKey) { public boolean pushExternalByRelationKey(String relationKey) {
tabHaobanExternalClerkRelatedMapper.pushExternalByRelationKey(relationKey); tabHaobanExternalClerkRelatedMapper.pushExternalByRelationKey(relationKey);
return true; return true;
} }
@Override @Override
public List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate( public List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(
String enterpriseId, Date date) { String enterpriseId, Date date) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByEnterpriseIdAndDate(enterpriseId, date); List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByEnterpriseIdAndDate(enterpriseId, date);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list); return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list);
} }
@Override @Override
public Page<ExternalClerkRelatedDTO> pageMemberUnionByParams(List<String> userIdList, List<String> sendMemberIds, public Page<ExternalClerkRelatedDTO> pageMemberUnionByParams(List<String> userIdList, List<String> sendMemberIds,
String enterpriseId, BasePageInfo pageInfo) { String enterpriseId, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize()); PageHelper.startPage(pageInfo.getPageNum(), pageInfo.getPageSize());
return PageUtil.changePageHelperToCurrentPage(tabHaobanExternalClerkRelatedMapper.pageMemberUnionByParams(userIdList, sendMemberIds, enterpriseId), ExternalClerkRelatedDTO.class); return PageUtil.changePageHelperToCurrentPage(tabHaobanExternalClerkRelatedMapper.pageMemberUnionByParams(userIdList, sendMemberIds, enterpriseId), ExternalClerkRelatedDTO.class);
} }
@Override @Override
public ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid) { public ServiceResponse<ExternalClerkRelatedDTO> bindMemberIdExternalByRelationKey(String relationKey, String enterpriseId, String memberId, String unionid) {
ServiceResponse<ExternalClerkRelatedDTO> resp = new ServiceResponse<>(); ServiceResponse<ExternalClerkRelatedDTO> resp = new ServiceResponse<>();
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey,1); TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByRelationKey(relationKey,1);
if (null == externalClerkRelated) { if (null == externalClerkRelated) {
log.error("relationKey对应的关联关系不存在或删除:relationKey:{},memberId:{},unionid:{}", relationKey, memberId, unionid); log.error("relationKey对应的关联关系不存在或删除:relationKey:{},memberId:{},unionid:{}", relationKey, memberId, unionid);
resp.setCode(0); resp.setCode(0);
resp.setMessage("relationKey对应的关联关系不存在或删除"); resp.setMessage("relationKey对应的关联关系不存在或删除");
return resp; return resp;
} }
if (!externalClerkRelated.getEnterpriseId().equals(enterpriseId)) { if (!externalClerkRelated.getEnterpriseId().equals(enterpriseId)) {
log.error("relationKey对应的企业与所传会员企业不对应:relationKey:{},memberId:{},unionid:{}", relationKey, memberId, unionid); log.error("relationKey对应的企业与所传会员企业不对应:relationKey:{},memberId:{},unionid:{}", relationKey, memberId, unionid);
resp.setCode(0); resp.setCode(0);
resp.setMessage("relationKey对应的企业与所传会员企业不对应"); resp.setMessage("relationKey对应的企业与所传会员企业不对应");
return resp; return resp;
} }
updateExternalClerkRelated(enterpriseId, memberId, unionid, externalClerkRelated); updateExternalClerkRelated(enterpriseId, memberId, unionid, externalClerkRelated);
resp.setResult(EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated)); resp.setResult(EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated));
return resp; return resp;
} }
@Override @Override
public boolean bindMemberIdExternalById(String externalClerkRelatedId, String enterpriseId, String memberId, String unionid) { public boolean bindMemberIdExternalById(String externalClerkRelatedId, String enterpriseId, String memberId, String unionid) {
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.selectByPrimaryKey(externalClerkRelatedId); TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.selectByPrimaryKey(externalClerkRelatedId);
if (externalClerkRelated == null) { if (externalClerkRelated == null) {
log.error("查询好办与gic数据为空,externalClerkRelatedId:{},enterpriseId:{},memberId:{},unionid:{}", externalClerkRelatedId, enterpriseId, memberId, unionid); log.error("查询好办与gic数据为空,externalClerkRelatedId:{},enterpriseId:{},memberId:{},unionid:{}", externalClerkRelatedId, enterpriseId, memberId, unionid);
return false; return false;
} }
updateExternalClerkRelated(enterpriseId, memberId, unionid, externalClerkRelated); updateExternalClerkRelated(enterpriseId, memberId, unionid, externalClerkRelated);
return true; return true;
} }
/** /**
* 更新好友关系 * 更新好友关系
* *
* @param enterpriseId * @param enterpriseId
* @param memberId * @param memberId
* @param unionid * @param unionid
* @param externalClerkRelated * @param externalClerkRelated
*/ */
private void updateExternalClerkRelated(String enterpriseId, String memberId, String unionid, TabHaobanExternalClerkRelated externalClerkRelated) { private void updateExternalClerkRelated(String enterpriseId, String memberId, String unionid, TabHaobanExternalClerkRelated externalClerkRelated) {
externalClerkRelated.setMemberId(memberId); externalClerkRelated.setMemberId(memberId);
externalClerkRelated.setUnionid(unionid); externalClerkRelated.setUnionid(unionid);
externalClerkRelated.setUpdateTime(new Date()); externalClerkRelated.setUpdateTime(new Date());
externalClerkRelated.setStatusFlag(1); externalClerkRelated.setStatusFlag(1);
tabHaobanExternalClerkRelatedMapper.updateByPrimaryKeySelective(externalClerkRelated); tabHaobanExternalClerkRelatedMapper.updateByPrimaryKeySelective(externalClerkRelated);
String wxEnterpriseId = externalClerkRelated.getWxEnterpriseId(); String wxEnterpriseId = externalClerkRelated.getWxEnterpriseId();
//同步标签 //同步标签
pushTagSync(memberId, wxEnterpriseId, enterpriseId); pushTagSync(memberId, wxEnterpriseId, enterpriseId);
//回调给会员,更新是否为企微好友 //回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId); log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制 //定制
addDelFriendEvent(unionid, externalClerkRelated.getClerkId(), wxEnterpriseId, enterpriseId, memberId, externalClerkRelated.getStoreId(), 1); addDelFriendEvent(unionid, externalClerkRelated.getClerkId(), wxEnterpriseId, enterpriseId, memberId, externalClerkRelated.getStoreId(), 1);
//日志 //日志
wxUserAddLogService.updateMemberInfo(wxEnterpriseId, enterpriseId, externalClerkRelated.getStaffId(), externalClerkRelated.getExternalUserId(), memberId); wxUserAddLogService.updateMemberInfo(wxEnterpriseId, enterpriseId, externalClerkRelated.getStaffId(), externalClerkRelated.getExternalUserId(), memberId);
} }
/** /**
* 欧泊莱定制需求 * 欧泊莱定制需求
* *
* @param unionId * @param unionId
* @param clerkId * @param clerkId
* @param enterpriseId * @param enterpriseId
* @param memberId * @param memberId
* @param storeId * @param storeId
*/ */
private void addDelFriendEvent(String unionId, String clerkId, String wxEnterpriseId, String enterpriseId, String memberId, String storeId, Integer changeType) { private void addDelFriendEvent(String unionId, String clerkId, String wxEnterpriseId, String enterpriseId, String memberId, String storeId, Integer changeType) {
String addDelFriendEvent = config.getAddDelFriendEvent(); String addDelFriendEvent = config.getAddDelFriendEvent();
if (!addDelFriendEvent.contains(wxEnterpriseId)) { if (!addDelFriendEvent.contains(wxEnterpriseId)) {
log.info("非定制,无需广播通知"); log.info("非定制,无需广播通知");
return; return;
} }
if (StringUtils.isBlank(memberId)) { if (StringUtils.isBlank(memberId)) {
log.info("会员不存在:{}", memberId); log.info("会员不存在:{}", memberId);
return; return;
} }
log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType); log.info("欧泊莱定制:推送会员,memberId:{},changeType:{}", memberId, changeType);
//欧泊莱定制需求 //欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkIdNoStatus(clerkId); ClerkDTO clerkDTO = clerkService.getClerkByClerkIdNoStatus(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId); StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId); MemberDTO member = memberService.getMember(memberId);
if (member == null) { if (member == null) {
log.info("会员不存在:{}", memberId); log.info("会员不存在:{}", memberId);
return; return;
} }
GicMQClient clientInstance = GICMQClientUtil.getClientInstance(); GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try { try {
JSONObject msgBody = new JSONObject(); JSONObject msgBody = new JSONObject();
msgBody.put("cardNo", member.getCardNum()); msgBody.put("cardNo", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId); msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId); msgBody.put("unionid", unionId);
if (storeDTO != null) { if (storeDTO != null) {
msgBody.put("storeName", storeDTO.getStoreName()); msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode()); msgBody.put("storeCode", storeDTO.getStoreCode());
} }
if (clerkDTO != null) { if (clerkDTO != null) {
msgBody.put("clerkName", clerkDTO.getClerkName()); msgBody.put("clerkName", clerkDTO.getClerkName());
msgBody.put("clerkCode", clerkDTO.getClerkCode()); msgBody.put("clerkCode", clerkDTO.getClerkCode());
} }
msgBody.put("changeType", changeType); msgBody.put("changeType", changeType);
msgBody.put("addCreateTime", new Date()); msgBody.put("addCreateTime", new Date());
msgBody.put("delCreateTime", ""); msgBody.put("delCreateTime", "");
//获取渠道 //获取渠道
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId); MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) { if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) { for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) { if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode()); list.add(memberSourceDetailDTO.getParentSourceCode());
} }
} }
} }
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO(); SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent"); subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member"); subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId); subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId); subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list); subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString()); subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO)); clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) { } catch (Exception e) {
log.info("加好友事件订阅通知:{}", e.getMessage(), e); log.info("加好友事件订阅通知:{}", e.getMessage(), e);
} }
} }
/** /**
* 刷新标签信息 * 刷新标签信息
* *
* @param memberId * @param memberId
* @param wxEnterpriseId * @param wxEnterpriseId
* @param enterpriseId * @param enterpriseId
*/ */
private void pushTagSync(String memberId, String wxEnterpriseId, String enterpriseId) { private void pushTagSync(String memberId, String wxEnterpriseId, String enterpriseId) {
QywxTagSyncInfoPojo pojo = new QywxTagSyncInfoPojo(); QywxTagSyncInfoPojo pojo = new QywxTagSyncInfoPojo();
pojo.setDataId(memberId); pojo.setDataId(memberId);
pojo.setTaskId("-1"); pojo.setTaskId("-1");
pojo.setTaskType(QywxSyncTaskTypeEnum.MEMBER_SYNC.getType()); pojo.setTaskType(QywxSyncTaskTypeEnum.MEMBER_SYNC.getType());
//单个会员同步 //单个会员同步
pojo.setSyncType(GicQywxSyncTypeEnum.SINGLE_WXENT_MEMNER_SYNC.getType()); pojo.setSyncType(GicQywxSyncTypeEnum.SINGLE_WXENT_MEMNER_SYNC.getType());
pojo.setWxEnterpriseId(wxEnterpriseId); pojo.setWxEnterpriseId(wxEnterpriseId);
pojo.setEnterpriseId(enterpriseId); pojo.setEnterpriseId(enterpriseId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance(); GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try { try {
clientInstance.sendMessage("qywxTagSyncDeal", JSONObject.toJSONString(pojo)); clientInstance.sendMessage("qywxTagSyncDeal", JSONObject.toJSONString(pojo));
} catch (Exception e) { } catch (Exception e) {
log.info("异常:{}", e.getMessage(), e); log.info("异常:{}", e.getMessage(), e);
} }
} }
// @Override // @Override
// public ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid) { // public ExternalClerkRelatedDTO getClerkFriendByUnionid(String enterpriseId, String clerkId, String unionid) {
// TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getClerkExternalByUnionId(enterpriseId, clerkId, unionid); // TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getClerkExternalByUnionId(enterpriseId, clerkId, unionid);
// ExternalClerkRelatedDTO clerkRelatedDTO = EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated); // ExternalClerkRelatedDTO clerkRelatedDTO = EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated);
// return clerkRelatedDTO; // return clerkRelatedDTO;
// } // }
@Override @Override
public ExternalClerkRelatedDTO getExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String staffId, String enterpriseId, String externalUserId) { public ExternalClerkRelatedDTO getExternalClerkByWxUserIdAncExternalUserId(String wxEnterpriseId, String staffId, String enterpriseId, String externalUserId) {
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getExternalClerkByWxUserIdAncExternalUserId(wxEnterpriseId, staffId, enterpriseId, externalUserId); TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getExternalClerkByWxUserIdAncExternalUserId(wxEnterpriseId, staffId, enterpriseId, externalUserId);
return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated); if(null == externalClerkRelated) {
} externalClerkRelated = this.tabHaobanExternalClerkRelatedMapper.getExternalClerkByWxUserIdAncExternalUserIdSelf(wxEnterpriseId, staffId, enterpriseId, externalUserId) ;
}
@Override return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated);
public List<ExternalClerkRelatedDTO> listByIds(String wxEnterpriseId, List<String> ids) { }
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByIds(wxEnterpriseId, ids);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedDTO.class, list); @Override
} public List<ExternalClerkRelatedDTO> listByIds(String wxEnterpriseId, List<String> ids) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByIds(wxEnterpriseId, ids);
@Override return EntityUtil.changeEntityListNew(ExternalClerkRelatedDTO.class, list);
public Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo) { }
PageHelper.startPage(pageInfo);
List<String> memberIDs = tabHaobanExternalClerkRelatedMapper.listMemberIdByEnterpriseId(wxEnterpriseId, enterpriseId); @Override
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs)); public Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, BasePageInfo pageInfo) {
} PageHelper.startPage(pageInfo);
List<String> memberIDs = tabHaobanExternalClerkRelatedMapper.listMemberIdByEnterpriseId(wxEnterpriseId, enterpriseId);
@Override return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs));
public Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize) { }
PageHelper.startPage(pageNum, pageSize);
List<String> memberIDs = tabHaobanExternalClerkRelatedMapper.listMemberIdByEnterpriseId(wxEnterpriseId, enterpriseId); @Override
return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs)); public Page<String> pageExternalByEnterpriseId(String wxEnterpriseId, String enterpriseId, int pageNum, int pageSize) {
} PageHelper.startPage(pageNum, pageSize);
List<String> memberIDs = tabHaobanExternalClerkRelatedMapper.listMemberIdByEnterpriseId(wxEnterpriseId, enterpriseId);
@Override return PageUtil.changePageHelperToCurrentPage(new PageInfo<>(memberIDs));
public List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds) { }
return tabHaobanExternalClerkRelatedMapper.listMemberIdsByMemberIds(memberIds, wxEnterpriseId);
} @Override
public List<String> listExternalClerkMemberIdsByMemberIds(String wxEnterpriseId, List<String> memberIds) {
@Override return tabHaobanExternalClerkRelatedMapper.listMemberIdsByMemberIds(memberIds, wxEnterpriseId);
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId, String enterpriseId) { }
if (StringUtils.isAnyBlank(memberId)) {
return null; @Override
} public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId, String enterpriseId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, enterpriseId); if (StringUtils.isAnyBlank(memberId)) {
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list); return null;
} }
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, enterpriseId);
@Override return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId) { }
if (StringUtils.isBlank(memberId)) {
return null; @Override
} public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, null); if (StringUtils.isBlank(memberId)) {
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list); return null;
} }
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, null);
@Override return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
public List<String> listStoreIdByMemberId(String memberId) { }
if (StringUtils.isBlank(memberId)) {
return null; @Override
} public List<String> listStoreIdByMemberId(String memberId) {
return tabHaobanExternalClerkRelatedMapper.listStoreIdByMemberId(memberId); if (StringUtils.isBlank(memberId)) {
} return null;
}
@Override return tabHaobanExternalClerkRelatedMapper.listStoreIdByMemberId(memberId);
public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId, int type) { }
// 0 删除会员 1合并会员 2会员换绑
if(type==0) { @Override
log.info("删除会员,memberId:{}", memberId); public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId, int type) {
this.tabHaobanExternalClerkRelatedMapper.updateStatusByMemberId(memberId, enterpriseId); // 0 删除会员 1合并会员 2会员换绑
}else if(type==1) { if(type==0) {
//合并会员,会员会先调删除,在调合并。顺序不能调换 log.info("删除会员,memberId:{}", memberId);
log.info("合并会员,memberId:{},新memberId={}", memberId , mergeMemberId); this.tabHaobanExternalClerkRelatedMapper.updateStatusByMemberId(memberId, enterpriseId);
int i = tabHaobanExternalClerkRelatedMapper.countByMemberId(memberId, enterpriseId); }else if(type==1) {
if (i > 0) { //合并会员,会员会先调删除,在调合并。顺序不能调换
tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId); log.info("合并会员,memberId:{},新memberId={}", memberId , mergeMemberId);
log.info("会员合并 ,更新为企微好友,新memberId:{}", mergeMemberId); int i = tabHaobanExternalClerkRelatedMapper.countByMemberId(memberId, enterpriseId);
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1); if (i > 0) {
} tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId);
}else if(type==2) { log.info("会员合并 ,更新为企微好友,新memberId:{}", mergeMemberId);
int m1 = this.tabHaobanExternalClerkRelatedMapper.countByMemberId(memberId, enterpriseId) ; this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1);
int m2 = this.tabHaobanExternalClerkRelatedMapper.countByMemberId(mergeMemberId, enterpriseId) ; }
log.info("合并换绑,m1={},好友数={}, m2={},好友数={}", memberId,m1,mergeMemberId,m2); }else if(type==2) {
if(m1==0 && m2==0) { int m1 = this.tabHaobanExternalClerkRelatedMapper.countByMemberId(memberId, enterpriseId) ;
log.info("都是非企微好友"); int m2 = this.tabHaobanExternalClerkRelatedMapper.countByMemberId(mergeMemberId, enterpriseId) ;
}else if(m1==0 && m2>0) { log.info("合并换绑,m1={},好友数={}, m2={},好友数={}", memberId,m1,mergeMemberId,m2);
this.tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(memberId, mergeMemberId, enterpriseId); if(m1==0 && m2==0) {
log.info("会员换绑 ,更新为企微好友,新memberId:{}", memberId); log.info("都是非企微好友");
this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); }else if(m1==0 && m2>0) {
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 0); this.tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(memberId, mergeMemberId, enterpriseId);
}else if(m1>0 && m2==0) { log.info("会员换绑 ,更新为企微好友,新memberId:{}", memberId);
this.tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId); this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
log.info("会员换绑 ,更新为企微好友,新memberId:{}", mergeMemberId); this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 0);
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1); }else if(m1>0 && m2==0) {
this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0); this.tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId);
}else if(m1>0 && m2>0) { log.info("会员换绑 ,更新为企微好友,新memberId:{}", mergeMemberId);
List<String> m1IdList = this.tabHaobanExternalClerkRelatedMapper.getIdList(memberId, enterpriseId) ; this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1);
List<String> m2IdList = this.tabHaobanExternalClerkRelatedMapper.getIdList(mergeMemberId, enterpriseId) ; this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
this.tabHaobanExternalClerkRelatedMapper.updateMemberByIdList(mergeMemberId, m1IdList); }else if(m1>0 && m2>0) {
this.tabHaobanExternalClerkRelatedMapper.updateMemberByIdList(memberId, m2IdList); List<String> m1IdList = this.tabHaobanExternalClerkRelatedMapper.getIdList(memberId, enterpriseId) ;
this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); List<String> m2IdList = this.tabHaobanExternalClerkRelatedMapper.getIdList(mergeMemberId, enterpriseId) ;
this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1); this.tabHaobanExternalClerkRelatedMapper.updateMemberByIdList(mergeMemberId, m1IdList);
} this.tabHaobanExternalClerkRelatedMapper.updateMemberByIdList(memberId, m2IdList);
} this.memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
} this.memberApiService.updateMemberQywxFlag(enterpriseId, mergeMemberId, 1);
}
@Override }
public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId) { }
log.info("删除会员或者合并会员,memberId:{},enterpriseId:{},mergeMemberId:{}", memberId, enterpriseId, mergeMemberId);
if (StringUtils.isBlank(mergeMemberId)) { @Override
this.delByMemberIdAndEnterpriseId(memberId, enterpriseId, mergeMemberId, 0); public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId) {
} else { log.info("删除会员或者合并会员,memberId:{},enterpriseId:{},mergeMemberId:{}", memberId, enterpriseId, mergeMemberId);
this.delByMemberIdAndEnterpriseId(memberId, enterpriseId, mergeMemberId, 1); if (StringUtils.isBlank(mergeMemberId)) {
} this.delByMemberIdAndEnterpriseId(memberId, enterpriseId, mergeMemberId, 0);
} } else {
this.delByMemberIdAndEnterpriseId(memberId, enterpriseId, mergeMemberId, 1);
}
@Override }
public boolean isFriends(String memberId, String clerkId, String enterpriseId) {
StaffClerkRelationDTO staffClerkRelation = staffClerkRelationMapper.getOneByClerkId(clerkId,null);
if (staffClerkRelation == null) { @Override
return false; public boolean isFriends(String memberId, String clerkId, String enterpriseId) {
} StaffClerkRelationDTO staffClerkRelation = staffClerkRelationMapper.getOneByClerkId(clerkId,null);
String staffId = staffClerkRelation.getStaffId(); if (staffClerkRelation == null) {
return this.isQwFriend(enterpriseId, staffId, memberId).getResult() ; return false;
} }
String staffId = staffClerkRelation.getStaffId();
@Override return this.isQwFriend(enterpriseId, staffId, memberId).getResult() ;
public com.gic.api.base.commons.ServiceResponse<Boolean> isQwFriend(String enterpriseId, String staffId, String memberId) { }
log.info("查询是否好友enterpriseId={},staffId={},memberId={}",enterpriseId, staffId, memberId);
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByMemberIdAndStaffId(staffId, enterpriseId, memberId); @Override
if (externalClerkRelated == null) { public com.gic.api.base.commons.ServiceResponse<Boolean> isQwFriend(String enterpriseId, String staffId, String memberId) {
return com.gic.api.base.commons.ServiceResponse.success(Boolean.FALSE); log.info("查询是否好友enterpriseId={},staffId={},memberId={}",enterpriseId, staffId, memberId);
} TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByMemberIdAndStaffId(staffId, enterpriseId, memberId);
return com.gic.api.base.commons.ServiceResponse.success(externalClerkRelated.getStatusFlag() == 1); if (externalClerkRelated == null) {
} return com.gic.api.base.commons.ServiceResponse.success(Boolean.FALSE);
}
/** return com.gic.api.base.commons.ServiceResponse.success(externalClerkRelated.getStatusFlag() == 1);
* @param enterpriseId }
* @param clerkId
* @param unionId /**
* @return * @param enterpriseId
*/ * @param clerkId
@Override * @param unionId
public com.gic.api.base.commons.ServiceResponse<Boolean> isQwFriendWithUnionId(String enterpriseId, String clerkId, String unionId) { * @return
StaffClerkRelationDTO staffClerkRelation = staffClerkRelationMapper.getOneByClerkId(clerkId,null); */
if (staffClerkRelation == null) { @Override
return com.gic.api.base.commons.ServiceResponse.success(Boolean.FALSE); public com.gic.api.base.commons.ServiceResponse<Boolean> isQwFriendWithUnionId(String enterpriseId, String clerkId, String unionId) {
} StaffClerkRelationDTO staffClerkRelation = staffClerkRelationMapper.getOneByClerkId(clerkId,null);
String staffId = staffClerkRelation.getStaffId(); if (staffClerkRelation == null) {
TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByUnionIdAndStaffId(staffId, enterpriseId, unionId); return com.gic.api.base.commons.ServiceResponse.success(Boolean.FALSE);
if (externalClerkRelated == null) { }
return com.gic.api.base.commons.ServiceResponse.success(Boolean.FALSE); String staffId = staffClerkRelation.getStaffId();
} TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByUnionIdAndStaffId(staffId, enterpriseId, unionId);
return com.gic.api.base.commons.ServiceResponse.success(externalClerkRelated.getStatusFlag() == 1); if (externalClerkRelated == null) {
} return com.gic.api.base.commons.ServiceResponse.success(Boolean.FALSE);
}
// @Override return com.gic.api.base.commons.ServiceResponse.success(externalClerkRelated.getStatusFlag() == 1);
// public com.gic.api.base.commons.ServiceResponse<String> getExternalUseridForWxa(String enterpriseId, String staffId, }
// String memberId) {
// TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByMemberIdAndStaffId(staffId, enterpriseId, memberId); // @Override
// if(null != externalClerkRelated) { // public com.gic.api.base.commons.ServiceResponse<String> getExternalUseridForWxa(String enterpriseId, String staffId,
// return com.gic.api.base.commons.ServiceResponse.success(externalClerkRelated.getExternalClerkRelatedId()); // String memberId) {
// } // TabHaobanExternalClerkRelated externalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByMemberIdAndStaffId(staffId, enterpriseId, memberId);
// return com.gic.api.base.commons.ServiceResponse.failure("9999", "无好友关系") ; // if(null != externalClerkRelated) {
// } // return com.gic.api.base.commons.ServiceResponse.success(externalClerkRelated.getExternalClerkRelatedId());
// }
@Override // return com.gic.api.base.commons.ServiceResponse.failure("9999", "无好友关系") ;
public List<String> listMemberAndStaff(List<String> memberIdList, String staffId, String enterpriseId) { // }
List<String> list = tabHaobanExternalClerkRelatedMapper.listMemberAndStaff(memberIdList, staffId, enterpriseId);
return list; @Override
} public List<String> listMemberAndStaff(List<String> memberIdList, String staffId, String enterpriseId) {
List<String> list = tabHaobanExternalClerkRelatedMapper.listMemberAndStaff(memberIdList, staffId, enterpriseId);
@Override return list;
public Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId, String wxEnterpriseId) { }
if (CollectionUtils.isEmpty(memberIdList) || CollectionUtils.isEmpty(clerkIdList)) {
// 2个列表都为空查不了关系 @Override
return Collections.emptyMap(); public Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId, String wxEnterpriseId) {
} if (CollectionUtils.isEmpty(memberIdList) || CollectionUtils.isEmpty(clerkIdList)) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId); // 2个列表都为空查不了关系
if (qwDTO == null) { return Collections.emptyMap();
return Collections.emptyMap(); }
} WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
List<MemberStaffRelExtDO> res = staffClerkRelationMapper.listMemberStaffRelNew(memberIdList, clerkIdList, enterpriseId, wxEnterpriseId); if (qwDTO == null) {
if (CollectionUtils.isEmpty(res)) { return Collections.emptyMap();
return Collections.emptyMap(); }
} List<MemberStaffRelExtDO> res = staffClerkRelationMapper.listMemberStaffRelNew(memberIdList, clerkIdList, enterpriseId, wxEnterpriseId);
return res.stream().collect(Collectors.toMap( if (CollectionUtils.isEmpty(res)) {
// key-memberId return Collections.emptyMap();
MemberStaffRelExtDO::getMemberId, }
// value-list return res.stream().collect(Collectors.toMap(
e -> new ArrayList<>(Collections.singletonList(new ClerkStaffWxUserDTO(e.getStaffId(), e.getStaffClerkId(), e.getMemberExternalUserId(),e.getAddFriendTime()))), // key-memberId
// 重复key的value添加到集合 MemberStaffRelExtDO::getMemberId,
(List<ClerkStaffWxUserDTO> oldList, List<ClerkStaffWxUserDTO> newList) -> { // value-list
oldList.addAll(newList); e -> new ArrayList<>(Collections.singletonList(new ClerkStaffWxUserDTO(e.getStaffId(), e.getStaffClerkId(), e.getMemberExternalUserId(),e.getAddFriendTime()))),
return oldList; // 重复key的value添加到集合
})); (List<ClerkStaffWxUserDTO> oldList, List<ClerkStaffWxUserDTO> newList) -> {
} oldList.addAll(newList);
return oldList;
}));
@Override }
@Transactional(rollbackFor = Exception.class)
public ServiceResponse updateNewExternalUserid(String wxEnterpriseId) {
log.info("企业外部联系人id start,wxEnterpriseId:{}", wxEnterpriseId); @Override
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterriseMapper.selectByPrimaryKey(wxEnterpriseId); @Transactional(rollbackFor = Exception.class)
ServiceResponse serviceResponse = new ServiceResponse(); public ServiceResponse updateNewExternalUserid(String wxEnterpriseId) {
if (tabHaobanWxEnterprise == null) { log.info("企业外部联系人id start,wxEnterpriseId:{}", wxEnterpriseId);
log.info("企业外部联系人id为空"); TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterriseMapper.selectByPrimaryKey(wxEnterpriseId);
serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode()); ServiceResponse serviceResponse = new ServiceResponse();
serviceResponse.setMessage("企业外部联系人id为空"); if (tabHaobanWxEnterprise == null) {
return serviceResponse; log.info("企业外部联系人id为空");
} serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode());
String lockKey = "updateNewExternalUserid_" + wxEnterpriseId; serviceResponse.setMessage("企业外部联系人id为空");
if (RedisUtil.isLocked(lockKey)) { return serviceResponse;
log.info("redis锁,lockKey:{}", lockKey); }
String corpName = tabHaobanWxEnterprise.getCorpName(); String lockKey = "updateNewExternalUserid_" + wxEnterpriseId;
serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode()); if (RedisUtil.isLocked(lockKey)) {
serviceResponse.setMessage(corpName + "已经在转换中,请勿重复操作!"); log.info("redis锁,lockKey:{}", lockKey);
return serviceResponse; String corpName = tabHaobanWxEnterprise.getCorpName();
} serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode());
Integer externalFlag = tabHaobanWxEnterprise.getExternalFlag(); serviceResponse.setMessage(corpName + "已经在转换中,请勿重复操作!");
if (externalFlag == 1 || externalFlag == 2) { return serviceResponse;
log.info("已经在转换成功或转换中,请勿重复操作:wxEnterpriseId:{}", wxEnterpriseId); }
String corpName = tabHaobanWxEnterprise.getCorpName(); Integer externalFlag = tabHaobanWxEnterprise.getExternalFlag();
serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode()); if (externalFlag == 1 || externalFlag == 2) {
serviceResponse.setMessage(corpName + "已经在转换成功或转换中,请勿重复操作!"); log.info("已经在转换成功或转换中,请勿重复操作:wxEnterpriseId:{}", wxEnterpriseId);
return serviceResponse; String corpName = tabHaobanWxEnterprise.getCorpName();
} serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode());
RedisUtil.lock(lockKey, 1L, TimeUnit.DAYS, 0L); serviceResponse.setMessage(corpName + "已经在转换成功或转换中,请勿重复操作!");
try { return serviceResponse;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId); }
updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), qwDTO.getThirdCorpid()); RedisUtil.lock(lockKey, 1L, TimeUnit.DAYS, 0L);
log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId); try {
RedisUtil.unlock(lockKey); WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
serviceResponse.setCode(HaoBanErrCodeCommon.ERR_1.getCode()); updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), qwDTO.getThirdCorpid());
serviceResponse.setMessage(HaoBanErrCodeCommon.ERR_1.getMsg()); log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId);
return serviceResponse; RedisUtil.unlock(lockKey);
} catch (Exception e) { serviceResponse.setCode(HaoBanErrCodeCommon.ERR_1.getCode());
log.info("企业外部联系人id异常,wxEnterpriseId:{},{}", wxEnterpriseId, e.getMessage(), e); serviceResponse.setMessage(HaoBanErrCodeCommon.ERR_1.getMsg());
RedisUtil.unlock(lockKey); return serviceResponse;
serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode()); } catch (Exception e) {
serviceResponse.setMessage("企业外部联系人id转换异常,请联系技术人员查看"); log.info("企业外部联系人id异常,wxEnterpriseId:{},{}", wxEnterpriseId, e.getMessage(), e);
return serviceResponse; RedisUtil.unlock(lockKey);
} serviceResponse.setCode(HaoBanErrCodeCommon.ERR_0.getCode());
} serviceResponse.setMessage("企业外部联系人id转换异常,请联系技术人员查看");
return serviceResponse;
@Override }
@Deprecated }
public void updateNewExternalUseridMq(String res) {
log.info("更新新的外部联系人id mq,start"); @Override
} @Deprecated
public void updateNewExternalUseridMq(String res) {
@Override log.info("更新新的外部联系人id mq,start");
public List<ExternalClerkRelatedShortInfoDTO> listByMemberIdAndEnterpriseId(String memberId, String enterpriseId) { }
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, enterpriseId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list); @Override
} public List<ExternalClerkRelatedShortInfoDTO> listByMemberIdAndEnterpriseId(String memberId, String enterpriseId) {
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, enterpriseId);
@Override return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
public ExternalClerkRelatedDTO getByWxEnterpriseIdAndUnionId(String wxEnterpriseId, String staffId, String unionid) { }
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByWxEnterpriseIdAndUnionId(wxEnterpriseId, staffId, unionid);
return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, related); @Override
} public ExternalClerkRelatedDTO getByWxEnterpriseIdAndUnionId(String wxEnterpriseId, String staffId, String unionid) {
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedMapper.getByWxEnterpriseIdAndUnionId(wxEnterpriseId, staffId, unionid);
@Override return EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, related);
public FriendMemberStatusDTO getFriendMemberStatus(String memberId, String enterpriseId) { }
TabHaobanExternalClerkRelated tabHaobanExternalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByEnterpriseIdAndMemberId(enterpriseId, memberId, null);
if (tabHaobanExternalClerkRelated != null) { @Override
TabHaobanExternalClerkRelated hasFriend = tabHaobanExternalClerkRelatedMapper.getByEnterpriseIdAndMemberId(enterpriseId, memberId, 1); public FriendMemberStatusDTO getFriendMemberStatus(String memberId, String enterpriseId) {
if (hasFriend != null) { TabHaobanExternalClerkRelated tabHaobanExternalClerkRelated = tabHaobanExternalClerkRelatedMapper.getByEnterpriseIdAndMemberId(enterpriseId, memberId, null);
FriendMemberStatusDTO friendMemberStatusDTO = new FriendMemberStatusDTO(); if (tabHaobanExternalClerkRelated != null) {
friendMemberStatusDTO.setStatusFlag(1); TabHaobanExternalClerkRelated hasFriend = tabHaobanExternalClerkRelatedMapper.getByEnterpriseIdAndMemberId(enterpriseId, memberId, 1);
friendMemberStatusDTO.setLastCreateTime(hasFriend.getCreateTime()); if (hasFriend != null) {
return friendMemberStatusDTO; FriendMemberStatusDTO friendMemberStatusDTO = new FriendMemberStatusDTO();
} else { friendMemberStatusDTO.setStatusFlag(1);
TabHaobanExternalClerkRelated hasCancelFriend = tabHaobanExternalClerkRelatedMapper.getByEnterpriseIdAndMemberId(enterpriseId, memberId, 2); friendMemberStatusDTO.setLastCreateTime(hasFriend.getCreateTime());
if (hasCancelFriend != null) { return friendMemberStatusDTO;
FriendMemberStatusDTO friendMemberStatusDTO = new FriendMemberStatusDTO(); } else {
friendMemberStatusDTO.setStatusFlag(2); TabHaobanExternalClerkRelated hasCancelFriend = tabHaobanExternalClerkRelatedMapper.getByEnterpriseIdAndMemberId(enterpriseId, memberId, 2);
friendMemberStatusDTO.setLastCancelCreateTime(hasCancelFriend.getCreateTime()); if (hasCancelFriend != null) {
return friendMemberStatusDTO; FriendMemberStatusDTO friendMemberStatusDTO = new FriendMemberStatusDTO();
} friendMemberStatusDTO.setStatusFlag(2);
} friendMemberStatusDTO.setLastCancelCreateTime(hasCancelFriend.getCreateTime());
} return friendMemberStatusDTO;
FriendMemberStatusDTO friendMemberStatusDTO = new FriendMemberStatusDTO(); }
friendMemberStatusDTO.setStatusFlag(0); }
return friendMemberStatusDTO; }
} FriendMemberStatusDTO friendMemberStatusDTO = new FriendMemberStatusDTO();
friendMemberStatusDTO.setStatusFlag(0);
/** return friendMemberStatusDTO;
* 更新状态 }
*
* @param corpid /**
* @param wxEnterpriseId * 更新状态
*/ *
private void updateAgreeExternalUseridFlag(String corpid, String wxEnterpriseId) { * @param corpid
//serviceCorpid 默认为:达摩网络 * @param wxEnterpriseId
boolean flag = qywxUserApiService.finishExternalUseridMigration(corpid, config.getCorpid()); */
log.info("更新新的外部联系人id最后一页,设置迁移完成:flag:{}", flag); private void updateAgreeExternalUseridFlag(String corpid, String wxEnterpriseId) {
if (flag) { //serviceCorpid 默认为:达摩网络
//成功 boolean flag = qywxUserApiService.finishExternalUseridMigration(corpid, config.getCorpid());
wxEnterpriseApiService.agreeExternalUseridFlag(wxEnterpriseId, 1); log.info("更新新的外部联系人id最后一页,设置迁移完成:flag:{}", flag);
} else { if (flag) {
//失败 //成功
wxEnterriseMapper.updateExternalFlagById(3, wxEnterpriseId); wxEnterpriseApiService.agreeExternalUseridFlag(wxEnterpriseId, 1);
//回退老的 } else {
//externalUseridLogMapper.updateOldExternalUserId(wxEnterpriseId); //失败
//更新状态为失败 wxEnterriseMapper.updateExternalFlagById(3, wxEnterpriseId);
externalUseridLogMapper.updateStatusFlagByWxEnterpriseId(0, wxEnterpriseId); //回退老的
} //externalUseridLogMapper.updateOldExternalUserId(wxEnterpriseId);
} //更新状态为失败
externalUseridLogMapper.updateStatusFlagByWxEnterpriseId(0, wxEnterpriseId);
@Override }
public boolean isExternalFriendByMemberId(String memberId, String enterpriseId) { }
int count = tabHaobanExternalClerkRelatedMapper.countByMemberId(memberId, enterpriseId);
return count > 0; @Override
} public boolean isExternalFriendByMemberId(String memberId, String enterpriseId) {
int count = tabHaobanExternalClerkRelatedMapper.countByMemberId(memberId, enterpriseId);
/** return count > 0;
* 更新新的外部联系人id }
*
* @param wxEnterpriseId wx企业标识 /**
* @param corpid corpid * 更新新的外部联系人id
* @author mozhu *
* @date 2021-12-13 15:40:30 * @param wxEnterpriseId wx企业标识
*/ * @param corpid corpid
private void updateNewExUserId(String wxEnterpriseId, String corpid) { * @author mozhu
wxEnterriseMapper.updateExternalFlagById(2, wxEnterpriseId); * @date 2021-12-13 15:40:30
messageAlert(wxEnterpriseId, "更新新的外部联系人id"); */
// 限流器 private void updateNewExUserId(String wxEnterpriseId, String corpid) {
RRateLimiter rateLimiter = RedisUtil.getRedisClient().getRateLimiter("haoban:manage3:updateNewExUserId:limit"); wxEnterriseMapper.updateExternalFlagById(2, wxEnterpriseId);
// 每1秒产生5个令牌 messageAlert(wxEnterpriseId, "更新新的外部联系人id");
rateLimiter.trySetRate(RateType.OVERALL, 5, 1, RateIntervalUnit.SECONDS); // 限流器
int pageNum = 1; RRateLimiter rateLimiter = RedisUtil.getRedisClient().getRateLimiter("haoban:manage3:updateNewExUserId:limit");
// 开启消息发送 // 每1秒产生5个令牌
while (true) { rateLimiter.trySetRate(RateType.OVERALL, 5, 1, RateIntervalUnit.SECONDS);
// 获取令牌 int pageNum = 1;
rateLimiter.acquire(); // 开启消息发送
//企微转换最多支持1000个 while (true) {
PageInfo<TabHaobanExternalClerkRelated> tabHaobanWxEnterprisePageInfo = pageExternalByWxEnterpriseId(wxEnterpriseId, pageNum, 1000); // 获取令牌
List<TabHaobanExternalClerkRelated> enterprisePageInfoList = tabHaobanWxEnterprisePageInfo.getList(); rateLimiter.acquire();
if (CollectionUtils.isEmpty(enterprisePageInfoList)) { //企微转换最多支持1000个
if (pageNum == 1) { PageInfo<TabHaobanExternalClerkRelated> tabHaobanWxEnterprisePageInfo = pageExternalByWxEnterpriseId(wxEnterpriseId, pageNum, 1000);
log.info("如果没有好友,直接转换完成..corpid:{}", corpid); List<TabHaobanExternalClerkRelated> enterprisePageInfoList = tabHaobanWxEnterprisePageInfo.getList();
updateAgreeExternalUseridFlag(corpid, wxEnterpriseId); if (CollectionUtils.isEmpty(enterprisePageInfoList)) {
} if (pageNum == 1) {
break; log.info("如果没有好友,直接转换完成..corpid:{}", corpid);
} updateAgreeExternalUseridFlag(corpid, wxEnterpriseId);
pageNum++; }
List<String> externalUserIdList = enterprisePageInfoList.stream().map(TabHaobanExternalClerkRelated::getExternalUserId).collect(Collectors.toList()); break;
JSONObject jsonObject = new JSONObject(); }
jsonObject.put("corpid", corpid); pageNum++;
jsonObject.put("wxEnterpriseId", wxEnterpriseId); List<String> externalUserIdList = enterprisePageInfoList.stream().map(TabHaobanExternalClerkRelated::getExternalUserId).collect(Collectors.toList());
jsonObject.put("externalUserIdList", externalUserIdList); JSONObject jsonObject = new JSONObject();
jsonObject.put("externalUserId", externalUserIdList.get(0)); jsonObject.put("corpid", corpid);
//是否是最后一批 jsonObject.put("wxEnterpriseId", wxEnterpriseId);
if (tabHaobanWxEnterprisePageInfo.isIsLastPage()) { jsonObject.put("externalUserIdList", externalUserIdList);
jsonObject.put("isLastPage", true); jsonObject.put("externalUserId", externalUserIdList.get(0));
} else { //是否是最后一批
jsonObject.put("isLastPage", false); if (tabHaobanWxEnterprisePageInfo.isIsLastPage()) {
} jsonObject.put("isLastPage", true);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance(); } else {
try { jsonObject.put("isLastPage", false);
clientInstance.sendMessage("updateNewExUserIdMq", JSONObject.toJSONString(jsonObject)); }
} catch (Exception e) { GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
log.info("企微转换id发送消息队列异常:{}", e.getMessage(), e); try {
} clientInstance.sendMessage("updateNewExUserIdMq", JSONObject.toJSONString(jsonObject));
} } catch (Exception e) {
} log.info("企微转换id发送消息队列异常:{}", e.getMessage(), e);
}
/** }
* 根据企业id分页 }
*
* @param wxEnterpriseId 企业标识 /**
* @param pageNum 页面num * 根据企业id分页
* @param pageSize 页面大小 *
* @return {@link Page<ExternalClerkRelatedDTO> } * @param wxEnterpriseId 企业标识
* @author mozhu * @param pageNum 页面num
* @date 2021-12-13 15:10:19 * @param pageSize 页面大小
*/ * @return {@link Page<ExternalClerkRelatedDTO> }
private PageInfo<TabHaobanExternalClerkRelated> pageExternalByWxEnterpriseId(String wxEnterpriseId, Integer pageNum, Integer pageSize) { * @author mozhu
PageHelper.startPage(pageNum, pageSize); * @date 2021-12-13 15:10:19
List<TabHaobanExternalClerkRelated> tabHaobanWxEnterpriseList = tabHaobanExternalClerkRelatedMapper.pageExternalByEnterpriseId(wxEnterpriseId); */
return new PageInfo<>(tabHaobanWxEnterpriseList); private PageInfo<TabHaobanExternalClerkRelated> pageExternalByWxEnterpriseId(String wxEnterpriseId, Integer pageNum, Integer pageSize) {
} PageHelper.startPage(pageNum, pageSize);
List<TabHaobanExternalClerkRelated> tabHaobanWxEnterpriseList = tabHaobanExternalClerkRelatedMapper.pageExternalByEnterpriseId(wxEnterpriseId);
return new PageInfo<>(tabHaobanWxEnterpriseList);
/** }
* 消息提醒
* 告警
* /**
* @param wxEnterpriseId wx企业标识 * 消息提醒
* @param titleSub 子标题 * 告警
*/ *
private void messageAlert(String wxEnterpriseId, String titleSub) { * @param wxEnterpriseId wx企业标识
ProviderLocalTag providerLocalTag = ProviderLocalTag.tag.get(); * @param titleSub 子标题
String traceId = providerLocalTag.traceId; */
AlertMessageDTO messageDTO = new AlertMessageDTO(); private void messageAlert(String wxEnterpriseId, String titleSub) {
messageDTO.setTraceId(traceId); ProviderLocalTag providerLocalTag = ProviderLocalTag.tag.get();
messageDTO.setWxEnterpriseId(wxEnterpriseId); String traceId = providerLocalTag.traceId;
messageDTO.setAlertTitle(titleSub); AlertMessageDTO messageDTO = new AlertMessageDTO();
messageDTO.setAlertType(AlertTypeEnum.GET_NEW_EXTERNAL_USERID.getType()); messageDTO.setTraceId(traceId);
checkQywxSettingApiService.alertCallback(JSONObject.toJSONString(messageDTO)); messageDTO.setWxEnterpriseId(wxEnterpriseId);
} messageDTO.setAlertTitle(titleSub);
messageDTO.setAlertType(AlertTypeEnum.GET_NEW_EXTERNAL_USERID.getType());
checkQywxSettingApiService.alertCallback(JSONObject.toJSONString(messageDTO));
@Override }
public int countFriendCountByClerkId(String wxEnterpriseId, String enterpriseId, String staffId, String clerkId) {
return tabHaobanExternalClerkRelatedMapper.countByClerkId(wxEnterpriseId, enterpriseId, staffId, clerkId);
} @Override
public int countFriendCountByClerkId(String wxEnterpriseId, String enterpriseId, String staffId, String clerkId) {
return tabHaobanExternalClerkRelatedMapper.countByClerkId(wxEnterpriseId, enterpriseId, staffId, clerkId);
@Override }
public void initWxEnterpriseFriend(String wxEnterpriseId) {
log.info("刷新整个企业的好友开始={}", wxEnterpriseId);
String taskName = "刷新整个企微好友"; @Override
String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, "-1", "管理员", SyncTaskTypeEnum.FRIEND_WX_ENTEPRISE.getType()); public void initWxEnterpriseFriend(String wxEnterpriseId) {
if (StringUtils.isNotBlank(taskId)) { log.info("刷新整个企业的好友开始={}", wxEnterpriseId);
List<String> staffList = staffClerkRelationMapper.listByWxEnterpriseId(wxEnterpriseId); String taskName = "刷新整个企微好友";
if (CollectionUtils.isEmpty(staffList)) { String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, "-1", "管理员", SyncTaskTypeEnum.FRIEND_WX_ENTEPRISE.getType());
log.info("没有要刷新的:{},{}", wxEnterpriseId, staffList); if (StringUtils.isNotBlank(taskId)) {
return; List<String> staffList = staffClerkRelationMapper.listByWxEnterpriseId(wxEnterpriseId);
} if (CollectionUtils.isEmpty(staffList)) {
staffList = staffList.stream().distinct().collect(Collectors.toList()); log.info("没有要刷新的:{},{}", wxEnterpriseId, staffList);
log.info("staffList={}", JSON.toJSONString(staffList)); return;
for (String staffId : staffList) { }
this.dealSyncOperationApiService.dealWxFriendClerkSingle(taskId, staffId, staffId, wxEnterpriseId); staffList = staffList.stream().distinct().collect(Collectors.toList());
} log.info("staffList={}", JSON.toJSONString(staffList));
} for (String staffId : staffList) {
} this.dealSyncOperationApiService.dealWxFriendClerkSingle(taskId, staffId, staffId, wxEnterpriseId);
}
@Override }
public int getCountExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags) { }
return tabHaobanExternalClerkRelatedMapper.getCountExternalClerk(wxEnterpriseId,staffId,statusFlags);
} @Override
public int getCountExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags) {
@Override return tabHaobanExternalClerkRelatedMapper.getCountExternalClerk(wxEnterpriseId,staffId,statusFlags);
public int updateExternalStatus(String wxEnterpriseId, String externalUserid,int status) { }
return this.tabHaobanExternalClerkRelatedMapper.updateExternalStatus(wxEnterpriseId,externalUserid,status);
} @Override
} public int updateExternalStatus(String wxEnterpriseId, String externalUserid,int status) {
return this.tabHaobanExternalClerkRelatedMapper.updateExternalStatus(wxEnterpriseId,externalUserid,status);
}
}
...@@ -438,6 +438,18 @@ ...@@ -438,6 +438,18 @@
and status_flag in(1,3,4) and status_flag in(1,3,4)
order by update_time desc limit 1 order by update_time desc limit 1
</select> </select>
<select id="getExternalClerkByWxUserIdAncExternalUserIdSelf" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_external_clerk_related
where staff_id = #{staffId,jdbcType=VARCHAR}
and wx_enterprise_id = #{wxEnterpriseId}
and enterprise_id = #{enterpriseId}
and self_external_userid = #{externalUserId}
and status_flag in(1,3,4)
order by update_time desc limit 1
</select>
<select id="listByMemberIdAndWxEnterpriseId" resultMap="BaseResultMap"> <select id="listByMemberIdAndWxEnterpriseId" resultMap="BaseResultMap">
select select
......
...@@ -657,7 +657,7 @@ public class WxEnterpriseInfoController extends WebBaseController { ...@@ -657,7 +657,7 @@ public class WxEnterpriseInfoController extends WebBaseController {
logger.info("请先添加好友,企业微信未查询到该好友,externalUserid:{}", externalUserid); logger.info("请先添加好友,企业微信未查询到该好友,externalUserid:{}", externalUserid);
return resultResponse(HaoBanErrCode.ERR_11126); return resultResponse(HaoBanErrCode.ERR_11126);
} }
if(!qwInfo.isSelf()) { /*if(!qwInfo.isSelf()) {
MemberUnionidRelatedDTO memberUnionidRelatedDTO = memberUnionidRelatedApiService.getBySelfExternalUserId(wxEnterpriseId, externalUserid); MemberUnionidRelatedDTO memberUnionidRelatedDTO = memberUnionidRelatedApiService.getBySelfExternalUserId(wxEnterpriseId, externalUserid);
if (null == memberUnionidRelatedDTO) { if (null == memberUnionidRelatedDTO) {
logger.info("请刷新好友,wxEnterpriseId:{},传入的externalUserid:{},wxUserId:{}", wxEnterpriseId, externalUserid, wxUserId); logger.info("请刷新好友,wxEnterpriseId:{},传入的externalUserid:{},wxUserId:{}", wxEnterpriseId, externalUserid, wxUserId);
...@@ -665,7 +665,7 @@ public class WxEnterpriseInfoController extends WebBaseController { ...@@ -665,7 +665,7 @@ public class WxEnterpriseInfoController extends WebBaseController {
} }
externalUserid = memberUnionidRelatedDTO.getExternalUserid() ; externalUserid = memberUnionidRelatedDTO.getExternalUserid() ;
logger.info("会员数据:{}", JSON.toJSONString(memberUnionidRelatedDTO)); logger.info("会员数据:{}", JSON.toJSONString(memberUnionidRelatedDTO));
} }*/
ExternalClerkRelatedDTO clerkRelatedDTO = externalClerkRelatedApiService.getExternalClerkByWxUserIdAncExternalUserId(wxEnterpriseId, staffId, gicEnterpriseId, externalUserid); ExternalClerkRelatedDTO clerkRelatedDTO = externalClerkRelatedApiService.getExternalClerkByWxUserIdAncExternalUserId(wxEnterpriseId, staffId, gicEnterpriseId, externalUserid);
if (clerkRelatedDTO == null) { if (clerkRelatedDTO == null) {
logger.info("该企业没有对应需要发送好友关系的信息,wxEnterpriseId:{},externalUserid:{},wxUserId:{}", wxEnterpriseId, externalUserid, wxUserId); logger.info("该企业没有对应需要发送好友关系的信息,wxEnterpriseId:{},externalUserid:{},wxUserId:{}", wxEnterpriseId, externalUserid, wxUserId);
......
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