Merge #119 into master from cc_20260508_open_store_req

门店新开店需求7&主数据需求2

* cc_20260508_open_store_req: (4 commits squashed)

  - fix:未开业门店试营业日期

  - fix:开业日期报备不同步门店状态

  - fix:修改门店开业日期判断条件修改

  - Merge branch 'master' into cc_20260508_open_store_req
    
    # Conflicts:
    #	coolstore-partner-web/src/main/java/com/cool/store/job/XxlJobHandler.java

Signed-off-by: 王非凡 <accounts_67eba0c5fee9c49c80c8e2b4@mail.teambition.com>
Merged-by: 正新 <accounts_6964c7bcd2a2c377c5bbd01b@mail.teambition.com>

CR-link: https://codeup.aliyun.com/692ea314dec569489f6f167c/hangzhou/java/custom_zxjp/change/119
This commit is contained in:
王非凡
2026-05-10 13:44:42 +00:00
committed by 正新
parent a42a109b6c
commit 162674c0b2
10 changed files with 277 additions and 2 deletions

View File

@@ -10,6 +10,8 @@ import com.cool.store.dao.bonus.BonusDistributionRuleDAO;
import com.cool.store.dao.tp.TpApplyFormDAO;
import com.cool.store.dao.wallet.WalletTradeDAO;
import com.cool.store.dto.*;
import com.cool.store.dto.store.StoreExtendSoftOpenDTO;
import com.cool.store.dto.store.StoreMasterIssueDTO;
import com.cool.store.dto.store.StoreOrderTimeDTO;
import com.cool.store.entity.*;
import com.cool.store.entity.bonus.BonusDistributionRuleDO;
@@ -27,9 +29,11 @@ import com.cool.store.mq.producer.SimpleMessageService;
import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.request.ZxjpApiRequest;
import com.cool.store.request.bigdata.LatestOrderDateRequest;
import com.cool.store.request.storeopen.StoreDailyNonOpenMissingRequest;
import com.cool.store.request.tp.TpApplyQueryRequest;
import com.cool.store.request.close.store.CloseStoreApplyRequest;
import com.cool.store.response.bigdata.LatestOrderDateResponse;
import com.cool.store.response.storeopen.StoreDailyNonOpenMissingResponse;
import com.cool.store.service.*;
import com.cool.store.service.bonus.BonusService;
import com.cool.store.service.close.CloseStoreRefundService;
@@ -151,6 +155,8 @@ public class XxlJobHandler {
BonusService bonusService;
@Resource
CloseStoreInfoDAO closeStoreInfoDAO;
@Resource
ThirdStoreOpenDataService thirdStoreOpenDataService;
private static final DateTimeFormatter MONTH_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM");
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
@@ -869,4 +875,58 @@ public class XxlJobHandler {
XxlJobHelper.handleFail("执行失败: " + e.getMessage());
}
}
/**
* 未开业门店
*/
@XxlJob("softOpenDate")
public void softOpenDate() {
MDCUtils.put(CommonConstants.REQUEST_ID, UUID.randomUUID().toString());
log.info("------start softOpenDate------");
try {
int pageNum = 1, pageSize = CommonConstants.BATCH_SIZE;
boolean hasNext = true;
List<StoreExtendSoftOpenDTO> updateList = new ArrayList<>();
while (hasNext) {
PageHelper.startPage(pageNum, pageSize);
List<StoreDO> storeList = storeDao.getExistStoreNumStore(Collections.singletonList(StoreStatusEnum.NOT_OPEN.getValue()));
if (CollectionUtils.isEmpty(storeList)) {
break;
}
hasNext = storeList.size() >= pageSize;
Map<String, String> storeMap = CollStreamUtil.toMap(storeList, StoreDO::getStoreNum, StoreDO::getStoreId);
StoreDailyNonOpenMissingRequest request = new StoreDailyNonOpenMissingRequest();
request.setShopSns(new ArrayList<>(storeMap.keySet()));
List<StoreDailyNonOpenMissingResponse> responses = thirdStoreOpenDataService.getDailyNonOpenMissing(request);
if (CollectionUtils.isNotEmpty(responses)) {
List<StoreExtendSoftOpenDTO> list = CollStreamUtil.toList(responses, v -> {
try {
return new StoreExtendSoftOpenDTO(storeMap.get(v.getShopSn()), DateUtils.parseDate(v.getDate(), "yyyy-MM-dd"));
} catch (Exception e) {
throw new RuntimeException(e);
}
});
updateList.addAll(list);
}
pageNum++;
}
if (CollectionUtils.isNotEmpty(updateList)) {
storeDao.insertOrUpdateSoftOpenDate(updateList);
List<String> storeIds = CollStreamUtil.toList(updateList, StoreExtendSoftOpenDTO::getStoreId);
// 修改门店状态
storeDao.updateStatusBatch(storeIds, StoreStatusEnum.OPEN.getValue());
// 主数据下发
try {
StoreMasterIssueDTO storeMasterIssueDTO = new StoreMasterIssueDTO(eid, storeIds);
simpleMessageService.send(JSONObject.toJSONString(storeMasterIssueDTO), RocketMqTagEnum.STORE_MASTER_ISSUE);
} catch (Exception e) {
log.error("mq通知主应用下发门店主数据失败");
}
}
log.info("------end softOpenDate------");
} catch (Exception e) {
log.error("softOpenDate执行失败", e);
XxlJobHelper.handleFail("执行失败: " + e.getMessage());
}
}
}