|
|
@@ -11,31 +11,23 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.kxs.common.core.constant.CommonConstants;
|
|
|
import com.kxs.common.core.exception.GlobalCustomerException;
|
|
|
import com.kxs.common.core.util.R;
|
|
|
-import com.kxs.common.pay.enums.PayConstants;
|
|
|
+import com.kxs.common.mq.handlers.IMQSender;
|
|
|
import com.kxs.common.pay.enums.PayPlatformEnum;
|
|
|
-import com.kxs.common.pay.enums.PayStatusCommEnum;
|
|
|
import com.kxs.common.pay.factory.PaymentFactory;
|
|
|
import com.kxs.common.pay.model.PayRequest;
|
|
|
import com.kxs.common.pay.model.PayResponse;
|
|
|
import com.kxs.common.pay.model.YuePayMessage;
|
|
|
import com.kxs.common.security.util.SecurityUtils;
|
|
|
+import com.kxs.product.api.amqp.rabbit.RabbitShopTimeoutQueueMQ;
|
|
|
import com.kxs.product.api.dto.kxsapp.shop.GoodsSubmitDTO;
|
|
|
import com.kxs.product.api.dto.kxsapp.shop.PayOrderDTO;
|
|
|
-import com.kxs.product.api.model.KxsShopGoods;
|
|
|
-import com.kxs.product.api.model.KxsShopGoodsSku;
|
|
|
-import com.kxs.product.api.model.KxsShopOrder;
|
|
|
-import com.kxs.product.api.model.KxsShopOrderInfo;
|
|
|
+import com.kxs.product.api.model.*;
|
|
|
import com.kxs.product.api.vo.kxsapp.shop.*;
|
|
|
import com.kxs.product.biz.constant.enums.KxsShopEnum;
|
|
|
import com.kxs.product.biz.constant.enums.ProductErrorTypeEnum;
|
|
|
-import com.kxs.product.biz.mapper.KxsShopGoodsMapper;
|
|
|
-import com.kxs.product.biz.mapper.KxsShopGoodsSkuMapper;
|
|
|
-import com.kxs.product.biz.mapper.KxsShopOrderInfoMapper;
|
|
|
-import com.kxs.product.biz.mapper.KxsShopOrderMapper;
|
|
|
-import com.kxs.product.biz.service.KxsShopGoodsSkuService;
|
|
|
+import com.kxs.product.biz.mapper.*;
|
|
|
import com.kxs.product.biz.service.KxsShopOrderService;
|
|
|
import com.kxs.user.api.feign.RemoteKxsUserService;
|
|
|
-import com.lly835.bestpay.enums.OrderStatusEnum;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
@@ -68,6 +60,8 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
|
|
|
|
|
|
private final PaymentFactory paymentFactory;
|
|
|
private final KxsShopGoodsSkuMapper kxsShopGoodsSkuMapper;
|
|
|
+ private final KxsTicketMapper kxsTicketMapper;
|
|
|
+ private final IMQSender mqSender;
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R submitOrder(GoodsSubmitDTO param) {
|
|
|
@@ -127,6 +121,10 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
|
|
|
orderInfo.setOrderId(order.getId());
|
|
|
orderInfoMapper.insert(orderInfo);
|
|
|
|
|
|
+ //发送订单延时取消消息
|
|
|
+ RabbitShopTimeoutQueueMQ.MsgEntity msgEntity = new RabbitShopTimeoutQueueMQ.MsgEntity();
|
|
|
+ BeanUtils.copyProperties(order,msgEntity);
|
|
|
+ mqSender.send(RabbitShopTimeoutQueueMQ.build(msgEntity),60*20);
|
|
|
return R.ok(order.getId());
|
|
|
|
|
|
}
|
|
|
@@ -214,6 +212,31 @@ public class KxsShopOrderServiceImpl extends ServiceImpl<KxsShopOrderMapper, Kxs
|
|
|
//修改订单信息
|
|
|
this.update(lambdaUpdateWrapper);
|
|
|
//TODO 余额走支付接下来的逻辑
|
|
|
+ //根据订单详情依次处理
|
|
|
+ for (KxsShopOrderInfo kxsShopOrderInfo : kxsShopOrderInfos) {
|
|
|
+ switch(kxsShopOrderInfo.getGoodsId()){
|
|
|
+ case 10:
|
|
|
+ //电签兑换券流程
|
|
|
+ List<KxsTicket> kxsTickets = kxsTicketMapper.selectList(new Page<>(1, 3), Wrappers.<KxsTicket>query().lambda()
|
|
|
+ .eq(KxsTicket::getUserId, 0)
|
|
|
+ .eq(KxsTicket::getTicketType, 0)
|
|
|
+ .eq(KxsTicket::getStatus, 0));
|
|
|
+ if (kxsTickets.size() < 3){
|
|
|
+ throw new GlobalCustomerException("劵码库存不足");
|
|
|
+ }
|
|
|
+ for (KxsTicket kxsTicket : kxsTickets) {
|
|
|
+ kxsTicket.setUpdateTime(LocalDateTime.now());
|
|
|
+ kxsTicket.setStatus(0);
|
|
|
+ kxsTicket.setUserId(Math.toIntExact(order.getUserId()));
|
|
|
+ kxsTicket.setTicketAllotPath(kxsTicket.getTicketAllotPath() + order.getUserId() + "," );
|
|
|
+ kxsTicket.setOrderId(order.getId());
|
|
|
+ //todo 盟主 合伙人标记
|
|
|
+// kxsTicket.setLeaderId();
|
|
|
+// kxsTicket.setPartnerId();
|
|
|
+ kxsTicketMapper.updateById(kxsTicket);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
}
|