licailing 5 лет назад
Родитель
Сommit
0714dae355

+ 42 - 0
src/main/java/com/izouma/dingdong/dto/MerchantClassificationDTO.java

@@ -0,0 +1,42 @@
+package com.izouma.dingdong.dto;
+
+import com.izouma.dingdong.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+import java.util.Set;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@ApiModel(value = "商家自定义分类")
+public class MerchantClassificationDTO implements Serializable {
+    @ApiModelProperty(value = "名称", name = "name")
+    @Column(length = 50)
+    @Size(max = 50)
+    private String name;
+
+    @ApiModelProperty(value = "排序", name = "sort")
+    private Integer sort;
+
+    @ApiModelProperty(value = "商户ID", name = "merchantId")
+    private Long merchantId;
+
+
+    @ApiModelProperty(value = "商品列表", name = "goodsList")
+    private Set<String> goodsIds;
+
+
+    @ApiModelProperty(value = "是否开启", name = "isOpen")
+    private Boolean isOpen;
+
+}

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

@@ -1,10 +1,12 @@
 package com.izouma.dingdong.service;
 package com.izouma.dingdong.service;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
+import com.izouma.dingdong.converter.StringArrayConverter;
 import com.izouma.dingdong.domain.OrderGoodsSpec;
 import com.izouma.dingdong.domain.OrderGoodsSpec;
 import com.izouma.dingdong.domain.OrderInfo;
 import com.izouma.dingdong.domain.OrderInfo;
 import com.izouma.dingdong.domain.merchant.Goods;
 import com.izouma.dingdong.domain.merchant.Goods;
 import com.izouma.dingdong.domain.merchant.Merchant;
 import com.izouma.dingdong.domain.merchant.Merchant;
+import com.izouma.dingdong.domain.merchant.MerchantSettings;
 import com.izouma.dingdong.domain.user.Coupon;
 import com.izouma.dingdong.domain.user.Coupon;
 import com.izouma.dingdong.dto.GoodsSpecDTO;
 import com.izouma.dingdong.dto.GoodsSpecDTO;
 import com.izouma.dingdong.dto.UserOrderDTO;
 import com.izouma.dingdong.dto.UserOrderDTO;
@@ -15,6 +17,7 @@ import com.izouma.dingdong.repo.OrderGoodsSpecRepo;
 import com.izouma.dingdong.repo.OrderInfoRepo;
 import com.izouma.dingdong.repo.OrderInfoRepo;
 import com.izouma.dingdong.repo.merchant.GoodsRepo;
 import com.izouma.dingdong.repo.merchant.GoodsRepo;
 import com.izouma.dingdong.repo.merchant.MerchantRepo;
 import com.izouma.dingdong.repo.merchant.MerchantRepo;
+import com.izouma.dingdong.repo.merchant.MerchantSettingsRepo;
 import com.izouma.dingdong.repo.user.CouponRepo;
 import com.izouma.dingdong.repo.user.CouponRepo;
 import com.izouma.dingdong.service.merchant.GoodsService;
 import com.izouma.dingdong.service.merchant.GoodsService;
 import com.izouma.dingdong.service.merchant.MerchantSettingsService;
 import com.izouma.dingdong.service.merchant.MerchantSettingsService;
@@ -22,7 +25,10 @@ import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.util.List;
 import java.util.List;
 import java.util.Objects;
 import java.util.Objects;
 
 
@@ -36,6 +42,7 @@ public class OrderInfoService {
     private GoodsRepo goodsRepo;
     private GoodsRepo goodsRepo;
     private GoodsService goodsService;
     private GoodsService goodsService;
     private MerchantRepo merchantRepo;
     private MerchantRepo merchantRepo;
+    private MerchantSettingsRepo merchantSettingsRepo;
     private MerchantSettingsService merchantSettingsService;
     private MerchantSettingsService merchantSettingsService;
 
 
     /*
     /*
@@ -44,11 +51,25 @@ public class OrderInfoService {
     public void userOrder(UserOrderDTO userOrderDTO) {
     public void userOrder(UserOrderDTO userOrderDTO) {
         //商家
         //商家
         Merchant merchant = merchantRepo.findById(userOrderDTO.getMerchantId()).orElseThrow(new BusinessException("无商家"));
         Merchant merchant = merchantRepo.findById(userOrderDTO.getMerchantId()).orElseThrow(new BusinessException("无商家"));
+        MerchantSettings merchantSettings = merchantSettingsRepo.findByMerchantId(userOrderDTO.getMerchantId()).orElseThrow(new BusinessException("无商家"));
+
+        LocalTime startTime = merchantSettings.getStartTime();
+        LocalTime endTime = merchantSettings.getEndTime();
+
+        LocalDateTime now = LocalDateTime.now();
+        LocalTime nowTime = LocalTime.now();
+
+        //是否营业时间内
+        if (startTime.compareTo(nowTime) >= 0 || endTime.compareTo(nowTime) <= 0) {
+            throw new BusinessException("非营业时间");
+        }
+
 
 
         OrderInfo orderInfo = new OrderInfo();
         OrderInfo orderInfo = new OrderInfo();
         BeanUtil.copyProperties(userOrderDTO, orderInfo);
         BeanUtil.copyProperties(userOrderDTO, orderInfo);
         orderInfo.setMerchantStatus(MerchantStatus.NOT_RECEIVED);
         orderInfo.setMerchantStatus(MerchantStatus.NOT_RECEIVED);
         orderInfo.setCancel(false);
         orderInfo.setCancel(false);
+        orderInfo.setOrderTime(now);
         orderInfoRepo.save(orderInfo);
         orderInfoRepo.save(orderInfo);
 
 
         //详细商品信息
         //详细商品信息
@@ -56,6 +77,11 @@ public class OrderInfoService {
                     //查库存是否足够
                     //查库存是否足够
                     Goods goods = goodsService.buy(goodsSpecDTO.getGoodsId(), goodsSpecDTO.getNum());
                     Goods goods = goodsService.buy(goodsSpecDTO.getGoodsId(), goodsSpecDTO.getNum());
 
 
+                    //商品销售时间内
+                    if (goods.getStartTime().compareTo(nowTime) >= 0 || goods.getEndTime().compareTo(nowTime) <= 0) {
+                        throw new BusinessException("非营业时间");
+                    }
+
                     //保存规格
                     //保存规格
                     orderGoodsSpecRepo.save(OrderGoodsSpec.builder()
                     orderGoodsSpecRepo.save(OrderGoodsSpec.builder()
                             .goodsId(goodsSpecDTO.getGoodsId())
                             .goodsId(goodsSpecDTO.getGoodsId())
@@ -105,7 +131,7 @@ public class OrderInfoService {
         OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
         OrderInfo orderInfo = orderInfoRepo.findById(orderId).orElseThrow(new BusinessException("无订单"));
         if (pass) {
         if (pass) {
             orderInfo.setMerchantStatus(MerchantStatus.RECEIVED);
             orderInfo.setMerchantStatus(MerchantStatus.RECEIVED);
-        }else {
+        } else {
             orderInfo.setMerchantStatus(MerchantStatus.REJECTED);
             orderInfo.setMerchantStatus(MerchantStatus.REJECTED);
             orderInfo.setCancel(true);
             orderInfo.setCancel(true);
             //退款流程
             //退款流程
@@ -113,5 +139,19 @@ public class OrderInfoService {
         return orderInfoRepo.save(orderInfo);
         return orderInfoRepo.save(orderInfo);
     }
     }
 
 
+    /*
+    周几
+     */
+    public Boolean week(LocalDate localDate, String week) {
+        DayOfWeek dayOfWeek = localDate.getDayOfWeek();
+
+        List<String> strings = new StringArrayConverter().convertToEntityAttribute(week);
+        if (strings.contains("EVERY")) {
+            return true;
+        }
+        return strings.contains(dayOfWeek);
+
+    }
+
 
 
 }
 }

+ 30 - 2
src/main/java/com/izouma/dingdong/service/merchant/MerchantClassificationService.java

@@ -59,10 +59,38 @@ public class MerchantClassificationService {
         return goods;
         return goods;
     }
     }
 
 
-    /*
-    分类下添加商品
+    /**
+     * 分类下添加商品
+     * @param classificationId 分类Id
+     * @param string 拼接好的goodsId字符串
+     * @return 分类
      */
      */
+    public MerchantClassification saveGoods(Long classificationId, String string) {
+        //查找分类
+        MerchantClassification merchantClassification = merchantClassificationRepo.findById(classificationId).orElseThrow(new BusinessException("无分类"));
+/*        //转成String
+        StringArrayConverter converter = new StringArrayConverter();
+        String string = converter.convertToDatabaseColumn(goodId);*/
+
+        String goodsIds = merchantClassification.getGoodsIds();
+
+        //保存
+        merchantClassification.setGoodsIds(goodsIds + "," + string);
+        return merchantClassificationRepo.save(merchantClassification);
+    }
 
 
+    /*
+    分类下删除商品
+     */
+    public void delGoods(Long classificationId, Long goodId) {
+        //查找分类
+        MerchantClassification merchantClassification = merchantClassificationRepo.findById(classificationId).orElseThrow(new BusinessException("无分类"));
+        //替换
+        String replaceAll = merchantClassification.getGoodsIds().replaceAll(",|''" + goodId.toString() + "''|,", "");
+        //保存
+        merchantClassification.setGoodsIds(replaceAll);
+        merchantClassificationRepo.save(merchantClassification);
+    }
 
 
 
 
 }
 }

+ 8 - 0
src/main/java/com/izouma/dingdong/service/merchant/MerchantService.java

@@ -40,6 +40,14 @@ public class MerchantService {
 
 
     private MerchantClassificationRepo merchantClassificationRepo;
     private MerchantClassificationRepo merchantClassificationRepo;
 
 
+
+    /*
+    创建User
+     */
+    public User reg(){
+        return null;
+    }
+
     /*
     /*
     商户注册申请
     商户注册申请
      */
      */

+ 2 - 0
src/main/java/com/izouma/dingdong/web/merchant/FullReductionController.java

@@ -12,6 +12,7 @@ import com.izouma.dingdong.repo.merchant.FullReductionRepo;
 import com.izouma.dingdong.utils.ObjUtils;
 import com.izouma.dingdong.utils.ObjUtils;
 import com.izouma.dingdong.utils.excel.ExcelUtils;
 import com.izouma.dingdong.utils.excel.ExcelUtils;
 
 
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -69,6 +70,7 @@ public class FullReductionController extends BaseController {
     }
     }
 
 
     @GetMapping("/my")
     @GetMapping("/my")
+    @ApiOperation("商户下的满减")
     public List<FullReduction> my(){
     public List<FullReduction> my(){
         return fullReductionRepo.findAllByMerchantId(merchantService.findMerchantId(SecurityUtils.getAuthenticatedUser().getId()));
         return fullReductionRepo.findAllByMerchantId(merchantService.findMerchantId(SecurityUtils.getAuthenticatedUser().getId()));
     }
     }

+ 12 - 0
src/main/java/com/izouma/dingdong/web/merchant/MerchantClassificationController.java

@@ -77,6 +77,18 @@ public class MerchantClassificationController extends BaseController {
         return merchantClassifications;
         return merchantClassifications;
     }
     }
 
 
+    @GetMapping("/saveGoods")
+    @ApiOperation("分类下添加商品")
+    public MerchantClassification saveGoods(Long classificationId, String string) {
+        return merchantClassificationService.saveGoods(classificationId, string);
+    }
+
+    @GetMapping("/delGoods")
+    @ApiOperation("分类下删除商品")
+    public void delGoods(Long classificationId, Long goodId) {
+        merchantClassificationService.delGoods(classificationId, goodId);
+    }
+
 
 
 }
 }