You've already forked FrameTour-BE
修改
This commit is contained in:
@@ -18,6 +18,7 @@ import com.wechat.pay.java.service.refund.RefundService;
|
||||
import com.wechat.pay.java.service.refund.model.AmountReq;
|
||||
import com.wechat.pay.java.service.refund.model.CreateRequest;
|
||||
import com.wechat.pay.java.service.refund.model.Refund;
|
||||
import com.ycwl.basic.biz.OrderBiz;
|
||||
import com.ycwl.basic.config.WechatConfig;
|
||||
import com.ycwl.basic.constant.HttpConstant;
|
||||
import com.ycwl.basic.constant.NumberConstant;
|
||||
@@ -32,6 +33,7 @@ import com.ycwl.basic.mapper.SourceMapper;
|
||||
import com.ycwl.basic.mapper.StatisticsMapper;
|
||||
import com.ycwl.basic.mapper.VideoMapper;
|
||||
import com.ycwl.basic.model.mobile.statistic.req.StatisticsRecordAddReq;
|
||||
import com.ycwl.basic.model.pc.order.entity.OrderEntity;
|
||||
import com.ycwl.basic.model.pc.order.entity.OrderItemEntity;
|
||||
import com.ycwl.basic.model.pc.order.resp.OrderRespVO;
|
||||
import com.ycwl.basic.model.pc.payment.entity.PaymentEntity;
|
||||
@@ -101,6 +103,8 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
private VideoMapper videoMapper;
|
||||
@Autowired
|
||||
private OrderRepository orderRepository;
|
||||
@Autowired
|
||||
private OrderBiz orderBiz;
|
||||
|
||||
@Override
|
||||
public WxPayRespVO createOrder(WXPayOrderReqVO req) {
|
||||
@@ -198,14 +202,19 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
|
||||
// 更新订单信息
|
||||
new Thread(() -> {
|
||||
Transaction.TradeStateEnum tradeState = parse.getTradeState();
|
||||
OrderStateEnum OrderStateEnum = null;
|
||||
if (Transaction.TradeStateEnum.SUCCESS == tradeState) {
|
||||
OrderStateEnum = OrderStateEnum.PAID;
|
||||
}
|
||||
if (Objects.nonNull(OrderStateEnum)) {
|
||||
long orderId = Long.parseLong(parse.getOutTradeNo());
|
||||
notifyOrderSuccess(orderId);
|
||||
long orderId = Long.parseLong(parse.getOutTradeNo());
|
||||
switch (parse.getTradeState()) {
|
||||
case SUCCESS:
|
||||
orderBiz.paidOrder(orderId);
|
||||
break;
|
||||
case NOTPAY:
|
||||
case CLOSED:
|
||||
case REVOKED:
|
||||
orderBiz.cancelOrder(orderId);
|
||||
break;
|
||||
case REFUND:
|
||||
orderBiz.refundOrder(orderId);
|
||||
break;
|
||||
}
|
||||
}).start();
|
||||
} catch (Exception e) {
|
||||
@@ -213,45 +222,6 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void notifyOrderSuccess(Long orderId) {
|
||||
try {
|
||||
orderService.updateOrderState(orderId, OrderStateEnum.PAID, null);
|
||||
// 添加统计数据
|
||||
statisticsHandler(orderId);
|
||||
}catch (Exception e) {
|
||||
log.error("[微信支付回调]更新订单状态失败", e);
|
||||
}
|
||||
OrderRespVO byId = orderMapper.getById(orderId);
|
||||
List<OrderItemEntity> orderItemList = orderMapper.listOrderItemByOrderId(orderId);
|
||||
orderItemList.forEach(orderItemVO -> {
|
||||
orderRepository.clearUserBuyItemCache(byId.getMemberId(), orderItemVO.getGoodsType(), orderItemVO.getGoodsId());
|
||||
switch (orderItemVO.getGoodsType()) {
|
||||
case 0: // 成片
|
||||
MemberVideoEntity memberVideoEntity = new MemberVideoEntity();
|
||||
memberVideoEntity.setMemberId(byId.getMemberId());
|
||||
memberVideoEntity.setVideoId(orderItemVO.getGoodsId());
|
||||
memberVideoEntity.setIsBuy(1);
|
||||
memberVideoEntity.setOrderId(orderId);
|
||||
videoMapper.updateRelation(memberVideoEntity);
|
||||
break;
|
||||
case 1: // 源视频
|
||||
case 2: // 源素材
|
||||
MemberSourceEntity memberSourceEntity = new MemberSourceEntity();
|
||||
memberSourceEntity.setMemberId(byId.getMemberId());
|
||||
// 源素材的goodsId是人脸ID
|
||||
memberSourceEntity.setFaceId(orderItemVO.getGoodsId());
|
||||
memberSourceEntity.setType(orderItemVO.getGoodsType());
|
||||
memberSourceEntity.setIsBuy(1);
|
||||
memberSourceEntity.setOrderId(orderId);
|
||||
sourceMapper.updateRelation(memberSourceEntity);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//
|
||||
private void statisticsHandler(Long orderId) {
|
||||
ApiResponse<OrderRespVO> orderDetail = orderService.detail(orderId);
|
||||
@@ -362,14 +332,13 @@ public class WxPayServiceImpl implements WxPayService {
|
||||
|
||||
if (!StringUtils.isEmpty(refund_status) && WECHATPAY_SUCCESS.equals(refund_status)) {
|
||||
long orderId = Long.parseLong(out_trade_no);
|
||||
orderService.updateOrderState(orderId, OrderStateEnum.REFUNDED, null);
|
||||
orderBiz.refundOrder(orderId);
|
||||
|
||||
ApiResponse<OrderRespVO> detail = orderService.detail(orderId);
|
||||
OrderRespVO orderData = detail.getData();
|
||||
OrderEntity order = orderRepository.getOrder(orderId);
|
||||
StatisticsRecordAddReq statisticsRecordAddReq = new StatisticsRecordAddReq();
|
||||
statisticsRecordAddReq.setMemberId(orderData.getMemberId());
|
||||
statisticsRecordAddReq.setMemberId(order.getMemberId());
|
||||
statisticsRecordAddReq.setType(StatisticEnum.REFUND.code);
|
||||
statisticsRecordAddReq.setScenicId(orderData.getScenicId());
|
||||
statisticsRecordAddReq.setScenicId(order.getScenicId());
|
||||
statisticsRecordAddReq.setMorphId(orderId);
|
||||
statisticsMapper.addStatisticsRecord(statisticsRecordAddReq);
|
||||
|
||||
|
||||
@@ -189,48 +189,12 @@ public class OrderServiceImpl implements OrderService {
|
||||
if (state == OrderStateEnum.CANCELED.getState()) {//取消支付
|
||||
orderUpdateReq.setCancelAt(new Date());
|
||||
|
||||
//如果订单未支付就把商品状态更改成未购买
|
||||
OrderRespVO orderRespVO = orderMapper.getById(orderSn);
|
||||
Integer goodsType = orderRespVO.getGoodsType();
|
||||
List<OrderItemVO> orderItemList = orderRespVO.getOrderItemList();
|
||||
orderItemList.forEach(orderItemVO -> {
|
||||
Long goodsId = orderItemVO.getGoodsId();
|
||||
if (Objects.equals(goodsType, GoodsTypeEnum.VIDEO.code)) {
|
||||
VideoEntity videoEntity = new VideoEntity();
|
||||
videoEntity.setId(goodsId);
|
||||
videoEntity.setIsBuy(0);
|
||||
videoMapper.update(videoEntity);
|
||||
} else if (Objects.equals(goodsType, GoodsTypeEnum.SOURCE.code)) {
|
||||
SourceEntity sourceEntity = new SourceEntity();
|
||||
sourceEntity.setId(goodsId);
|
||||
sourceEntity.setIsBuy(0);
|
||||
sourceMapper.update(sourceEntity);
|
||||
}
|
||||
});
|
||||
} else if (state== OrderStateEnum.PAID.getState()) {//支付成功
|
||||
orderUpdateReq.setPayAt(new Date());
|
||||
|
||||
}else if (state == OrderStateEnum.REFUNDED.getState()) {//退款成功
|
||||
orderUpdateReq.setRefundAt(new Date());
|
||||
|
||||
//订单退款成功就把商品状态更改成未购买
|
||||
OrderRespVO orderRespVO = orderMapper.getById(orderSn);
|
||||
Integer goodsType = orderRespVO.getGoodsType();
|
||||
List<OrderItemVO> orderItemList = orderRespVO.getOrderItemList();
|
||||
orderItemList.forEach(orderItemVO -> {
|
||||
Long goodsId = orderItemVO.getGoodsId();
|
||||
if (Objects.equals(goodsType, GoodsTypeEnum.VIDEO.code)) {
|
||||
VideoEntity videoEntity = new VideoEntity();
|
||||
videoEntity.setId(goodsId);
|
||||
videoEntity.setIsBuy(0);
|
||||
videoMapper.update(videoEntity);
|
||||
} else if (Objects.equals(goodsType, GoodsTypeEnum.SOURCE.code)) {
|
||||
SourceEntity sourceEntity = new SourceEntity();
|
||||
sourceEntity.setId(goodsId);
|
||||
sourceEntity.setIsBuy(0);
|
||||
sourceMapper.update(sourceEntity);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
orderMapper.update(orderUpdateReq);
|
||||
|
||||
Reference in New Issue
Block a user