diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponFoodVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponFoodVo.java new file mode 100644 index 00000000..a9df4277 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponFoodVo.java @@ -0,0 +1,20 @@ +package com.czg.account.vo; + +import lombok.Data; + +/** + * @author ww + * @description + */ +@Data +public class UserCouponFoodVo { + private Long id; + /** + * 商品名称 + */ + private String name; + /** + * 商品图片(第一张为缩略图,其他为详情) + */ + private String images; +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java index 48f95c69..e2f285a4 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/vo/UserCouponVo.java @@ -3,7 +3,9 @@ package com.czg.account.vo; import lombok.Data; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; +import java.util.List; /** * @author ww @@ -16,19 +18,23 @@ public class UserCouponVo { private BigDecimal fullAmount; private BigDecimal discountAmount; private Long couponId; - private Long proId; - // 商品名称 - private String productName; - private String productCover; + private String foods; //优惠券名称 private String name; - //优惠券类型 1 满减 2 商品券 + //优惠券类型 优惠券类型:1-满减券,2-商品兑换券,3-折扣券,4-第二件半价券, 6-买一送一券,7-固定价格券,8-免配送费券 private Integer type; //到期时间 private Date endTime; private String useRestrictions; private boolean isUse = false; - + /** + * 优惠券门槛商品列表 + */ + List thresholdFoods = new ArrayList<>(); + /** + * 优惠券可用商品列表 + */ + List useFoods = new ArrayList<>(); } diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java index 7385f7fa..5c7b87bf 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/ShopCouponServiceImpl.java @@ -1,13 +1,17 @@ package com.czg.service.market.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.exceptions.ValidateException; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.alibaba.fastjson2.TypeReference; import com.czg.account.entity.ShopUser; import com.czg.account.service.ShopUserService; +import com.czg.account.vo.UserCouponFoodVo; import com.czg.account.vo.UserCouponVo; import com.czg.market.dto.ShopCouponDTO; import com.czg.market.entity.MkShopCouponRecord; @@ -15,6 +19,8 @@ import com.czg.market.entity.ShopCoupon; import com.czg.market.service.MkCouponGiftService; import com.czg.market.service.MkShopCouponRecordService; import com.czg.market.service.ShopCouponService; +import com.czg.product.entity.Product; +import com.czg.product.service.ProductService; import com.czg.service.market.mapper.ShopCouponMapper; import com.czg.utils.AssertUtil; import com.czg.utils.PageUtil; @@ -49,6 +55,8 @@ public class ShopCouponServiceImpl extends ServiceImpl getCouponPage(ShopCouponDTO param) { @@ -136,7 +144,26 @@ public class ShopCouponServiceImpl extends ServiceImpl couponFoodIds = Arrays.stream(tbUserCouponVo.getFoods().split(",")).map(Long::parseLong).toList(); + if (CollUtil.isNotEmpty(couponFoodIds)) { + List list = productService.list(new QueryWrapper() + .in(Product::getId, couponFoodIds).eq(Product::getIsDel, 0)); + if (CollUtil.isEmpty(list)) { + continue; + } + if (tbUserCouponVo.getType() == 2) { + tbUserCouponVo.setUseFoods(JSON.parseObject(JSON.toJSONString(list), new TypeReference<>() { + })); + } else { + tbUserCouponVo.setThresholdFoods(JSON.parseObject(JSON.toJSONString(list), new TypeReference<>() { + })); + } + } + } + } } tbUserCouponVos.sort(Comparator.comparing(UserCouponVo::isUse).reversed()); return tbUserCouponVos; diff --git a/cash-service/market-service/src/main/resources/mapper/MkShopCouponRecordMapper.xml b/cash-service/market-service/src/main/resources/mapper/MkShopCouponRecordMapper.xml index d0327bc9..0cc35307 100644 --- a/cash-service/market-service/src/main/resources/mapper/MkShopCouponRecordMapper.xml +++ b/cash-service/market-service/src/main/resources/mapper/MkShopCouponRecordMapper.xml @@ -59,15 +59,14 @@ inRecord.full_amount as fullAmount, inRecord.discount_amount as discountAmount, inRecord.coupon_id as couponId, - pro.id as proId, - pro.name as productName, inRecord.name as name, inRecord.type, + coupon.foods as foods, inRecord.use_end_time as endTime FROM mk_shop_coupon_record inRecord LEFT JOIN tb_shop_info shop ON inRecord.shop_id = shop.id - LEFT JOIN tb_product pro ON inRecord.pro_id = pro.id and pro.shop_id = #{shopId} + LEFT JOIN mk_shop_coupon coupon ON inRecord.coupon_id = coupon.id WHERE inRecord.shop_user_id = #{shopUserId}