Drew 6 лет назад
Родитель
Сommit
efbe47cec2

+ 14 - 18
src/main/java/com/izouma/ticketExchange/domain/Order.java

@@ -1,7 +1,6 @@
 package com.izouma.ticketExchange.domain;
 
 
-import com.izouma.ticketExchange.domain.BaseEntity;
 import com.izouma.ticketExchange.enums.OrderStatus;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -10,12 +9,10 @@ import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
+import javax.persistence.*;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Data
 @Entity(name = "order_info")
@@ -35,33 +32,28 @@ public class Order extends BaseEntity {
 
     private Long couponId;
 
-    private Long couponReceiveId;
-
     private String hallName;
 
-    private String seatNames;
-
-    private Integer seatRow;
-
-    private Integer seatCol;
-
     @Enumerated(EnumType.STRING)
     private OrderStatus status;
 
-    private String phone;
+    @Column(precision = 10, scale = 2)
+    private BigDecimal totalFee;
 
     @Column(precision = 10, scale = 2)
-    private BigDecimal price;
+    private BigDecimal discount;
+
+    @Column(precision = 10, scale = 2)
+    private BigDecimal actualPaid;
 
     @ApiModelProperty(value = "取票码", name = "ticketContents")
     private String ticketContents;
 
-    @ApiModelProperty(value = "二维码", name = "qrCode")
-    private String qrCode;
-
     @ApiModelProperty(value = "淘票票订单ID", name = "tbOrderId")
     private String tbOrderId;
 
+    private String phone;
+
     private LocalDateTime releaseTime;
 
     private LocalDateTime paidTime;
@@ -74,4 +66,8 @@ public class Order extends BaseEntity {
 
     private String applyKey;
 
+    @OneToMany
+    @JoinColumn(name = "orderId", insertable = false, updatable = false)
+    @ApiModelProperty(value = "订单详情", name = "details")
+    private List<OrderDetail> details;
 }

+ 37 - 0
src/main/java/com/izouma/ticketExchange/domain/OrderDetail.java

@@ -0,0 +1,37 @@
+package com.izouma.ticketExchange.domain;
+
+import com.izouma.ticketExchange.enums.OrderStatus;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.EnumType;
+import javax.persistence.Enumerated;
+import java.math.BigDecimal;
+
+@Data
+@Entity
+@ApiModel(value = "订单详情", description = "订单详情")
+public class OrderDetail extends BaseEntity {
+
+    private Long orderId;
+
+    private Long userId;
+
+    private Long couponReceiveId;
+
+    private String seatName;
+
+    @Column(precision = 10, scale = 2)
+    private BigDecimal totalFee;
+
+    @Column(precision = 10, scale = 2)
+    private BigDecimal discount;
+
+    @Column(precision = 10, scale = 2)
+    private BigDecimal actualPaid;
+
+    @Enumerated(EnumType.STRING)
+    private OrderStatus status;
+}

+ 2 - 0
src/main/java/com/izouma/ticketExchange/repo/CouponReceiveRepo.java

@@ -23,4 +23,6 @@ public interface CouponReceiveRepo extends JpaRepository<CouponReceive, Long>, J
     int countByCouponIdAndUserIdAndUsedFalse(Long couponId, Long userId);
 
     List<CouponReceive> findAllByUserIdAndCouponId(Long userId, Long couponId);
+
+    List<CouponReceive> findAllByUserIdAndCouponIdAndUsedFalse(Long userId, Long couponId);
 }

+ 3 - 2
src/main/java/com/izouma/ticketExchange/service/SeatService.java

@@ -60,12 +60,13 @@ public class SeatService {
                 throw new BusinessException("该优惠券不能用于该影片");
             }
         }
-        int usableCount = couponReceiveRepo.countByCouponIdAndUserIdAndUsedFalse(userId, couponId);
+        List<CouponReceive> couponReceives = couponReceiveRepo.findAllByUserIdAndCouponIdAndUsedFalse(userId, couponId);
+        int usableCount = couponReceives.size();
         if (usableCount < seatIds.size()) {
             throw new BusinessException("最多可选" + usableCount + "个");
         }
 
-        return tppService.lockSeat(scheduleId, StringUtils.join(seatIds, "|"), StringUtils.join(seatNames, "|"), "", userId);
+        return tppService.lockSeat(scheduleId, StringUtils.join(seatIds, "|"), StringUtils.join(seatNames, "|"), couponReceives.get(0).getPhone(), userId);
     }
 
     public void unlockSeat(String applyKey, Long userId) {