From 3b09eb084576dd6be9a7b342edf345293bcc6459 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 25 七月 2023 09:57:27 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 127 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 122 insertions(+), 5 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 64336ed..4a4ddf8 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -13,6 +13,7 @@ import com.ruoyi.common.security.utils.CodeFactoryUtil; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.domain.dto.*; +import com.ruoyi.order.domain.pojo.account.OrderPayment; import com.ruoyi.order.domain.pojo.account.OrderRefund; import com.ruoyi.order.domain.pojo.order.ConsumerGoods; import com.ruoyi.order.domain.pojo.order.Order; @@ -38,10 +39,12 @@ import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.service.*; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; @@ -102,8 +105,29 @@ @Resource private RedisService redisService; + //@Resource + //@Qualifier("profitsSharingServiceImpl") + //private ProfitsSharingService profitsSharingService; + @Autowired private RedissonClient redissonClient; + + /** 商户号 */ + public static String merchantId = ""; + /** 商户API私钥路径 */ + public static String privateKeyPath = ""; + /** 商户证书序列号 */ + public static String merchantSerialNumber = ""; + /** 微信支付平台证书路径 */ + public static String wechatPayCertificatePath = ""; + /** 微信支付 APIv3 密钥 */ + public static String apiV3Key = ""; + /** 微信支付APPID */ + public static String appId=""; + /** 微信支付商户ID */ + public static String mchId=""; + /** 通知地址 */ + public static String notifyUrl=""; /** * @description: buyGoods @@ -276,7 +300,7 @@ if(entity.getCouponType()!=1){ appGoodsMemberCouponVoList.add(entity); }else{ - if(entity.getMoneyThreshold().compareTo(sureOrderGoodsVo.getGoodsTotalPrice())>0){ + if(entity.getMoneyThreshold().compareTo(sureOrderGoodsVo.getGoodsTotalPrice())<0){ appGoodsMemberCouponVoList.add(entity); } } @@ -438,6 +462,7 @@ * @return */ @Override + @Transactional public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) { // 获取用户ID Long userId = appPlaceOrderDto.getUserId(); @@ -672,6 +697,34 @@ appPlaceOrderVo.setOrderId(orderId); appPlaceOrderVo.setOrderNo(orderNo); // 调用支付 + /* CombineTransactionsJsRequest request=new CombineTransactionsJsRequest(); + request.setCombineAppid(); + request.setCombineMchid(); + profitsSharingService.combineTransactions(request);*/ + + //构建预下单支付对象 + /*PrepayRequest request = new PrepayRequest(); + Amount amount = new Amount(); + amount.setTotal(Integer.parseInt(order.getPayMoney().multiply(new BigDecimal(100)).toString())); + request.setAmount(amount); + request.setAppid(this.appId); + request.setMchid(this.mchId); + request.setDescription(order.getGoodsInfo()); + request.setNotifyUrl(this.notifyUrl); + request.setOutTradeNo(order.getOrderId()); + Payer payer = new Payer(); + payer.setOpenid("oLTPCuN5a-nBD4rAL_fa********"); + request.setPayer(payer);*/ + //返回前端唤醒支付结果信息 + /*PrepayWithRequestPaymentResponse res = this.getJsApIResponse(request); + appPlaceOrderVo.setAppId(this.appId); + appPlaceOrderVo.setTimeStamp(res.getTimeStamp()); + appPlaceOrderVo.setNonceStr(res.getNonceStr()); + appPlaceOrderVo.setPackageStr(res.getPackageVal()); + appPlaceOrderVo.setTradeType(res.getSignType()); + appPlaceOrderVo.setPaySign(res.getPaySign());*/ + + //减去优惠券 if(memberCouponSJ!=null){ remoteCouponService.useMemberCoupon(memberCouponSJ.toString()); @@ -688,9 +741,10 @@ delayTask.setEndTime(DateUtils.addMinutes(new Date(),delayTime)); delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId); remoteConfigService.addDelayTask(delayTask); - appPlaceOrderVo.setPayDeadlineTime(DateUtils.addMinutes(order.getCreateTime(),delayTime)); + appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(),delayTime)); return appPlaceOrderVo; } + /** * @param appPlaceActivityDto @@ -700,6 +754,7 @@ * @date 2023/7/6 17:59 */ @Override + @Transactional public AppPlaceOrderVo placeActivityOrder(AppPlaceActivityDto appPlaceActivityDto) { Long userId = appPlaceActivityDto.getUserId(); // 创建订单对象 @@ -912,6 +967,40 @@ agStockChangeDto.setUserId(order.getUserId()); remoteActivityService.changeActivityStock(agStockChangeDto); // 调用支付 + /*PrepayRequest request = new PrepayRequest(); + Amount amount = new Amount(); + amount.setTotal(Integer.parseInt(order.getPayMoney().multiply(new BigDecimal(100)).toString())); + request.setAmount(amount); + request.setAppid(this.appId); + request.setMchid(this.mchId); + request.setDescription(order.getGoodsInfo()); + request.setNotifyUrl(this.notifyUrl); + request.setOutTradeNo(order.getOrderId()); + Payer payer = new Payer(); + // TODO 获取openID + payer.setOpenid("oLTPCuN5a-nBD4rAL_fa********"); + + request.setPayer(payer);*/ + + //设置订单允许分账 秒杀活动才允许分账 + /*if(order.getOrderFrom()==2){ + SettleInfo settleInfo=new SettleInfo(); + settleInfo.setProfitSharing(true); + request.setSettleInfo(settleInfo); + }*/ + + + //返回前端唤醒支付结果信息 + /*PrepayWithRequestPaymentResponse res = this.getJsApIResponse(request); + + appPlaceOrderVo.setAppId(this.appId); + appPlaceOrderVo.setTimeStamp(res.getTimeStamp()); + appPlaceOrderVo.setNonceStr(res.getNonceStr()); + appPlaceOrderVo.setPackageStr(res.getPackageVal()); + appPlaceOrderVo.setTradeType(res.getSignType()); + appPlaceOrderVo.setPaySign(res.getPaySign()); +*/ + //生成自动取消订单延时任务 Integer delayTime = 30; if(redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)){ @@ -924,7 +1013,7 @@ delayTask.setEndTime(DateUtils.addMinutes(new Date(),delayTime)); delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId); remoteConfigService.addDelayTask(delayTask); - appPlaceOrderVo.setPayDeadlineTime(DateUtils.addMinutes(order.getCreateTime(),delayTime)); + appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(),delayTime)); return appPlaceOrderVo; } @@ -1110,6 +1199,7 @@ * @return */ @Override + @Transactional public MerVerifyOrderVo sureVerifyOrder(MerVerifyOrderDto merVerifyOrderDto) { String orderId = merVerifyOrderDto.getOrderId(); BigDecimal relReceiveMoney = merVerifyOrderDto.getRelReceiveMoney(); @@ -1191,7 +1281,13 @@ SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); merVerifyOrderVo.setUserName(sysUser.getNickName()); merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); + // + if(order.getOrderFrom()==2){ + + //profitsSharingService.applyProfitSharing(); + } return merVerifyOrderVo; + } /** @@ -1202,6 +1298,7 @@ * @date 2023/6/28 11:26 */ @Override + @Transactional public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) { MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData(); ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyCouponDto.getUserId()).getData(); @@ -1295,6 +1392,7 @@ * @return MerVerifyAwardVo */ @Override + @Transactional public MerVerifyAwardVo sureVerifyPrize(MerVerifyPrizeDto merVerifyPrizeDto){ MerVerifyAwardVo merVerifyAwardVo = new MerVerifyAwardVo(); MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrize(merVerifyPrizeDto.getPrizeId()).getData(); @@ -3048,6 +3146,7 @@ * @return void */ @Override + @Transactional public void autoCancelOrder(String orderId){ //更新订单信息 Order order = this.getById(orderId); @@ -3102,12 +3201,14 @@ * @description 订单支付回调 * @author jqs * @date 2023/7/13 17:57 - * @param orderId + * @param transaction * @return void */ @Override - public void payBack(String orderId) { + @Transactional + public void payBack(Transaction transaction) { // 更新订单状态 + String orderId=transaction.getOutTradeNo(); Order order = this.getById(orderId); order.setOrderStatus(2); order.setPayTime(new Date()); @@ -3214,7 +3315,22 @@ } activityTotalChangeDto.setUserId(order.getUserId()); remoteActivityService.changeActivityTotal(activityTotalChangeDto); + + + //活动订单进行分账 + /*ProfitSharingApplyRequest request=new ProfitSharingApplyRequest(); + request.setAppid(this.appId); + request.setSubMchid(""); + request.setTransactionId(transaction.getTransactionId()); + profitsSharingService.applyProfitSharing(request);*/ } + //生成支付记录 + OrderPayment orderPayment = new OrderPayment(); + + + + + } /** @@ -3225,6 +3341,7 @@ * @return void */ @Override + @Transactional public void refundOrder(String orderId){ //更新订单信息 Order order = this.getById(orderId); -- Gitblit v1.7.1