jiangqs
2023-07-12 f26537e926d7ad2d725e059700142ba14c0c2b1f
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -8,6 +8,7 @@
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.CodeFactoryUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.*;
@@ -22,6 +23,7 @@
import com.ruoyi.order.service.order.OrderService;
import com.ruoyi.order.service.order.UserServiceRecordService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.*;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
@@ -90,6 +92,9 @@
    @Resource
    private UserServiceRecordMapper userServiceRecordMapper;
    @Resource
    private RedisService redisService;
    /**
     * @description: buyGoods
@@ -527,6 +532,13 @@
        String activityId = appPlaceActivityDto.getActivityId();
        String goodsId = appPlaceActivityDto.getGoodsId();
        Integer buyNum = appPlaceActivityDto.getBuyNum();
        //redis库存控制极简版
        Integer surpNum = redisService.getCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+goodsId);
        if(surpNum==null||surpNum<buyNum){
            throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL);
        }else{
            redisService.setCacheObject(SecurityConstant.ACTIVITY_GOODS+"-"+activityId+"-"+goodsId,surpNum-buyNum);
        }
        // 定义购买数量,服务数量,商品数量
        BigDecimal buyNumBig;
        Integer serviceNum;
@@ -560,6 +572,9 @@
            throw new ServiceException(AppErrorConstant.ACTIVITY_END);
        }
        if (activityGoodsGetVo.getAvailableBuyNum() < 1) {
            throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL);
        }
        if (buyNum < activityGoodsGetVo.getAvailableBuyNum()) {
            throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL);
        }
        // 创建订单ID和订单号
@@ -977,12 +992,23 @@
        merVerifyCouponVo.setUserName(member.getNickName());
        merVerifyCouponVo.setUserMobile(member.getMobile());
        merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom());
        merVerifyCouponVo.setCouponName(verifyCouponGetVo.getMemberCoupon().getCouponName());
        merVerifyCouponVo.setCreateTime(verifyCouponGetVo.getMemberCoupon().getReceiveTime());
        // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性
        List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream()
                .map(goods -> {
                    MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo();
                    merCouponGoods.setGoodsId(goods.getGoodsId());
                    merCouponGoods.setGoodsName(goods.getGoodsName());
                    if (goods.getGoodsType() == 1) {
                        merCouponGoods.setGoodsType("周期");
                    } else if (goods.getGoodsType() == 2) {
                        merCouponGoods.setGoodsType("服务");
                    } else if (goods.getGoodsType() == 3) {
                        merCouponGoods.setGoodsType("体验");
                    } else if (goods.getGoodsType() == 4) {
                        merCouponGoods.setGoodsType("单品");
                    }
                    // 设置其他属性
                    return merCouponGoods;
                })
@@ -1030,6 +1056,7 @@
            consumerGoodsList.add(consumerGoods);
        }
        consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList);
        merVerifyCouponVo.setVerifyStatus(2);
        return merVerifyCouponVo;
    }
@@ -1117,6 +1144,8 @@
            appMemberBindingDto.setUserId(merVerifyPrizeDto.getUserId());
            remoteMemberService.updateMemberBinding(appMemberBindingDto);
        }
        merVerifyAwardVo.setPrizeId(merVerifyPrizeDto.getPrizeId());
        merVerifyAwardVo.setVerifyStatus(2);
        return merVerifyAwardVo;
    }
@@ -2401,18 +2430,30 @@
        merVerifyCouponVo.setUserName(member.getNickName());
        merVerifyCouponVo.setUserMobile(member.getMobile());
        merVerifyCouponVo.setCouponFrom(verifyCouponGetVo.getCouponFrom());
        merVerifyCouponVo.setCouponName(verifyCouponGetVo.getMemberCoupon().getCouponName());
        merVerifyCouponVo.setCreateTime(verifyCouponGetVo.getMemberCoupon().getReceiveTime());
        // 将goodsList转换为MerCouponGoodsListVo列表,并设置相应属性
        List<MerCouponGoodsListVo> merCouponGoodsList = goodsList.stream()
                .map(goods -> {
                    MerCouponGoodsListVo merCouponGoods = new MerCouponGoodsListVo();
                    merCouponGoods.setGoodsId(goods.getGoodsId());
                    merCouponGoods.setGoodsName(goods.getGoodsName());
                    if (goods.getGoodsType() == 1) {
                        merCouponGoods.setGoodsType("周期");
                    } else if (goods.getGoodsType() == 2) {
                        merCouponGoods.setGoodsType("服务");
                    } else if (goods.getGoodsType() == 3) {
                        merCouponGoods.setGoodsType("体验");
                    } else if (goods.getGoodsType() == 4) {
                        merCouponGoods.setGoodsType("单品");
                    }
                    // 设置其他属性
                    return merCouponGoods;
                })
                .collect(Collectors.toList());
        // 设置merVerifyCouponVo的goodsList属性为merCouponGoodsList
        merVerifyCouponVo.setGoodsList(merCouponGoodsList);
        merVerifyCouponVo.setVerifyStatus(1);
        return merVerifyCouponVo;
    }
@@ -2475,6 +2516,8 @@
                break;
        }
        merVerifyAwardVo.setCreateTime(memberGiftRecord.getCreateTime());
        merVerifyAwardVo.setVerifyStatus(1);
        merVerifyAwardVo.setPrizeId(verifyCode);
        return merVerifyAwardVo;
    }