From 2dda6304029c95e171b2f9e32406eb4600d77ebd Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期三, 01 十一月 2023 18:57:58 +0800 Subject: [PATCH] 支付会员送券功能补充 运营商权限bug修改 --- cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java | 26 +++++++++++++++++++------- 1 files changed, 19 insertions(+), 7 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 63232b4..f03a65d 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 @@ -4,16 +4,21 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.account.entity.TAppUser; import com.dsh.account.entity.VipPayment; +import com.dsh.account.feignclient.activity.UserConponClient; import com.dsh.account.mapper.VipPaymentMapper; +import com.dsh.account.model.IncomeQuery; import com.dsh.account.service.IVipPaymentService; import com.dsh.account.service.TAppUserService; import com.dsh.account.util.PayMoneyUtil; import com.dsh.account.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; +import java.math.BigDecimal; import java.util.Calendar; import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -29,8 +34,6 @@ @Autowired private PayMoneyUtil payMoneyUtil; - - /** * 购买年度会员 * @param uid @@ -41,7 +44,7 @@ public ResultUtil addVipPayment(Integer uid, Integer payType) throws Exception { VipPayment vipPayment = new VipPayment(); vipPayment.setCode(VipPayment.CODE()); - vipPayment.setAmount(199D); + vipPayment.setAmount(0.01D); vipPayment.setAppUserId(uid); vipPayment.setInsertTime(new Date()); vipPayment.setPayStatus(1); @@ -66,7 +69,7 @@ public ResultUtil weixinpay(VipPayment vipPayment) throws Exception{ String code = vipPayment.getCode(); ResultUtil weixinpay = payMoneyUtil.weixinpay("购买年度会员", "", code, vipPayment.getAmount().toString(), - "/base/appUser/addVipPaymentWeChatCallback", "APP"); + "/base/appUser/addVipPaymentWeChatCallback", "APP", ""); if(weixinpay.getCode() == 200){ new Thread(new Runnable() { @Override @@ -108,7 +111,6 @@ 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){ @@ -117,8 +119,11 @@ Calendar calendar = Calendar.getInstance(); calendar.setTime(vipEndTime); calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1); + appUser.setIsVip(1); appUser.setVipEndTime(calendar.getTime()); appUserService.updateById(appUser); + // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限 + userConponClient.queryCouponByUser(appUser.getId()); return; } if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){ @@ -152,7 +157,7 @@ */ public ResultUtil alipay(VipPayment vipPayment) throws Exception{ String code = vipPayment.getCode(); - ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "", code, vipPayment.getAmount().toString(), + ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", "", code, vipPayment.getAmount().toString(), "/base/appUser/addVipPaymentAliCallback"); if(alipay.getCode() == 200){ new Thread(new Runnable() { @@ -202,6 +207,8 @@ calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1); appUser.setVipEndTime(calendar.getTime()); appUserService.updateById(appUser); + // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限 + userConponClient.queryCouponByUser(appUser.getId()); return; } if("WAIT_BUYER_PAY".equals(tradeStatus)){ @@ -228,6 +235,8 @@ + @Autowired + private UserConponClient userConponClient; /** * 购买年度会员支付回调处理 * @param code @@ -235,7 +244,7 @@ * @throws Exception */ @Override - public ResultUtil addVipPaymentCallback(String code, String orderNumber) throws Exception { + public synchronized ResultUtil addVipPaymentCallback(String code, String orderNumber) throws Exception { VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code)); if(vipPayment1.getPayStatus() != 1){ return ResultUtil.success(); @@ -255,6 +264,9 @@ calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1); appUser.setVipEndTime(calendar.getTime()); appUserService.updateById(appUser); + return ResultUtil.success(); } + + } -- Gitblit v1.7.1