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-other/src/main/java/com/dsh/other/controller/BallController.java                             |   20 ++++++++--
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java                  |   24 ++++++++++++
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java |   35 ++++++++++++-----
 cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java                    |    9 ++--
 cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java                |    7 ++-
 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java          |    6 ++
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java          |   11 +++--
 7 files changed, 86 insertions(+), 26 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 5930248..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
@@ -122,6 +122,8 @@
                                     appUser.setIsVip(1);
                                     appUser.setVipEndTime(calendar.getTime());
                                     appUserService.updateById(appUser);
+                                    // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
+                                    userConponClient.queryCouponByUser(appUser.getId());
                                     return;
                                 }
                                 if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){
@@ -205,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)){
@@ -260,8 +264,7 @@
         calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1);
         appUser.setVipEndTime(calendar.getTime());
         appUserService.updateById(appUser);
-        // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
-        userConponClient.queryCouponByUser(appUser.getId());
+
         return ResultUtil.success();
     }
 
diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
index 06e7488..aa4e568 100644
--- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
+++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -95,10 +95,13 @@
         // 获取到赛事id集合 去重
         List<Integer> collect = comIds.stream().distinct().collect(Collectors.toList());
         // 根据赛事id 查询赛事支付记录 获取用户ids
-        List<Integer> competitionId = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
-                .in("competitionId", collect))
-                .stream().map(PaymentCompetition::getAppUserId).collect(Collectors.toList());
-        return competitionId;
+        List<PaymentCompetition> competitionId = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
+                .in("competitionId", collect));
+
+//                .stream().map(PaymentCompetition::getAppUserId).collect(Collectors.toList());
+
+
+        return null;
     }
     /**
      * 获取赛事报名记录
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
index 1b88ba9..83e29fd 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -33,6 +33,7 @@
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -62,6 +63,29 @@
     @Autowired
     private TokenUtil tokenUtil;
 
+
+
+    /**
+     * 根据门店ids获取课包ids 根据课包ids 获取购课记录的用户ids
+     */
+    @ResponseBody
+    @PostMapping("/base/coursePackage/getCoursePackageByStoreIds")
+    public List<Integer> getCoursePackageByStoreIds(@RequestBody List<Integer> storeIds){
+        try {
+            // 获取当前课包的ids
+            List<Integer> courseIds = coursePackageService.list(new QueryWrapper<TCoursePackage>().in("storeId", storeIds))
+                    .stream().map(TCoursePackage::getId).collect(Collectors.toList());
+
+            List<Integer> userIds = tcppmenService.list(new QueryWrapper<TCoursePackagePayment>().in("coursePackageId", courseIds))
+                    .stream().map(TCoursePackagePayment::getAppUserId).collect(Collectors.toList());
+            return userIds;
+        }catch (Exception e){
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
     /**
      * 根据id获取课包
      * @param id
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java
index 4dfd0f0..d416ef0 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageClient.java
@@ -25,7 +25,11 @@
 @FeignClient("mb-cloud-course")
 public interface CoursePackageClient {
 
-
+    /**
+     * 根据门店ids获取课包ids 根据课包ids 获取购课记录的用户ids
+     */
+    @PostMapping("/base/coursePackage/getCoursePackageByStoreIds")
+     List<Integer> getCoursePackageByStoreIds(@RequestBody List<Integer> storeIds);
     /**
      * 根据课包类型获取课包
      */
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java
index 411ff7c..d62b570 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/other/BallClient.java
@@ -8,10 +8,7 @@
 import com.dsh.guns.modular.system.model.dto.BookingQuery;
 import io.swagger.models.auth.In;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -19,7 +16,9 @@
 
 @FeignClient(value = "mb-cloud-other")
 public interface BallClient {
-
+    // 根据门店ids 获取游戏记录
+    @PostMapping("/game/getGameByStoreIds")
+    List<Integer> getGameByStoreIds(@RequestBody List<Integer> storeIds);
     @PostMapping("/student/webStudentList")
     List<Game> list(@RequestBody BallQueryDto ballQueryDto);
     @PostMapping("/save")
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
index f1a5b51..73db04d 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAppUserController.java
@@ -17,6 +17,7 @@
 import com.dsh.course.feignClient.competition.model.Competition;
 import com.dsh.course.feignClient.competition.model.ListQuery;
 import com.dsh.course.feignClient.course.CoursePackageClient;
+import com.dsh.course.feignClient.other.BallClient;
 import com.dsh.course.feignClient.other.StoreClient;
 import com.dsh.course.feignClient.other.model.SiteChangeStateVO;
 import com.dsh.guns.config.UserExt;
@@ -72,6 +73,9 @@
     private ISiteBookingService siteBookingService;
     @Autowired
     private CoursePackageClient coursePackageClient;
+    @Autowired
+    private BallClient ballClient;
+
     /**
      * 跳转体测预约管理首页
      */
@@ -153,7 +157,7 @@
 
         }
         if (data.getViplevelId()!=null){
-            // todo创建会员等级表
+            // todo 创建会员等级表
             model.addAttribute("level","黄金");
         }
         model.addAttribute("level","黄金");
@@ -202,19 +206,30 @@
             listQuery.setIds(storeIds);
             // 通过门店ids 获取赛事的支付记录 获取到用户的ids
             List<Integer> list = competitionClient.getUserIds(listQuery);
-            // todo 写根据用户ids查询用户的方法
 
             // 获取场地预约记录 拿到用户ids
-            List<Integer> storeId = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", storeIds))
+            List<Integer> siteUsers = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", storeIds))
                     .stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
-            // 获取课程购买记录
-
-            // 获取游戏记录
+            // 获取课程购买记录 拿到用户ids
+            List<Integer> cpUsers = coursePackageClient.getCoursePackageByStoreIds(storeIds);
+            // 获取游戏记录 拿到用户ids
+            List<Integer> gameUsers = ballClient.getGameByStoreIds(storeIds);
+            // 用户ids
+            List<Integer> users = new ArrayList<>();
+            users.addAll(list);
+            users.addAll(siteUsers);
+            users.addAll(cpUsers);
+            users.addAll(gameUsers);
+            // 去重后的用户id
+            List<Integer> collect = users.stream().distinct().collect(Collectors.toList());
+            List<QueryAppUserVO> queryAppUserVOS1 = new ArrayList<>();
+            for (QueryAppUserVO queryAppUserVO : queryAppUserVOS) {
+                if (collect.contains(queryAppUserVO.getId())){
+                    queryAppUserVOS1.add(queryAppUserVO);
+                }
+            }
+            queryAppUserVOS = queryAppUserVOS1;
         }
-
-
-
-
 
         for (QueryAppUserVO queryAppUserVO : queryAppUserVOS) {
             if (queryAppUserVO.getSalesmanUserId()!=null){
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
index 71585a9..6d352a3 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java
@@ -5,10 +5,7 @@
 import com.dsh.other.feignclient.model.AdvertisementChangeStateDTO;
 import com.dsh.other.feignclient.model.AdvertisementQuery;
 import com.dsh.other.model.BannerVo;
-import com.dsh.other.service.GameService;
-import com.dsh.other.service.IBannerService;
-import com.dsh.other.service.IRegionService;
-import com.dsh.other.service.TGameConfigService;
+import com.dsh.other.service.*;
 import com.dsh.other.util.ResultUtil;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -22,6 +19,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author zhibing.pu
@@ -32,6 +30,8 @@
 public class BallController {
     @Autowired
     private GameService gameService;
+    @Autowired
+    private TGameRecordService gameRecordService;
 
     @ResponseBody
     @PostMapping("/student/webStudentList")
@@ -39,6 +39,18 @@
         List<Game> games =   gameService.queryAll(ballQueryDto);
         return games;
     }
+    // 根据门店ids 获取游戏记录
+    @ResponseBody
+    @PostMapping("/game/getGameByStoreIds")
+    public List<Integer> getGameByStoreIds(@RequestBody List<Integer> storeIds){
+        // 游戏id
+        List<Integer> gamesId = gameService.list(new QueryWrapper<Game>().in("storeId", storeIds))
+                .stream().map(Game::getId).collect(Collectors.toList());
+        // 根据游戏id获取游戏记录 获取用户Ids
+        List<Integer> userId = gameRecordService.list(new QueryWrapper<TGameRecord>().in("gameId", gamesId))
+                .stream().map(TGameRecord::getUserId).collect(Collectors.toList());
+        return userId;
+    }
 
     @Autowired
     private IRegionService regionService;

--
Gitblit v1.7.1