From fe98baa55c34db41b158187f9c1837a269ec169b Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 11 三月 2024 18:28:17 +0800
Subject: [PATCH] 修改bug
---
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java | 83 +++++++++++++++++++++++------------------
1 files changed, 47 insertions(+), 36 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index a1b9533..e8b4200 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -47,6 +47,7 @@
/**
* 购买年度会员
+ *
* @param uid
* @return
* @throws Exception
@@ -61,10 +62,10 @@
vipPayment.setPayStatus(1);
vipPayment.setState(1);
this.baseMapper.insert(vipPayment);
- if(payType == 1){//微信
+ if (payType == 1) {//微信
return weixinpay(vipPayment);
}
- if(payType == 2){//支付宝
+ if (payType == 2) {//支付宝
return alipay(vipPayment);
}
return ResultUtil.success();
@@ -73,26 +74,27 @@
/**
* 微信
+ *
* @param vipPayment
* @return
* @throws Exception
*/
- public ResultUtil weixinpay(VipPayment vipPayment) throws Exception{
+ public ResultUtil weixinpay(VipPayment vipPayment) throws Exception {
String code = vipPayment.getCode();
ResultUtil weixinpay = payMoneyUtil.weixinpay("购买年度会员", "", code, vipPayment.getAmount().toString(),
"/base/appUser/addVipPaymentWeChatCallback", "APP", "");
- if(weixinpay.getCode() == 200){
+ if (weixinpay.getCode() == 200) {
new Thread(new Runnable() {
@Override
public void run() {
try {
int num = 1;
int wait = 0;
- while (num <= 10){
+ while (num <= 10) {
int min = 5000;
wait += (min * num);
VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code));
- if(vipPayment1.getPayStatus() == 2){
+ if (vipPayment1.getPayStatus() == 2) {
return;
}
/**
@@ -106,24 +108,24 @@
* ACCEPT--已接收,等待扣款
*/
ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
- if(resultUtil.getCode() == 200){
+ if (resultUtil.getCode() == 200) {
Map<String, String> map = resultUtil.getData();
String trade_type = map.get("trade_type");
String trade_state = map.get("trade_state");
String transaction_id = map.get("transaction_id");
- if("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){
+ if ("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)) {
vipPayment1.setState(3);
VipPaymentServiceImpl.this.updateById(vipPayment1);
return;
}
- if("SUCCESS".equals(trade_state)){
+ if ("SUCCESS".equals(trade_state)) {
vipPayment1.setPayStatus(2);
vipPayment1.setPayTime(new Date());
vipPayment1.setOrderNumber(transaction_id);
VipPaymentServiceImpl.this.updateById(vipPayment1);
TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId());
Date vipEndTime = appUser.getVipEndTime();
- if(null == vipEndTime){
+ if (null == vipEndTime) {
vipEndTime = new Date();
}
Calendar calendar = Calendar.getInstance();
@@ -137,20 +139,20 @@
redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
return;
}
- if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){
+ if ("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)) {
Thread.sleep(wait);
num++;
}
- }else{
+ } else {
Thread.sleep(wait);
num++;
}
- if(10 == num){
+ if (10 == num) {
vipPayment1.setState(3);
VipPaymentServiceImpl.this.updateById(vipPayment1);
}
}
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -162,26 +164,32 @@
/**
* 支付宝
+ *
* @param vipPayment
* @return
* @throws Exception
*/
- public ResultUtil alipay(VipPayment vipPayment) throws Exception{
+ private String smid = "2088330203191220";//平台支付宝商户号
+ public ResultUtil alipay(VipPayment vipPayment) throws Exception {
String code = vipPayment.getCode();
- ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId()+"", code, vipPayment.getAmount().toString(),
+ String amount = vipPayment.getAmount().toString();
+ ResultUtil alipay = payMoneyUtil.alipay
+ (smid,"购买年度会员", "购买年度会员",
+ vipPayment.getAppUserId() + "",
+ code, vipPayment.getAmount().toString(),
"/base/appUser/addVipPaymentAliCallback");
- if(alipay.getCode() == 200){
+ if (alipay.getCode() == 200) {
new Thread(new Runnable() {
@Override
public void run() {
try {
int num = 1;
int wait = 0;
- while (num <= 10){
+ while (num <= 10) {
int min = 5000;
wait += (min * num);
VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code));
- if(vipPayment1.getPayStatus() != 1){
+ if (vipPayment1.getPayStatus() != 1) {
return;
}
@@ -194,20 +202,17 @@
*/
AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
- if(resultUtil.getCode().equals("10000")){
-// Map<String, String> map = resultUtil.getData();
-// String tradeStatus = map.get("tradeStatus");
-// String tradeNo = map.get("tradeNo");
-
+ if (resultUtil.getCode().equals("10000")) {
String tradeNo = resultUtil.getTradeNo();
String tradeStatus = resultUtil.getTradeStatus();
- System.out.println("ssssss"+tradeStatus);
- if("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)){
+ System.out.println("ssssss" + tradeStatus);
+ if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {
vipPayment1.setState(3);
VipPaymentServiceImpl.this.updateById(vipPayment1);
+
return;
}
- if("TRADE_SUCCESS".equals(tradeStatus)){
+ if ("TRADE_SUCCESS".equals(tradeStatus)) {
vipPayment1.setPayStatus(2);
vipPayment1.setPayTime(new Date());
vipPayment1.setOrderNumber(tradeNo);
@@ -216,7 +221,7 @@
TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId());
Date vipEndTime = appUser.getVipEndTime();
appUser.setIsVip(1);
- if(null == vipEndTime){
+ if (null == vipEndTime) {
vipEndTime = new Date();
}
Calendar calendar = Calendar.getInstance();
@@ -227,22 +232,24 @@
// 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
+ // 如果交易结束 将当前订单金额分配到商户
+ payMoneyUtil.confirm(smid,vipPayment.getCode(),tradeNo,amount);
return;
}
- if("WAIT_BUYER_PAY".equals(tradeStatus)){
+ if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
Thread.sleep(wait);
num++;
}
- }else{
+ } else {
Thread.sleep(wait);
num++;
}
- if(10 == num){
+ if (10 == num) {
vipPayment1.setState(3);
VipPaymentServiceImpl.this.updateById(vipPayment1);
}
}
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -252,10 +259,9 @@
}
-
-
/**
* 购买年度会员支付回调处理
+ *
* @param code
* @param orderNumber
* @throws Exception
@@ -263,7 +269,7 @@
@Override
public synchronized ResultUtil addVipPaymentCallback(String code, String orderNumber) throws Exception {
VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code));
- if(vipPayment1.getPayStatus() == 2){
+ if (vipPayment1.getPayStatus() == 2) {
return ResultUtil.success();
}
vipPayment1.setPayStatus(2);
@@ -272,9 +278,14 @@
VipPaymentServiceImpl.this.updateById(vipPayment1);
TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId());
+ Date vipEndTime = appUser.getVipEndTime();
+ if (null == vipEndTime) {
+ vipEndTime = new Date();
+ }
Calendar calendar = Calendar.getInstance();
- calendar.setTime(new Date());
+ calendar.setTime(vipEndTime);
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1);
+ appUser.setIsVip(1);
appUser.setVipEndTime(calendar.getTime());
appUserService.updateById(appUser);
// 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
--
Gitblit v1.7.1