Commit 285a2302 authored by shiyu's avatar shiyu

检测24小时以物换物未发出,取消订单

parent 44abce69
......@@ -130,6 +130,9 @@ public class DistributionOrderRequestDto extends BaseRequestDto implements Entit
*/
private Integer state;
private List<Integer> stateList;
/**
* 查询时要排除的状态
*/
......
......@@ -115,6 +115,7 @@ public class DistributionOrderDaoImpl implements DistributionOrderDao {
JdbcHelper.ifPresent(dto.getSellerId(), criteria::andSellerIdEqualTo);
JdbcHelper.ifPresent(dto.getSellerIdList(), criteria::andSellerIdIn);
JdbcHelper.ifPresent(dto.getState(), criteria::andStateEqualTo);
JdbcHelper.ifPresent(dto.getStateList(), criteria::andStateIn);
JdbcHelper.ifPresent(dto.getFilterStateList(), criteria::andStateNotIn);
JdbcHelper.ifPresent(dto.getLogisticsState(), criteria::andLogisticsStateEqualTo);
JdbcHelper.ifPresent(dto.getNotFilterLogisticsState(), criteria::andLogisticsStateNotEqualTo);
......
......@@ -768,11 +768,15 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
try {
//先查询订单当前状态
DistributionOrder distributionOrder = distributionOrderDao.findById(dto.getDistributionOrderId());
if (distributionOrder.getType().intValue() == DistributionEnum.DistributionTypeEnum.EXCHANGE.getCode()) {
distributionOrderDao.updateState(dto.getDistributionOrderId(), DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
} else {
if (distributionOrder.getState() != DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode()) {
return Result.failed("该订单不是待支付状态,无法直接取消");
}
distributionOrderDao.updateState(dto.getDistributionOrderId(), DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
distributorProfitDao.updateValidState(dto.getDistributionOrderId(), false);
}
return Result.success();
} catch (Exception e) {
logger.error("用户取消订单失败 error : {}", e);
......@@ -1322,7 +1326,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
DistributionOrderRequestDto dto = new DistributionOrderRequestDto();
dto.setBuyerId(userId);
dto.setSellerId(distributorId);
dto.setState(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode());
dto.setStateList(Arrays.asList(DistributionEnum.DistributionOrderStateEnum.PRE_PAY.getCode(), DistributionEnum.DistributionOrderStateEnum.PRE_EXCHANGE.getCode()));
List<DistributionOrder> prePayList = distributionOrderDao.findByPage(dto);
prePayList.forEach(distributionOrder -> {
long diffInMillies = Math.abs(new Date().getTime() - distributionOrder.getCreateTime().getTime());
......
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