|
|
@@ -1301,16 +1301,29 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
List<UserAddress> addressList = new ArrayList<>();
|
|
|
Map<Long, StorePink> storePinkMap = new HashMap<>();
|
|
|
if (CollectionUtils.isNotEmpty(list)) {
|
|
|
- Condition infoCondition = new Condition(StoreOrderInfo.class);
|
|
|
- Example.Criteria infoCriteria = infoCondition.createCriteria();
|
|
|
- infoCriteria.andEqualTo("isDelete", 0);
|
|
|
- infoCriteria.andIn("orderId", list.stream().map(StoreOrder::getId).collect(Collectors.toList()));
|
|
|
- infoArrayList = storeOrderInfoService.findByCondition(infoCondition);
|
|
|
+ List<String> orderIdList = list.stream().map(StoreOrder::getOrderId).collect(Collectors.toList());
|
|
|
+ if(!org.springframework.util.CollectionUtils.isEmpty(orderIdList)) {
|
|
|
+ Condition infoCondition = new Condition(StoreOrderInfo.class);
|
|
|
+ Example.Criteria infoCriteria = infoCondition.createCriteria();
|
|
|
+ infoCriteria.andEqualTo("isDelete", 0);
|
|
|
+ infoCriteria.andIn("orderNo", orderIdList);
|
|
|
+ infoArrayList = storeOrderInfoService.findByCondition(infoCondition);
|
|
|
+
|
|
|
+ Condition statusCondition = new Condition(StoreOrderStatus.class);
|
|
|
+ Example.Criteria statusCriteria = statusCondition.createCriteria();
|
|
|
+ statusCriteria.andIn("orderId", orderIdList);
|
|
|
+ statusList = storeOrderStatusService.findByCondition(statusCondition);
|
|
|
+
|
|
|
+ Condition infoConditionStorePink = new Condition(StorePink.class);
|
|
|
+ Example.Criteria infoCriteriaStorePink = infoConditionStorePink.createCriteria();
|
|
|
+ infoCriteriaStorePink.andEqualTo("isDelete", 0);
|
|
|
+ infoCriteriaStorePink.andIn("orderId", orderIdList);
|
|
|
+ List<StorePink> byCondition = storePinkService.findByCondition(infoConditionStorePink);
|
|
|
+ if (!org.springframework.util.CollectionUtils.isEmpty(byCondition)) {
|
|
|
+ storePinkMap = byCondition.stream().collect(Collectors.toMap(StorePink::getOrderIdKey, a -> a, (b, c) -> c));
|
|
|
+ }
|
|
|
|
|
|
- Condition statusCondition = new Condition(StoreOrderStatus.class);
|
|
|
- Example.Criteria statusCriteria = statusCondition.createCriteria();
|
|
|
- statusCriteria.andIn("oid", list.stream().map(StoreOrder::getId).collect(Collectors.toList()));
|
|
|
- statusList = storeOrderStatusService.findByCondition(statusCondition);
|
|
|
+ }
|
|
|
|
|
|
Condition addressCondition = new Condition(UserAddress.class);
|
|
|
Example.Criteria addressCriteria = addressCondition.createCriteria();
|
|
|
@@ -1318,20 +1331,9 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
List<Long> collect = list.stream().map(StoreOrder::getAddressId).filter(Objects::nonNull).collect(Collectors.toList());
|
|
|
if (!org.springframework.util.CollectionUtils.isEmpty(collect)) {
|
|
|
addressCriteria.andIn("id", collect);
|
|
|
- }
|
|
|
- addressList = userAddressService.findByCondition(addressCondition);
|
|
|
-
|
|
|
-
|
|
|
- Condition infoConditionStorePink = new Condition(StorePink.class);
|
|
|
- Example.Criteria infoCriteriaStorePink = infoConditionStorePink.createCriteria();
|
|
|
- infoCriteriaStorePink.andEqualTo("isDelete", 0);
|
|
|
- infoCriteriaStorePink.andIn("orderIdKey", list.stream().map(StoreOrder::getId).collect(Collectors.toList()));
|
|
|
- List<StorePink> byCondition = storePinkService.findByCondition(infoConditionStorePink);
|
|
|
- if (!org.springframework.util.CollectionUtils.isEmpty(byCondition)) {
|
|
|
- storePinkMap = byCondition.stream().collect(Collectors.toMap(StorePink::getOrderIdKey, a -> a, (b, c) -> c));
|
|
|
+ addressList = userAddressService.findByCondition(addressCondition);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
}
|
|
|
List<StoreOrderInfo> finalInfoArrayList = infoArrayList;
|
|
|
List<StoreOrderStatus> finalStatusList = statusList;
|
|
|
@@ -1889,8 +1891,10 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
|
|
|
// 这是由pc端发起端针对个人的主动退款 不是定时任务扫描活动超时导致的退款,所以这个退款是不影响其他拼团成员的。拼团汇总表也不会上锁,拼团状态仍然是进行中
|
|
|
@Override
|
|
|
- public void refund(Long id) {
|
|
|
- StoreOrder storeOrder = findById(id);
|
|
|
+ public void refund(String orderNo) {
|
|
|
+
|
|
|
+
|
|
|
+ StoreOrder storeOrder = findBy("orderId",orderNo);
|
|
|
//// if (storeOrder.getPaid().equals(Constants.ORDER_STATUS_H5_UNPAID)) {
|
|
|
//// throw new ServiceException("当前状态不支持退款");
|
|
|
//// }
|
|
|
@@ -1909,25 +1913,27 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
//
|
|
|
//
|
|
|
if (ObjectUtils.isEmpty(storeOrder)) {
|
|
|
- throw new ServiceException(I18nUtil.get("order.does.not.exist.when.initiating.active.refund.id") + id);
|
|
|
+ throw new ServiceException(I18nUtil.get("order.does.not.exist.when.initiating.active.refund.id") + orderNo);
|
|
|
}
|
|
|
|
|
|
PinkOrderStatusEnum pinkOrderStatusEnum = OrderStateMachine.handleEvent(storeOrder, OrderEventsEnum.GROUP_PURCHASE_FAIL, null);
|
|
|
if (ObjectUtils.isEmpty(pinkOrderStatusEnum)) {
|
|
|
- throw new ServiceException(I18nUtil.get("current.status.does.not.support.refund.cancellation.id") + id);
|
|
|
+ throw new ServiceException(I18nUtil.get("current.status.does.not.support.refund.cancellation.id") + orderNo);
|
|
|
}
|
|
|
|
|
|
- StorePink storePink = storePinkService.findById(storeOrder.getPinkId());
|
|
|
+ StorePink storePink = storePinkService.findBy("orderId",orderNo);
|
|
|
Integer status = 0;
|
|
|
+ // 批量退款接口调用 这块要前置,退款成功后再去改状态
|
|
|
+ if (ObjectUtils.isEmpty(storePink)) {
|
|
|
+ throw new ServiceException(I18nUtil.get("group.buying.information.does.not.exist.when.closing.due.to.group.buying.timeout.id") + orderNo);
|
|
|
+ }
|
|
|
+
|
|
|
// 团长在未成团时不能退款
|
|
|
if (storePink.getKId().equals(status) && storePink.getStatus().equals(StorePinkStatusEnum.NOT_DRAWN.getKey())) {
|
|
|
- throw new ServiceException(I18nUtil.get("current.member.is.the.group.leader.and.the.group.has.not.drawn.a.prize.refund.is.temporarily.not.supported") + id);
|
|
|
+ throw new ServiceException(I18nUtil.get("current.member.is.the.group.leader.and.the.group.has.not.drawn.a.prize.refund.is.temporarily.not.supported") + orderNo);
|
|
|
}
|
|
|
|
|
|
- // 批量退款接口调用 这块要前置,退款成功后再去改状态
|
|
|
- if (ObjectUtils.isEmpty(storePink)) {
|
|
|
- throw new ServiceException(I18nUtil.get("group.buying.information.does.not.exist.when.closing.due.to.group.buying.timeout.id") + storeOrder.getPinkId());
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
Date date = new Date();
|
|
|
// 主动退款
|
|
|
@@ -1948,10 +1954,16 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
// 拼团状态回退
|
|
|
|
|
|
StorePink storePinkForUpdate = new StorePink();
|
|
|
- storePinkForUpdate.setId(storeOrder.getPinkId());
|
|
|
+ // storePinkForUpdate.setId(storeOrder.getPinkId());
|
|
|
// storePinkForUpdate.setStatus(StorePinkStatusEnum.LOTTERY_FAILED.getKey()); //定时任务触发的拼团失败导致的订单退款需要设置这个状态为拼团失败状态
|
|
|
storePinkForUpdate.setOrderStatus(pinkOrderStatusEnum.getKey());
|
|
|
- storePinkService.update(storePinkForUpdate);
|
|
|
+ //**分库整改
|
|
|
+ Condition storePinkForUpdateCondition = new Condition(StorePink.class);
|
|
|
+ storePinkForUpdateCondition.createCriteria().andEqualTo("orderId",orderNo);
|
|
|
+ int i = storePinkMapper.updateByConditionSelective(storePinkForUpdate, storePinkForUpdateCondition);
|
|
|
+ //维护每日统计表数据
|
|
|
+ dailySalesSummaryOfProductsService.updateDailySalesSummaryOfProducts(orderNo,storePinkForUpdate);
|
|
|
+ // storePinkService.update(storePinkForUpdate);
|
|
|
// 拼团汇总数量维护以及锁单标识维护
|
|
|
Boolean b = storePinkSummaryService.maintainQuantityStatusOfTheStorePinkSummary(storePink.getSpsCode());
|
|
|
// 拼团商品数量以及m_store_combination
|
|
|
@@ -2148,7 +2160,7 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
public void cancel(String orderNo) {
|
|
|
StoreOrder storeOrder = findBy("orderId",orderNo);
|
|
|
if (ObjectUtils.isEmpty(storeOrder)) {
|
|
|
- throw new ServiceException(I18nUtil.get("order.does.not.exist.when.canceling.the.order.id") + id);
|
|
|
+ throw new ServiceException(I18nUtil.get("order.does.not.exist.when.canceling.the.order.id") + orderNo);
|
|
|
}
|
|
|
PinkOrderStatusEnum pinkOrderStatusEnum = OrderStateMachine.handleEvent(storeOrder, OrderEventsEnum.GROUP_PURCHASE_CANCEL, null);
|
|
|
|
|
|
@@ -2257,7 +2269,21 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
|
|
|
List<StoreOrderExportPO> errors = new ArrayList<>();
|
|
|
for (StoreOrderExportPO po : list) {
|
|
|
- StoreOrder storeOrder = this.findById(po.getId());
|
|
|
+
|
|
|
+ if(ObjectUtils.isEmpty(po.getOrderId())){
|
|
|
+ po.setErrorMsg(I18nUtil.get("the.order.number.cannot.be.empty"));
|
|
|
+ errors.add(po);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //**分库分表整改
|
|
|
+ StoreOrder storeOrder = this.findBy("orderId",po.getOrderId());
|
|
|
+ if(ObjectUtils.isEmpty(storeOrder)){
|
|
|
+ po.setErrorMsg(I18nUtil.get("order.does.not.exist"));
|
|
|
+ errors.add(po);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ // StoreOrder storeOrder = this.findById(po.getId());
|
|
|
PinkOrderStatusEnum pinkOrderStatusEnum = OrderStateMachine.handleEvent(storeOrder, OrderEventsEnum.GROUP_PURCHASE_DELIVER, null);
|
|
|
if (ObjectUtil.isEmpty(pinkOrderStatusEnum)) {
|
|
|
po.setErrorMsg(I18nUtil.get("current.status.does.not.support.shipment"));
|
|
|
@@ -2277,17 +2303,29 @@ public class StoreOrderServiceImpl extends AbstractService<StoreOrder> implement
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- storeOrder.setId(po.getId());
|
|
|
- storeOrder.setDeliveryId(po.getDeliveryId());
|
|
|
- storeOrder.setDeliveryName(po.getDeliveryName());
|
|
|
- storeOrder.setStatus(pinkOrderStatusEnum.getKey());
|
|
|
- storeOrder.setDeliveryTime(new Date());
|
|
|
+ // storeOrder.setId(po.getId());
|
|
|
+ StoreOrder storeOrderForUpdate = new StoreOrder();
|
|
|
+ storeOrderForUpdate.setDeliveryId(po.getDeliveryId());
|
|
|
+ storeOrderForUpdate.setDeliveryName(po.getDeliveryName());
|
|
|
+ storeOrderForUpdate.setStatus(pinkOrderStatusEnum.getKey());
|
|
|
+ storeOrderForUpdate.setDeliveryTime(new Date());
|
|
|
+ Condition condition = new Condition(StoreOrder.class);
|
|
|
+ condition.createCriteria().andEqualTo("orderId",po.getOrderId());
|
|
|
+ int i = storeOrderMapper.updateByConditionSelective(storeOrderForUpdate, condition);
|
|
|
+ //**分库整改
|
|
|
+ // update(storeOrder);
|
|
|
|
|
|
- update(storeOrder);
|
|
|
+ // StorePink pinkList = storePinkService.findBy("orderId", po.getOrderId());
|
|
|
|
|
|
- StorePink pinkList = storePinkService.findBy("orderIdKey", po.getId());
|
|
|
- pinkList.setOrderStatus(pinkOrderStatusEnum.getKey());
|
|
|
- storePinkService.update(pinkList);
|
|
|
+ StorePink storePinkForUpdate = new StorePink();
|
|
|
+ storePinkForUpdate.setOrderStatus(pinkOrderStatusEnum.getKey());
|
|
|
+ Condition storePinkForUpdateCondition = new Condition(StorePink.class);
|
|
|
+ storePinkForUpdateCondition.createCriteria().andEqualTo("orderId",po.getOrderId());
|
|
|
+ storePinkMapper.updateByConditionSelective(storePinkForUpdate,storePinkForUpdateCondition);
|
|
|
+ //维护每日统计表
|
|
|
+ dailySalesSummaryOfProductsService.updateDailySalesSummaryOfProducts(po.getOrderId(),storePinkForUpdate);
|
|
|
+ //**分库整改
|
|
|
+ // storePinkService.update(pinkList);
|
|
|
|
|
|
noticeService.addOrderNotice(NoticeEnum.ORDER_SHIPPED_SUCCESS, storeOrder.getOrderId(), storeOrder.getUid());
|
|
|
}
|