Commit 7391638a by fudahua

刷新 好友

parent d665d207
package com.gic.haoban.manage.api.enums;
/**
* Created by hua on 2021/3/22.
*/
public enum SyncTaskTypeEnum {
QYWX_CONTACT(1, "后门同步企业微信架构"),
FRIEND_SINGLE(4, "单个成员刷新好友"),
FRIEND_STORE(5, "刷新门店好友"),;
private int type;
private String taskName;
SyncTaskTypeEnum(int type, String taskName) {
this.type = type;
this.taskName = taskName;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public String getTaskName() {
return taskName;
}
public void setTaskName(String taskName) {
this.taskName = taskName;
}
public static String getTaskName(int taskType) {
SyncTaskTypeEnum[] values = SyncTaskTypeEnum.values();
for (SyncTaskTypeEnum value : values) {
if (value.getType() == taskType) {
return value.getTaskName();
}
}
return null;
}
}
......@@ -137,10 +137,9 @@ public interface DealSyncOperationApiService {
* @param wxEnterpriseId
* @param taskName
* @param staffId
* @param desc
* @return
*/
public String createWxFriendSingleTask(String wxEnterpriseId, String taskName, String staffId, String staffName);
public String createWxFriendTaskSingle(String wxEnterpriseId, String taskName, String staffId, String staffName, int syncTaskType);
/**
* 单个导购刷新
......@@ -150,7 +149,16 @@ public interface DealSyncOperationApiService {
* @param wxEnterpriseId
*/
public void dealWxFriendClerkSingle(String taskId, String wxUserId, String staffId,String wxEnterpriseId);
/**
/**
* 单个导购刷新
*
* @param taskId
* @param wxEnterpriseId
*/
public void dealWxFriendStore(String taskId, String storeId, String wxEnterpriseId);
/**
* 定时
* @param res
*/
......
......@@ -87,4 +87,6 @@ public interface TabHaobanStaffClerkRelationMapper {
List<TabHaobanStaffClerkRelation> listByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId);
List<TabHaobanStaffClerkRelation> pageByWxEnterpriseId(@Param("wxEnterpriseId")String wxEnterpriseId);
List<TabHaobanStaffClerkRelation> listOneBindByStoreId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("storeId") String storeId);
}
\ No newline at end of file
......@@ -85,5 +85,14 @@ public interface StaffClerkRelationService {
Page<StaffClerkRelationDTO> pageByWxEnterpriseId(String wxEnterpriseId, BasePageInfo pageInfo);
/**
* 根据门店获取门店的绑定列表
*
* @param wxEnterpriseId
* @param storeId
* @return
*/
List<StaffClerkRelationDTO> listBindByStoreId(String wxEnterpriseId, String storeId);
}
......@@ -245,4 +245,10 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
Page<StaffClerkRelationDTO> retPage = PageUtil.changePageHelperToCurrentPage(new PageInfo<>(clerkBindList), StaffClerkRelationDTO.class);
return retPage;
}
@Override
public List<StaffClerkRelationDTO> listBindByStoreId(String wxEnterpriseId, String storeId) {
List<TabHaobanStaffClerkRelation> ret = mapper.listByStoreId(storeId);
return EntityUtil.changeEntityListNew(StaffClerkRelationDTO.class, ret);
}
}
......@@ -17,10 +17,7 @@ import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.PreDealStatusEnum;
import com.gic.haoban.manage.api.enums.PreDealTypeEnum;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.enums.SyncTaskStatusEnum;
import com.gic.haoban.manage.api.enums.*;
import com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService;
import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.DepartmentApiService;
......@@ -263,7 +260,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
@Override
public String createQywxTask(String wxEnterpriseId, String taskName, String userId, String desc) {
return createBaseTask(wxEnterpriseId, taskName, userId, desc, 1);
return createBaseTask(wxEnterpriseId, taskName, userId, desc, SyncTaskTypeEnum.QYWX_CONTACT.getType());
}
......@@ -694,15 +691,15 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
}
@Override
public String createWxFriendSingleTask(String wxEnterpriseId, String taskName, String staffId, String staffName) {
TabHaobanSyncTask tabHaobanSyncTask = new TabHaobanSyncTask();
public String createWxFriendTaskSingle(String wxEnterpriseId, String taskName, String staffId, String staffName, int syncTaskType) {
TabHaobanSyncTask tabHaobanSyncTask = new TabHaobanSyncTask();
tabHaobanSyncTask.setAddUser(staffId);
tabHaobanSyncTask.setTaskName(taskName);
tabHaobanSyncTask.setTaskName(SyncTaskTypeEnum.getTaskName(syncTaskType));
tabHaobanSyncTask.setTaskDesc(staffName);
tabHaobanSyncTask.setWxEnterpriseId(wxEnterpriseId);
tabHaobanSyncTask.setStatusFlag(SyncTaskStatusEnum.init.getVal());
tabHaobanSyncTask.setTaskId(ToolUtil.randomUUID());
tabHaobanSyncTask.setTaskType(4);
tabHaobanSyncTask.setTaskType(syncTaskType);
syncTaskService.createTask(tabHaobanSyncTask);
return tabHaobanSyncTask.getTaskId();
......@@ -726,9 +723,30 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
dealDepartmentToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync);
}
@Override
public void dealWxFriendStore(String taskId, String storeId, String wxEnterpriseId) {
List<StaffClerkRelationDTO> clerkRelationDTOS = staffClerkRelationService.listBindByStoreId(wxEnterpriseId, storeId);
if (CollectionUtils.isEmpty(clerkRelationDTOS)) {
logger.info("没有要刷新的:{},{}", wxEnterpriseId, storeId);
return;
}
List<TabHaobanPreDealLog> dealLogList = clerkRelationDTOS.stream().map(dto -> {
TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog();
dealLog.setDataId(dto.getWxUserId());
dealLog.setpDataId(dto.getStaffId());
dealLog.setDataType(PreDealTypeEnum.friend_clerk.getVal());
dealLog.setStatusFlag(0);
dealLog.setTaskId(taskId);
dealLog.setWxEnterpriseId(wxEnterpriseId);
return dealLog;
}).collect(Collectors.toList());
preDealService.insert(dealLogList);
Set<String> hashSet = dealLogList.stream().map(TabHaobanPreDealLog::getDataId).collect(Collectors.toSet());
dealDepartmentToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync);
}
@Override
public void quartWxFriendClerk(String res) {
@Override
public void quartWxFriendClerk(String res) {
List<TabHaobanSyncTask> taskList = syncTaskService.listTaskByType(2);
if(CollectionUtils.isNotEmpty(taskList)){
for (TabHaobanSyncTask tabHaobanSyncTask : taskList) {
......
......@@ -375,5 +375,12 @@
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag =1
</select>
<select id="listOneBindByStoreId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and store_id=#{storeId}
and status_flag =1
</select>
</mapper>
\ No newline at end of file
......@@ -9,7 +9,6 @@ import com.gic.clerk.api.service.ClerkNewService;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.DateUtil;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.EnterpriseService;
......@@ -23,11 +22,9 @@ import com.gic.haoban.manage.api.enums.*;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.web.anno.HttpLimit;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.utils.RouterConstant;
import com.gic.haoban.manage.web.vo.*;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -393,31 +390,31 @@ public class ClerkController extends WebBaseController{
}
String key = "haoban_fresh_wx_friend" + yyyyMM + staffId;
Integer count = RedisUtil.getCache(key) == null ? 0 : (Integer)RedisUtil.getCache(key);
if(count == null || count < 4){
RedisUtil.setCache(key,count + 1,31 * 24 * 60 * 60l);
JSONObject json = new JSONObject();
json.put("wxUserId", staff.getWxUserId());
json.put("wxEnterpriseId", wxEnterpriseId);
json.put("storeId", storeId);
// logger.info("【刷下微信好友】{},{},{}",RouterConstant.FRESH_WX_FRIEND_SERVICENAME,RouterConstant.INIT_FRESH_WX_FRIEND_METHODNAME,json.toJSONString());
if (count != null && count >= 4) {
logger.info("次数超出限制:{}", staffId);
return resultResponse(HaoBanErrCode.ERR_10011);
}
RedisUtil.setCache(key, count + 1, 31 * 24 * 60 * 60L);
if (flushType == 0) {
String taskName = "刷新企业微信好友("+staff.getStaffName()+")";
String taskId = dealSyncOperationApiService.createWxFriendSingleTask(wxEnterpriseId, taskName, staffId, staff.getStaffName());
String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, staffId, staff.getStaffName(), SyncTaskTypeEnum.FRIEND_SINGLE.getType());
if(StringUtils.isNotBlank(taskId)){
dealSyncOperationApiService.dealWxFriendClerkSingle(taskId,wxUserId,staffId,wxEnterpriseId);
}else{
return resultResponse(HaoBanErrCode.ERR_999);
}
// try {
// GICMQClientUtil.getClientInstance().sendCommonMessage(RouterConstant.ROUTERTYPE, json.toJSONString(),
// RouterConstant.FRESH_WX_FRIEND_SERVICENAME, RouterConstant.INIT_FRESH_WX_FRIEND_METHODNAME);
// } catch (Exception e) {
// logger.info(e.getMessage(),e);
// }
// memberUnionidRelatedApiService.freshWxFrend(wxEnterpriseId, staff.getWxUserId(),storeId);
}else{
return resultResponse(HaoBanErrCode.ERR_10011);
} else {
String taskName = "刷新门店好友";
String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, staffId, staff.getStaffName(), SyncTaskTypeEnum.FRIEND_STORE.getType());
if (StringUtils.isNotBlank(taskId)) {
dealSyncOperationApiService.dealWxFriendStore(taskId, storeId, wxEnterpriseId);
} else {
return resultResponse(HaoBanErrCode.ERR_999);
}
}
return resultResponse(HaoBanErrCode.ERR_1);
}
......
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