Commit 941782fb1057c2d0ba8324af6dc2cebfad9099ea

Authored by YunaiV
1 parent 6d48bd1e

promotion:完善限时折扣的修改逻辑

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/DiscountActivityController.java
... ... @@ -2,12 +2,10 @@ package cn.iocoder.yudao.module.promotion.controller.admin.discount;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
5   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO;
6   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityPageReqVO;
7   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityRespVO;
8   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityUpdateReqVO;
  5 +import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.*;
9 6 import cn.iocoder.yudao.module.promotion.convert.discount.DiscountActivityConvert;
10 7 import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountActivityDO;
  8 +import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProductDO;
11 9 import cn.iocoder.yudao.module.promotion.service.discount.DiscountActivityService;
12 10 import io.swagger.annotations.Api;
13 11 import io.swagger.annotations.ApiImplicitParam;
... ... @@ -18,6 +16,7 @@ import org.springframework.web.bind.annotation.*;
18 16  
19 17 import javax.annotation.Resource;
20 18 import javax.validation.Valid;
  19 +import java.util.List;
21 20  
22 21 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
23 22  
... ... @@ -67,9 +66,14 @@ public class DiscountActivityController {
67 66 @ApiOperation("获得限时折扣活动")
68 67 @ApiImplicitParam(name = "id", value = "编号", required = true, example = "1024", dataTypeClass = Long.class)
69 68 @PreAuthorize("@ss.hasPermission('promotion:discount-activity:query')")
70   - public CommonResult<DiscountActivityRespVO> getDiscountActivity(@RequestParam("id") Long id) {
  69 + public CommonResult<DiscountActivityDetailRespVO> getDiscountActivity(@RequestParam("id") Long id) {
71 70 DiscountActivityDO discountActivity = discountActivityService.getDiscountActivity(id);
72   - return success(DiscountActivityConvert.INSTANCE.convert(discountActivity));
  71 + if (discountActivity == null) {
  72 + return success(null);
  73 + }
  74 + // 拼接结果
  75 + List<DiscountProductDO> discountProducts = discountActivityService.getDiscountProductsByActivityId(id);
  76 + return success(DiscountActivityConvert.INSTANCE.convert(discountActivity, discountProducts));
73 77 }
74 78  
75 79 @GetMapping("/page")
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/discount/vo/DiscountActivityDetailRespVO.java 0 → 100755
  1 +package cn.iocoder.yudao.module.promotion.controller.admin.discount.vo;
  2 +
  3 +import io.swagger.annotations.ApiModel;
  4 +import lombok.Data;
  5 +import lombok.EqualsAndHashCode;
  6 +import lombok.ToString;
  7 +
  8 +import java.util.List;
  9 +
  10 +@ApiModel("管理后台 - 限时折扣活动的详细 Response VO")
  11 +@Data
  12 +@EqualsAndHashCode(callSuper = true)
  13 +@ToString(callSuper = true)
  14 +public class DiscountActivityDetailRespVO extends DiscountActivityRespVO {
  15 +
  16 + /**
  17 + * 商品列表
  18 + */
  19 + private List<Product> products;
  20 +
  21 +}
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/discount/DiscountActivityConvert.java
1 1 package cn.iocoder.yudao.module.promotion.convert.discount;
2 2  
  3 +import cn.hutool.core.util.ObjectUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 5 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
5 6 import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
6   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityBaseVO;
7   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityCreateReqVO;
8   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityRespVO;
9   -import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.DiscountActivityUpdateReqVO;
  7 +import cn.iocoder.yudao.module.promotion.controller.admin.discount.vo.*;
10 8 import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountActivityDO;
11 9 import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProductDO;
  10 +import cn.iocoder.yudao.module.promotion.enums.common.PromotionDiscountTypeEnum;
12 11 import cn.iocoder.yudao.module.promotion.service.discount.bo.DiscountProductDetailBO;
13 12 import org.mapstruct.Mapper;
14 13 import org.mapstruct.factory.Mappers;
... ... @@ -50,4 +49,54 @@ public interface DiscountActivityConvert {
50 49  
51 50 DiscountProductDO convert(DiscountActivityBaseVO.Product bean);
52 51  
  52 + DiscountActivityDetailRespVO convert(DiscountActivityDO activity, List<DiscountProductDO> products);
  53 +
  54 + // =========== 比较是否相等 ==========
  55 + /**
  56 + * 比较两个限时折扣商品是否相等
  57 + *
  58 + * @param productDO 数据库中的商品
  59 + * @param productVO 前端传入的商品
  60 + * @return 是否匹配
  61 + */
  62 + @SuppressWarnings("DuplicatedCode")
  63 + default boolean isEquals(DiscountProductDO productDO, DiscountActivityBaseVO.Product productVO) {
  64 + if (ObjectUtil.notEqual(productDO.getSpuId(), productVO.getSpuId())
  65 + || ObjectUtil.notEqual(productDO.getSkuId(), productVO.getSkuId())
  66 + || ObjectUtil.notEqual(productDO.getDiscountType(), productVO.getDiscountType())) {
  67 + return false;
  68 + }
  69 + if (productDO.getDiscountType().equals(PromotionDiscountTypeEnum.PRICE.getType())) {
  70 + return ObjectUtil.equal(productDO.getDiscountPrice(), productVO.getDiscountPrice());
  71 + }
  72 + if (productDO.getDiscountType().equals(PromotionDiscountTypeEnum.PERCENT.getType())) {
  73 + return ObjectUtil.equal(productDO.getDiscountPercent(), productVO.getDiscountPercent());
  74 + }
  75 + return true;
  76 + }
  77 +
  78 + /**
  79 + * 比较两个限时折扣商品是否相等
  80 + * 注意,比较时忽略 id 编号
  81 + *
  82 + * @param productDO 商品 1
  83 + * @param productVO 商品 2
  84 + * @return 是否匹配
  85 + */
  86 + @SuppressWarnings("DuplicatedCode")
  87 + default boolean isEquals(DiscountProductDO productDO, DiscountProductDO productVO) {
  88 + if (ObjectUtil.notEqual(productDO.getSpuId(), productVO.getSpuId())
  89 + || ObjectUtil.notEqual(productDO.getSkuId(), productVO.getSkuId())
  90 + || ObjectUtil.notEqual(productDO.getDiscountType(), productVO.getDiscountType())) {
  91 + return false;
  92 + }
  93 + if (productDO.getDiscountType().equals(PromotionDiscountTypeEnum.PRICE.getType())) {
  94 + return ObjectUtil.equal(productDO.getDiscountPrice(), productVO.getDiscountPrice());
  95 + }
  96 + if (productDO.getDiscountType().equals(PromotionDiscountTypeEnum.PERCENT.getType())) {
  97 + return ObjectUtil.equal(productDO.getDiscountPercent(), productVO.getDiscountPercent());
  98 + }
  99 + return true;
  100 + }
  101 +
53 102 }
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityService.java
... ... @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProduct
9 9  
10 10 import javax.validation.Valid;
11 11 import java.util.Collection;
  12 +import java.util.List;
12 13 import java.util.Map;
13 14  
14 15 /**
... ... @@ -73,4 +74,12 @@ public interface DiscountActivityService {
73 74 */
74 75 PageResult<DiscountActivityDO> getDiscountActivityPage(DiscountActivityPageReqVO pageReqVO);
75 76  
  77 + /**
  78 + * 获得活动编号,对应对应的商品列表
  79 + *
  80 + * @param activityId 活动编号
  81 + * @return 活动的商品列表
  82 + */
  83 + List<DiscountProductDO> getDiscountProductsByActivityId(Long activityId);
  84 +
76 85 }
... ...
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImpl.java
... ... @@ -91,8 +91,7 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
91 91 // 计算要删除的记录
92 92 List<Long> deleteIds = convertList(dbDiscountProducts, DiscountProductDO::getId,
93 93 discountProductDO -> updateReqVO.getProducts().stream()
94   - .noneMatch(product -> product.getSkuId().equals(discountProductDO.getSkuId())
95   - && product.getDiscountPrice().equals(discountProductDO.getDiscountPrice())));
  94 + .noneMatch(product -> DiscountActivityConvert.INSTANCE.isEquals(discountProductDO, product)));
96 95 if (CollUtil.isNotEmpty(deleteIds)) {
97 96 discountProductMapper.deleteBatchIds(deleteIds);
98 97 }
... ... @@ -100,8 +99,7 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
100 99 List<DiscountProductDO> newDiscountProducts = convertList(updateReqVO.getProducts(),
101 100 product -> DiscountActivityConvert.INSTANCE.convert(product).setActivityId(updateReqVO.getId()));
102 101 newDiscountProducts.removeIf(product -> dbDiscountProducts.stream().anyMatch(
103   - dbProduct -> dbProduct.getSkuId().equals(product.getSkuId())
104   - && dbProduct.getDiscountPrice().equals(product.getDiscountPrice()))); // 如果匹配到,说明是更新的
  102 + dbProduct -> DiscountActivityConvert.INSTANCE.isEquals(dbProduct, product))); // 如果匹配到,说明是更新的
105 103 if (CollectionUtil.isNotEmpty(newDiscountProducts)) {
106 104 discountProductMapper.insertBatch(newDiscountProducts);
107 105 }
... ... @@ -194,4 +192,9 @@ public class DiscountActivityServiceImpl implements DiscountActivityService {
194 192 return discountActivityMapper.selectPage(pageReqVO);
195 193 }
196 194  
  195 + @Override
  196 + public List<DiscountProductDO> getDiscountProductsByActivityId(Long activityId) {
  197 + return discountProductMapper.selectListByActivityId(activityId);
  198 + }
  199 +
197 200 }
... ...
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/discount/DiscountActivityServiceImplTest.java
... ... @@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.promotion.dal.dataobject.discount.DiscountProduct
11 11 import cn.iocoder.yudao.module.promotion.dal.mysql.discount.DiscountActivityMapper;
12 12 import cn.iocoder.yudao.module.promotion.dal.mysql.discount.DiscountProductMapper;
13 13 import cn.iocoder.yudao.module.promotion.enums.common.PromotionActivityStatusEnum;
  14 +import cn.iocoder.yudao.module.promotion.enums.common.PromotionDiscountTypeEnum;
14 15 import org.junit.jupiter.api.Test;
15 16 import org.springframework.context.annotation.Import;
16 17  
... ... @@ -53,8 +54,10 @@ public class DiscountActivityServiceImplTest extends BaseDbUnitTest {
53 54 // 用于触发进行中的状态
54 55 o.setStartTime(addTime(Duration.ofDays(1))).setEndTime(addTime(Duration.ofDays(2)));
55 56 // 设置商品
56   - o.setProducts(asList(new DiscountActivityBaseVO.Product().setSpuId(1L).setSkuId(2L).setDiscountPrice(3),
57   - new DiscountActivityBaseVO.Product().setSpuId(10L).setSkuId(20L).setDiscountPrice(30)));
  57 + o.setProducts(asList(new DiscountActivityBaseVO.Product().setSpuId(1L).setSkuId(2L)
  58 + .setDiscountType(PromotionDiscountTypeEnum.PRICE.getType()).setDiscountPrice(3),
  59 + new DiscountActivityBaseVO.Product().setSpuId(10L).setSkuId(20L)
  60 + .setDiscountType(PromotionDiscountTypeEnum.PERCENT.getType()).setDiscountPercent(30)));
58 61 });
59 62  
60 63 // 调用
... ... @@ -74,7 +77,9 @@ public class DiscountActivityServiceImplTest extends BaseDbUnitTest {
74 77 assertEquals(discountProduct.getActivityId(), discountActivity.getId());
75 78 assertEquals(discountProduct.getSpuId(), product.getSpuId());
76 79 assertEquals(discountProduct.getSkuId(), product.getSkuId());
  80 + assertEquals(discountProduct.getDiscountType(), product.getDiscountType());
77 81 assertEquals(discountProduct.getDiscountPrice(), product.getDiscountPrice());
  82 + assertEquals(discountProduct.getDiscountPercent(), product.getDiscountPercent());
78 83 }
79 84 }
80 85  
... ... @@ -85,9 +90,9 @@ public class DiscountActivityServiceImplTest extends BaseDbUnitTest {
85 90 discountActivityMapper.insert(dbDiscountActivity);// @Sql: 先插入出一条存在的数据
86 91 // mock 数据(活动)
87 92 DiscountProductDO dbDiscountProduct01 = randomPojo(DiscountProductDO.class, o -> o.setActivityId(dbDiscountActivity.getId())
88   - .setSpuId(1L).setSkuId(2L));
  93 + .setSpuId(1L).setSkuId(2L).setDiscountType(PromotionDiscountTypeEnum.PRICE.getType()).setDiscountPrice(3).setDiscountPercent(null));
89 94 DiscountProductDO dbDiscountProduct02 = randomPojo(DiscountProductDO.class, o -> o.setActivityId(dbDiscountActivity.getId())
90   - .setSpuId(10L).setSkuId(20L));
  95 + .setSpuId(10L).setSkuId(20L).setDiscountType(PromotionDiscountTypeEnum.PERCENT.getType()).setDiscountPercent(30).setDiscountPrice(null));
91 96 discountProductMapper.insert(dbDiscountProduct01);
92 97 discountProductMapper.insert(dbDiscountProduct02);
93 98 // 准备参数
... ... @@ -96,8 +101,10 @@ public class DiscountActivityServiceImplTest extends BaseDbUnitTest {
96 101 // 用于触发进行中的状态
97 102 o.setStartTime(addTime(Duration.ofDays(1))).setEndTime(addTime(Duration.ofDays(2)));
98 103 // 设置商品
99   - o.setProducts(asList(new DiscountActivityBaseVO.Product().setSpuId(1L).setSkuId(2L).setDiscountPrice(3),
100   - new DiscountActivityBaseVO.Product().setSpuId(100L).setSkuId(200L).setDiscountPrice(30)));
  104 + o.setProducts(asList(new DiscountActivityBaseVO.Product().setSpuId(1L).setSkuId(2L)
  105 + .setDiscountType(PromotionDiscountTypeEnum.PRICE.getType()).setDiscountPrice(3).setDiscountPercent(null),
  106 + new DiscountActivityBaseVO.Product().setSpuId(100L).setSkuId(200L)
  107 + .setDiscountType(PromotionDiscountTypeEnum.PERCENT.getType()).setDiscountPercent(30).setDiscountPrice(null)));
101 108 });
102 109  
103 110 // 调用
... ... @@ -115,7 +122,9 @@ public class DiscountActivityServiceImplTest extends BaseDbUnitTest {
115 122 assertEquals(discountProduct.getActivityId(), discountActivity.getId());
116 123 assertEquals(discountProduct.getSpuId(), product.getSpuId());
117 124 assertEquals(discountProduct.getSkuId(), product.getSkuId());
  125 + assertEquals(discountProduct.getDiscountType(), product.getDiscountType());
118 126 assertEquals(discountProduct.getDiscountPrice(), product.getDiscountPrice());
  127 + assertEquals(discountProduct.getDiscountPercent(), product.getDiscountPercent());
119 128 }
120 129 }
121 130  
... ...
yudao-module-mall/yudao-module-promotion-biz/src/test/resources/sql/create_tables.sql
... ... @@ -112,7 +112,9 @@ CREATE TABLE IF NOT EXISTS &quot;promotion_discount_product&quot; (
112 112 "activity_id" bigint NOT NULL,
113 113 "spu_id" bigint NOT NULL,
114 114 "sku_id" bigint NOT NULL,
115   - "discount_price" int NOT NULL,
  115 + "discount_type" int NOT NULL,
  116 + "discount_percent" int,
  117 + "discount_price" int,
116 118 "creator" varchar DEFAULT '',
117 119 "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
118 120 "updater" varchar DEFAULT '',
... ...
yudao-ui-admin/src/views/mall/promotion/discountActivity/index.vue
... ... @@ -84,8 +84,8 @@
84 84 </el-form-item>
85 85 <el-form-item label="商品选择">
86 86 <el-select v-model="form.skuIds" placeholder="请选择活动商品" clearable size="small"
87   - multiple filterable style="width: 400px" @change="changeFormSku">
88   - <el-option v-for="item in productSkus" :key="item.id" :label="item.name" :value="item.id">
  87 + multiple filterable style="width: 880px" @change="changeFormSku">
  88 + <el-option v-for="item in productSkus" :key="item.id" :label="item.spuName + ' ' + item.name" :value="item.id">
89 89 <span style="float: left">{{ item.spuName }} &nbsp; {{ item.name}}</span>
90 90 <span style="float: right; color: #8492a6; font-size: 13px">¥{{ (item.price / 100.0).toFixed(2) }}</span>
91 91 </el-option>
... ... @@ -102,7 +102,7 @@
102 102 </template>
103 103 </el-table-column>
104 104 <el-table-column label="库存" align="center" prop="stock" />
105   - <el-table-column label="优惠类型" align="center">
  105 + <el-table-column label="优惠类型" align="center" property="discountType">
106 106 <template slot-scope="scope">
107 107 <el-select v-model="scope.row.discountType" placeholder="请选择优惠类型">
108 108 <el-option v-for="dict in getDictDatas(DICT_TYPE.PROMOTION_DISCOUNT_TYPE)"
... ... @@ -114,7 +114,7 @@
114 114 <template slot-scope="scope">
115 115 <el-form-item v-if="scope.row.discountType === PromotionDiscountTypeEnum.PRICE.type" prop="discountPrice">
116 116 减 <el-input-number v-model="scope.row.discountPrice" placeholder="请输入优惠金额"
117   - style="width: 190px" :precision="2" :min="0" /> 元
  117 + style="width: 190px" :precision="2" :min="0" :max="scope.row.price / 100.0 - 0.01" /> 元
118 118 </el-form-item>
119 119 <el-form-item v-if="scope.row.discountType === PromotionDiscountTypeEnum.PERCENT.type" prop="discountPercent">
120 120 打 <el-input-number v-model="scope.row.discountPercent" placeholder="请输入优惠折扣"
... ... @@ -139,12 +139,20 @@
139 139 </template>
140 140  
141 141 <script>
142   -import { createDiscountActivity, updateDiscountActivity, deleteDiscountActivity, getDiscountActivity, getDiscountActivityPage } from "@/api/mall/promotion/discountActivity";
  142 +import {
  143 + createDiscountActivity,
  144 + updateDiscountActivity,
  145 + deleteDiscountActivity,
  146 + getDiscountActivity,
  147 + getDiscountActivityPage,
  148 + closeDiscountActivity
  149 +} from "@/api/mall/promotion/discountActivity";
143 150 import {
144 151 PromotionActivityStatusEnum, PromotionDiscountTypeEnum,
145 152 PromotionProductScopeEnum
146 153 } from "@/utils/constants";
147 154 import { getSkuOptionList } from "@/api/mall/product/sku";
  155 +import { deepClone } from "@/utils";
148 156  
149 157 export default {
150 158 name: "DiscountActivity",
... ... @@ -165,7 +173,7 @@ export default {
165 173 // 弹出层名称
166 174 title: "",
167 175 // 是否显示弹出层
168   - open: true,
  176 + open: false,
169 177 // 查询参数
170 178 queryParams: {
171 179 pageNo: 1,
... ... @@ -178,28 +186,12 @@ export default {
178 186 form: {
179 187 skuIds: [], // 选中的 SKU
180 188 products: [], // 商品信息
181   - // products: [{
182   - // id: 2,
183   - // name: '白色',
184   - // price: 500,
185   - // stock: 20,
186   - // spuId: 1,
187   - // spuName: 'iPhone 14 Pro',
188   - // discountType: 1,
189   - // }, {
190   - // id: 10,
191   - // name: '蓝色',
192   - // price: 1000,
193   - // stock: 100,
194   - // spuId: 20,
195   - // spuName: 'iPhone 14 Pro',
196   - // discountType: 2,
197   - // }]
198 189 },
199 190 // 表单校验
200 191 rules: {
201 192 name: [{ required: true, message: "活动名称不能为空", trigger: "blur" }],
202 193 startAndEndTime: [{ required: true, message: "活动时间不能为空", trigger: "blur" }],
  194 + skuIds: [{ required: true, message: "选择商品不能为空", trigger: "blur" }],
203 195 },
204 196 // 商品 SKU 列表
205 197 productSkus: [],
... ... @@ -268,7 +260,24 @@ export default {
268 260 const id = row.id;
269 261 getDiscountActivity(id).then(response => {
270 262 this.form = response.data;
  263 + // 修改数据
271 264 this.form.startAndEndTime = [response.data.startTime, response.data.endTime];
  265 + this.form.skuIds = response.data.products.map(item => item.skuId);
  266 + this.form.products.forEach(product => {
  267 + // 获得对应的 SKU 信息
  268 + const sku = this.productSkus.find(item => item.id === product.skuId);
  269 + if (!sku) {
  270 + return;
  271 + }
  272 + // 设置商品信息
  273 + product.name = sku.name;
  274 + product.spuName = sku.spuName;
  275 + product.price = sku.price;
  276 + product.stock = sku.stock;
  277 + product.discountPrice = product.discountPrice !== undefined ? product.discountPrice / 100.0 : undefined;
  278 + product.discountPercent = product.discountPercent !== undefined ? product.discountPercent / 10.0 : undefined;
  279 + });
  280 + // 打开弹窗
272 281 this.open = true;
273 282 this.title = "修改限时折扣活动";
274 283 });
... ... @@ -279,11 +288,21 @@ export default {
279 288 if (!valid) {
280 289 return;
281 290 }
282   - this.form.startTime = this.form.startAndEndTime[0];
283   - this.form.endTime = this.form.startAndEndTime[1];
  291 + // 处理数据
  292 + const data = deepClone(this.form); // 必须深拷贝,不然后面的 products 操作会有影响
  293 + data.startTime = this.form.startAndEndTime[0];
  294 + data.endTime = this.form.startAndEndTime[1];
  295 + data.products.forEach(product => {
  296 + product.discountPrice = product.discountPrice !== undefined ? product.discountPrice * 100 : undefined;
  297 + product.discountPercent = product.discountPercent !== undefined ? product.discountPercent * 10 : undefined;
  298 + });
  299 + if (!valid) {
  300 + return;
  301 + }
  302 +
284 303 // 修改的提交
285 304 if (this.form.id != null) {
286   - updateDiscountActivity(this.form).then(response => {
  305 + updateDiscountActivity(data).then(response => {
287 306 this.$modal.msgSuccess("修改成功");
288 307 this.open = false;
289 308 this.getList();
... ... @@ -291,7 +310,7 @@ export default {
291 310 return;
292 311 }
293 312 // 添加的提交
294   - createDiscountActivity(this.form).then(response => {
  313 + createDiscountActivity(data).then(response => {
295 314 this.$modal.msgSuccess("新增成功");
296 315 this.open = false;
297 316 this.getList();
... ... @@ -312,7 +331,7 @@ export default {
312 331 handleClose(row) {
313 332 const id = row.id;
314 333 this.$modal.confirm('是否确认关闭限时折扣活动编号为"' + id + '"的数据项?').then(function() {
315   - return closeRewardActivity(id);
  334 + return closeDiscountActivity(id);
316 335 }).then(() => {
317 336 this.getList();
318 337 this.$modal.msgSuccess("关闭成功");
... ... @@ -325,13 +344,11 @@ export default {
325 344 // 获得对应的 SKU 信息
326 345 const sku = this.productSkus.find(item => item.id === skuId);
327 346 if (!sku) {
328   - // debugger
329 347 return;
330 348 }
331 349 // 判断已存在,直接跳过
332 350 const product = this.form.products.find(item => item.skuId === skuId);
333 351 if (product) {
334   - // debugger
335 352 return;
336 353 }
337 354 this.form.products.push({
... ...