nnnn
This commit is contained in:
@@ -1,2 +1,6 @@
|
||||
ALTER TABLE cai_pay_trd_config
|
||||
ADD COLUMN `extend_data` JSON;
|
||||
|
||||
-- 2025-11-25
|
||||
ALTER TABLE cai_goods
|
||||
ADD COLUMN `wx_amount` int default 0 not null comment '微信钻石';
|
||||
|
||||
@@ -102,7 +102,7 @@ public class PayController {
|
||||
@Operation(summary = "微信聚合支付")
|
||||
@Log(title = "微信聚合支付", businessType = BusinessType.OTHER, isSaveDb = true)
|
||||
public R<PayReturnResp> trdWxPay(@RequestBody PayControllerDTO dto){
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo(),true);
|
||||
if(payOrderInfo == null){
|
||||
return R.fail(600,"支付失败,未找到订单");
|
||||
}
|
||||
@@ -133,7 +133,7 @@ public class PayController {
|
||||
}catch (Exception e){
|
||||
orderLogsService.createBaseFail(dto.getOrderNo(),"四方支付宝支付",StringUtils.cat(e.getMessage(),2000));
|
||||
log.error("微信聚合支付 使用第三方支付失败! dto={}",JSON.toJSONString(dto), e);
|
||||
return R.fail(600,"支付宝支付失败!");
|
||||
return R.fail(600,"微信支付失败!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ public class PayController {
|
||||
if(payTrdConfig == null){
|
||||
return R.fail(600,"支付失败,未找到支付通道信息");
|
||||
}
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(v14Token.getOrderNo());
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(v14Token.getOrderNo(),true);
|
||||
if(payOrderInfo == null){
|
||||
return R.fail(600,"支付失败,未找到订单");
|
||||
}
|
||||
@@ -217,7 +217,7 @@ public class PayController {
|
||||
@Operation(summary = "支付宝聚合支付")
|
||||
@Log(title = "支付宝聚合支付", businessType = BusinessType.OTHER, isSaveDb = true)
|
||||
public R<PayReturnResp> trdAliPay(@RequestBody PayControllerDTO dto){
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo(),false);
|
||||
if(payOrderInfo == null){
|
||||
return R.fail(600,"支付失败,未找到订单");
|
||||
}
|
||||
@@ -276,7 +276,7 @@ public class PayController {
|
||||
@Operation(summary = "微信支付")
|
||||
@Log(title = "微信支付", businessType = BusinessType.OTHER, isSaveDb = true)
|
||||
public R<PayReturnResp> appPay(@RequestBody PayControllerDTO dto) {
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo(),true);
|
||||
if(payOrderInfo == null){
|
||||
return R.fail(600,"支付失败,未找到订单");
|
||||
}
|
||||
@@ -338,33 +338,33 @@ public class PayController {
|
||||
// @PostMapping(value = "/ali")
|
||||
// @Operation(summary = "支付宝支付")
|
||||
// @Log(title = "支付宝支付", businessType = BusinessType.OTHER, isSaveDb = true)
|
||||
public R<PayReturnResp> aliPay(@RequestBody PayControllerDTO dto) {
|
||||
PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
|
||||
if(payOrderInfo == null){
|
||||
return R.fail(600,"支付失败,未找到订单");
|
||||
}
|
||||
try {
|
||||
boolean b = payConfigManager.initAliPay();
|
||||
if(!b){
|
||||
log.error("支付失败,未找到可用的支付宝配置");
|
||||
return R.fail(600,"支付失败!未开通支付宝支付!");
|
||||
}
|
||||
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
|
||||
model.setBody(payOrderInfo.getBody());
|
||||
model.setSubject(payOrderInfo.getSubject());
|
||||
model.setOutTradeNo(payOrderInfo.getOrderNo());
|
||||
model.setTimeoutExpress("30m");
|
||||
model.setTotalAmount(payOrderInfo.getPrice().toString());
|
||||
String notifyUrl = AliPayApiConfigKit.getAliPayApiConfig().getDomain();
|
||||
String orderInfo = AliPayApi.appPayToResponse(model, notifyUrl+NOTIFY_ALI_URL).getBody();
|
||||
PayReturnResp resp = new PayReturnResp();
|
||||
resp.setData(orderInfo);
|
||||
return R.ok(resp);
|
||||
} catch (AlipayApiException e) {
|
||||
log.error("支付宝支付失败",e);
|
||||
return R.fail("支付宝支付失败,请联系客服");
|
||||
}
|
||||
}
|
||||
// public R<PayReturnResp> aliPay(@RequestBody PayControllerDTO dto) {
|
||||
// PayOrderInfoDTO payOrderInfo = payManager.getOrderInfo(dto.getOrderNo());
|
||||
// if(payOrderInfo == null){
|
||||
// return R.fail(600,"支付失败,未找到订单");
|
||||
// }
|
||||
// try {
|
||||
// boolean b = payConfigManager.initAliPay();
|
||||
// if(!b){
|
||||
// log.error("支付失败,未找到可用的支付宝配置");
|
||||
// return R.fail(600,"支付失败!未开通支付宝支付!");
|
||||
// }
|
||||
// AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
|
||||
// model.setBody(payOrderInfo.getBody());
|
||||
// model.setSubject(payOrderInfo.getSubject());
|
||||
// model.setOutTradeNo(payOrderInfo.getOrderNo());
|
||||
// model.setTimeoutExpress("30m");
|
||||
// model.setTotalAmount(payOrderInfo.getPrice().toString());
|
||||
// String notifyUrl = AliPayApiConfigKit.getAliPayApiConfig().getDomain();
|
||||
// String orderInfo = AliPayApi.appPayToResponse(model, notifyUrl+NOTIFY_ALI_URL).getBody();
|
||||
// PayReturnResp resp = new PayReturnResp();
|
||||
// resp.setData(orderInfo);
|
||||
// return R.ok(resp);
|
||||
// } catch (AlipayApiException e) {
|
||||
// log.error("支付宝支付失败",e);
|
||||
// return R.fail("支付宝支付失败,请联系客服");
|
||||
// }
|
||||
// }
|
||||
|
||||
@PostMapping(value = "/wx/notify")
|
||||
@Operation(hidden = true)
|
||||
|
||||
@@ -68,6 +68,9 @@ public class SettingAppController {
|
||||
List<Goods> list = goodsService.list(Wrappers.lambdaQuery(Goods.class)
|
||||
.eq(Goods::getStatus,0)
|
||||
.orderByAsc(Goods::getPrice));
|
||||
list.forEach(i -> {
|
||||
i.setAliAmountDiff(i.getAmount() - i.getWxAmount());
|
||||
});
|
||||
vo.setGoods(list);
|
||||
return R.ok(vo);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.ruoyi.cai.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -40,8 +41,12 @@ public class Goods implements Serializable {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@Schema(description = "紫贝数量")
|
||||
@Schema(description = "支付宝紫贝数量")
|
||||
private Long amount;
|
||||
@Schema(description = "微信紫贝数量")
|
||||
private Long wxAmount;
|
||||
@TableField(exist = false)
|
||||
private Long aliAmountDiff;
|
||||
/**
|
||||
* 状态 0 可用 1不可用
|
||||
*/
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.ijpay.core.enums.SignType;
|
||||
import com.ijpay.core.kit.WxPayKit;
|
||||
import com.ijpay.wxpay.WxPayApi;
|
||||
import com.ijpay.wxpay.model.OrderQueryModel;
|
||||
import com.ruoyi.cai.domain.Goods;
|
||||
import com.ruoyi.cai.domain.PayConfig;
|
||||
import com.ruoyi.cai.domain.RechargeOrder;
|
||||
import com.ruoyi.cai.domain.VipOrder;
|
||||
@@ -21,10 +22,7 @@ import com.ruoyi.cai.dto.commom.consumer.RechargeConsumerResp;
|
||||
import com.ruoyi.cai.manager.AwardManager;
|
||||
import com.ruoyi.cai.manager.ConsumerManager;
|
||||
import com.ruoyi.cai.pay.model.PayQueryModel;
|
||||
import com.ruoyi.cai.service.PayConfigService;
|
||||
import com.ruoyi.cai.service.PayTotalService;
|
||||
import com.ruoyi.cai.service.RechargeOrderService;
|
||||
import com.ruoyi.cai.service.VipOrderService;
|
||||
import com.ruoyi.cai.service.*;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -51,6 +49,8 @@ public class PayManager {
|
||||
private PayConfigService payConfigService;
|
||||
@Autowired
|
||||
private PayConfigManager payConfigManager;
|
||||
@Autowired
|
||||
private GoodsService goodsService;
|
||||
|
||||
public PayQueryModel queryOrder(PayConfig payConfig,String orderNo,String appid) throws AlipayApiException {
|
||||
if(PayTypeEnum.ALI.getCode().equals(payConfig.getPayType())){
|
||||
@@ -161,7 +161,7 @@ public class PayManager {
|
||||
}
|
||||
}
|
||||
|
||||
public PayOrderInfoDTO getOrderInfo(String orderNo){
|
||||
public PayOrderInfoDTO getOrderInfo(String orderNo,boolean wx){
|
||||
OrderTypeEnum orderTypeEnum = OrderNoUtil.getType(orderNo);
|
||||
if(orderTypeEnum == null){
|
||||
log.error("订单类型有误!orderNo={}",orderNo);
|
||||
@@ -194,6 +194,16 @@ public class PayManager {
|
||||
if(!PayStatusEnum.READY_PAY.getCode().equals(rechargeOrder.getPayStatus())){
|
||||
throw new ServiceException("订单状态有误,请重新下单支付");
|
||||
}
|
||||
if(wx){
|
||||
if(rechargeOrder.getRechargeId() != null){
|
||||
Goods goods = goodsService.getById(rechargeOrder.getRechargeId());
|
||||
if(goods != null){
|
||||
rechargeOrderService.update(Wrappers.lambdaUpdate(RechargeOrder.class)
|
||||
.eq(RechargeOrder::getId, rechargeOrder.getId())
|
||||
.set(RechargeOrder::getRechargeCoin, goods.getWxAmount()));
|
||||
}
|
||||
}
|
||||
}
|
||||
dto = new PayOrderInfoDTO();
|
||||
dto.setBody(rechargeOrder.getRechargeName());
|
||||
dto.setSubject(rechargeOrder.getRechargeName());
|
||||
|
||||
Reference in New Issue
Block a user