licailing 5 лет назад
Родитель
Сommit
99d0679593

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

@@ -37,7 +37,7 @@ public class OrderGoodsSpec extends BaseEntity implements Serializable {
 
 //    private String goodsName;
 
-   // private String specificationId;
+    // private String specificationId;
 
 //    @Convert(converter = LongArrayConverter.class)
 //    private List<Long> specificationId;
@@ -59,6 +59,7 @@ public class OrderGoodsSpec extends BaseEntity implements Serializable {
     @NotFound(action = NotFoundAction.IGNORE)
     private Goods goods;
 
+    @Builder.Default
     @Column(nullable = false)
     private Boolean enabled = true;
 

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

@@ -143,6 +143,7 @@ public class OrderInfo extends BaseEntity {
     @JoinColumn(name = "merchantId", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
     private MerchantSettings merchantSettings;*/
 
+    @Enumerated(EnumType.STRING)
     @ApiModelProperty(value = "取消订单原因", name = "reason")
     private RefundReason reason;
 

+ 1 - 0
src/main/java/com/izouma/dingdong/domain/merchant/GoodsSpecification.java

@@ -37,6 +37,7 @@ public class GoodsSpecification extends BaseEntity implements Serializable {
 
     private Long parent;
 
+    @ApiModelProperty(value = "可多选", name = "multiple")
     private Boolean multiple;
 
     @OneToMany

+ 7 - 1
src/main/java/com/izouma/dingdong/domain/merchant/Merchant.java

@@ -11,6 +11,7 @@ import lombok.*;
 import org.hibernate.annotations.Where;
 
 import javax.persistence.*;
+import javax.validation.constraints.Size;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
@@ -96,9 +97,14 @@ public class Merchant extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "经度", name = "longitude")
     private Double longitude;
 
-    @ApiModelProperty(value = "纬度",name = "latitude")
+    @ApiModelProperty(value = "纬度", name = "latitude")
     private Double latitude;
 
+    @Size(max = 15)
+    @Column(length = 15)
+    @ApiModelProperty(value = "推广语", name = "promo")
+    private String promo;
+
 /*    @ApiModelProperty(value = "实名信息ID",name = "verifiedId")
     private Long verifiedId;
 

+ 3 - 2
src/main/java/com/izouma/dingdong/domain/user/ShoppingCart.java

@@ -59,14 +59,15 @@ public class ShoppingCart extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "红包", name = "redBag")
     private BigDecimal redBag;
 
-    @ApiModelProperty(value = "新用户", name = "newUser")
-    private BigDecimal newUser;
+//    @ApiModelProperty(value = "新用户", name = "newUser")
+//    private BigDecimal newUser;
 
     private BigDecimal goodsTotal;
 
     @ApiModelProperty(value = "实付金额", name = "realAmount")
     private BigDecimal realAmount;
 
+    @Builder.Default
     @Column(nullable = false)
     private Boolean enabled = true;
 

+ 6 - 0
src/main/java/com/izouma/dingdong/repo/merchant/GoodsRepo.java

@@ -36,4 +36,10 @@ public interface GoodsRepo extends JpaRepository<Goods, Long>, JpaSpecificationE
 
     @Query(nativeQuery = true, value = "SELECT ifnull(max(sort + 1),1) FROM menu")
     int nextSort();
+
+    //按商户id删除所有商品
+    @Query("update Goods t set t.enabled = false where t.merchantId = ?1")
+    @Modifying
+    @Transactional
+    void deleteAllByMerchantId(Long merchantId);
 }

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

@@ -11,6 +11,7 @@ import com.izouma.dingdong.exception.BusinessException;
 import com.izouma.dingdong.repo.OrderGoodsSpecRepo;
 import com.izouma.dingdong.repo.merchant.GoodsRepo;
 import com.izouma.dingdong.repo.merchant.GoodsSpecificationRepo;
+import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -47,6 +48,9 @@ public class OrderGoodsSpecService {
             for (Long l : longs) {
                 GoodsSpecification spec = goodsSpecificationRepo.findById(l).orElseThrow(new BusinessException("无规格"));
 
+                if (!spec.getGoodsId().equals(goodsId)){
+                    throw new BusinessException("不是此商品下规格");
+                }
                 if (ObjectUtil.isEmpty(spec.getParent())) {
                     throw new BusinessException("选择规格分类下的规格商品");
                 } else {
@@ -92,7 +96,6 @@ public class OrderGoodsSpecService {
         if (StrUtil.isNotBlank(specName)) {
             save.setSpecification(specName.toString());
         }
-
         return orderGoodsSpecRepo.save(save);
     }
 

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

@@ -219,9 +219,10 @@ public class OrderInfoService {
         } else {
             orderInfo.setMerchantStatus(MerchantStatus.REJECTED);
             orderInfo.setCancel(true);
+            orderInfo.setStatus(OrderStatus.CANCELLED);
             orderInfo.setReason(RefundReason.MERCHANT_REJECTION);
             //退款流程
-            OrderRefundApply apply = orderRefundApplyService.apply(orderId, RefundReason.MERCHANT_REJECTION, null);
+            OrderRefundApply apply = orderRefundApplyService.apply(orderId, RefundReason.MERCHANT_REJECTION, "商家拒单退款");
             orderRefundApplyService.audit(apply.getId(), true, false);
         }
         return orderInfoRepo.save(orderInfo);

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

@@ -205,6 +205,7 @@ public class OrderRefundApplyService {
             apply.setPlatformAgree(false);
             //原状态
             apply.getOrderInfo().setStatus(status);
+            apply.getOrderInfo().setCancel(false);
         }
 
         orderInfoRepo.save(apply.getOrderInfo());

+ 3 - 1
src/main/java/com/izouma/dingdong/service/merchant/MerchantService.java

@@ -203,7 +203,7 @@ public class MerchantService {
      * @param merchantId 商户ID
      * @param pass       是否过审
      */
-    public void audit(Long merchantId, Boolean pass) {
+    public void audit(Long merchantId, Boolean pass, String promo) {
         Merchant merchant = merchantRepo.findById(merchantId).orElseThrow(new BusinessException("商户不存在"));
 
         if (pass) {
@@ -211,6 +211,8 @@ public class MerchantService {
             merchant.setIsPass(true);
             merchant.setEstablishTime(LocalDateTime.now());
 
+            merchant.setPromo(promo);
+
             //审核通过后无法修改实名信息
             Verified verified = verifiedRepo.findByUserId(merchant.getUserId());
             if (verified == null) {

+ 22 - 0
src/main/java/com/izouma/dingdong/service/merchant/MerchantSettingsService.java

@@ -20,6 +20,7 @@ import com.izouma.dingdong.repo.backstage.BannerRepo;
 import com.izouma.dingdong.repo.backstage.CategoryRepo;
 import com.izouma.dingdong.repo.backstage.PromoteRepo;
 import com.izouma.dingdong.repo.backstage.TimeTagRepo;
+import com.izouma.dingdong.repo.merchant.GoodsRepo;
 import com.izouma.dingdong.repo.merchant.MerchantRepo;
 import com.izouma.dingdong.repo.merchant.MerchantSettingsRepo;
 import lombok.AllArgsConstructor;
@@ -46,6 +47,7 @@ public class MerchantSettingsService {
     private BannerRepo bannerRepo;
     private CategoryRepo categoryRepo;
     private PromoteRepo promoteRepo;
+    private GoodsRepo goodsRepo;
 
     /*
     显示所有订单
@@ -173,4 +175,24 @@ public class MerchantSettingsService {
         return total.divide(BigDecimal.valueOf(collect.size()),2);
     }
 
+
+    /*
+    删除商家
+     */
+    public void del(Long merchantId){
+        //删除商户
+        merchantRepo.deleteById(merchantId);
+        merchantSettingsRepo.deleteByMerchantId(merchantId);
+
+        //删除商品
+        goodsRepo.deleteAllByMerchantId(merchantId);
+
+        //删除订单
+
+        //删除评价
+
+        //删除
+
+    }
+
 }

+ 9 - 3
src/main/java/com/izouma/dingdong/service/user/ShoppingCartService.java

@@ -82,6 +82,8 @@ public class ShoppingCartService {
                     .orderGoodsSpecs(specs)
                     .packingPrice(packingPrice)
                     .fullReduction(BigDecimal.ZERO)
+                    .firstBuy(merchant.getFirstOrder())
+                    .enabled(true)
                     .build();
         } else {
             //商品总价(原价)
@@ -104,11 +106,11 @@ public class ShoppingCartService {
         } else {
             //首单
             if (CollUtil.isEmpty(userOrdersMerchant)) {
-                shoppingCart.setNewUser(BigDecimal.ZERO);
+                //shoppingCart.setNewUser(BigDecimal.ZERO);
                 shoppingCart.setFirstBuy(merchant.getFirstOrder());
             } else {
                 //非首单设置为0
-                shoppingCart.setNewUser(BigDecimal.ZERO);
+                //shoppingCart.setNewUser(BigDecimal.ZERO);
                 shoppingCart.setFirstBuy(BigDecimal.ZERO);
             }
         }
@@ -140,7 +142,11 @@ public class ShoppingCartService {
         BigDecimal total = shoppingCart.getGoodsTotal().add(shoppingCart.getDeliveryAmount()).add(shoppingCart.getPackingPrice());
 
         //需要减去的金额=首单+新用户+折扣/满减
-        BigDecimal sub2 = shoppingCart.getFirstBuy().add(shoppingCart.getNewUser()).add(shoppingCart.getReducedAmount());
+        BigDecimal sub2 = shoppingCart.getReducedAmount();
+        if (ObjectUtil.isNotNull(shoppingCart.getFirstBuy())) {
+            sub2 = sub2.add(shoppingCart.getFirstBuy());
+        }
+
         //总价-首单-新用户-满减
         BigDecimal real = total.subtract(sub2);
 

+ 3 - 2
src/main/java/com/izouma/dingdong/web/merchant/MerchantController.java

@@ -59,6 +59,7 @@ public class MerchantController extends BaseController {
 
     @PostMapping("/del/{id}")
     public void del(@PathVariable Long id) {
+
         merchantRepo.deleteById(id);
         merchantSettingsRepo.deleteByMerchantId(id);
     }
@@ -96,8 +97,8 @@ public class MerchantController extends BaseController {
 
     @GetMapping("/audit")
     @ApiOperation("审核商家")
-    public void audit(Long id, Boolean pass) {
-        merchantService.audit(id, pass);
+    public void audit(Long id, Boolean pass, String promo) {
+        merchantService.audit(id, pass, promo);
     }
 
     @GetMapping("/closeMer")

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

@@ -56,12 +56,12 @@
                              :formatter="payMethodFormatter"
             >
             </el-table-column>
-            <el-table-column prop="cancel" label="取消订单"
+<!--            <el-table-column prop="cancel" label="取消订单"
             >
                 <template slot-scope="{row}">
                     <el-tag :type="row.cancel?'':'info'">{{row.cancel}}</el-tag>
                 </template>
-            </el-table-column>
+            </el-table-column>-->
 <!--            <el-table-column prop="rated" label="已评价"
             >
                 <template slot-scope="{row}">

+ 33 - 3
src/main/vue/src/views/merchant/MerchantList.vue

@@ -425,7 +425,7 @@
                 this.$message('操作2');
             },
             deleteRow(row) {
-                this.$alert('删除将无法恢复,确认要删除么?', '警告', {type: 'error'}).then(() => {
+                this.$alert('删除将无法恢复,商家的所有相关信息以及订单都会被删除,确认要删除么?', '警告', {type: 'error'}).then(() => {
                     return this.$http.post(`/merchant/del/${row.mid}`)
                 }).then(() => {
                     this.$message.success('删除成功');
@@ -439,7 +439,37 @@
                 })
             },
             audit(row, pass) {
-                this.$set(row, 'loading', true);
+                this.$prompt('请输入推广语(最多15字)', '提示', {
+                    inputType: 'textarea'
+                })
+                    .then(res => {
+                        // console.log(res);
+                        if (res.value) {
+                            this.$alert('确定通过?', '提示', {
+                                showCancelButton: true
+                            })
+                                .then(() => {
+                                    return this.$http
+                                        .get('/merchant/audit', {
+                                            id: row.mid,
+                                            pass: pass,
+                                            promo: res.value
+                                        })
+                                })
+                                .then(res => {
+                                    this.$message.success('成功');
+                                    this.$router.go(-1);
+                                })
+                                .catch(() => {
+                                    this.$message.error(res.error || '失败');
+                                });
+                        }
+                    })
+                    .catch(() => {
+                    });
+
+
+                /*this.$set(row, 'loading', true);
                 this.$http
                     .get('/merchant/audit', {
                         id: row.mid,
@@ -454,7 +484,7 @@
                         console.log(e);
                         this.$set(row, 'loading', false);
                         this.$message.error(e.error);
-                    });
+                    });*/
             },
             moveRow() {
                 this.$prompt('请输入理由', '提示', {

+ 7 - 5
src/test/java/com/izouma/dingdong/contorller/OrderInfoControllerTest.java

@@ -32,13 +32,10 @@ public class OrderInfoControllerTest {
     private CategoryController categoryController;
     @Autowired
     private GoodsController goodsController;
-
     @Autowired
     private MerchantRepo merchantRepo;
-
     @Autowired
-    private OrderInfoService service;
-
+    private OrderInfoService orderInfoService;
     @Autowired
     private MerchantNatureRepo merchantNatureRepo;
 
@@ -107,6 +104,11 @@ public class OrderInfoControllerTest {
 
     @Test
     public void testMy(){
-        System.out.println(service.my(162L));
+        System.out.println(orderInfoService.my(162L));
+    }
+
+    @Test
+    public void testBuy(){
+
     }
 }

+ 33 - 0
src/test/java/com/izouma/dingdong/service/ShoppingCartServiceTest.java

@@ -0,0 +1,33 @@
+package com.izouma.dingdong.service;
+
+import com.izouma.dingdong.domain.OrderGoodsSpec;
+import com.izouma.dingdong.repo.OrderGoodsSpecRepo;
+import com.izouma.dingdong.service.user.ShoppingCartService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@SpringBootTest
+@RunWith(SpringRunner.class)
+public class ShoppingCartServiceTest {
+
+    @Autowired
+    private ShoppingCartService shoppingCartService;
+
+    @Autowired
+    private OrderGoodsSpecService orderGoodsSpecService;
+
+    @Autowired
+    private OrderGoodsSpecRepo orderGoodsSpecRepo;
+
+    @Test
+    public void testCart(){
+        OrderGoodsSpec add = orderGoodsSpecService.add(988L, "995", 1);
+
+       // OrderGoodsSpec add = orderGoodsSpecRepo.findById(1318L).orElse(null);
+
+        System.out.println(shoppingCartService.save(83L, add));
+    }
+}