|
@@ -9,12 +9,13 @@ import com.zhentao.domain.UserOrder;
|
|
import com.zhentao.dto.Result;
|
|
import com.zhentao.dto.Result;
|
|
import com.zhentao.mapper.UserOrderMapper;
|
|
import com.zhentao.mapper.UserOrderMapper;
|
|
import com.zhentao.service.CouponService;
|
|
import com.zhentao.service.CouponService;
|
|
|
|
+import com.zhentao.service.OrderShoppingService;
|
|
import com.zhentao.service.UserOrderService;
|
|
import com.zhentao.service.UserOrderService;
|
|
-import org.checkerframework.checker.units.qual.A;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
+import java.util.Date;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @author 86183
|
|
* @author 86183
|
|
@@ -25,9 +26,9 @@ import java.math.BigDecimal;
|
|
public class UserOrderServiceImpl extends ServiceImpl<UserOrderMapper, UserOrder>
|
|
public class UserOrderServiceImpl extends ServiceImpl<UserOrderMapper, UserOrder>
|
|
implements UserOrderService{
|
|
implements UserOrderService{
|
|
@Autowired
|
|
@Autowired
|
|
- private UserOrderService service;
|
|
|
|
- @Autowired
|
|
|
|
private CouponService couponService;
|
|
private CouponService couponService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private OrderShoppingService orderShoppingService;
|
|
@Override
|
|
@Override
|
|
public Result add(OrderDto orderDto) {
|
|
public Result add(OrderDto orderDto) {
|
|
// 创建一个对象
|
|
// 创建一个对象
|
|
@@ -42,16 +43,54 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderMapper, UserOrder
|
|
bigDecimal = bigDecimal.add(s.getPrice());
|
|
bigDecimal = bigDecimal.add(s.getPrice());
|
|
}
|
|
}
|
|
userOrder.setTotalAmount(bigDecimal);
|
|
userOrder.setTotalAmount(bigDecimal);
|
|
-// 设置优惠金额
|
|
|
|
- Coupon byId = couponService.getById(orderDto.getCouponId());
|
|
|
|
- if (byId.getCouponType()==1){
|
|
|
|
-
|
|
|
|
- }else if (byId.getCouponType()==2){
|
|
|
|
|
|
+// 判断不能为空
|
|
|
|
+ if (orderDto.getCouponId()!=null){
|
|
|
|
+ // 设置优惠金额
|
|
|
|
+ Coupon byId = couponService.getById(orderDto.getCouponId());
|
|
|
|
+ if (byId.getCouponType()==1){
|
|
|
|
+ if (isGreaterThan(bigDecimal,byId.getMinAmount())){
|
|
|
|
+// 优惠价格
|
|
|
|
+ userOrder.setDiscountAmount(byId.getMinAmount());
|
|
|
|
+// 实际支付金额
|
|
|
|
+ userOrder.setActualAmount(bigDecimal.subtract(byId.getMinAmount()));
|
|
|
|
+ }else {
|
|
|
|
+ return Result.ERR("金额没有超过规定的金额",null);
|
|
|
|
+ }
|
|
|
|
+ }else if (byId.getCouponType()==2){
|
|
|
|
+// 优惠价格
|
|
|
|
+ userOrder.setDiscountAmount(bigDecimal.subtract(bigDecimal.divide(byId.getDiscountRate())));
|
|
|
|
+// 实际价格
|
|
|
|
+ userOrder.setActualAmount(bigDecimal.divide(byId.getDiscountRate()));
|
|
|
|
+ }else if (byId.getCouponType()==3){
|
|
|
|
+// 优惠价格
|
|
|
|
+ userOrder.setDiscountAmount(byId.getDiscountAmount());
|
|
|
|
+// 实际支付金额
|
|
|
|
+ userOrder.setActualAmount(bigDecimal.subtract(byId.getDiscountAmount()));
|
|
|
|
+ }
|
|
|
|
+// 设置优惠ID
|
|
|
|
+ userOrder.setCouponId(orderDto.getCouponId());
|
|
|
|
+ }else {
|
|
|
|
+ userOrder.setActualAmount(bigDecimal);
|
|
|
|
+ }
|
|
|
|
+ userOrder.setOrderStatus(1);
|
|
|
|
+ userOrder.setPaymentStatus(1);
|
|
|
|
+ userOrder.setCreateTime(new Date());
|
|
|
|
+ boolean save = this.save(userOrder);
|
|
|
|
+ if (save){
|
|
|
|
+ for (OrderShopping o:orderDto.getList()) {
|
|
|
|
+ long l1 = IdUtil.getSnowflake(1, 1).nextId();
|
|
|
|
+ o.setId(l1);
|
|
|
|
+ o.setOrderId(l);
|
|
|
|
+ o.setCreateTime(new Date());
|
|
|
|
+ orderShoppingService.save(o);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return Result.ERR("添加成功",save);
|
|
|
|
+ }
|
|
|
|
|
|
- }else if (byId.getCouponType()==3){
|
|
|
|
|
|
|
|
- }
|
|
|
|
- return null;
|
|
|
|
|
|
+ public static boolean isGreaterThan(BigDecimal num1, BigDecimal num2) {
|
|
|
|
+ return num1.compareTo(num2) > 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|