lzy 1 週間 前
コミット
5820a61ee2

+ 2 - 1
src/main/java/com/futu/course/cupons/service/impl/CouponServiceImpl.java

@@ -50,11 +50,12 @@ public class CouponServiceImpl extends ServiceImpl<CouponMapper, Coupon>
         if (objects == null){
             return R.failed("没有优惠券");
         }
+        System.err.println(objects);
         Course course = courseMapper.selectById(primary.getCouponId());
-        System.err.println(course);
         List<Coupon> list=new ArrayList<>();
         for (Long i:objects){
             list.add(this.baseMapper.selectOne(new QueryWrapper<Coupon>().eq("id",i).ge("condition_amount",course.getPrice())));
+            System.err.println(list);
         }
         if (list==null){
             return R.failed("没有可用的优惠券");

+ 8 - 2
src/main/java/com/futu/course/orders/dto/Orders.java → src/main/java/com/futu/course/orders/dto/OrdersDto.java

@@ -4,14 +4,20 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import javax.naming.ldap.PagedResultsControl;
+
 @AllArgsConstructor
 @Data
 @NoArgsConstructor
-public class Orders {
+public class OrdersDto {
 
+//    课程id
     private Long courseId;
 
-
+//  优惠券id
     private Long couponId;
 
+//    用户地址id
+    private Long addressId;
+
 }

+ 2 - 1
src/main/java/com/futu/course/orders/service/Order1Service.java

@@ -3,6 +3,7 @@ package com.futu.course.orders.service;
 import com.futu.course.common.entity.R;
 import com.futu.course.orders.domain.Order1;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.futu.course.orders.dto.OrdersDto;
 
 /**
 * @author yuu
@@ -14,7 +15,7 @@ public interface Order1Service extends IService<Order1> {
 
 
 //    订单
-//    R AddOrder1();
+    R AddOrder1(OrdersDto ordersDto);
 
 
 

+ 93 - 0
src/main/java/com/futu/course/orders/service/impl/Order1ServiceImpl.java

@@ -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;
+    }
 }