diff --git a/src/main/java/com/pixelai/api/domain/apy/OrderPayAppService.java b/src/main/java/com/pixelai/api/domain/apy/OrderPayAppService.java index 76e65c7..1bab18c 100644 --- a/src/main/java/com/pixelai/api/domain/apy/OrderPayAppService.java +++ b/src/main/java/com/pixelai/api/domain/apy/OrderPayAppService.java @@ -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; +// } } diff --git a/src/main/java/com/pixelai/api/pa/controller/PaOrderController.java b/src/main/java/com/pixelai/api/pa/controller/PaOrderController.java index 96c6a4d..786f3c0 100644 --- a/src/main/java/com/pixelai/api/pa/controller/PaOrderController.java +++ b/src/main/java/com/pixelai/api/pa/controller/PaOrderController.java @@ -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 diff --git a/src/main/java/com/pixelai/api/pa/entity/PaOrder.java b/src/main/java/com/pixelai/api/pa/entity/PaOrder.java index a1ad019..f2c986f 100644 --- a/src/main/java/com/pixelai/api/pa/entity/PaOrder.java +++ b/src/main/java/com/pixelai/api/pa/entity/PaOrder.java @@ -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; } diff --git a/src/main/java/com/pixelai/api/pa/service/PaVipCurrencyService.java b/src/main/java/com/pixelai/api/pa/service/PaVipCurrencyService.java index c166693..4574688 100644 --- a/src/main/java/com/pixelai/api/pa/service/PaVipCurrencyService.java +++ b/src/main/java/com/pixelai/api/pa/service/PaVipCurrencyService.java @@ -44,4 +44,10 @@ public interface PaVipCurrencyService extends IService { */ IPage page(PaVipCurrency example,IPage page); + /** + * userId获取 + * @param memberId + * @return + */ + PaVipCurrency findByUserId(Integer memberId); } diff --git a/src/main/java/com/pixelai/api/pa/service/impl/PaOrderServiceImpl.java b/src/main/java/com/pixelai/api/pa/service/impl/PaOrderServiceImpl.java index c425e09..5bf454f 100644 --- a/src/main/java/com/pixelai/api/pa/service/impl/PaOrderServiceImpl.java +++ b/src/main/java/com/pixelai/api/pa/service/impl/PaOrderServiceImpl.java @@ -57,6 +57,8 @@ public class PaOrderServiceImpl extends ServiceImpl impl */ private QueryWrapper buildWrapper(PaOrder example) { QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(example.getMemberId() != null, PaOrder::getMemberId, example.getMemberId()); return wrapper; } diff --git a/src/main/java/com/pixelai/api/pa/service/impl/PaVipCurrencyServiceImpl.java b/src/main/java/com/pixelai/api/pa/service/impl/PaVipCurrencyServiceImpl.java index 017e417..66a2e79 100644 --- a/src/main/java/com/pixelai/api/pa/service/impl/PaVipCurrencyServiceImpl.java +++ b/src/main/java/com/pixelai/api/pa/service/impl/PaVipCurrencyServiceImpl.java @@ -76,6 +76,15 @@ public class PaVipCurrencyServiceImpl extends ServiceImpl queryWrapper=new QueryWrapper<>(); + queryWrapper.lambda() + .eq(PaVipCurrency::getUserid,memberId) + .eq(PaVipCurrency::getState,"t"); + return getOne(queryWrapper); + } + /** * 构建查询 *