|
@@ -197,26 +197,23 @@ public class CouponCommonServiceImpl implements CouponCommonService {
|
|
|
|
|
|
|
|
|
|
|
|
|
public void checkCouponParamsAndSaveOrUpdate(Coupon coupon) throws Exception {
|
|
public void checkCouponParamsAndSaveOrUpdate(Coupon coupon) throws Exception {
|
|
|
- List<Coupon.CouponGoodsSku> goodsSkuList = null;
|
|
|
|
|
|
|
+ List<Coupon.CouponGoodsSku> goodsSkuList = Jsons.parseList(coupon.getGoodsSkuIds(), Coupon.CouponGoodsSku.class);
|
|
|
|
|
+ if (goodsSkuList.isEmpty()) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("所选规格不存在");
|
|
|
|
|
+ }
|
|
|
if (coupon.getType() == Coupon.Type.discount) {
|
|
if (coupon.getType() == Coupon.Type.discount) {
|
|
|
if (coupon.getDiscount() == null || (coupon.getDiscount().compareTo(BigDecimal.ZERO) < 0 && coupon.getDiscount().compareTo(BigDecimal.ZERO) > 0)) {
|
|
if (coupon.getDiscount() == null || (coupon.getDiscount().compareTo(BigDecimal.ZERO) < 0 && coupon.getDiscount().compareTo(BigDecimal.ZERO) > 0)) {
|
|
|
throw BusinessRuntimeException.getInstance("请输入正确的折扣");
|
|
throw BusinessRuntimeException.getInstance("请输入正确的折扣");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
if (coupon.getType() == Coupon.Type.reduce) {
|
|
if (coupon.getType() == Coupon.Type.reduce) {
|
|
|
- if (StrUtil.isEmpty(coupon.getGoodsSkuIds())) {
|
|
|
|
|
- throw BusinessRuntimeException.getInstance("立减优惠券,请配置其平台及规格");
|
|
|
|
|
- }
|
|
|
|
|
if (coupon.getReduceMoney() == null) {
|
|
if (coupon.getReduceMoney() == null) {
|
|
|
throw BusinessRuntimeException.getInstance("请配置其立减金额");
|
|
throw BusinessRuntimeException.getInstance("请配置其立减金额");
|
|
|
}
|
|
}
|
|
|
- goodsSkuList = Jsons.parseList(coupon.getGoodsSkuIds(), Coupon.CouponGoodsSku.class);
|
|
|
|
|
- if (goodsSkuList.isEmpty()) {
|
|
|
|
|
- throw BusinessRuntimeException.getInstance("所选规格不存在");
|
|
|
|
|
- }
|
|
|
|
|
|
|
+
|
|
|
if (coupon.getGoodsType() == Coupon.GoodsType.virtualGoods) {
|
|
if (coupon.getGoodsType() == Coupon.GoodsType.virtualGoods) {
|
|
|
List<Long> skuIds = goodsSkuList.stream().map(Coupon.CouponGoodsSku::getSkuId).collect(Collectors.toList());
|
|
List<Long> skuIds = goodsSkuList.stream().map(Coupon.CouponGoodsSku::getSkuId).collect(Collectors.toList());
|
|
|
- skuIds.forEach(skuId->{
|
|
|
|
|
|
|
+ skuIds.forEach(skuId -> {
|
|
|
GoodsDonSku sku = goodsDonSkuMapper.selectOne(Wrappers.lambdaQuery(GoodsDonSku.class).eq(GoodsDonSku::getId, skuId).select(GoodsDonSku::getPrice).last("limit 1"));
|
|
GoodsDonSku sku = goodsDonSkuMapper.selectOne(Wrappers.lambdaQuery(GoodsDonSku.class).eq(GoodsDonSku::getId, skuId).select(GoodsDonSku::getPrice).last("limit 1"));
|
|
|
if (sku == null) {
|
|
if (sku == null) {
|
|
|
throw BusinessRuntimeException.getInstance("所选规格不存在");
|
|
throw BusinessRuntimeException.getInstance("所选规格不存在");
|
|
@@ -225,9 +222,9 @@ public class CouponCommonServiceImpl implements CouponCommonService {
|
|
|
throw BusinessRuntimeException.getInstance("可减金额必须小于规格金额");
|
|
throw BusinessRuntimeException.getInstance("可减金额必须小于规格金额");
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
- }else {
|
|
|
|
|
|
|
+ } else {
|
|
|
List<Long> goodsIds = goodsSkuList.stream().map(Coupon.CouponGoodsSku::getGoodsId).collect(Collectors.toList());
|
|
List<Long> goodsIds = goodsSkuList.stream().map(Coupon.CouponGoodsSku::getGoodsId).collect(Collectors.toList());
|
|
|
- goodsIds.forEach(goodsId->{
|
|
|
|
|
|
|
+ goodsIds.forEach(goodsId -> {
|
|
|
BigDecimal price = goodsDonMapper.selectMinPriceSkuByGoodsId(goodsId);
|
|
BigDecimal price = goodsDonMapper.selectMinPriceSkuByGoodsId(goodsId);
|
|
|
if (price == null) {
|
|
if (price == null) {
|
|
|
throw BusinessRuntimeException.getInstance("实物商品不存在");
|
|
throw BusinessRuntimeException.getInstance("实物商品不存在");
|
|
@@ -264,7 +261,7 @@ public class CouponCommonServiceImpl implements CouponCommonService {
|
|
|
} catch (DuplicateKeyException e) {
|
|
} catch (DuplicateKeyException e) {
|
|
|
throw BusinessRuntimeException.getInstance("优惠券名称重复");
|
|
throw BusinessRuntimeException.getInstance("优惠券名称重复");
|
|
|
}
|
|
}
|
|
|
- goodsSkuList.forEach(goodsSkuId->{
|
|
|
|
|
|
|
+ goodsSkuList.forEach(goodsSkuId -> {
|
|
|
CouponSku couponSku = new CouponSku();
|
|
CouponSku couponSku = new CouponSku();
|
|
|
couponSku.setCouponId(coupon.getId());
|
|
couponSku.setCouponId(coupon.getId());
|
|
|
couponSku.setGoodsId(goodsSkuId.getGoodsId());
|
|
couponSku.setGoodsId(goodsSkuId.getGoodsId());
|
|
@@ -278,7 +275,7 @@ public class CouponCommonServiceImpl implements CouponCommonService {
|
|
|
throw BusinessRuntimeException.getInstance("优惠券名称重复");
|
|
throw BusinessRuntimeException.getInstance("优惠券名称重复");
|
|
|
}
|
|
}
|
|
|
couponSkuMapper.deleteRelationSku(coupon.getId());
|
|
couponSkuMapper.deleteRelationSku(coupon.getId());
|
|
|
- goodsSkuList.forEach(goodsSkuId->{
|
|
|
|
|
|
|
+ goodsSkuList.forEach(goodsSkuId -> {
|
|
|
CouponSku couponSku = new CouponSku();
|
|
CouponSku couponSku = new CouponSku();
|
|
|
couponSku.setCouponId(coupon.getId());
|
|
couponSku.setCouponId(coupon.getId());
|
|
|
couponSku.setGoodsId(goodsSkuId.getGoodsId());
|
|
couponSku.setGoodsId(goodsSkuId.getGoodsId());
|