Commit dc5bfb54 by 徐高华

单向好友

parent bce9b80f
......@@ -120,5 +120,7 @@ public interface HaobanTimerApiService {
public void doErrorFriendTimer(String params) ;
public void halfTimer(String wxEnterpriseId) ;
}
......@@ -439,4 +439,9 @@ public interface TabHaobanExternalClerkRelatedMapper {
int halfFriendCount(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("storeId")String storeId, @Param("clerkId")String clerkId, @Param("staffId")String staffId);
List<ExternalClerkRelatedDTO> halfFriendPage(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("storeId")String storeId, @Param("clerkId")String clerkId, @Param("staffId")String staffId, @Param("type")int type);
List<TabHaobanExternalClerkRelated> halfDelFriendPage(@Param("wxEnterpriseId") String wxEnterpriseId);
void updateHalfTime(@Param("id") String id , @Param("delTime") Date delTime) ;
}
\ No newline at end of file
......@@ -63,4 +63,11 @@ public interface WxUserAddLogMapper {
*/
public List<TabWxUserAddLog> listForPage(WxUserAddLogSearchQDTO qdto);
/**
*
* @param externalUseridList
* @return
*/
public List<TabWxUserAddLog> listHalfDelTime(@Param("list")List<String> externalUseridList) ;
}
\ No newline at end of file
......@@ -821,10 +821,22 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Override
public Page<ExternalClerkRelatedDTO> halfFriendPage(String wxEnterpriseId, String storeId, String clerkId, String staffId, int type, BasePageInfo basePageInfo) {
PageHelper.startPage(basePageInfo);
List<ExternalClerkRelatedDTO> list = this.tabHaobanExternalClerkRelatedMapper.halfFriendPage(wxEnterpriseId, storeId, clerkId, staffId, type);
Page<ExternalClerkRelatedDTO> retPage = PageHelperUtils.changePageHelperToCurrentPage(list,
ExternalClerkRelatedDTO.class);
Page<ExternalClerkRelatedDTO> retPage = null ;
try {
PageHelper.startPage(basePageInfo);
List<ExternalClerkRelatedDTO> list = this.tabHaobanExternalClerkRelatedMapper.halfFriendPage(wxEnterpriseId, storeId, clerkId, staffId, type);
if(CollectionUtils.isNotEmpty(list)) {
for(ExternalClerkRelatedDTO dto : list) {
if(null == dto.getHalfDelTime()) {
dto.setHalfDelTime(dto.getUpdateTime());
}
}
}
retPage = PageHelperUtils.changePageHelperToCurrentPage(list,
ExternalClerkRelatedDTO.class);
}catch (Exception e) {
log.info("error",e);
}
return retPage;
}
}
package com.gic.haoban.manage.service.service.out.impl;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.hologres.com.google.common.collect.RangeMap;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.hm.WxUserAddLogMapper;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.hm.TabWxUserAddLog;
import com.gic.haoban.manage.service.service.QywxErrorLogService;
import com.gic.haoban.manage.service.service.chat.GroupChatDataService;
import com.gic.haoban.manage.service.util.HBQwMonitorUtils;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.joda.time.DateTime;
import org.redisson.api.RMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -14,8 +28,12 @@ import com.gic.haoban.manage.service.service.StaffDepartmentRelatedService;
import com.gic.haoban.manage.service.service.chat.GroupChatService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeTempService;
import java.util.*;
import java.util.stream.Collectors;
@Service("haobanTimerApiService")
public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
private static final Logger log = LogManager.getLogger(HaobanTimerApiService.class);
@Autowired
private HmQrcodeTempService hmQrcodeTempService;
......@@ -31,6 +49,10 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
private GroupChatDataService groupChatDataService ;
@Autowired
private QywxErrorLogService qywxErrorLogService ;
@Autowired
private TabHaobanExternalClerkRelatedMapper externalClerkRelatedMapper ;
@Autowired
private WxUserAddLogMapper wxUserAddLogMapper ;
@Override
......@@ -102,4 +124,41 @@ public class HaobanTimerApiServiceImpl implements HaobanTimerApiService {
public void doErrorFriendTimer(String params) {
this.qywxErrorLogService.doFriendTimer(params);
}
@Override
public void halfTimer(String wxEnterpriseId) {
log.info("开始单向数据={}",wxEnterpriseId);
RMap<String, String> mapCache = RedisUtil.getRedisClient().getMap("halfTimer_wxenterpriseId");
while (true) {
List<TabHaobanExternalClerkRelated> list = this.externalClerkRelatedMapper.halfDelFriendPage(wxEnterpriseId);
List<String> idList = new ArrayList<>() ;
if(CollectionUtils.isNotEmpty(list)) {
for(TabHaobanExternalClerkRelated dto : list) {
if(StringUtils.isNotBlank(dto.getExternalUserId())) {
idList.add(dto.getExternalUserId()) ;
}else {
this.externalClerkRelatedMapper.updateHalfTime(dto.getExternalClerkRelatedId(),dto.getUpdateTime());
}
}
if(CollectionUtils.isNotEmpty(idList)) {
List<TabWxUserAddLog> logList= this.wxUserAddLogMapper.listHalfDelTime(idList);
Map<String, Date> map = new HashMap<>() ;
if(CollectionUtils.isNotEmpty(logList)) {
map = logList.stream().collect(Collectors.toMap(TabWxUserAddLog::getExternalUserid, o -> o.getCreateTime(), (k1, k2) -> k1));
}
for(TabHaobanExternalClerkRelated dto : list) {
if(null != map.get(dto.getExternalUserId())) {
this.externalClerkRelatedMapper.updateHalfTime(dto.getExternalClerkRelatedId(),map.get(dto.getExternalUserId()));
}else {
this.externalClerkRelatedMapper.updateHalfTime(dto.getExternalClerkRelatedId(),dto.getUpdateTime());
}
}
}
}else {
break;
}
}
mapCache.put("wxEnterpriseId","1") ;
log.info("结束单向数据={}",wxEnterpriseId);
}
}
......@@ -915,4 +915,16 @@
</if>
</select>
<select id="halfDelFriendPage" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/> from tab_haoban_external_clerk_related
where wx_enterprise_id = #{wxEnterpriseId} and status_flag in (1,3,4) and external_status = 3
and half_del_time is null limit 1000
</select>
<update id="updateHalfTime">
update tab_haoban_external_clerk_related set
half_del_time = #{delTime}
where external_clerk_related_id = #{id}
</update>
</mapper>
\ No newline at end of file
......@@ -205,4 +205,15 @@
</if>
and status_flag = #{statusFlag} order by create_time ${createTimeOrder}
</select>
<select id="listHalfDelTime" resultMap="result-map-tabHaobanWxUserAddLog">
select
<include refid="Base_Column_List"/>
from tab_haoban_wx_user_add_log where status_flag = 3 and external_userid in
<foreach collection="list" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
order by create_time desc
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment