|
|
|
@ -7,6 +7,7 @@ import com.hfkj.common.utils.DateUtil; |
|
|
|
|
import com.hfkj.common.utils.RandomUtils; |
|
|
|
|
import com.hfkj.common.utils.RedisUtil; |
|
|
|
|
import com.hfkj.dao.BsOrderMapper; |
|
|
|
|
import com.hfkj.dao.CouponDiscountGoodsRelMapper; |
|
|
|
|
import com.hfkj.entity.*; |
|
|
|
|
import com.hfkj.model.order.OrderChildModel; |
|
|
|
|
import com.hfkj.model.order.OrderModel; |
|
|
|
@ -37,6 +38,7 @@ import org.thymeleaf.util.DateUtils; |
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import java.math.BigDecimal; |
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @className: BsOrderServiceImpl |
|
|
|
@ -148,6 +150,18 @@ public class BsOrderServiceImpl implements BsOrderService { |
|
|
|
|
if (deduction.getUserCouponDiscountId() != null) { |
|
|
|
|
// 使用优惠券
|
|
|
|
|
useDeduction(order, deduction, order.getDeduction().getUserCouponDiscountId()); |
|
|
|
|
// 使用优惠券限制
|
|
|
|
|
Map<String, Object> param = new HashMap<>(); |
|
|
|
|
param.put("discountId", deduction.getCouponDiscountId()); |
|
|
|
|
List<CouponDiscountGoodsRel> couponDiscountGoodsRelList = couponDiscountService.getListGoodsRel(param); |
|
|
|
|
for(OrderChildModel orderChild : order.getOrderChildList()) { |
|
|
|
|
List<CouponDiscountGoodsRel> collect = couponDiscountGoodsRelList.stream() |
|
|
|
|
.filter(o -> o.getSpecsId() != null && o.getSpecsId().equals(o.getSpecsId())).collect(Collectors.toList()); |
|
|
|
|
if (collect.isEmpty()) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, orderChild.getProductName()+"【"+orderChild.getProductSpecName()+"】"+"无法使用此优惠券"); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
deduction.setCouponDiscountPrice(new BigDecimal("0")); |
|
|
|
|
deduction.setCouponDiscountActualPrice(new BigDecimal("0")); |
|
|
|
@ -245,12 +259,6 @@ public class BsOrderServiceImpl implements BsOrderService { |
|
|
|
|
useDeduction(order, deduction,userCouponDiscountId); |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "积分交易异常"); |
|
|
|
|
} finally { |
|
|
|
|
redisTemplate.delete(key); |
|
|
|
|
} |
|
|
|
|
// 查询用户优惠券
|
|
|
|
|
CouponDiscountUserRel discountUserRel = couponDiscountUserRelService.getRel(userCouponDiscountId); |
|
|
|
|
if (discountUserRel == null) { |
|
|
|
@ -289,6 +297,12 @@ public class BsOrderServiceImpl implements BsOrderService { |
|
|
|
|
deduction.setTotalDeductionPrice(deduction.getCouponDiscountActualPrice() |
|
|
|
|
.add(new BigDecimal(deduction.getIntegralDiscountPrice().toString()).divide(new BigDecimal("100")))); |
|
|
|
|
orderDeductionService.editData(deduction); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "积分交易异常"); |
|
|
|
|
} finally { |
|
|
|
|
redisTemplate.delete(key); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return deduction; |
|
|
|
|
} |
|
|
|
|