Commit ee02766a by 墨竹

feat:增加更新全量更新新的外部联系人id接口

parent c38e6885
......@@ -173,4 +173,24 @@ public interface ExternalClerkRelatedApiService {
*/
Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId);
/**
* 全量更新新的外部联系人id
*
* @return boolean
* @author mozhu
* @date 2021-12-13 15:37:53
*/
boolean updateNewExternalUserid();
/**
* 根据企业更新新的外部联系人id
*
* @param wxEnterpriseId wx企业标识
* @return boolean
* @author mozhu
* @date 2021-12-13 15:37:57
*/
boolean updateNewExternalUserid(String wxEnterpriseId);
}
......@@ -3,8 +3,6 @@ package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabHaobanWxApplication;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface WxApplicationMapper {
int deleteByPrimaryKey(String wxApplicationId);
......@@ -14,9 +12,10 @@ public interface WxApplicationMapper {
int updateByPrimaryKeySelective(TabHaobanWxApplication record);
TabHaobanWxApplication selectBySiteIdAndWxEnterpriseId(@Param("siteId")String siteId, @Param("wxEnterpriseId")String wxEnterpriseId);
TabHaobanWxApplication selectBySiteIdAndWxEnterpriseId(@Param("siteId") String siteId, @Param("wxEnterpriseId") String wxEnterpriseId);
List<TabHaobanWxApplication> selectByWxEnterpriseIdAndApplicationType(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("applicationType")int applicationType);
TabHaobanWxApplication selectByWxEnterpriseIdAndApplicationType(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("applicationType") int applicationType);
int cancelWxApplication(@Param("wxEnterpriseId")String wxEnterpriseId, @Param("suiteId") String suiteId);
int cancelWxApplication(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("suiteId") String suiteId);
}
\ No newline at end of file
package com.gic.haoban.manage.service.dao.mapper;
import java.util.Date;
import java.util.List;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import java.util.List;
public interface WxEnterpriseRelatedMapper {
int deleteByPrimaryKey(String wxEnterpriseRelatedId);
int insert(TabHaobanWxEnterpriseRelated record);
......
package com.gic.haoban.manage.service.service.impl;
import java.util.Date;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.service.dao.mapper.WxApplicationMapper;
import com.gic.haoban.manage.service.entity.TabHaobanWxApplication;
import com.gic.haoban.manage.service.service.WxApplicationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class WxApplicationServiceImpl implements WxApplicationService {
......@@ -44,11 +41,7 @@ public class WxApplicationServiceImpl implements WxApplicationService {
@Override
public TabHaobanWxApplication selectByWxEnterpriseIdAndApplicationType(String wxEnterpriseId, int applicationType) {
List<TabHaobanWxApplication> list = mapper.selectByWxEnterpriseIdAndApplicationType(wxEnterpriseId, applicationType);
if(CollectionUtils.isNotEmpty(list)){
return list.get(0);
}
return null;
return mapper.selectByWxEnterpriseIdAndApplicationType(wxEnterpriseId, applicationType);
}
@Override
......
......@@ -14,15 +14,17 @@ import com.gic.haoban.manage.api.dto.ClerkStaffWxUserDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.*;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.mq.sdk.GicMQClient;
import com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
......@@ -46,6 +48,14 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
private MemberUnionidRelatedMapper memberUnionidRelatedMapper;
@Autowired
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired
private WxEnterpriseMapper wxEnterriseMapper;
@Autowired
private WxApplicationMapper wxApplicationMapper;
@Autowired
private QywxUserApiService qywxUserApiService;
@Autowired
private Config config;
/**
* 查询导购好友关联
......@@ -281,4 +291,85 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}));
}
@Override
public boolean updateNewExternalUserid() {
log.info("全量更新企业外部联系人id start");
try {
List<TabHaobanWxEnterprise> tabHaobanWxEnterprises = wxEnterriseMapper.listAll();
for (TabHaobanWxEnterprise wxEnterprise : tabHaobanWxEnterprises) {
String wxEnterpriseId = wxEnterprise.getWxEnterpriseId();
String corpid = wxEnterprise.getCorpid();
//更新新的外部联系人id
updateNewExUserId(wxEnterpriseId, corpid);
}
log.info("全量更新企业外部联系人id end");
return true;
} catch (Exception e) {
log.info("全量更新企业外部联系人id异常,{}", e.getMessage(), e);
return false;
}
}
@Override
public boolean updateNewExternalUserid(String wxEnterpriseId) {
log.info("企业外部联系人id start,wxEnterpriseId:{}", wxEnterpriseId);
TabHaobanWxEnterprise tabHaobanWxEnterprise = wxEnterriseMapper.selectByPrimaryKey(wxEnterpriseId);
if (tabHaobanWxEnterprise == null) {
log.info("企业外部联系人id为空");
return false;
}
try {
updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), tabHaobanWxEnterprise.getCorpid());
log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId);
return true;
} catch (Exception e) {
log.info("企业外部联系人id异常,wxEnterpriseId:{},{}", wxEnterpriseId, e.getMessage(), e);
return false;
}
}
/**
* 更新新的外部联系人id
*
* @param wxEnterpriseId wx企业标识
* @param corpid corpid
* @author mozhu
* @date 2021-12-13 15:40:30
*/
private void updateNewExUserId(String wxEnterpriseId, String corpid) {
int pageNum = 1;
// 开启消息发送
while (true) {
PageInfo<TabHaobanExternalClerkRelated> tabHaobanWxEnterprisePageInfo = pageExternalByWxEnterpriseId(wxEnterpriseId, pageNum, 1000);
List<TabHaobanExternalClerkRelated> enterprisePageInfoList = tabHaobanWxEnterprisePageInfo.getList();
if (CollectionUtils.isEmpty(enterprisePageInfoList)) {
break;
}
pageNum++;
List<String> externalUserIdList = enterprisePageInfoList.stream().map(TabHaobanExternalClerkRelated::getExternalUserId).collect(Collectors.toList());
//更新新的external_user_id
List<QywxNewExternalUseridDTO> newExternalUserid = qywxUserApiService.getNewExternalUserid(corpid, config.getWxSuiteid(), Arrays.toString(externalUserIdList.toArray()));
for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUserid) {
tabHaobanExternalClerkRelatedMapper.updateExternalUserIdByOldExternalUserId(qywxNewExternalUseridDTO.getNewExternalUserid(), qywxNewExternalUseridDTO.getExternalUserid(), wxEnterpriseId);
}
}
}
/**
* 根据企业id分页
*
* @param wxEnterpriseId 企业标识
* @param pageNum 页面num
* @param pageSize 页面大小
* @return {@link Page<ExternalClerkRelatedDTO> }
* @author mozhu
* @date 2021-12-13 15:10:19
*/
private PageInfo<TabHaobanExternalClerkRelated> pageExternalByWxEnterpriseId(String wxEnterpriseId, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<TabHaobanExternalClerkRelated> tabHaobanWxEnterpriseList = tabHaobanExternalClerkRelatedMapper.pageExternalByEnterpriseId(wxEnterpriseId);
return new PageInfo<>(tabHaobanWxEnterpriseList);
}
}
......@@ -37,21 +37,7 @@
from tab_haoban_external_clerk_related
where external_clerk_related_id = #{externalClerkRelatedId,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated">
insert into tab_haoban_external_clerk_related (external_clerk_related_id, wx_enterprise_id,
enterprise_id, store_id, member_id,
unionid, head_url, external_name, add_create_time,
member_unionid_related_id, clerk_id, staff_id,
wx_user_id, status_flag, create_time,
update_time, external_user_id)
values (#{externalClerkRelatedId,jdbcType=VARCHAR}, #{wxEnterpriseId,jdbcType=VARCHAR},
#{enterpriseId,jdbcType=VARCHAR}, #{storeId,jdbcType=VARCHAR}, #{memberId,jdbcType=VARCHAR},
#{unionid,jdbcType=VARCHAR}, #{headUrl}, #{externalName,jdbcType=VARCHAR},
#{addCreateTime,jdbcType=VARCHAR},
#{memberUnionidRelatedId,jdbcType=VARCHAR}, #{clerkId,jdbcType=VARCHAR}, #{staffId,jdbcType=VARCHAR},
#{wxUserId,jdbcType=VARCHAR}, #{statusFlag,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}, #{externalUserId})
</insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated">
insert into tab_haoban_external_clerk_related
<trim prefix="(" suffix=")" suffixOverrides=",">
......@@ -512,7 +498,6 @@
and enterprise_id = #{enterpriseId}
and status_flag in (1, 3, 4)
order by create_time
</select>
<select id="listByMemberIds" resultMap="BaseResultMap">
select
......@@ -586,4 +571,24 @@
AND status_flag = 1 limit 1
</select>
<select id="pageExternalByEnterpriseId" resultMap="BaseResultMap">
select wx_enterprise_id,
enterprise_id,
external_user_id
from tab_haoban_external_clerk_related
where wx_enterprise_id = #{wxEnterpriseId}
AND status_flag = 1
</select>
<update id="updateExternalUserIdByOldExternalUserId">
UPDATE
tab_haoban_external_clerk_related
SET external_user_id = #{externalUserId},
update_time = now()
where external_user_id = #{oldExternalUserId}
and wx_enterprise_id = #{wxEnterpriseId}
</update>
</mapper>
\ No newline at end of file
......@@ -169,6 +169,7 @@
where application_type = #{applicationType}
and status_flag = 1
and wx_enterprise_id = #{wxEnterpriseId}
limit 1
</select>
<update id="cancelWxApplication">
......
......@@ -61,6 +61,9 @@ public class TestController extends WebBaseController {
@Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService;
@Autowired
private ExternalClerkRelatedApiService externalClerkRelatedApiService;
@RequestMapping("/send-message-test")
public HaobanResponse testSendMessage(QywxXcxSendMessageQo qo) {
QywxXcxSendMessageDTO messageDTO = EntityUtil.changeEntityByOrika(QywxXcxSendMessageDTO.class, qo);
......@@ -191,4 +194,23 @@ public class TestController extends WebBaseController {
int i = tableId.hashCode() % count;
return resultResponse(HaoBanErrCode.ERR_1, i);
}
/**
* 更新新的外部联系人id
*
* @param wxEnterpriseId wx企业标识
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-13 15:46:25
*/
@RequestMapping("/updateNewExternalUserid")
public HaobanResponse updateNewExternalUserid(String wxEnterpriseId) {
boolean flag = externalClerkRelatedApiService.updateNewExternalUserid(wxEnterpriseId);
if (flag) {
return resultResponse(HaoBanErrCode.ERR_1);
} else {
return resultResponse(HaoBanErrCode.ERR_0);
}
}
}
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