Przeglądaj źródła

优惠券活动公共接口优化

WangChanghua 1 rok temu
rodzic
commit
48d5f2661b
15 zmienionych plików z 196 dodań i 134 usunięć
  1. 40 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CouponActivityItemModifyParam.java
  2. 6 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CouponActivityModifyParam.java
  3. 8 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CouponActivityService.java
  4. 10 0
      vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/PromotionGoodsService.java
  5. 15 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/PromotionGoodsMapper.java
  6. 2 2
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/BasePromotion.java
  7. 3 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/CouponActivity.java
  8. 4 4
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/PromotionGoods.java
  9. 0 85
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/User.java
  10. 2 2
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/AbstractPromotionService.java
  11. 23 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/PromotionGoodsService.java
  12. 29 32
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/AbstractPromotionServiceImpl.java
  13. 21 9
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CouponActivityServiceImpl.java
  14. 28 0
      vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/PromotionGoodsServiceImpl.java
  15. 5 0
      vehicle-server/src/main/resources/mapper/PromotionGoodsMapper.xml

+ 40 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CouponActivityItemModifyParam.java

@@ -0,0 +1,40 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+
+/**
+ * 优惠券活动项目信息更新参数
+ *
+ * @author qizai
+ * @date 2023/11/13
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class CouponActivityItemModifyParam implements Serializable {
+
+    /**
+     * 优惠券活动ID
+     */
+    @NotNull(message = "优惠券活动ID不能为空")
+    private Long activityId;
+
+    /**
+     * 优惠券ID
+     */
+    @NotNull(message = "优惠券ID不能为空")
+    private Long couponId;
+
+    /**
+     * 优惠券数量
+     */
+    @NotNull(message = "优惠券数量不能为空")
+    private Integer num;
+}

+ 6 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CouponActivityModifyParam.java

@@ -13,6 +13,7 @@ import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 优惠券活动信息更新参数
@@ -82,4 +83,9 @@ public class CouponActivityModifyParam implements Serializable {
      */
     @NotNull(message = "优惠券状态不能为空")
     private CouponStatus status;
+
+    /**
+     * 优惠券活动下的优惠券列表
+     */
+    private List<CouponActivityItemModifyParam> couponActivityItems;
 }

+ 8 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/CouponActivityService.java

@@ -51,4 +51,12 @@ public interface CouponActivityService {
      * @return 优惠券活动分页信息
      */
     Pagination<CouponActivityDTO> getCouponActivityPaging(CouponActivityPagingParam param);
+
+    /**
+     * 保存优惠券活动
+     *
+     * @param param 新增参数
+     * @return 优惠券活动主键
+     */
+    Long saveCouponActivity(CouponActivityModifyParam param);
 }

+ 10 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/PromotionGoodsService.java

@@ -0,0 +1,10 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+/**
+ * 促销商品业务接口
+ *
+ * @author qizai
+ * @date 2023/11/13
+ */
+public interface PromotionGoodsService {
+}

+ 15 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/dao/PromotionGoodsMapper.java

@@ -0,0 +1,15 @@
+package com.chelvc.cloud.vehicle.server.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.chelvc.cloud.vehicle.server.entity.PromotionGoods;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 促销商品数据操作接口
+ *
+ * @author qizai
+ * @date 2023/11/13
+ */
+@Mapper
+public interface PromotionGoodsMapper extends BaseMapper<PromotionGoods> {
+}

+ 2 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/BasePromotion.java

@@ -38,7 +38,7 @@ public class BasePromotion extends ModifyEntity<Long> {
     /**
      * 商家id,如果是平台,这个值为0
      */
-    private String merchantId;
+    private Long merchantId;
 
     /**
      * 活动名称
@@ -58,7 +58,7 @@ public class BasePromotion extends ModifyEntity<Long> {
     /**
      * 关联范围类型
      */
-    private String scopeType = PromotionScopeType.PORTION_GOODS.name();
+    private PromotionScopeType scopeType = PromotionScopeType.ALL;
 
     /**
      * 范围关联的id

+ 3 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/CouponActivity.java

@@ -1,5 +1,6 @@
 package com.chelvc.cloud.vehicle.server.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.chelvc.cloud.vehicle.api.constant.CouponActivitySendType;
 import com.chelvc.cloud.vehicle.api.constant.CouponActivityType;
@@ -47,11 +48,13 @@ public class CouponActivity extends BasePromotion {
     /**
      * 优惠券列表
      */
+    @TableField(exist = false)
     private List<CouponActivityItem> couponActivityItems;
 
     /**
      * 用户列表
      */
+    @TableField(exist = false)
     private List<User> users;
 
 }

+ 4 - 4
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/PromotionGoods.java

@@ -40,7 +40,7 @@ public class PromotionGoods extends ModifyEntity<Long> {
     /**
      * 商家ID
      */
-    private String merchantId;
+    private Long merchantId;
 
     /**
      * 商家名称
@@ -50,7 +50,7 @@ public class PromotionGoods extends ModifyEntity<Long> {
     /**
      * 商品ID
      */
-    private String goodsId;
+    private Long goodsId;
 
     /**
      * 商品名称
@@ -75,7 +75,7 @@ public class PromotionGoods extends ModifyEntity<Long> {
     /**
      * 活动ID
      */
-    private String promotionId;
+    private Long promotionId;
 
     /**
      * 促销类型
@@ -130,7 +130,7 @@ public class PromotionGoods extends ModifyEntity<Long> {
     /**
      * 关联范围类型
      */
-    private String scopeType = PromotionScopeType.PORTION_GOODS.name();
+    private PromotionScopeType scopeType = PromotionScopeType.PORTION_GOODS;
 
     /**
      * 范围关联的ID

+ 0 - 85
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/entity/User.java

@@ -1,10 +1,6 @@
 package com.chelvc.cloud.vehicle.server.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.chelvc.cloud.uc.api.constant.Gender;
-import com.chelvc.cloud.uc.api.constant.Scope;
-import com.chelvc.framework.common.model.Platform;
-import com.chelvc.framework.common.model.Terminal;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -12,7 +8,6 @@ import lombok.ToString;
 import lombok.experimental.SuperBuilder;
 
 import java.io.Serializable;
-import java.util.Date;
 
 /**
  * 用户数据模型
@@ -32,88 +27,8 @@ public class User implements Serializable {
      */
     private Long id;
 
-    /**
-     * 应用范围
-     */
-    private Scope scope;
-
-    /**
-     * 手机号码
-     */
-    private String mobile;
-
-    /**
-     * 用户头像
-     */
-    private String avatar;
-
     /**
      * 用户昵称
      */
     private String nickname;
-
-    /**
-     * 用户性别
-     */
-    private Gender gender;
-
-    /**
-     * 用户生日
-     */
-    private Date birthday;
-
-    /**
-     * 注册IP
-     */
-    private String host;
-
-    /**
-     * 设备标识
-     */
-    private String device;
-
-    /**
-     * openid
-     */
-    private String openid;
-
-    /**
-     * 微信unionid
-     */
-    private String unionid;
-
-    /**
-     * 渠道来源
-     */
-    private String channel;
-
-    /**
-     * 注册平台
-     */
-    private Platform platform;
-
-    /**
-     * 注册终端
-     */
-    private Terminal terminal;
-
-    /**
-     * 客户端版本
-     */
-    private String version;
-
-    /**
-     * 是否启用
-     */
-    private Boolean enabled;
-
-    /**
-     * 活跃时间
-     */
-    private Date activeTime;
-
-    /**
-     * 激活时间
-     */
-    private Date activateTime;
 }

+ 2 - 2
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/AbstractPromotionService.java

@@ -51,7 +51,7 @@ public interface AbstractPromotionService<T extends BasePromotion> extends IServ
      * @param endTime   结束时间
      * @return 是否更新成功
      */
-    boolean updateStatus(List<String> ids, Long startTime, Long endTime);
+    boolean updateStatus(List<Long> ids, Long startTime, Long endTime);
 
     /**
      * 移除促销活动
@@ -59,7 +59,7 @@ public interface AbstractPromotionService<T extends BasePromotion> extends IServ
      * @param ids 促销活动id集合
      * @return 是否移除成功
      */
-    boolean removePromotion(List<String> ids);
+    boolean removePromotion(List<Long> ids);
 
     /**
      * 初始化促销字段

+ 23 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/PromotionGoodsService.java

@@ -0,0 +1,23 @@
+package com.chelvc.cloud.vehicle.server.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chelvc.cloud.vehicle.server.entity.Goods;
+import com.chelvc.cloud.vehicle.server.entity.PromotionGoods;
+
+import java.util.List;
+
+/**
+ * 促销商品业务操作接口
+ *
+ * @author qizai
+ * @date 2023/11/13
+ */
+public interface PromotionGoodsService extends IService<PromotionGoods> {
+
+    /**
+     * 删除促销促销商品
+     *
+     * @param promotionIds 促销活动id
+     */
+    void deletePromotionGoods(List<Long> promotionIds);
+}

+ 29 - 32
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/AbstractPromotionServiceImpl.java

@@ -1,5 +1,6 @@
 package com.chelvc.cloud.vehicle.server.service.impl;
 
+import cn.hutool.core.map.MapBuilder;
 import cn.hutool.core.text.CharSequenceUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -10,6 +11,7 @@ import com.chelvc.cloud.vehicle.api.util.PromotionUtils;
 import com.chelvc.cloud.vehicle.server.entity.BasePromotion;
 import com.chelvc.cloud.vehicle.server.entity.PromotionGoods;
 import com.chelvc.cloud.vehicle.server.service.AbstractPromotionService;
+import com.chelvc.cloud.vehicle.server.service.PromotionGoodsService;
 import com.chelvc.framework.base.exception.ResourceUnavailableException;
 import com.chelvc.framework.common.util.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,12 +38,6 @@ public abstract class AbstractPromotionServiceImpl<M extends BaseMapper<T>, T ex
     @Autowired
     private PromotionGoodsService promotionGoodsService;
 
-    /**
-     * rocketMq配置
-     */
-    @Autowired
-    private RocketmqCustomProperties rocketmqCustomProperties;
-
     @Autowired
     private ApplicationEventPublisher applicationEventPublisher;
 
@@ -104,7 +100,7 @@ public abstract class AbstractPromotionServiceImpl<M extends BaseMapper<T>, T ex
      */
     @Override
     @Transactional(rollbackFor = {Exception.class})
-    public boolean updateStatus(List<String> ids, Long startTime, Long endTime) {
+    public boolean updateStatus(List<Long> ids, Long startTime, Long endTime) {
         List<T> promotionsList = this.list(new QueryWrapper<T>().in("id", ids));
         for (T t : promotionsList) {
             if (startTime != null && endTime != null) {
@@ -133,8 +129,8 @@ public abstract class AbstractPromotionServiceImpl<M extends BaseMapper<T>, T ex
      */
     @Override
     @Transactional(rollbackFor = {Exception.class})
-    public boolean removePromotion(List<String> ids) {
-        for (String id : ids) {
+    public boolean removePromotion(List<Long> ids) {
+        for (Long id : ids) {
             T promotions = this.getById(id);
             this.checkStatus(promotions);
             promotions.setStartTime(null);
@@ -153,7 +149,7 @@ public abstract class AbstractPromotionServiceImpl<M extends BaseMapper<T>, T ex
     @Override
     public void initPromotion(T promotions) {
         if (StringUtils.isEmpty(promotions.getScopeType())) {
-            promotions.setScopeType(PromotionScopeType.PORTION_GOODS.name());
+            promotions.setScopeType(PromotionScopeType.ALL);
         }
     }
 
@@ -176,7 +172,7 @@ public abstract class AbstractPromotionServiceImpl<M extends BaseMapper<T>, T ex
     public void checkStatus(T promotion) {
         T byId = this.getById(promotion.getId());
         if (byId == null) {
-            throw new ResourceUnavailableException(ResultCode.PROMOTION_ACTIVITY_ERROR);
+            throw new ResourceUnavailableException("当前促销活动不存在");
         }
     }
 
@@ -190,23 +186,23 @@ public abstract class AbstractPromotionServiceImpl<M extends BaseMapper<T>, T ex
     @Transactional(rollbackFor = {Exception.class})
     public boolean updatePromotionsGoods(T promotion) {
         if (promotion.getStartTime() == null && promotion.getEndTime() == null) {
-            this.promotionGoodsService.deletePromotionGoods(Collections.singletonList(promotions.getId()));
+            this.promotionGoodsService.deletePromotionGoods(Collections.singletonList(promotion.getId()));
             return true;
         }
         boolean result = true;
-        if (CharSequenceUtil.equalsAny(promotion.getScopeType(), PromotionScopeType.ALL.name(),
+        if (CharSequenceUtil.equalsAny(promotion.getScopeType().name(), PromotionScopeType.ALL.name(),
                 PromotionScopeType.PORTION_GOODS_CATEGORY.name())) {
             PromotionGoods promotionGoods = new PromotionGoods();
-            promotionGoods.setScopeId(promotions.getScopeId());
-            promotionGoods.setScopeType(promotions.getScopeType());
-            promotionGoods.setPromotionId(promotions.getId());
-            promotionGoods.setStoreId(promotions.getStoreId());
-            promotionGoods.setStoreName(promotions.getStoreName());
-            promotionGoods.setStartTime(promotions.getStartTime());
-            promotionGoods.setEndTime(promotions.getEndTime());
-            promotionGoods.setPromotionType(this.getPromotionType().name());
-            promotionGoods.setTitle(promotions.getPromotionName());
-            this.promotionGoodsService.deletePromotionGoods(Collections.singletonList(promotions.getId()));
+            promotionGoods.setScopeId(promotion.getScopeId());
+            promotionGoods.setScopeType(promotion.getScopeType());
+            promotionGoods.setPromotionId(promotion.getId());
+            promotionGoods.setMerchantId(promotion.getMerchantId());
+            promotionGoods.setMerchantName(promotion.getMerchantName());
+            promotionGoods.setStartTime(promotion.getStartTime());
+            promotionGoods.setEndTime(promotion.getEndTime());
+            promotionGoods.setPromotionType(this.getPromotionType());
+            promotionGoods.setTitle(promotion.getPromotionName());
+            this.promotionGoodsService.deletePromotionGoods(Collections.singletonList(promotion.getId()));
             result = this.promotionGoodsService.save(promotionGoods);
         }
         return result;
@@ -215,26 +211,27 @@ public abstract class AbstractPromotionServiceImpl<M extends BaseMapper<T>, T ex
     /**
      * 更新促销信息到商品索引
      *
-     * @param promotions 促销实体
+     * @param promotion 促销实体
      */
     @Override
     @Transactional(rollbackFor = {Exception.class})
-    public void updateEsGoodsIndex(T promotions) {
-        if (promotions.getStartTime() == null && promotions.getEndTime() == null) {
-            Map<Object, Object> build = MapBuilder.create().put("promotionKey", this.getPromotionType() + "-" + promotions.getId()).put("scopeId", promotions.getScopeId()).build();
+    public void updateEsGoodsIndex(T promotion) {
+        if (promotion.getStartTime() == null && promotion.getEndTime() == null) {
+            Map<Object, Object> build = MapBuilder.create().put("promotionKey", this.getPromotionType()
+                    + "-" + promotion.getId()).put("scopeId", promotion.getScopeId()).build();
             //删除商品促销消息
-            applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("删除商品促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.DELETE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(build)));
+//            applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("删除商品促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.DELETE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(build)));
         } else {
 
-            String esPromotionKey = this.getPromotionType().name() + "-" + promotions.getId();
+            String esPromotionKey = this.getPromotionType().name() + "-" + promotion.getId();
             Map<String, Object> map = new HashMap<>();
             // es促销key
             map.put("esPromotionKey", esPromotionKey);
             // 促销类型全路径名
-            map.put("promotionsType", promotions.getClass().getName());
+            map.put("promotionsType", promotion.getClass().getName());
             // 促销实体
-            map.put("promotions", promotions);
-            applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("更新商品索引促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.UPDATE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(map)));
+            map.put("promotions", promotion);
+//            applicationEventPublisher.publishEvent(new TransactionCommitSendMQEvent("更新商品索引促销事件", rocketmqCustomProperties.getGoodsTopic(), GoodsTagsEnum.UPDATE_GOODS_INDEX_PROMOTIONS.name(), JSONUtil.toJsonStr(map)));
         }
     }
 

+ 21 - 9
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/CouponActivityServiceImpl.java

@@ -111,10 +111,25 @@ public class CouponActivityServiceImpl extends AbstractPromotionServiceImpl<Coup
         return PagingUtils.convert(page, clients);
     }
 
+    @Override
+    public Long saveCouponActivity(@NonNull CouponActivityModifyParam param) {
+        CouponActivity promotion = CouponActivityCopier.INSTANCE.copying(param);
+        // 初始化促销信息
+        this.initPromotion(promotion);
+        // 检查促销参数
+        this.checkPromotion(promotion);
+        // 保存促销信息
+        this.save(promotion);
+        // 更新促销商品信息
+        if (this.updatePromotionsGoods(promotion)) {
+        }
+        return promotion.getId();
+    }
+
     @Override
     public void initPromotion(CouponActivity promotion) {
         super.initPromotion(promotion);
-        //如果有会员,则写入会员信息
+        //如果有用户,则写入用户信息
         if (promotion.getUsers() != null && !promotion.getUsers().isEmpty()) {
             promotion.setActivityScopeInfo(JSONUtil.toJsonStr(promotion.getUsers()));
         }
@@ -129,7 +144,7 @@ public class CouponActivityServiceImpl extends AbstractPromotionServiceImpl<Coup
     public void checkPromotion(CouponActivity couponActivity) {
         super.checkPromotion(couponActivity);
         //指定会员判定
-        if (couponActivity.getActivityScope().equals(CouponActivitySendType.DESIGNATED.name())
+        if (couponActivity.getActivityScope().equals(CouponActivitySendType.DESIGNATED)
                 && couponActivity.getUsers().isEmpty()) {
             throw new ResourceUnavailableException("指定精准发券则必须指定会员,会员不可以为空");
         }
@@ -148,12 +163,12 @@ public class CouponActivityServiceImpl extends AbstractPromotionServiceImpl<Coup
     public boolean updatePromotionsGoods(CouponActivity couponActivity) {
         boolean result = super.updatePromotionsGoods(couponActivity);
         if (!PromotionStatus.CLOSE.name().equals(couponActivity.getPromotionStatus())
-                && PromotionScopeType.PORTION_GOODS.name().equals(couponActivity.getScopeType())) {
+                && PromotionScopeType.PORTION_GOODS.equals(couponActivity.getScopeType())) {
             //创建优惠券活动子列表
             for (CouponActivityItem couponActivityItem : couponActivity.getCouponActivityItems()) {
                 couponActivityItem.setActivityId(couponActivity.getId());
             }
-            // 更新优惠券活动项信息
+            // 更新优惠券活动项信息
             result = this.couponActivityItemService.saveBatch(couponActivity.getCouponActivityItems());
         }
         return result;
@@ -343,11 +358,8 @@ public class CouponActivityServiceImpl extends AbstractPromotionServiceImpl<Coup
             throw new ResourceUnavailableException("优惠券活动最多指定10个优惠券");
         } else {
             for (CouponActivityItem item : couponActivityItems) {
-                if (item.getNum() == null || item.getNum() <= 0) {
-                    throw new ResourceUnavailableException("赠券数量必须大于0");
-                }
-                if (item.getNum() > 2) {
-                    throw new ResourceUnavailableException("赠券数量最大为2");
+                if (item.getNum() == null || item.getNum() < 0) {
+                    throw new ResourceUnavailableException("赠券数量必须大于等于0");
                 }
             }
         }

+ 28 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/PromotionGoodsServiceImpl.java

@@ -0,0 +1,28 @@
+package com.chelvc.cloud.vehicle.server.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chelvc.cloud.vehicle.server.dao.PromotionGoodsMapper;
+import com.chelvc.cloud.vehicle.server.entity.PromotionGoods;
+import com.chelvc.cloud.vehicle.server.service.PromotionGoodsService;
+import lombok.RequiredArgsConstructor;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+/**
+ * 促销商品业务操作实现
+ *
+ * @author qizai
+ * @date 2023/11/13
+ */
+@RequiredArgsConstructor(onConstructor = @__(@Autowired))
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.PromotionGoodsService.class)
+public class PromotionGoodsServiceImpl extends ServiceImpl<PromotionGoodsMapper, PromotionGoods> implements PromotionGoodsService,
+        com.chelvc.cloud.vehicle.api.service.PromotionGoodsService {
+
+    @Override
+    public void deletePromotionGoods(List<Long> promotionIds) {
+        this.removeByIds(promotionIds);
+    }
+}

+ 5 - 0
vehicle-server/src/main/resources/mapper/PromotionGoodsMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.chelvc.cloud.vehicle.server.dao.PromotionGoodsMapper">
+
+</mapper>