|
@@ -1,11 +1,30 @@
|
|
|
package com.futu.course.orders.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.futu.course.common.entity.R;
|
|
|
+import com.futu.course.common.utils.SnowflakeIdWorker;
|
|
|
+import com.futu.course.course.domain.Course;
|
|
|
+import com.futu.course.course.mapper.CourseMapper;
|
|
|
+import com.futu.course.cupons.domain.Coupon;
|
|
|
+import com.futu.course.cupons.mapper.CouponMapper;
|
|
|
import com.futu.course.orders.domain.Order1;
|
|
|
+import com.futu.course.orders.domain.OrderCoupon;
|
|
|
+import com.futu.course.orders.domain.OrderItem;
|
|
|
+import com.futu.course.orders.dto.OrdersDto;
|
|
|
+import com.futu.course.orders.mapper.OrderCouponMapper;
|
|
|
+import com.futu.course.orders.mapper.OrderItemMapper;
|
|
|
import com.futu.course.orders.service.Order1Service;
|
|
|
import com.futu.course.orders.mapper.Order1Mapper;
|
|
|
+import com.futu.course.user.domain.User;
|
|
|
+import com.futu.course.user.domain.UserAddress;
|
|
|
+import com.futu.course.user.mapper.UserAddressMapper;
|
|
|
+import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.Date;
|
|
|
+
|
|
|
/**
|
|
|
* @author yuu
|
|
|
* @description 针对表【order1(订单表)】的数据库操作Service实现
|
|
@@ -15,6 +34,80 @@ import org.springframework.stereotype.Service;
|
|
|
public class Order1ServiceImpl extends ServiceImpl<Order1Mapper, Order1>
|
|
|
implements Order1Service{
|
|
|
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private CouponMapper couponMapper;
|
|
|
+ @Resource
|
|
|
+ private RedisTemplate redisTemplate;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private CourseMapper courseMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private UserAddressMapper userAddressMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private OrderCouponMapper orderCouponMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private OrderItemMapper orderItemMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R AddOrder1(OrdersDto ordersDto) {
|
|
|
+
|
|
|
+ User user = (User) redisTemplate.opsForValue().get("user");
|
|
|
+
|
|
|
+ Course course = courseMapper.selectById(ordersDto.getCouponId());
|
|
|
+// 商品价格
|
|
|
+ BigDecimal price = course.getPrice();
|
|
|
+ UserAddress userAddress = userAddressMapper.selectById(ordersDto.getAddressId());
|
|
|
+ SnowflakeIdWorker snowflakeIdWorker=new SnowflakeIdWorker(1,1);
|
|
|
+ Order1 order1=new Order1();
|
|
|
+ order1.setId(snowflakeIdWorker.nextId());
|
|
|
+ order1.setId(user.getId());
|
|
|
+ order1.setTotalAmount(price);
|
|
|
+
|
|
|
+ BigDecimal bigDecimal=BigDecimal.ZERO;
|
|
|
+
|
|
|
+ if (ordersDto.getCouponId()!=null){
|
|
|
+ Coupon coupon = couponMapper.selectById(ordersDto.getCouponId());
|
|
|
+ // 优惠价值
|
|
|
+ BigDecimal discount = coupon.getDiscount();
|
|
|
+ bigDecimal=price.subtract(discount);
|
|
|
+ order1.setPayAmount(price.subtract(discount));
|
|
|
+ order1.setDiscountAmount(discount);
|
|
|
+ }else {
|
|
|
+ order1.setPayAmount(price);
|
|
|
+ }
|
|
|
+ order1.setReceiverInfo(userAddress.getDetail());
|
|
|
+ order1.setCreateTime(new Date());
|
|
|
+ order1.setStatus(0);
|
|
|
+ this.baseMapper.insert(order1);
|
|
|
+
|
|
|
+ if (ordersDto.getCouponId()!=null){
|
|
|
+ Coupon coupon = couponMapper.selectById(ordersDto.getCouponId());
|
|
|
+ OrderCoupon orderCoupon1=new OrderCoupon();
|
|
|
+ orderCoupon1.setOrderId(order1.getId());
|
|
|
+ orderCoupon1.setCouponId(ordersDto.getCouponId());
|
|
|
+ orderCoupon1.setDiscountAmount(coupon.getDiscount());
|
|
|
+ orderCouponMapper.insert(orderCoupon1);
|
|
|
+ }
|
|
|
+
|
|
|
+ OrderItem orderItem=new OrderItem();
|
|
|
+ orderItem.setId(snowflakeIdWorker.nextId());
|
|
|
+ orderItem.setOrderId(order1.getId());
|
|
|
+ orderItem.setPrice(bigDecimal);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|