From d01f66d6a46f7bb8858510a5e8a3647df9aab875 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 12 Sep 2025 14:14:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=A0=E9=80=81=E5=88=B8=E6=B4=BB=E5=8A=A8?= =?UTF-8?q?=20=E5=85=B3=E8=81=94=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/market/dto/MkCouponGiftDTO.java | 56 +++++++++++++ .../com/czg/market/entity/MkCouponGift.java | 64 +++++++++++++++ .../market/service/MkCouponGiftService.java | 57 ++++++++++++++ .../market/mapper/MkCouponGiftMapper.java | 14 ++++ .../service/impl/MkCouponGiftServiceImpl.java | 78 +++++++++++++++++++ .../resources/mapper/MkCouponGiftMapper.xml | 7 ++ 6 files changed, 276 insertions(+) create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkCouponGiftDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkCouponGift.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/service/MkCouponGiftService.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkCouponGiftMapper.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkCouponGiftServiceImpl.java create mode 100644 cash-service/market-service/src/main/resources/mapper/MkCouponGiftMapper.xml diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkCouponGiftDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkCouponGiftDTO.java new file mode 100644 index 00000000..a4798097 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/MkCouponGiftDTO.java @@ -0,0 +1,56 @@ + +package com.czg.market.dto; + +import java.io.Serializable; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 券赠送关联表 实体类。 + * + * @author ww + * @since 2025-09-12 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class MkCouponGiftDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 暂无意义 + */ + private Long id; + + /** + * 名称(来源名称) + */ + private String sourceName; + + /** + * 来源Id + */ + private Long sourceId; + + /** + * 1 会员开通赠券 2 会员周活动 3消费赠券 + */ + private Integer type; + + private String couponName; + + /** + * 券ID + */ + private Long couponId; + + /** + * 券数量 + */ + private Integer num; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkCouponGift.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkCouponGift.java new file mode 100644 index 00000000..04a1df81 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/MkCouponGift.java @@ -0,0 +1,64 @@ +package com.czg.market.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 券赠送关联表 实体类。 + * + * @author ww + * @since 2025-09-12 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("mk_coupon_gift") +public class MkCouponGift implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 暂无意义 + */ + @Id(keyType = KeyType.Auto) + private Long id; + + /** + * 名称(来源名称) + */ + private String sourceName; + + /** + * 来源Id + */ + private Long sourceId; + + /** + * 1 会员开通赠券 2 会员周活动 3消费赠券 + */ + private Integer type; + + private String couponName; + + /** + * 券ID + */ + private Long couponId; + + /** + * 券数量 + */ + private Integer num; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkCouponGiftService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkCouponGiftService.java new file mode 100644 index 00000000..7110cb3e --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkCouponGiftService.java @@ -0,0 +1,57 @@ +package com.czg.market.service; + +import com.czg.market.dto.MkCouponGiftDTO; +import com.czg.market.entity.MkCouponGift; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.service.IService; + +import java.util.List; + +/** + * 券赠送关联表 服务层。 + * + * @author ww + * @since 2025-09-12 + */ +public interface MkCouponGiftService extends IService { + + /** + * 券关联表查询 + */ + Page getCouponGiftPage(Long couponId); + + /** + * 根据sourceId查询关联券 + * + * @param sourceId 来源Id + * @param type 类型 1 会员开通赠券 2 会员周活动 3 消费赠券 + */ + List getCouponGiftBySourceId(Long sourceId, Integer type); + + /** + * 新增关联券 + * + * @param sourceId 来源ID + * @param type 类型 1 会员开通赠券 2 会员周活动 3 消费赠券 + * @param couponGiftList 券ID-数量 + */ + void addCouponGift(Long sourceId, String sourceName, Integer type, List couponGiftList); + + + /** + * 更新关联券 + * + * @param sourceId 来源ID + * @param type 类型 1 会员开通赠券 2 会员周活动 3 消费赠券 + * @param couponGiftList 券ID和数量必填 + */ + void upCouponGift(Long sourceId, String sourceName, Integer type, List couponGiftList); + + /** + * 删除关联券 + * + * @param sourceId 来源ID + * @param type 类型 1 会员开通赠券 2 会员周活动 3 消费赠券 + */ + void deleteJoinCouponGift(Long sourceId, Integer type); +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkCouponGiftMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkCouponGiftMapper.java new file mode 100644 index 00000000..bf35a7be --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/MkCouponGiftMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.market.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.market.entity.MkCouponGift; + +/** + * 券赠送关联表 映射层。 + * + * @author ww + * @since 2025-09-12 + */ +public interface MkCouponGiftMapper extends BaseMapper { + +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkCouponGiftServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkCouponGiftServiceImpl.java new file mode 100644 index 00000000..fc6b9a6a --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkCouponGiftServiceImpl.java @@ -0,0 +1,78 @@ +package com.czg.service.market.service.impl; + +import cn.hutool.core.collection.CollUtil; +import com.czg.market.dto.MkCouponGiftDTO; +import com.czg.market.entity.MkCouponGift; +import com.czg.market.entity.ShopCoupon; +import com.czg.market.service.MkCouponGiftService; +import com.czg.market.service.ShopCouponService; +import com.czg.service.market.mapper.MkCouponGiftMapper; +import com.czg.utils.PageUtil; +import com.mybatisflex.core.paginate.Page; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * 券赠送关联表 服务层实现。 + * + * @author ww + * @since 2025-09-12 + */ +@Service +public class MkCouponGiftServiceImpl extends ServiceImpl implements MkCouponGiftService { + + @Resource + private ShopCouponService shopCouponService; + + @Override + public Page getCouponGiftPage(Long couponId) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq(MkCouponGift::getCouponId, couponId) + .orderBy(MkCouponGift::getId).desc(); + return pageAs(PageUtil.buildPage(), queryWrapper, MkCouponGiftDTO.class); + } + + @Override + public List getCouponGiftBySourceId(Long sourceId, Integer type) { + return listAs(new QueryWrapper().eq(MkCouponGift::getSourceId, sourceId).eq(MkCouponGift::getType, type), MkCouponGiftDTO.class); + } + + @Override + public void addCouponGift(Long sourceId, String sourceName, Integer type, List couponGiftList) { + if (CollUtil.isNotEmpty(couponGiftList)) { + List newCoupons = new ArrayList<>(); + for (MkCouponGiftDTO giftDTO : couponGiftList) { + ShopCoupon coupon = shopCouponService.queryChain().select(ShopCoupon::getTitle) + .where(ShopCoupon::getId).eq(giftDTO.getCouponId()) + .one(); + if (coupon == null) { + continue; + } + MkCouponGift couponGift = new MkCouponGift(); + couponGift.setSourceId(sourceId); + couponGift.setSourceName(sourceName); + couponGift.setType(type); + couponGift.setCouponId(giftDTO.getCouponId()); + couponGift.setNum(giftDTO.getNum()); + newCoupons.add(couponGift); + } + saveBatch(newCoupons); + + } + } + @Override + public void upCouponGift(Long sourceId, String sourceName, Integer type, List couponGiftList) { + deleteJoinCouponGift(sourceId, type); + addCouponGift(sourceId, sourceName, type, couponGiftList); + } + + @Override + public void deleteJoinCouponGift(Long sourceId, Integer type) { + remove(new QueryWrapper().eq(MkCouponGift::getSourceId, sourceId).eq(MkCouponGift::getType, type)); + } +} diff --git a/cash-service/market-service/src/main/resources/mapper/MkCouponGiftMapper.xml b/cash-service/market-service/src/main/resources/mapper/MkCouponGiftMapper.xml new file mode 100644 index 00000000..ed09ab1e --- /dev/null +++ b/cash-service/market-service/src/main/resources/mapper/MkCouponGiftMapper.xml @@ -0,0 +1,7 @@ + + + + +