Commit 74e5adda by 徐高华

Merge branch 'feature/订单储值' into 'master'

Feature/订单储值

See merge request !1421
parents a88f761e 3476421d
......@@ -6,8 +6,10 @@ import com.gic.haoban.manage.api.dto.PreDealLogInfoDTO;
import com.gic.haoban.manage.api.dto.SyncCheckDTO;
import com.gic.haoban.manage.api.dto.SyncSingleDealDTO;
import com.gic.haoban.manage.api.dto.SyncTaskDTO;
import com.gic.haoban.manage.api.enums.SyncTaskStatusEnum;
import java.util.List;
import java.util.Set;
/**
* Created 2020/4/9.
......@@ -209,7 +211,11 @@ public interface DealSyncOperationApiService {
* @param taskId
*/
void dealTagTask(String wxEnterpriseId, String enterpriseId, List<String> tagIds, String taskId);
// 同步好友状态定时
void taskStatusTimer(String params) ;
void staffTaskStatusTimer(String params) ;
// 同步通讯录状态定时
void taskSyncStaffTimer(String params) ;
void sendToMq(String taskId, Set<String> dealList, SyncTaskStatusEnum syncTaskStatusEnum , String mqName) ;
}
......@@ -266,12 +266,14 @@ public class TestController extends WebBaseController {
}
@RequestMapping("/get-cache")
@ResponseBody
public Object getCache(String key) {
Object o = RedisUtil.getCache(key) ;
return o ;
}
@RequestMapping("/del-cache")
@ResponseBody
public Object delCache(String key) {
Object o = RedisUtil.getCache(key) ;
if(null != o) {
......
......@@ -57,16 +57,6 @@ public interface PreDealLogMapper {
, @Param("status") int status, @Param("dataType") int dataType);
/**
* 获取单条数据
*
* @param taskId
* @param pDataId
* @return
*/
List<TabHaobanPreDealLog> listReByPDataId(@Param("taskId") String taskId, @Param("dataId") String pDataId
, @Param("dataType") int dataType);
/**
* 更新状态
*
* @param taskId
......
......@@ -40,15 +40,6 @@ public interface PreDealService {
public List<TabHaobanPreDealLog> listByPDataId(String taskId, String pDataId, int status);
/**
* 根据父数据id 获取子节点
*
* @param pDataId
* @param status
* @return
*/
public List<TabHaobanPreDealLog> listReByPDataId(String taskId, String pDataId);
/**
* 更新单条数据状态
*
* @param dataId
......@@ -201,5 +192,6 @@ public interface PreDealService {
public void addTaskStatusCache(String taskId) ;
public void addTaskStaffStatusCache(String taskId,String staffId , int type) ;
public void addTaskDepartStatusCache(String taskId,int type) ;
}
......@@ -9,6 +9,7 @@ import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -74,6 +75,8 @@ public class HmClerkRelationServiceImpl implements HmClerkRelationService {
private SyncTaskService syncTaskService;
@Autowired
private PreDealService preDealService;
@Autowired
private DealSyncOperationApiService dealSyncOperationApiService ;
@Override
......@@ -284,30 +287,12 @@ public class HmClerkRelationServiceImpl implements HmClerkRelationService {
return dealLog;
}).collect(Collectors.toList());
this.preDealService.insert(dealLogList);
this.sendToMq(taskId, dealLogList.stream().map(o->o.getDataId()).collect(Collectors.toSet()), SyncTaskStatusEnum.modify_hm);
this.dealSyncOperationApiService.sendToMq(taskId, dealLogList.stream().map(o->o.getDataId()).collect(Collectors.toSet()), SyncTaskStatusEnum.modify_hm,"departmentSyncDealMq2");
ServiceResponse resp = ServiceResponse.success() ;
resp.setMessage(taskId);
return resp ;
}
private void sendToMq(String taskId, Set<String> dealList, SyncTaskStatusEnum syncTaskStatusEnum) {
//预处理分组任务
syncTaskService.updateTaskStatus(taskId, syncTaskStatusEnum.getVal());
List<String> listRet = dealList.stream().map(relationId -> {
DealParamMqDTO dealParamMqDTO = new DealParamMqDTO();
dealParamMqDTO.setTaskId(taskId);
dealParamMqDTO.setData(relationId);
dealParamMqDTO.setType(syncTaskStatusEnum.getVal());
return JSONObject.toJSONString(dealParamMqDTO);
}).collect(Collectors.toList());
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendBatchMessages("departmentSyncDealMq", listRet, 1);
} catch (Exception e) {
e.printStackTrace();
}
}
public String createModifyHmTask(String wxEnterpriseId, String taskName, String staffId, String staffName, int syncTaskType) {
TabHaobanSyncTask tabHaobanSyncTask = new TabHaobanSyncTask();
......
......@@ -33,6 +33,7 @@ public class PreDealServiceImpl implements PreDealService {
public static final String HAOBAN_TASK_ID_SET_CACHE = "haobanTaskSyncIdSetCache" ;
public static final String HAOBAN_TASK_STAFF_ID_SET_CACHE = "haobanTaskStaffSyncIdSetCache" ;
public static final String HAOBAN_TASK_DEPART_SET_CACHE = "haobanTaskDepartSyncIdSetCache" ;
@Autowired
private PreDealLogMapper preDealLogMapper;
......@@ -53,7 +54,7 @@ public class PreDealServiceImpl implements PreDealService {
}
int i = 0;
while (i < pre) {
logger.info("这是第{}次,进入", i);
logger.info("分批保存第{}次", i);
i++;
int fromIndex = (i - 1) * pageSize;
int toIndex = (count - fromIndex) > pageSize ? (fromIndex + pageSize) : count;
......@@ -78,10 +79,6 @@ public class PreDealServiceImpl implements PreDealService {
return preDealLogMapper.listByPDataId(taskId, pDataId, status, PreDealTypeEnum.dept.getVal());
}
@Override
public List<TabHaobanPreDealLog> listReByPDataId(String taskId, String pDataId) {
return preDealLogMapper.listReByPDataId(taskId, pDataId, PreDealTypeEnum.dept.getVal());
}
@Override
public boolean updateStatusByDataId(String taskId, String dataId, int status, String reason) {
......@@ -200,4 +197,11 @@ public class PreDealServiceImpl implements PreDealService {
RSet<String> set = RedisUtil.getRedisClient().getSet(HAOBAN_TASK_STAFF_ID_SET_CACHE);
set.add(key) ;
}
@Override
public void addTaskDepartStatusCache(String taskId, int type) {
String key = taskId+"#"+type ;
RSet<String> set = RedisUtil.getRedisClient().getSet(HAOBAN_TASK_DEPART_SET_CACHE);
set.add(key) ;
}
}
......@@ -888,6 +888,13 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
hmQrcodeQDTO.setStoreId(staffClerkRelationDTO.getStoreId());
hmQrcodeQDTO.setClerkIdList(Collections.singletonList(staffClerkRelationDTO.getClerkId()));
add(hmQrcodeQDTO);
HmQrcodeBO hmQrcodeBO = hmQrcodeService.queryByClerkId(staffClerkRelationDTO.getClerkId(), staffClerkRelationDTO.getWxEnterpriseId());
if (hmQrcodeBO != null && hmQrcodeBO.getStatusFlag()==3) {
logger.info("导购活码待生效状态变更,clerkId:{}",staffClerkRelationDTO.getClerkId());
hmQrcodeService.updateStatusById(hmQrcodeBO.getHmId(), 1);
}
}
List<StaffClerkRelationDTO> relationDTOS = staffClerkRelationService.listIdsByNotInWxUserIds(wxUserIdsList, wxEnterpriseId, enterpriseId);
......
......@@ -59,11 +59,14 @@ public class QywxStaffSyncOperation implements BaseSyncOperation {
String reason = "";
//处理clerk
try {
ServiceResponse response = staffApiService.getWxSaveNew(dealParamMqDTO.getData(), dataPre.getWxEnterpriseId());
String taskId = dataPre.getTaskId() ;
String wxUserId = dealParamMqDTO.getData() ;
ServiceResponse response = staffApiService.getWxSaveNew(wxUserId, dataPre.getWxEnterpriseId());
if (response.getCode() != 1) {
dealFlag = false;
reason = response.getMessage();
}
this.preDealService.addTaskDepartStatusCache(taskId,2);
} catch (Exception e) {
logger.info("企微通讯录成员同步失败:{}", e.getMessage(), e);
reason = "同步异常:";
......@@ -80,51 +83,17 @@ public class QywxStaffSyncOperation implements BaseSyncOperation {
@Override
public void dealException(String taskId, String dataId, String enterpriseId, String reason) {
logger.info("企微通讯录成员处理失败:t:{},d:{}", taskId, dataId);
boolean b = preDealService.updateStatusByDataId(taskId, dataId, PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.exception.getVal(), reason);
if (!b) {
logger.info("企微通讯录成员处理异常:t:{}, d:{}", taskId, dataId);
return;
}
checkDepartmentTask(taskId);
this.preDealService.updateStatusByDataId(taskId, dataId, PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.exception.getVal(), reason);
}
@Override
public void dealSuccess(String taskId, String dataId, String enterpriseId, String wxEnterpriseId) {
logger.info("企微通讯录成员处理成功:t:{},d:{}", taskId, dataId);
boolean b = preDealService.updateStatusByDataId(taskId, dataId, PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.computed.getVal(), "成功");
if (!b) {
logger.info("企微通讯录成员成功修改错误!{}", dataId);
return;
}
checkDepartmentTask(taskId);
this.preDealService.updateStatusByDataId(taskId, dataId, PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.computed.getVal(), "成功");
}
@Override
public void checkDepartmentTask(String taskId) {
boolean b = preDealService.checkTask(taskId, PreDealTypeEnum.clerk.getVal());
if (!b) {
return;
}
logger.info("企微通讯录成员成功:{}", taskId);
String key = "haoban_sync_clerk_task_" + taskId;
RedisUtil.lock(key, 3L);
TabHaobanSyncTask syncTask = syncTaskService.getSyncTask(taskId);
String wxEnterpriseId = syncTask.getWxEnterpriseId();
//同步成功 进入门店处理
if (syncTask.getStatusFlag().equals(SyncTaskStatusEnum.clerk_sync.getVal())) {
int errCount = preDealService.countByTaskId(taskId, -1, PreDealStatusEnum.exception.getVal());
if (errCount > 0) {
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.exception_compute.getVal());
dealSyncOperationApiService.unlockTask(wxEnterpriseId);
} else {
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.compute.getVal());
dealSyncOperationApiService.unlockTask(wxEnterpriseId);
dealSyncOperationApiService.cleanDiffrence(wxEnterpriseId, taskId);
logger.info("同步通讯录完成");
}
}
RedisUtil.unlock(key);
}
}
......@@ -195,14 +195,6 @@
</if>
</select>
<select id="listReByPDataId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_pre_deal_log
where task_id = #{taskId} and p_data_id=#{dataId} and data_type=#{dataType}
and status_flag in(0,1,3)
</select>
<update id="updateStatusByDataId">
update tab_haoban_pre_deal_log
<set>
......
......@@ -639,7 +639,7 @@ public class StaffController extends WebBaseController {
if (enterpriseDTO != null) {
String taskId = dealSyncOperationApiService.createQywxTask(wxEnterpriseId, "后门同步企业微信架构", login.getClerkId(), "后门同步企业微信架构");
if (StringUtils.isBlank(taskId)) {
return resultResponse(HaoBanErrCode.ERR_0, false);
return this.fail("通讯录正在同步中") ; //resultResponse(HaoBanErrCode.ERR_0, false);
}
String ret = dealSyncOperationApiService.dealQywxDepartment(taskId, wxEnterpriseId);
if (null != ret) {
......
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