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