Commit 5f5d071c by 徐高华

批量活码处理

parent e09a2f6c
......@@ -46,7 +46,9 @@ import com.gic.haoban.manage.service.pojo.bo.hm.HmClerkRelationBO;
import com.gic.haoban.manage.service.service.PreDealService;
import com.gic.haoban.manage.service.service.SyncTaskService;
import com.gic.haoban.manage.service.service.hm.HmClerkRelationService;
import com.gic.haoban.manage.service.task.hm.QwHmOperation;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
......@@ -150,9 +152,14 @@ public class HmClerkRelationServiceImpl implements HmClerkRelationService {
@Override
public ServiceResponse<List<HmBatchModifyResultDTO>> batchModify(HmBatchModifyQDTO qdto) {
String wxEnterpriseId = qdto.getWxEnterpriseId() ;
String enterpriseId = qdto.getEnterpriseId() ;
String cacheKey = QwHmOperation.hmCachKey+wxEnterpriseId+enterpriseId ;
if(null != RedisUtil.getCache(cacheKey)) {
return ServiceResponse.failure("9999", "已有任务在执行,请稍后在处理") ;
}
int maxCount = 3 ;
List<Long> hmIdList = qdto.getHmIdList() ;
String enterpriseId = qdto.getEnterpriseId() ;
List<TabHaobanHmClerkRelation> list = this.tabHaobanHmClerkRelationMapper.listHmClerkByHmIdList(hmIdList) ;
log.info("查询活码关联导购数={},活码数={}",list.size(),hmIdList.size());
Map<Long,List<TabHaobanHmClerkRelation>> map = list.stream().collect(Collectors.groupingBy(TabHaobanHmClerkRelation::getHmId));
......@@ -214,19 +221,26 @@ public class HmClerkRelationServiceImpl implements HmClerkRelationService {
});
return ServiceResponse.success(errList) ;
}
String wxEnterpriseId = qdto.getWxEnterpriseId() ;
String clerkId = qdto.getOptClerkId() ;
String name = qdto.getOptName() ;
String taskName = "批量修改多人活码";
if(modifyMap.size()==0) {
return ServiceResponse.failure("9999", "没有需要处理的活码") ;
}
String lockKey = cacheKey+"lock";
if(RedisUtil.isLocked(lockKey) || null != RedisUtil.getCache(cacheKey)) {
return ServiceResponse.failure("9999", "已有任务在执行,请稍后在处理") ;
}
RedisUtil.lock(lockKey, 2L);
if(null != RedisUtil.getCache(cacheKey)) {
return ServiceResponse.failure("9999", "已有任务在执行,请稍后在处理") ;
}
RedisUtil.setCache(cacheKey,"1") ;
RedisUtil.unlock(lockKey);
String clerkId = qdto.getOptClerkId() ;
String name = qdto.getOptName() ;
String taskName = "批量修改多人活码";
String taskId = this.createModifyHmTask(wxEnterpriseId, taskName, clerkId,
name, SyncTaskTypeEnum.BATCH_MODIFY_HM.getType());
if (StringUtils.isBlank(taskId)) {
RedisUtil.delCache(cacheKey) ;
return ServiceResponse.failure("9999", "创建任务失败") ;
}
if(CollectionUtils.isNotEmpty(errList)) {
......
......@@ -20,11 +20,13 @@ import com.gic.haoban.manage.service.entity.TabHaobanSyncTask;
import com.gic.haoban.manage.service.service.PreDealService;
import com.gic.haoban.manage.service.service.SyncTaskService;
import com.gic.haoban.manage.service.task.BaseSyncOperation;
import com.gic.redis.data.util.RedisUtil;
@Service
public class QwHmOperation implements BaseSyncOperation {
private static final Logger logger = LoggerFactory.getLogger(QwHmOperation.class);
public static final String hmCachKey = "hm:batch:key" ;
@Autowired
private HmQrcodeApiService hmQrcodeApiService;
@Autowired
......@@ -35,31 +37,37 @@ public class QwHmOperation implements BaseSyncOperation {
@Override
public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) {
String taskId = dealParamMqDTO.getTaskId();
Long hmId = Long.valueOf(dataPre.getDataId());
logger.info("开始处理活码={},{}",taskId,hmId);
String clerkIds = dataPre.getDataContent();
String wxEnterpriseId = dataPre.getWxEnterpriseId();
String enterpriseId = dataPre.getEnterpriseId();
List<String> clerkIdList = JSONArray.parseArray(clerkIds, String.class);
// 删除
ServiceResponse resp = null ;
if (clerkIdList.size() == 0) {
resp = this.hmQrcodeApiService.delById(hmId, 1, null);
} else {
HmQrcodeQDTO qdto = new HmQrcodeQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setHmId(hmId);
qdto.setEnterpriseId(enterpriseId);
qdto.setClerkIdList(clerkIdList);
resp = this.hmQrcodeApiService.batchUpdateHm(qdto);
}
logger.info("批量修改活码={},{}",hmId,JSON.toJSONString(resp));
if(resp.isSuccess()) {
this.preDealService.updateStatusByDataId(taskId, dataPre.getDataId(), 2, null);
}else {
this.preDealService.updateStatusByDataId(taskId, dataPre.getDataId(), 3, resp.getMessage());
Long hmId = Long.valueOf(dataPre.getDataId());
try {
logger.info("开始处理活码={},{}",taskId,hmId);
String clerkIds = dataPre.getDataContent();
List<String> clerkIdList = JSONArray.parseArray(clerkIds, String.class);
// 删除
ServiceResponse resp = null ;
if (clerkIdList.size() == 0) {
resp = this.hmQrcodeApiService.delById(hmId, 1, null);
} else {
HmQrcodeQDTO qdto = new HmQrcodeQDTO();
qdto.setWxEnterpriseId(wxEnterpriseId);
qdto.setHmId(hmId);
qdto.setEnterpriseId(enterpriseId);
qdto.setClerkIdList(clerkIdList);
resp = this.hmQrcodeApiService.batchUpdateHm(qdto);
}
logger.info("批量修改活码={},{}",hmId,JSON.toJSONString(resp));
if(resp.isSuccess()) {
this.preDealService.updateStatusByDataId(taskId, dataPre.getDataId(), 2, null);
}else {
this.preDealService.updateStatusByDataId(taskId, dataPre.getDataId(), 3, resp.getMessage());
}
}catch(Exception e) {
logger.info("活码处理异常={},{}",hmId,e.getMessage());
this.preDealService.updateStatusByDataId(taskId, dataPre.getDataId(), 3, "执行异常");
}finally{
this.dealSuccess(taskId, dataPre.getDataId(), enterpriseId, wxEnterpriseId);
}
this.dealSuccess(taskId, dataPre.getDataId(), enterpriseId, wxEnterpriseId);
}
@Override
......@@ -75,9 +83,11 @@ public class QwHmOperation implements BaseSyncOperation {
logger.info("批量修改活码完成={}", taskId);
TabHaobanSyncTask syncTask = syncTaskService.getSyncTask(taskId);
if (syncTask.getStatusFlag() == SyncTaskStatusEnum.compute.getVal()) {
RedisUtil.delCache(hmCachKey+wxEnterpriseId+enterpriseId) ;
return;
}
logger.info("批量修改活码完成,status={}", taskId);
RedisUtil.delCache(hmCachKey+wxEnterpriseId+enterpriseId) ;
this.syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.compute.getVal());
}
......
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