puzhibing
2023-11-25 94f34a5cf9ab374afbaefd566bc0a3dc8a4616dd
同步
6个文件已修改
112 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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){
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);
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));
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();
    }
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
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;
                }