Browse Source

购物车

licailing 5 years ago
parent
commit
e651be8bfd

+ 2 - 0
src/main/java/com/izouma/dingdong/domain/OrderGoodsSpec.java

@@ -21,6 +21,8 @@ import java.math.BigDecimal;
 @Builder
 @ApiModel(value = "订单商品及规格", description = "订单商品及规格")
 public class OrderGoodsSpec extends BaseEntity implements Serializable {
+//    private Long userId;
+
     @ApiModelProperty(value = "订单ID", name = "orderId")
     private Long orderId;
 

+ 4 - 0
src/main/java/com/izouma/dingdong/domain/OrderInfo.java

@@ -11,6 +11,7 @@ import lombok.*;
 import javax.persistence.*;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @EqualsAndHashCode(callSuper = false)
 @Data
@@ -123,4 +124,7 @@ public class OrderInfo extends BaseEntity {
 
     private Boolean enabled;
 
+//    @OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
+//    @JoinColumn(name = "orderId")
+//    List<OrderGoodsSpec> orderGoodsSpecs;
 }

+ 1 - 0
src/main/java/com/izouma/dingdong/enums/OrderStatus.java

@@ -4,6 +4,7 @@ public enum OrderStatus {
 
     UNPAID("未支付"),
     PAID("已支付"),
+    RATED("待评价"),
     CANCELLED("已取消"),
     PENDING("申请退款中"),
     REFUNDED("已退款"),

+ 2 - 1
src/main/java/com/izouma/dingdong/service/AppraisalService.java

@@ -32,9 +32,10 @@ public class AppraisalService {
     public Appraisal userAppraisal(Appraisal appraisal) {
 
         OrderInfo order = appraisal.getOrder();
-        if (OrderStatus.COMPLETED.equals(order.getStatus())) {
+        if (OrderStatus.RATED.equals(order.getStatus())) {
 
             order.setRated(true);
+            order.setStatus(OrderStatus.COMPLETED);
             orderInfoRepo.save(order);
 
             appraisal.setMerchantId(order.getMerchantId());

+ 13 - 9
src/main/java/com/izouma/dingdong/service/OrderGoodsSpecService.java

@@ -113,15 +113,19 @@ public class OrderGoodsSpecService {
                 }
             }
         }
-        return orderGoodsSpecRepo.save(
-                OrderGoodsSpec.builder()
-                        .goodsId(goodsId)
-                        .specification(specName.toString())
-                        //.specificationId(ids)
-                        .num(num)
-                        .goodsPrice(total)
-                        .goodsRealPrice(real)
-                        .build());
+        OrderGoodsSpec save = OrderGoodsSpec.builder()
+                .goodsId(goodsId)
+                //.specificationId(ids)
+                .num(num)
+                .goodsPrice(total)
+                .goodsRealPrice(real)
+                .build();
+
+        if (StrUtil.isNotBlank(specName)) {
+            save.setSpecification(specName.toString());
+        }
+
+        return orderGoodsSpecRepo.save(save);
     }
 
 

+ 1 - 1
src/main/java/com/izouma/dingdong/service/OrderInfoService.java

@@ -256,7 +256,7 @@ public class OrderInfoService {
                     case MEAL_DELIVERY:
                         orderInfo.setRiderStatus(RiderStatus.CARRY_OUT);
                         orderInfo.setUserReceivedTime(LocalDateTime.now());
-                        orderInfo.setStatus(OrderStatus.COMPLETED);
+                        orderInfo.setStatus(OrderStatus.RATED);
                         //添加销量数据
                         salesService.addSale(orderInfo);
 

+ 6 - 1
src/main/java/com/izouma/dingdong/service/user/ShoppingCartService.java

@@ -66,7 +66,12 @@ public class ShoppingCartService {
         BigDecimal sub = orderGoodsSpec.getGoodsPrice().subtract(orderGoodsSpec.getGoodsRealPrice()).multiply(BigDecimal.valueOf(orderGoodsSpec.getNum()));
 
         //包装费
-        BigDecimal packingPrice = goods.getPackingPrice().multiply(BigDecimal.valueOf(orderGoodsSpec.getNum()));
+
+        BigDecimal packingPrice = BigDecimal.ZERO;
+
+        if (ObjectUtil.isNotNull(goods.getPackingPrice())) {
+            packingPrice = goods.getPackingPrice().multiply(BigDecimal.valueOf(orderGoodsSpec.getNum()));
+        }
 
         if (ObjectUtil.isNull(shoppingCart)) {
             shoppingCart = ShoppingCart.builder()

+ 18 - 2
src/main/vue/src/views/OrderInfoList.vue

@@ -62,12 +62,13 @@
                     <el-tag :type="row.cancel?'':'info'">{{row.cancel}}</el-tag>
                 </template>
             </el-table-column>
-            <el-table-column prop="rated" label="已评价"
+<!--            <el-table-column prop="rated" label="已评价"
             >
                 <template slot-scope="{row}">
                     <el-tag :type="row.rated?'':'info'">{{row.rated}}</el-tag>
                 </template>
-            </el-table-column>
+            </el-table-column>-->
+            <el-table-column prop="status" label="状态" :formatter="statusFormatter"></el-table-column>
             <el-table-column prop="orderTime" label="下单时间"
                              :formatter="datetimeFormatter"
             >
@@ -137,6 +138,14 @@
                 search: "",
                 url: "/orderInfo/all",
                 downloading: false,
+                statusOptions:[{"label": "未支付", "value": "UNPAID"},
+                    { "label": "已支付","value": "PAID"},
+                    { "label": "待评价","value": "RATED"},
+                    { "label": "已取消","value": "CANCELLED"},
+                    { "label": "申请退款中","value": "PENDING"},
+                    {"label": "已退款", "value": "REFUNDED"},
+                    {"label": "已完成", "value": "COMPLETED"}],
+
                 merchantStatusOptions:[{"label": "接单", "value": "RECEIVED"}, {
                     "label": "未接单",
                     "value": "NOT_RECEIVED"
@@ -159,6 +168,13 @@
             }
         },
         methods: {
+            statusFormatter(row, column, cellValue, index) {
+                let selectedOption = this.statusOptions.find(i => i.value === cellValue);
+                if (selectedOption) {
+                    return selectedOption.label;
+                }
+                return '';
+            },
             merchantStatusFormatter(row, column, cellValue, index) {
                 let selectedOption = this.merchantStatusOptions.find(i => i.value === cellValue);
                 if (selectedOption) {