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