This commit is contained in:
lihongbiao 2025-01-23 09:35:19 +08:00
parent fab091e614
commit c8e155eaf6
6 changed files with 84 additions and 10 deletions

View File

@ -10,10 +10,14 @@ import com.pixelai.api.pa.service.PaVipCurrencyService;
import com.pixelai.api.pa.service.PaVipService;
import com.pixelai.config.WeChatConfig;
import com.pixelai.utils.WeChatUtil;
import com.wechat.pay.java.core.exception.HttpException;
import com.wechat.pay.java.core.exception.ServiceException;
import com.wechat.pay.java.core.exception.ValidationException;
import com.wechat.pay.java.core.http.*;
import com.wechat.pay.java.core.notification.NotificationParser;
import com.wechat.pay.java.core.util.GsonUtil;
import com.wechat.pay.java.service.payments.jsapi.JsapiService;
import com.wechat.pay.java.service.payments.jsapi.model.Payer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.wechat.pay.java.service.partnerpayments.h5.model.Transaction;
@ -39,6 +43,8 @@ import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
public class OrderPayAppService {
@ -48,6 +54,8 @@ public class OrderPayAppService {
private NotificationParser notificationParser;
@Resource
private H5Service h5Service;
// @Resource
// private JsapiService jsapiService;
@Resource
private PaOrderService paOrderService;
@Resource
@ -123,26 +131,24 @@ public class OrderPayAppService {
paOrderService.updateById(order);
logger.info("Order status updated to HAVE_TO_PAY. Order ID: {}", order.getId());
//支付成功-充值钻石
PaVipCurrency currency = new PaVipCurrency();
PaVipCurrency currency = paVipCurrencyService.findByUserId(order.getMemberId());
currency.setState("t");
if (order.getBuyType().equals("1")){
currency.setNumerical(5);
currency.setNumerical(currency.getNumerical()+5);
}else if (order.getBuyType().equals("2")){
currency.setNumerical(10);
currency.setNumerical(currency.getNumerical()+10);
}else if (order.getBuyType().equals("3")){
currency.setNumerical(20);
currency.setNumerical(currency.getNumerical()+20);
}else if (order.getBuyType().equals("4")){
currency.setNumerical(30);
currency.setNumerical(currency.getNumerical()+30);
}else if (order.getBuyType().equals("5")){
currency.setNumerical(50);
currency.setNumerical(currency.getNumerical()+50);
}else if (order.getBuyType().equals("6")){
currency.setNumerical(100);
currency.setNumerical(currency.getNumerical()+100);
}else {
return;
}
currency.setUserid(order.getMemberId());
paVipCurrencyService.save(currency);
paVipCurrencyService.updateById(currency);
// 添加日志
PaConsumption consumption = new PaConsumption();
consumption.setAddOrSub("add");
@ -156,4 +162,39 @@ public class OrderPayAppService {
}
}
// public PaOrder jsPay(PaOrder order, HttpServletRequest request) {
// com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest prepayRequest = new com.wechat.pay.java.service.payments.jsapi.model.PrepayRequest();
// prepayRequest.setAppid(weChatConfig.getAppId());
// prepayRequest.setMchid(weChatConfig.getMerchantId());
// String tradeNo = WeChatUtil.generateTradeNumber();
// prepayRequest.setOutTradeNo(tradeNo);
// prepayRequest.setDescription("钻石购买");
// prepayRequest.setNotifyUrl(weChatConfig.notifyUrl);
// com.wechat.pay.java.service.payments.jsapi.model.Amount amount = new com.wechat.pay.java.service.payments.jsapi.model.Amount();
// amount.setTotal((order.getAmount().multiply(new BigDecimal("100"))).intValue());
// prepayRequest.setAmount(amount);
// Payer payer = new Payer();
// payer.setOpenid(order.getOpenid());
// prepayRequest.setPayer(payer);
// // 调用下单方法得到应答
// PrepayResponse response;
// try {
// com.wechat.pay.java.service.payments.jsapi.model.PrepayResponse prepay = jsapiService.prepay(prepayRequest);
// //预支付成功创建预支付订单
// order.setOrderNum(tradeNo);
// order.setPayStatus(PayState.TO_BE_PAID);
// order.setCreateTime(new Date());
// order.setState("t");
// order.setH5Url(null);
// paOrderService.save(order);
// return order;
// } catch (HttpException e) { // 发送HTTP请求失败
// e.printStackTrace();
// } catch (ServiceException e) { // 服务返回状态小于200或大于等于300例如500
// e.printStackTrace();
// } catch (Exception e) {
// e.printStackTrace();
// }
// return null;
// }
}

View File

@ -22,6 +22,8 @@ import javax.validation.Valid;
import java.util.Collections;
import java.util.Map;
import java.util.List;
import java.util.Objects;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
@ -110,6 +112,16 @@ public class PaOrderController extends BaseController {
return new Result<>(true, order1);
}
// @ApiOperation(value = "js支付")
// @RequestMapping("jsPay")
// public Result jsPay(PaOrder order, HttpServletRequest request) {
// PaOrder order1 = payAppService.jsPay(order, request);
// if (Objects.isNull(order1)) {
// return new Result<>(false, "支付失败");
// }
// return new Result<>(true, order1);
// }
@ApiOperation(value = "h5回调")
@PostMapping(value = "payNotify")
@Unsecured

View File

@ -72,4 +72,8 @@ public class PaOrder implements Serializable {
@TableField(exist = false)
@ApiModelProperty(value = "预下单地址")
private String h5Url;
@TableField(exist = false)
@ApiModelProperty(value = "openid")
private String openid;
}

View File

@ -44,4 +44,10 @@ public interface PaVipCurrencyService extends IService<PaVipCurrency> {
*/
IPage<PaVipCurrency> page(PaVipCurrency example,IPage page);
/**
* userId获取
* @param memberId
* @return
*/
PaVipCurrency findByUserId(Integer memberId);
}

View File

@ -57,6 +57,8 @@ public class PaOrderServiceImpl extends ServiceImpl<PaOrderMapper, PaOrder> impl
*/
private QueryWrapper<PaOrder> buildWrapper(PaOrder example) {
QueryWrapper<PaOrder> wrapper = new QueryWrapper<>();
wrapper.lambda()
.eq(example.getMemberId() != null, PaOrder::getMemberId, example.getMemberId());
return wrapper;
}

View File

@ -76,6 +76,15 @@ public class PaVipCurrencyServiceImpl extends ServiceImpl<PaVipCurrencyMapper, P
return this.page(page,buildWrapper(example));
}
@Override
public PaVipCurrency findByUserId(Integer memberId) {
QueryWrapper<PaVipCurrency> queryWrapper=new QueryWrapper<>();
queryWrapper.lambda()
.eq(PaVipCurrency::getUserid,memberId)
.eq(PaVipCurrency::getState,"t");
return getOne(queryWrapper);
}
/**
* 构建查询
*