Browse Source

优惠券+注册

licailing 5 years ago
parent
commit
30de313cca

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

@@ -59,8 +59,8 @@ public class Coupon extends BaseEntity implements Serializable {
 //    @Convert(converter = LongArrayConverter.class)
 //    private Set<Long> categoryIds = new HashSet<>();
 
-//    @ApiModelProperty(value = "是否过期", name = "isExpired")
-//    private Boolean isExpired;
+    @ApiModelProperty(value = "是否过期", name = "isExpired")
+    private Boolean isExpired;
 
     @Column(nullable = false)
     private Boolean enabled = true;

+ 2 - 7
src/main/java/com/izouma/dingdong/domain/merchant/MerchantSettings.java

@@ -34,12 +34,6 @@ public class MerchantSettings extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "商户ID", name = "merchantId")
     private Long merchantId;
 
-/*    @ApiModelProperty(value = "logo", name = "logo")
-    private String logo;
-
-    @ApiModelProperty(value = "商户地址", name = "address")
-    private String address;*/
-
     @ApiModelProperty(value = "图片", name = "img")
     private String img;
 
@@ -122,5 +116,6 @@ public class MerchantSettings extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "门头图片", name = "doorHeadImg")
     private String doorHeadImg;
 
-
+    @ApiModelProperty(value = "购买口碑联盟", name = "buyAlliance")
+    private Boolean buyAlliance = false;
 }

+ 2 - 4
src/main/java/com/izouma/dingdong/repo/CouponRepo.java

@@ -1,14 +1,11 @@
 package com.izouma.dingdong.repo;
 
 import com.izouma.dingdong.domain.Coupon;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.Pageable;
-import org.springframework.data.jpa.domain.Specification;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.lang.Nullable;
+
 
 import javax.transaction.Transactional;
 import java.util.List;
@@ -22,4 +19,5 @@ public interface CouponRepo extends JpaRepository<Coupon, Long>, JpaSpecificatio
     List<Coupon> findAllByMerchantIdAndEnabledTrue(Long merchantId);
 
     List<Coupon> findAllByMerchantIdNullAndEnabledTrue();
+
 }

+ 1 - 0
src/main/java/com/izouma/dingdong/repo/merchant/SalesRepo.java

@@ -22,4 +22,5 @@ public interface SalesRepo extends JpaRepository<Sales, Long>, JpaSpecificationE
 
     //人气商品
     List<Sales> findAllByDayAndPraiseGreaterThanEqual(LocalDate day, Integer num);
+
 }

+ 17 - 0
src/main/java/com/izouma/dingdong/service/CouponService.java

@@ -1,13 +1,30 @@
 package com.izouma.dingdong.service;
 
+import com.izouma.dingdong.domain.Coupon;
 import com.izouma.dingdong.repo.CouponRepo;
+import com.izouma.dingdong.service.merchant.MerchantService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDate;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
 @Service
 @AllArgsConstructor
 public class CouponService {
 
     private CouponRepo couponRepo;
+    private MerchantService merchantService;
+
+    public List<Coupon> my(Long userId,Boolean isAll) {
+        Long merchantId = merchantService.findMerchantId(userId);
+        List<Coupon> coupons = couponRepo.findAllByMerchantIdAndEnabledTrue(merchantId);
+        if (isAll) {
+            return coupons;
+        }
+        return coupons.stream().filter(c -> !c.getEndDate().isBefore(LocalDate.now())).collect(Collectors.toList());
+    }
 
 }

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

@@ -58,6 +58,7 @@ public class UserService {
                     .authorities(Collections.singleton(Authority.getInstance(Authority.NAMES.ROLE_USER)))
                     .identity(identity)
                     .money(BigDecimal.ZERO)
+                    .enabled(true)
                     .build();
         } else {
             user.setPassword(new BCryptPasswordEncoder().encode(password));
@@ -81,8 +82,10 @@ public class UserService {
                     .enabled(true)
                     .money(BigDecimal.ZERO)
                     .build();
+            user = userRepo.save(user);
+
         }
-        return userRepo.save(user);
+        return user;
     }
 
     public User loginByPhone(String phone) {

+ 30 - 8
src/main/java/com/izouma/dingdong/service/merchant/MerchantSettingsService.java

@@ -38,21 +38,13 @@ import java.util.stream.Collectors;
 public class MerchantSettingsService {
 
     private MerchantSettingsRepo merchantSettingsRepo;
-
     private OrderInfoRepo orderInfoRepo;
-
     private TimeTagRepo timeTagRepo;
-
     private MerchantRepo merchantRepo;
-
     private UserRepo userRepo;
-
     private MoneyRecordRepo moneyRecordRepo;
-
     private BannerRepo bannerRepo;
-
     private CategoryRepo categoryRepo;
-
     private PromoteRepo promoteRepo;
 
     /*
@@ -151,4 +143,34 @@ public class MerchantSettingsService {
         return null;
     }
 
+    /*
+    明星商家
+     */
+    public boolean starMerchant(Merchant merchant) {
+        //非新商家
+        boolean b = merchant.getEstablishTime().isAfter(LocalDateTime.now().minusMonths(1));
+        if (b) {
+            return merchant.getMonthSales() >= 10000 && merchant.getBadNum() > 0 && merchant.getGoodNum() > 3000;
+        }
+        return false;
+
+    }
+
+    /*
+    人均消费 进一个月
+     */
+    public BigDecimal consumption(Merchant merchant) {
+        List<OrderInfo> orders = orderInfoRepo.findAllByMerchantId(merchant.getId());
+        List<BigDecimal> collect = orders.stream().map(o ->
+                o.getRealAmount().subtract(o.getDeliveryAmount())
+        ).collect(Collectors.toList());
+
+        BigDecimal total = BigDecimal.ZERO;
+        for (BigDecimal c : collect) {
+            total = total.add(c);
+        }
+
+        return total.divide(BigDecimal.valueOf(collect.size()),2);
+    }
+
 }

+ 4 - 0
src/main/java/com/izouma/dingdong/service/merchant/SalesService.java

@@ -4,6 +4,7 @@ import com.izouma.dingdong.config.Constants;
 import com.izouma.dingdong.domain.Appraisal;
 import com.izouma.dingdong.domain.OrderGoodsSpec;
 import com.izouma.dingdong.domain.OrderInfo;
+import com.izouma.dingdong.domain.merchant.Goods;
 import com.izouma.dingdong.domain.merchant.MerchantClassification;
 import com.izouma.dingdong.domain.merchant.Sales;
 import com.izouma.dingdong.exception.BusinessException;
@@ -197,8 +198,11 @@ public class SalesService {
      */
     public Sales newSales(Long goodsId, LocalDate localDate) {
         Sales daySales = salesRepo.findByGoodsIdAndDay(goodsId, localDate);
+       // Goods goods = goodsRepo.findById(goodsId).orElseThrow(new BusinessException("无商品"));
+
         if (daySales == null) {
             daySales = Sales.builder()
+                 //   .merchantId(goods.getMerchantId())
                     .goodsId(goodsId)
                     .day(localDate)
                     .dayLikes(0)

+ 7 - 7
src/main/java/com/izouma/dingdong/web/CouponController.java

@@ -1,6 +1,5 @@
 package com.izouma.dingdong.web;
 
-import com.izouma.dingdong.service.merchant.MerchantService;
 import com.izouma.dingdong.utils.SecurityUtils;
 import com.izouma.dingdong.domain.Coupon;
 import com.izouma.dingdong.service.CouponService;
@@ -10,6 +9,7 @@ import com.izouma.dingdong.repo.CouponRepo;
 import com.izouma.dingdong.utils.ObjUtils;
 import com.izouma.dingdong.utils.excel.ExcelUtils;
 
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
@@ -26,7 +26,6 @@ import java.util.stream.Collectors;
 public class CouponController extends BaseController {
     private CouponService couponService;
     private CouponRepo couponRepo;
-    private MerchantService merchantService;
 
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
@@ -45,7 +44,7 @@ public class CouponController extends BaseController {
     public Page<Coupon> all(PageQuery pageQuery) {
         //return couponRepo.findAll(toSpecification(pageQuery,Coupon.class),toPageRequest(pageQuery));
         List<Coupon> collect = couponRepo.findAll(toSpecification(pageQuery, Coupon.class)).stream().filter(Coupon::getEnabled).collect(Collectors.toList());
-        return new PageImpl<>(collect,toPageRequest(pageQuery),pageQuery.getSize());
+        return new PageImpl<>(collect, toPageRequest(pageQuery), pageQuery.getSize());
     }
 
     @GetMapping("/get/{id}")
@@ -65,14 +64,15 @@ public class CouponController extends BaseController {
         ExcelUtils.export(response, data);
     }
 
+    ///true所有 false未过期
+    @ApiOperation("是否显示所有")
     @GetMapping("/my")
-    public List<Coupon> my(){
-        Long merchantId = merchantService.findMerchantId(SecurityUtils.getAuthenticatedUser().getId());
-        return couponRepo.findAllByMerchantIdAndEnabledTrue(merchantId);
+    public List<Coupon> my(Boolean isAll) {
+        return couponService.my(SecurityUtils.getAuthenticatedUser().getId(), isAll);
     }
 
     @GetMapping("/platform")
-    public List<Coupon> platform(){
+    public List<Coupon> platform() {
         return couponRepo.findAllByMerchantIdNullAndEnabledTrue();
     }
 }

+ 24 - 23
src/test/java/com/izouma/dingdong/contorller/OrderInfoControllerTest.java

@@ -45,31 +45,32 @@ public class OrderInfoControllerTest {
     //商家注册
     @Test
     public void testMerReg() {
-        Set<Category> categories = new HashSet<>();
-        List<Category> tree = categoryController.tree(137L);
-        //System.out.println(tree);
-        categories.add(tree.get(0));
+//        Set<Category> categories = new HashSet<>();
+//        List<Category> tree = categoryController.tree(137L);
+//        //System.out.println(tree);
+//        categories.add(tree.get(0));
 
         MerchantDTO merchantDTO = MerchantDTO.builder()
-                .name("小爽的店")
-                .showName("小爽的店")
-                .address("中胜路2-1")
-                .aliAccount("131456")
-                .aliName("小爽")
-                .logo("https://idingdong.oss-cn-hangzhou.aliyuncs.com/image/2020-05-14-10-01-57oAziBRXO.jpg")
-                .category(categories)
-                .endTime(LocalTime.parse("16:00:00"))
-                .startTime(LocalTime.parse("14:00:00"))
-                .merchantNatureId(1L)
-                .phone("131456")
-                .password("131456")
-                .automaticOrder(true)
-                .startingAmount(BigDecimal.valueOf(20))
-                .banner("https://idingdong.oss-cn-hangzhou.aliyuncs.com/image/2020-05-14-10-01-57oAziBRXO.jpg")
-                .week("MONDAY,TUESDAY,WEDNESDAY")
-                .doorHeadImg("https://idingdong.oss-cn-hangzhou.aliyuncs.com/image/2020-05-14-10-01-57oAziBRXO.jpg")
-                .introduction("最可爱的小爽开的店")
-                .merchantNatureId(594L)
+                .name("测试的店店店")
+                .showName("测试的店店店")
+                .phone("145111")
+                .password("123")
+                .qualification("https%3A%2F%2Fidingdong.oss-cn-hangzhou.aliyuncs.com%2Fimage%2F2020-06-10-17-11-42qXdpsfqA.png%2Chttps%3A%2F%2Fidingdong.oss-cn-hangzhou.aliyuncs.com%2Fimage%2F2020-06-10-17-11-45pluNBzOF.png")
+                .doorHeadImg("https%3A%2F%2Fidingdong.oss-cn-hangzhou.aliyuncs.com%2Fimage%2F2020-06-10-17-11-52kTVlWTJi.png&img=https%3A%2F%2Fidingdong.oss-cn-hangzhou.aliyuncs.com%2Fimage%2F2020-06-10-17-11-55CJthQhYR.png")
+                .categoryId("139")
+                .address("1")
+                .week("MONDAY%2CTUESDAY%2CWEDNESDAY%2CTHURSDAY%2CFRIDAY%2CSATURDAY%2CSUNDAY")
+                .startTime(LocalTime.parse("08:00:00"))
+                .endTime(LocalTime.parse("23:00:00"))
+                .merchantNatureId(2L)
+                .logo("https%3A%2F%2Fidingdong.oss-cn-hangzhou.aliyuncs.com%2Fimage%2F2020-06-10-17-12-47SkeOftcH.png")
+                //.aliAccount("131456")
+                //.aliName("小爽")
+                //.category(categories)
+               // .automaticOrder(true)
+                //.startingAmount(BigDecimal.valueOf(20))
+                //.banner("https://idingdong.oss-cn-hangzhou.aliyuncs.com/image/2020-05-14-10-01-57oAziBRXO.jpg")
+                //.introduction("最可爱的小爽开的店")
                 .build();
 
         System.out.println(auth.registerMerchant(merchantDTO));