From 94f34a5cf9ab374afbaefd566bc0a3dc8a4616dd Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 25 十一月 2023 11:14:37 +0800
Subject: [PATCH] 同步

---
 cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java         |    7 ++-
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java      |    3 +
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java      |   67 ++++++++++-----------------------
 cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java    |   31 ++++++++++-----
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java |    2 
 cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java  |    2 
 6 files changed, 50 insertions(+), 62 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
index b853f8e..33a050c 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
@@ -142,7 +142,7 @@
      */
     @ResponseBody
     @PostMapping("/base/pointMer/exchangeGoodPaymentWeChatCallback")
-    public void addVipPaymentWeChatCallback(HttpServletRequest request, HttpServletResponse response){
+    public void exchangeGoodPaymentWeChatCallback(HttpServletRequest request, HttpServletResponse response){
         try {
             Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
             if(null != map){
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java
index 0559521..44f1a3a 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java
@@ -15,7 +15,7 @@
      * 查询注册赠送优惠券 判断当前优惠券限领数量
      */
     @PostMapping("/coupon/queryCouponByUser/{userId}")
-    public List<Integer> queryCouponByUser(@PathVariable("userId") Integer userId);
+    public List<Long> queryCouponByUser(@PathVariable("userId") Integer userId);
 
     @PostMapping("/base/userConpon/getStuOfConpons")
     public List<CouponStuAvailableVo> queryUserWithConponList(@RequestParam("appUserId") Integer appUserId);
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 45e369e..8881934 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -1831,6 +1831,9 @@
     @Override
     public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber,Integer payType) {
         List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
+        if(userPointsMerchandises.get(0).getPayStatus() == 2){
+            return ResultUtil.success();
+        }
         if (userPointsMerchandises.size() > 1){
             for (int i = 0; i < userPointsMerchandises.size(); i++) {
                 userPointsMerchandises.get(i).setOrderNumber(orderNumber+ "-" + (i+1));
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 8d44548..a1b9533 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
@@ -1,5 +1,6 @@
 package com.dsh.account.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.alipay.api.response.AlipayTradeQueryResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -11,11 +12,13 @@
 import com.dsh.account.service.IVipPaymentService;
 import com.dsh.account.service.TAppUserService;
 import com.dsh.account.util.PayMoneyUtil;
+import com.dsh.account.util.RedisUtil;
 import com.dsh.account.util.ResultUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 
+import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.Calendar;
 import java.util.Date;
@@ -34,6 +37,13 @@
 
     @Autowired
     private PayMoneyUtil payMoneyUtil;
+
+    @Resource
+    private UserConponClient userConponClient;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
 
     /**
      * 购买年度会员
@@ -82,7 +92,7 @@
                             int min = 5000;
                             wait += (min * num);
                             VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code));
-                            if(vipPayment1.getPayStatus() != 1){
+                            if(vipPayment1.getPayStatus() == 2){
                                 return;
                             }
                             /**
@@ -123,7 +133,8 @@
                                     appUser.setVipEndTime(calendar.getTime());
                                     appUserService.updateById(appUser);
                                     // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
-                                    userConponClient.queryCouponByUser(appUser.getId());
+                                    List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
+                                    redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
                                     return;
                                 }
                                 if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){
@@ -214,7 +225,8 @@
                                     appUser.setVipEndTime(calendar.getTime());
                                     appUserService.updateById(appUser);
                                     // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
-                                    userConponClient.queryCouponByUser(appUser.getId());
+                                    List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
+                                    redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
                                     return;
                                 }
                                 if("WAIT_BUYER_PAY".equals(tradeStatus)){
@@ -241,8 +253,7 @@
 
 
 
-    @Autowired
-    private UserConponClient userConponClient;
+
     /**
      * 购买年度会员支付回调处理
      * @param code
@@ -252,7 +263,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() != 1){
+        if(vipPayment1.getPayStatus() == 2){
             return ResultUtil.success();
         }
         vipPayment1.setPayStatus(2);
@@ -261,16 +272,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.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1);
         appUser.setVipEndTime(calendar.getTime());
         appUserService.updateById(appUser);
-
+        // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
+        List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
+        redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
         return ResultUtil.success();
     }
 
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
index 8958ca7..18f5a97 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -107,8 +107,8 @@
      */
     @ResponseBody
     @PostMapping("/coupon/queryCouponByUser/{userId}")
-    public List<Integer> queryCouponByUser(@PathVariable("userId") Integer userId){
-
+    public List<Long> queryCouponByUser(@PathVariable("userId") Integer userId){
+        List<Long> ids = new ArrayList<>();
         System.err.println("到达了赠送优惠价");
         List<Coupon> list = couponService.list(new QueryWrapper<Coupon>().eq("distributionMethod", 2)
                 .le("startTime", new Date()).ge("endTime", new Date()).eq("auditStatus", 2)
@@ -137,8 +137,9 @@
             userCoupon.setStatus(1);
             userCoupon.setInsertTime(new Date());
             ucService.save(userCoupon);
+            ids.add(userCoupon.getId());
         }
-        return null;
+        return ids;
     }
 
     @ResponseBody
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
index 031bf29..9328463 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
@@ -20,6 +20,8 @@
 import com.dsh.activity.model.request.IntegralGoodsOfSearch;
 import com.dsh.activity.service.ICouponService;
 import com.dsh.activity.service.UserCouponService;
+import com.dsh.activity.util.RedisUtil;
+import com.dsh.activity.util.ToolUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -30,6 +32,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -44,14 +47,18 @@
     @Resource
     private StudentClient studentClient;
 
-
-
-
     @Autowired
     private UserCouponService userCouponService;
 
     @Autowired
     private ICouponService couponService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+
+
+
 
     /**
      * 获取购买会员支付成功页面的优惠券
@@ -61,51 +68,19 @@
      */
     @Override
     public List<CouponListVo> queryCouponList(Integer uid, Integer distributionMethod) throws Exception {
-        AppUser appUser = appUserClient.queryAppUser(uid);
+        String value = redisUtil.getValue("VIP_P_" + uid);
+        if(ToolUtil.isEmpty(value)){
+            Thread.sleep(5000);
+            value = redisUtil.getValue("VIP_P_" + uid);
+        }
         List<CouponListVo> listVos = new ArrayList<>();
-        if (null != appUser) {
-//            List<Integer> userPopulation = new ArrayList<>();
-//            userPopulation.add(1);//全部用户
-//            if (1 == appUser.getIsVip()) {
-//                userPopulation.add(2);//年度会员
-//            }
-//            List<TStudent> students = studentClient.queryStudentList(uid);
-//            if (students.size() > 0) {
-//                userPopulation.add(3);//已有学员用户
-//            }
-
-
-//            List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", distributionMethod)
-//                    .in("userPopulation", userPopulation)
-//                    .eq("auditStatus", 2).eq("status", 2).eq("state", 1)
-//                    .last(" and now() between startTime and endTime order by insertTime desc"));
-
-
-//            List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", 2).eq("userPopulation",2)
-//                    .le("startTime", new Date()).ge("endTime", new Date()).eq("auditStatus", 2)
-//                    .eq("state", 1));
+        if(ToolUtil.isEmpty(value)){
+            List<Long> longs = JSON.parseArray(value, Long.class);
+            List<UserCoupon> list = userCouponService.getBaseMapper().selectBatchIds(longs);
+            List<Integer> collect = list.stream().map(UserCoupon::getCouponId).collect(Collectors.toList());
+            List<Coupon> coupons = couponService.getBaseMapper().selectBatchIds(collect);
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-
-
-
-            LocalDateTime currentTime = LocalDateTime.now();
-            LocalDateTime oneMinuteAgo = currentTime.minusSeconds(6000);
-
-
-
-            List<UserCoupon> list = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", uid).ge("insertTime", oneMinuteAgo));
-            List<Integer> ids = new ArrayList<>();
-            for (UserCoupon userCoupon : list) {
-                ids.add(userCoupon.getCouponId());
-            }
-            List<Coupon> userId = new ArrayList<>();
-            if (ids.size()>0) {
-
-                userId = couponService.list(new QueryWrapper<Coupon>().in("id", ids));
-            }
-
-
-            for (Coupon coupon : userId) {
+            for (Coupon coupon : coupons) {
                 if (coupon.getDistributionMethod()!=2){
                     continue;
                 }

--
Gitblit v1.7.1