From f08a70b0a1e2cd49075c5d5d3f63d07d0b56cef9 Mon Sep 17 00:00:00 2001 From: zhibing.pu <393733352@qq.com> Date: 星期三, 28 八月 2024 12:05:00 +0800 Subject: [PATCH] 完善硬件相关功能 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java | 70 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 1 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java index b809d8f..af1d4e3 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java @@ -1,7 +1,10 @@ package com.ruoyi.order.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.account.api.dto.GrantCouponDto; +import com.ruoyi.account.api.feignClient.AppCouponClient; import com.ruoyi.account.api.feignClient.AppUserAddressClient; import com.ruoyi.account.api.model.TAppUserAddress; import com.ruoyi.common.core.web.domain.AjaxResult; @@ -9,7 +12,9 @@ import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.model.TExchangeOrder; import com.ruoyi.order.api.model.TShoppingOrder; +import com.ruoyi.order.api.query.ShoppingOrderQuery; import com.ruoyi.order.api.query.TActivityStatisticsQuery; +import com.ruoyi.order.api.vo.ChargingOrderVO; import com.ruoyi.order.api.vo.TActivityStatisticslVO; import com.ruoyi.order.api.vo.TActivityVO; import com.ruoyi.order.dto.*; @@ -19,11 +24,16 @@ import com.ruoyi.other.api.domain.TGoods; import com.ruoyi.other.api.feignClient.CouponClient; import com.ruoyi.other.api.feignClient.GoodsClient; +import com.ruoyi.payment.api.feignClient.AliPaymentClient; +import com.ruoyi.payment.api.feignClient.WxPaymentClient; +import com.ruoyi.payment.api.vo.NotifyV3PayDecodeRespBody; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @@ -50,6 +60,14 @@ @Resource private AppUserAddressClient appUserAddressClient; + @Resource + private AppCouponClient appCouponClient; + + @Resource + private WxPaymentClient wxPaymentClient; + + @Resource + private AliPaymentClient aliPaymentClient; @@ -261,7 +279,20 @@ //支付方式(1=微信,2=支付宝) todo 待完善 Integer paymentType = shoppingOrder.getPaymentType(); if(1 == paymentType){ - + NotifyV3PayDecodeRespBody data = wxPaymentClient.queryOrderInfo(shoppingOrder.getCode()).getData(); + String trade_state = data.getTrade_state(); + if("NOTPAY".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){ + return AjaxResult.error("订单还未支付,不能操作退款"); + } + if("CLOSED".equals(trade_state)){ + return AjaxResult.error("订单支付已关闭,不能操作退款"); + } + if("USERPAYING".equals(trade_state)){ + return AjaxResult.error("订单正在支付中,不能操作退款"); + } + if("REFUND".equals(trade_state)){ + return AjaxResult.error("订单已退款,不能操作退款"); + } } if(2 == paymentType){ @@ -309,4 +340,41 @@ } return pageList; } + + @Override + public void callBack(String code,String outTradeNo) { + //改变订单状态 + TShoppingOrder shoppingOrder = this.baseMapper.selectOne(Wrappers.lambdaQuery(TShoppingOrder.class).eq(TShoppingOrder::getCode, code)); + shoppingOrder.setPaymentStatus(2); + shoppingOrder.setSerialNumber(outTradeNo); + this.updateById(shoppingOrder); + //如果是优惠券,赠送优惠券 + if (shoppingOrder.getOrderType()==2){ + GrantCouponDto grantCouponDto = new GrantCouponDto(); + grantCouponDto.setType(3); + grantCouponDto.setUserIds(String.valueOf(shoppingOrder.getAppUserId())); + grantCouponDto.setCouponId(shoppingOrder.getCouponId()); + grantCouponDto.setWaysToObtain(2); + grantCouponDto.setEndTime(LocalDateTime.now()); + appCouponClient.grantCoupon(grantCouponDto); + } + } + + @Override + public PageInfo<TShoppingOrder> pageList(ShoppingOrderQuery query) { + String startTime1 = null; + String startTime2 = null; + + + if (StringUtils.hasLength(query.getStartTime())){ + String[] split = query.getStartTime().split(" - "); + startTime1 = split[0]; + startTime2 = split[1]; + } + PageInfo<TShoppingOrder> pageInfo = new PageInfo<>(query.getPageCurr(),query.getPageSize()); + List<TShoppingOrder> list = this.baseMapper.pageList(pageInfo,query,startTime1,startTime2); + + pageInfo.setRecords(list); + return pageInfo; + } } -- Gitblit v1.7.1