Browse Source

红娘订单

master
张彭杰 1 year ago
parent
commit
bc468cc248
5 changed files with 58 additions and 3 deletions
  1. 14
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java
  2. 24
      dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/paymentchannelorder/PaymentChannelOrderApplicationService.java
  3. 4
      dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/order/OrderAggregate.java
  4. 5
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/OrderQueryService.java
  5. 14
      dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java

14
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/order/OrderApplicationService.java

@ -29,6 +29,7 @@ import com.qniao.dam.domian.aggregate.marriagebount.constant.MarriageBountyOrder
import com.qniao.dam.domian.aggregate.marriagebount.constant.PublishIdentityTypeEnum;
import com.qniao.dam.domian.aggregate.order.constant.MatchmakerOrderTypeEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderTypeEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductTypeEnum;
@ -55,6 +56,7 @@ import com.qniao.domain.BaseApplicationService;
import com.qniao.domain.BaseDomainEvent;
import com.qniao.framework.exception.BizException;
import com.qniao.framework.utils.TypeConvertUtils;
import org.checkerframework.checker.units.qual.C;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@ -469,6 +471,8 @@ public class OrderApplicationService extends BaseApplicationService {
MatchmakerOrderTypeEnum matchmakerOrderType) {
//1. 填充订单信息 + 同类型权益不同规格限制购买和提醒
fillOrderInfo(order);
//2. 结束历史订单
cancelHisOrder(order);
//2. 订单金额计算
countMatchMakerOrderAmount(order, matchmakerOrderType);
//3. 设置订单号
@ -479,6 +483,16 @@ public class OrderApplicationService extends BaseApplicationService {
return new UserSubmitOrderVo(order.getId(), paymentOrder.getId(), false);
}
private void cancelHisOrder(Order order) {
List<Order> orderList = orderQueryService.listHis(order.getUserId(), order.getOrderBelonging(), OrderStatusEnum.UNPAID);
if (CollUtil.isNotEmpty(orderList)) {
orderList.forEach(hsiOrder->{
hsiOrder.setStatus(OrderStatusEnum.CANCELED);
orderAggregate.save(order);
});
}
}
private void countMatchMakerOrderAmount(Order order,
MatchmakerOrderTypeEnum matchmakerOrderType) {
if (CollUtil.isNotEmpty(order.getOrderItemList())) {

24
dating-agency-mall-server/src/main/java/com/qniao/dam/application/service/paymentchannelorder/PaymentChannelOrderApplicationService.java

@ -2,18 +2,36 @@ package com.qniao.dam.application.service.paymentchannelorder;
import com.qniao.dam.api.command.paymentchannelorder.user.request.ThirdPartyField;
import com.qniao.dam.application.service.paymentchannelorder.processor.IChannelPayService;
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.paymentchannelorder.entity.PaymentChannelOrder;
import com.qniao.dam.domain.aggregate.paymentorder.entity.PaymentOrder;
import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.PaymentChannelOrderDao;
import com.qniao.dam.infrastructure.persistent.dao.domain.PaymentOrderDao;
import com.qniao.framework.exception.BizException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Service
public class PaymentChannelOrderApplicationService {
/*
* todo 旧的付款单失效处理
*/
@Resource
private PaymentOrderDao paymentOrderDao;
@Resource
private OrderDao orderDao;
public Map<String, String> prePay(PaymentChannelOrder paymentChannelOrder, List<ThirdPartyField> fieldList, Long appFrom) {
IChannelPayService channelPayService = IChannelPayService.getService(paymentChannelOrder.getPaymentMethod());
//判断是否支付
PaymentOrder paymentOrder = paymentOrderDao.selectById(paymentChannelOrder.getTxnOrderId());
Order order = orderDao.selectById(paymentOrder.getOrderId());
if (OrderStatusEnum.UNPAID.equals(order.getStatus())) {
throw new BizException("订单已失效");
}
return channelPayService.prepay(paymentChannelOrder, fieldList, appFrom);
}
}

4
dating-agency-mall-server/src/main/java/com/qniao/dam/domain/aggregate/order/OrderAggregate.java

@ -25,4 +25,8 @@ public class OrderAggregate {
orderRepository.save(order);
return new OrderCompletedEvent(order.getId());
}
public void save(Order order) {
orderRepository.save(order);
}
}

5
dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/OrderQueryService.java

@ -8,10 +8,14 @@ import com.qniao.dam.api.query.order.user.response.UserPageOrderByOperatorVo;
import com.qniao.dam.domain.aggregate.order.entity.Order;
import com.qniao.dam.domain.aggregate.order.entity.OrderItem;
import com.qniao.dam.domain.aggregate.productspec.entity.ProductSpec;
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.domain.QnPage;
import com.qniao.framework.utils.PageUtil;
import java.util.List;
public interface OrderQueryService {
IPage<UserPageOrderByOperatorVo> pageOrderByOperator(PageUtil pageUtil, UserPageOrderByOperatorQueryParam queryParam);
@ -24,4 +28,5 @@ public interface OrderQueryService {
Order queryBySubCategory(Long userId,ProductSubCategoryEnum subCategory);
List<Order> listHis(Long userId, OrderBelongingEnum orderBelonging, OrderStatusEnum status);
}

14
dating-agency-mall-server/src/main/java/com/qniao/dam/query/order/impl/OrderQueryServiceImpl.java

@ -1,5 +1,6 @@
package com.qniao.dam.query.order.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.qniao.dam.api.query.order.user.request.UserPageOrderByOperatorQueryParam;
import com.qniao.dam.api.query.order.user.response.GetOrderStatisticsByOperatorVo;
@ -14,10 +15,13 @@ import com.qniao.dam.domain.aggregate.productspec.repository.ProductSpecReposito
import com.qniao.dam.domain.aggregate.productspec.valueobj.ProductSpecTerm;
import com.qniao.dam.domain.aggregate.right.entity.Right;
import com.qniao.dam.domain.aggregate.right.entity.RightTerm;
import com.qniao.dam.domian.aggregate.order.constant.OrderBelongingEnum;
import com.qniao.dam.domian.aggregate.order.constant.OrderStatusEnum;
import com.qniao.dam.domian.aggregate.product.constant.ProductSubCategoryEnum;
import com.qniao.dam.domian.aggregate.productspec.constant.ProductSpecTermNameEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightNameEnum;
import com.qniao.dam.domian.aggregate.right.constant.RightTypeEnum;
import com.qniao.dam.infrastructure.persistent.dao.domain.OrderDao;
import com.qniao.dam.infrastructure.persistent.dao.view.OrderViewDao;
import com.qniao.dam.query.order.OrderQueryService;
import com.qniao.dam.query.product.ProductQueryService;
@ -35,6 +39,8 @@ import java.util.stream.Collectors;
@Service
public class OrderQueryServiceImpl implements OrderQueryService {
@Resource
private OrderDao orderDao;
@Resource
private OrderViewDao orderViewDao;
@Resource
@ -87,4 +93,12 @@ public class OrderQueryServiceImpl implements OrderQueryService {
public Order queryBySubCategory(Long userId, ProductSubCategoryEnum subCategory) {
return orderViewDao.queryBySubCategory(userId, subCategory);
}
@Override
public List<Order> listHis(Long userId, OrderBelongingEnum orderBelonging, OrderStatusEnum status) {
return orderDao.selectList(new LambdaQueryWrapper<Order>()
.eq(Order::getUserId,userId)
.eq(Order::getOrderBelonging,orderBelonging)
.eq(Order::getStatus,status));
}
}
Loading…
Cancel
Save