|
@@ -16,6 +16,7 @@ import com.chelvc.cloud.vehicle.server.dao.OmsOrderMapper;
|
|
import com.chelvc.cloud.vehicle.server.entity.*;
|
|
import com.chelvc.cloud.vehicle.server.entity.*;
|
|
import com.chelvc.cloud.vehicle.server.service.*;
|
|
import com.chelvc.cloud.vehicle.server.service.*;
|
|
import com.chelvc.framework.base.context.SessionContextHolder;
|
|
import com.chelvc.framework.base.context.SessionContextHolder;
|
|
|
|
+import com.chelvc.framework.common.exception.ResourceUnavailableException;
|
|
import com.chelvc.framework.common.function.Executor;
|
|
import com.chelvc.framework.common.function.Executor;
|
|
import com.chelvc.framework.common.model.Pagination;
|
|
import com.chelvc.framework.common.model.Pagination;
|
|
import com.chelvc.framework.common.util.AssertUtils;
|
|
import com.chelvc.framework.common.util.AssertUtils;
|
|
@@ -23,6 +24,9 @@ import com.chelvc.framework.common.util.ObjectUtils;
|
|
import com.chelvc.framework.common.util.StringUtils;
|
|
import com.chelvc.framework.common.util.StringUtils;
|
|
import com.chelvc.framework.database.context.DatabaseContextHolder;
|
|
import com.chelvc.framework.database.context.DatabaseContextHolder;
|
|
import com.chelvc.framework.redis.context.RedisContextHolder;
|
|
import com.chelvc.framework.redis.context.RedisContextHolder;
|
|
|
|
+import com.chelvc.framework.wechat.WechatPayRequest;
|
|
|
|
+import com.chelvc.framework.wechat.WechatPaymentHandler;
|
|
|
|
+import com.chelvc.framework.wechat.WechatUnifiedOrder;
|
|
import io.netty.util.HashedWheelTimer;
|
|
import io.netty.util.HashedWheelTimer;
|
|
import io.netty.util.Timeout;
|
|
import io.netty.util.Timeout;
|
|
import io.netty.util.Timer;
|
|
import io.netty.util.Timer;
|
|
@@ -73,6 +77,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
|
|
|
|
|
private final ReservationService reservationService;
|
|
private final ReservationService reservationService;
|
|
|
|
|
|
|
|
+ private final WechatPaymentHandler wechatPaymentHandler;
|
|
|
|
|
|
// 定义字符池
|
|
// 定义字符池
|
|
private static final String LOWER_CASE = "abcdefghijklmnopqrstuvwxyz";
|
|
private static final String LOWER_CASE = "abcdefghijklmnopqrstuvwxyz";
|
|
@@ -284,11 +289,27 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
|
deleteCartItemList(cartPromotionItemList, userId);
|
|
deleteCartItemList(cartPromotionItemList, userId);
|
|
//发送延迟消息取消订单
|
|
//发送延迟消息取消订单
|
|
sendDelayMessageCancelOrder(order.getId());
|
|
sendDelayMessageCancelOrder(order.getId());
|
|
- // todo 调用支付逻辑
|
|
|
|
-
|
|
|
|
|
|
+ //调用jsapi支付逻辑
|
|
|
|
+ WechatPayRequest request = new WechatPayRequest();
|
|
|
|
+ //request.setAmount(order.getPayAmount());
|
|
|
|
+ request.setAmount(new BigDecimal("0.01")); //测试,设置为
|
|
|
|
+ request.setComment("商品购买");
|
|
|
|
+ request.setOrder(String.valueOf(order.getId()));
|
|
|
|
+ String openid = userService.queryOpenid(userId);
|
|
|
|
+ if(openid == null){
|
|
|
|
+ throw new ResourceUnavailableException("账号未绑定微信,请联系客服");
|
|
|
|
+ }
|
|
|
|
+ request.setOpenid(openid);
|
|
|
|
+ WechatUnifiedOrder wechatUnifiedOrder = wechatPaymentHandler.unifiedorder("applet", request);
|
|
Map<String, Object> result = new HashMap<>();
|
|
Map<String, Object> result = new HashMap<>();
|
|
- result.put("order", order);
|
|
|
|
- result.put("orderItemList", orderItemList);
|
|
|
|
|
|
+ result.put("mode", wechatUnifiedOrder.getMode().name());
|
|
|
|
+ result.put("appid", wechatUnifiedOrder.getAppid());
|
|
|
|
+ result.put("sign", wechatUnifiedOrder.getSign());
|
|
|
|
+ result.put("timeStamp", wechatUnifiedOrder.getTimestamp());
|
|
|
|
+ result.put("nonce", wechatUnifiedOrder.getNonce());
|
|
|
|
+ result.put("prepayid", wechatUnifiedOrder.getPrepayid());
|
|
|
|
+ result.put("signType", wechatUnifiedOrder.getAlgorithm());
|
|
|
|
+ result.put("pack", wechatUnifiedOrder.getPack());
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -296,6 +317,9 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper, OmsOrder> i
|
|
public Integer paySuccess(Long orderId, Integer payType) {
|
|
public Integer paySuccess(Long orderId, Integer payType) {
|
|
//修改订单支付状态
|
|
//修改订单支付状态
|
|
OmsOrder order = this.baseMapper.selectById(orderId);
|
|
OmsOrder order = this.baseMapper.selectById(orderId);
|
|
|
|
+ if(order == null){
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
order.setStatus(1);
|
|
order.setStatus(1);
|
|
order.setPaymentTime(new Date());
|
|
order.setPaymentTime(new Date());
|
|
order.setPayType(payType);
|
|
order.setPayType(payType);
|