Explorar o código

fix: 针对repo依赖的代码修正

Gudge514 %!s(int64=2) %!d(string=hai) anos
pai
achega
05dc733908

+ 8 - 0
src/main/java/com/seecoder/BlueWhale/exception/BlueWhaleException.java

@@ -50,6 +50,14 @@ public class BlueWhaleException extends RuntimeException{
         return new BlueWhaleException("库存不足!");
     }
 
+    public static BlueWhaleException couponNotExists(){
+        return new BlueWhaleException("优惠券不存在!");
+    }
+
+    public static BlueWhaleException couponGroupNotExists(){
+        return new BlueWhaleException("优惠券组不存在!");
+    }
+
     public static BlueWhaleException fullReductionCouponError(){
         return new BlueWhaleException("满减券设置错误!");
     }

+ 8 - 0
src/main/java/com/seecoder/BlueWhale/service/CouponService.java

@@ -1,5 +1,7 @@
 package com.seecoder.BlueWhale.service;
 
+import com.seecoder.BlueWhale.po.Coupon;
+import com.seecoder.BlueWhale.po.CouponGroup;
 import com.seecoder.BlueWhale.vo.CouponGroupVO;
 import com.seecoder.BlueWhale.vo.CouponVO;
 
@@ -16,4 +18,10 @@ public interface CouponService {
     List<CouponVO> getCoupons();
 
     List<CouponVO> getCouponsWithStoreId(Integer storeId);
+
+    Coupon getCoupon(Integer id);
+
+    CouponGroup getCouponGroup(Integer id);
+
+    Boolean update(CouponVO couponVO);
 }

+ 2 - 0
src/main/java/com/seecoder/BlueWhale/service/OrderService.java

@@ -1,5 +1,6 @@
 package com.seecoder.BlueWhale.service;
 
+import com.seecoder.BlueWhale.po.Order;
 import com.seecoder.BlueWhale.vo.OrderVO;
 
 import java.util.List;
@@ -21,4 +22,5 @@ public interface OrderService {
 
     Double calculate(Integer orderId, Integer couponId);
 
+    List<Order> getByProductIdAndFinishTimeNotNull(Integer storeId);
 }

+ 2 - 0
src/main/java/com/seecoder/BlueWhale/service/ProductService.java

@@ -9,6 +9,8 @@ import com.seecoder.BlueWhale.vo.ProductVO;
 public interface ProductService {
     Boolean create(ProductVO productVO);
 
+    Boolean update(ProductVO productVO);
+
     Boolean addStock(Integer id, Integer number);
 
     List<ProductVO> getAllProducts(Integer storeId);

+ 2 - 0
src/main/java/com/seecoder/BlueWhale/service/StoreService.java

@@ -7,6 +7,8 @@ import com.seecoder.BlueWhale.vo.StoreVO;
 public interface StoreService {
     Boolean create(StoreVO storeVO);
 
+    Boolean update(StoreVO storeVO);
+
     StoreVO getStore(Integer id);
 
     List<StoreVO> getAllStores();

+ 3 - 0
src/main/java/com/seecoder/BlueWhale/service/UserService.java

@@ -1,5 +1,6 @@
 package com.seecoder.BlueWhale.service;
 
+import com.seecoder.BlueWhale.po.User;
 import com.seecoder.BlueWhale.vo.UserVO;
 
 public interface UserService {
@@ -10,4 +11,6 @@ public interface UserService {
     UserVO getInformation();
 
     Boolean updateInformation(UserVO userVO);
+
+    User getUser(Integer id);
 }

+ 33 - 4
src/main/java/com/seecoder/BlueWhale/serviceImpl/CouponServiceImpl.java

@@ -8,8 +8,8 @@ import com.seecoder.BlueWhale.po.CouponGroup;
 import com.seecoder.BlueWhale.po.User;
 import com.seecoder.BlueWhale.repository.CouponGroupRepository;
 import com.seecoder.BlueWhale.repository.CouponRepository;
-import com.seecoder.BlueWhale.repository.StoreRepository;
 import com.seecoder.BlueWhale.service.CouponService;
+import com.seecoder.BlueWhale.service.StoreService;
 import com.seecoder.BlueWhale.util.SecurityUtil;
 import com.seecoder.BlueWhale.vo.CouponGroupVO;
 import com.seecoder.BlueWhale.vo.CouponVO;
@@ -33,7 +33,7 @@ public class CouponServiceImpl implements CouponService {
     SecurityUtil securityUtil;
 
     @Autowired
-    StoreRepository storeRepository;
+    StoreService storeService;
 
     @Override
     public Boolean createCouponGroup(CouponGroupVO couponGroupVO) {
@@ -120,14 +120,43 @@ public class CouponServiceImpl implements CouponService {
         couponVO.setMinus(couponGroup.getMinus());
         couponVO.setStoreId(couponGroup.getStoreId());
         couponVO.setStoreName(couponVO.getStoreId()==0?"商场发放":
-                storeRepository.findById(couponGroup.getStoreId()).get().getName());
+                storeService.getStore(couponGroup.getStoreId()).getName());
         return couponVO;
     }
 
     private CouponGroupVO wrapWithStoreId(CouponGroupVO couponGroupVO){
         couponGroupVO.setStoreName(couponGroupVO.getStoreId()==0?"商场发放":
-                storeRepository.findById(couponGroupVO.getStoreId()).get().getName());
+            storeService.getStore(couponGroupVO.getStoreId()).getName());
         return couponGroupVO;
     }
 
+    @Override
+    public Coupon getCoupon(Integer id) {
+        Coupon coupon=couponRepository.findById(id).orElse(null);
+        if (coupon==null){
+            throw BlueWhaleException.couponNotExists();
+        }
+        return coupon;
+    }
+
+    @Override
+    public Boolean update(CouponVO couponVO) {
+        Coupon coupon=couponRepository.findById(couponVO.getId()).orElse(null);
+        if (coupon==null){
+            throw BlueWhaleException.couponNotExists();
+        }
+        coupon.setUsed(couponVO.getUsed());
+        couponRepository.save(coupon);
+        return true;
+    }
+
+    @Override
+    public CouponGroup getCouponGroup(Integer id) {
+        CouponGroup couponGroup=couponGroupRepository.findById(id).orElse(null);
+        if (couponGroup==null){
+            throw BlueWhaleException.couponGroupNotExists();
+        }
+        return couponGroup;
+    }
+
 }

+ 26 - 21
src/main/java/com/seecoder/BlueWhale/serviceImpl/OrderServiceImpl.java

@@ -5,7 +5,10 @@ import com.seecoder.BlueWhale.enums.OrderStatusEnum;
 import com.seecoder.BlueWhale.exception.BlueWhaleException;
 import com.seecoder.BlueWhale.po.*;
 import com.seecoder.BlueWhale.repository.*;
+import com.seecoder.BlueWhale.service.CouponService;
 import com.seecoder.BlueWhale.service.OrderService;
+import com.seecoder.BlueWhale.service.ProductService;
+import com.seecoder.BlueWhale.service.StoreService;
 import com.seecoder.BlueWhale.serviceImpl.strategy.Context;
 import com.seecoder.BlueWhale.util.SecurityUtil;
 import com.seecoder.BlueWhale.vo.OrderVO;
@@ -26,16 +29,13 @@ public class OrderServiceImpl implements OrderService {
     SecurityUtil securityUtil;
 
     @Autowired
-    StoreRepository storeRepository;
+    StoreService storeService;
 
     @Autowired
-    ProductRepository productRepository;
+    ProductService productService;
 
     @Autowired
-    CouponRepository couponRepository;
-
-    @Autowired
-    CouponGroupRepository couponGroupRepository;
+    CouponService couponService;
 
     @Autowired
     AlipayTools alipayTools;
@@ -61,7 +61,7 @@ public class OrderServiceImpl implements OrderService {
             case STAFF:
                 Integer storeId=user.getStoreId();
                 orders = orderRepository.findAll().stream()
-                        .filter(x-> storeId.equals(productRepository.findById(x.getProductId()).get().getStoreId()))
+                        .filter(x-> storeId.equals(productService.getProduct(x.getProductId()).getStoreId()))
                         .collect(Collectors.toList());
                 break;
             case MANAGER:
@@ -91,15 +91,15 @@ public class OrderServiceImpl implements OrderService {
         order.setStatus(OrderStatusEnum.UNSEND);
         orderRepository.save(order);
         if (couponId!=0){
-            Coupon coupon = couponRepository.findById(couponId).get();
-            CouponGroup couponGroup=couponGroupRepository.findById(coupon.getGroupId()).get();
-            Product product=productRepository.findById(order.getProductId()).get();
+            Coupon coupon = couponService.getCoupon(couponId);
+            CouponGroup couponGroup=couponService.getCouponGroup(coupon.getGroupId());
+            Product product=productService.getProduct(order.getProductId()).toPO();
             if (coupon.getUsed() || !coupon.getUserId().equals(user.getId()) ||
             couponGroup.getStoreId()>0 && !couponGroup.getStoreId().equals(product.getStoreId())){
                 throw BlueWhaleException.couponNotAllowed();
             }
             coupon.setUsed(true);
-            couponRepository.save(coupon);
+            couponService.update(coupon.toVO());
         }
         return true;
     }
@@ -113,7 +113,7 @@ public class OrderServiceImpl implements OrderService {
         if(order.getStatus() != OrderStatusEnum.UNSEND){
             throw BlueWhaleException.orderStatusError();
         }
-        Product product = productRepository.findById(order.getProductId()).get();
+        Product product=productService.getProduct(order.getProductId()).toPO();
         if (product.getStock()<order.getAmount()){
             throw BlueWhaleException.stockNotEnough();
         }
@@ -121,7 +121,7 @@ public class OrderServiceImpl implements OrderService {
         orderRepository.save(order);
         product.setSalesAmount(product.getSalesAmount()+order.getAmount());
         product.setStock(product.getStock()-order.getAmount());
-        productRepository.save(product);
+        productService.update(product.toVO());
         return true;
     }
 
@@ -154,17 +154,17 @@ public class OrderServiceImpl implements OrderService {
         order.setFinishTime(new Date());
         orderRepository.save(order);
 
-        Product product = productRepository.findById(order.getProductId()).get();
+        Product product = productService.getProduct(order.getProductId()).toPO();
         Double currentProductRating = product.getRating();
         product.setRating((currentProductRating*product.getNumber()+rating)/(product.getNumber()+1));
         product.setNumber(product.getNumber()+1);
-        productRepository.save(product);
+        productService.update(product.toVO());
 
-        Store store = storeRepository.findById(product.getStoreId()).get();
+        Store store = storeService.getStore(product.getStoreId()).toPO();
         Double currentStoreRating = store.getRating();
         store.setRating((currentStoreRating*store.getNumber()+rating)/(store.getNumber()+1));
         store.setNumber(store.getNumber()+1);
-        storeRepository.save(store);
+        storeService.update(store.toVO());
         return true;
     }
 
@@ -174,23 +174,28 @@ public class OrderServiceImpl implements OrderService {
         if(order == null){
             throw BlueWhaleException.orderNotExists();
         }
-        Product product = productRepository.findById(order.getProductId()).get();
+        Product product = productService.getProduct(order.getProductId()).toPO();
         Double origin=order.getAmount()*product.getPrice();
         if (couponId==0){
             return origin;
         }
-        Coupon coupon = couponRepository.findById(couponId).get();
-        CouponGroup couponGroup = couponGroupRepository.findById(coupon.getGroupId()).get();
+        Coupon coupon = couponService.getCoupon(couponId);
+        CouponGroup couponGroup = couponService.getCouponGroup(coupon.getGroupId());
         Context context=new Context(origin,couponGroup.getType(),couponGroup.getSatisfaction(),couponGroup.getMinus());
         return context.calculate();
     }
 
     private OrderVO wrapWithProductId(OrderVO orderVO){
         Integer productId=orderVO.getProductId();
-        Product product=productRepository.findById(productId).get();
+        Product product = productService.getProduct(productId).toPO();
         orderVO.setProductName(product.getName());
         orderVO.setPrice(product.getPrice());
         orderVO.setStoreId(product.getStoreId());
         return orderVO;
     }
+
+    @Override
+    public List<Order> getByProductIdAndFinishTimeNotNull(Integer storeId) {
+        return orderRepository.findByProductIdAndFinishTimeNotNull(storeId);
+    }
 }

+ 28 - 9
src/main/java/com/seecoder/BlueWhale/serviceImpl/ProductServiceImpl.java

@@ -4,11 +4,11 @@ import com.seecoder.BlueWhale.exception.BlueWhaleException;
 import com.seecoder.BlueWhale.po.Order;
 import com.seecoder.BlueWhale.po.Product;
 import com.seecoder.BlueWhale.po.Store;
-import com.seecoder.BlueWhale.repository.OrderRepository;
 import com.seecoder.BlueWhale.repository.ProductRepository;
-import com.seecoder.BlueWhale.repository.StoreRepository;
-import com.seecoder.BlueWhale.repository.UserRepository;
+import com.seecoder.BlueWhale.service.OrderService;
 import com.seecoder.BlueWhale.service.ProductService;
+import com.seecoder.BlueWhale.service.StoreService;
+import com.seecoder.BlueWhale.service.UserService;
 import com.seecoder.BlueWhale.vo.CommentVO;
 import com.seecoder.BlueWhale.vo.ProductVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,13 +24,13 @@ public class ProductServiceImpl implements ProductService {
     ProductRepository productRepository;
 
     @Autowired
-    StoreRepository storeRepository;
+    StoreService storeService;
 
     @Autowired
-    OrderRepository orderRepository;
+    OrderService orderService;
 
     @Autowired
-    UserRepository userRepository;
+    UserService userService;
 
     @Override
     public Boolean create(ProductVO productVO) {
@@ -46,6 +46,25 @@ public class ProductServiceImpl implements ProductService {
         return true;
     }
 
+    @Override
+    public Boolean update(ProductVO productVO) {
+        Product product=productRepository.findById(productVO.getId()).orElse(null);
+        if(product==null){
+            throw BlueWhaleException.productNotExists();
+        }
+        product.setName(productVO.getName());
+        product.setPrice(productVO.getPrice());
+        product.setCategory(productVO.getCategory());
+        product.setStock(productVO.getStock());
+        product.setNumber(productVO.getNumber());
+        product.setRating(productVO.getRating());
+        product.setSalesAmount(productVO.getSalesAmount());
+        product.setPhotoUrlList(productVO.getPhotoUrlList());
+        product.setCategory(productVO.getCategory());
+        productRepository.save(product);
+        return true;
+    }
+
     @Override
     public Boolean addStock(Integer id, Integer number) {
         Product product=productRepository.findById(id).orElse(null);
@@ -59,7 +78,7 @@ public class ProductServiceImpl implements ProductService {
 
     @Override
     public List<ProductVO> getAllProducts(Integer storeId) {
-        Store store = storeRepository.findById(storeId).orElse(null);
+        Store store = storeService.getStore(storeId).toPO();
         if (store == null) {
             throw BlueWhaleException.storeNotExists();
         }
@@ -77,7 +96,7 @@ public class ProductServiceImpl implements ProductService {
 
     @Override
     public List<CommentVO> getComments(Integer productId) {
-        List<Order> orders=orderRepository.findByProductIdAndFinishTimeNotNull(productId);
+        List<Order> orders=orderService.getByProductIdAndFinishTimeNotNull(productId);
         return orders.stream().map(x->{
             CommentVO commentVO=new CommentVO();
             commentVO.setOrderId(x.getId());
@@ -85,7 +104,7 @@ public class ProductServiceImpl implements ProductService {
             commentVO.setTime(x.getFinishTime());
             commentVO.setComment(x.getContent());
             commentVO.setUserId(x.getUserId());
-            commentVO.setUserName(userRepository.findById(x.getUserId()).get().getName());
+            commentVO.setUserName(userService.getUser(x.getUserId()).getName());
             return commentVO;
         }).collect(Collectors.toList());
     }

+ 18 - 0
src/main/java/com/seecoder/BlueWhale/serviceImpl/StoreServiceImpl.java

@@ -30,6 +30,22 @@ public class StoreServiceImpl implements StoreService {
         return true;
     }
 
+    @Override
+    public Boolean update(StoreVO storeVO) {
+        Store store = storeRepository.findById(storeVO.getId()).orElse(null);
+        if (store == null) {
+            throw BlueWhaleException.storeNotExists();
+        }
+        store.setName(storeVO.getName());
+        store.setLogoUrl(storeVO.getLogoUrl());
+        store.setLocation(storeVO.getLocation());
+        store.setRating(storeVO.getRating());
+        store.setNumber(storeVO.getNumber());
+        
+        storeRepository.save(store);
+        return true;
+    }
+
     @Override
     public StoreVO getStore(Integer id) {
         Store store = storeRepository.findById(id).orElse(null);
@@ -44,4 +60,6 @@ public class StoreServiceImpl implements StoreService {
         return storeRepository.findAll().stream().map(Store::toVO).collect(Collectors.toList());
     }
 
+
+
 }

+ 8 - 3
src/main/java/com/seecoder/BlueWhale/serviceImpl/UserServiceImpl.java

@@ -4,8 +4,8 @@ import com.seecoder.BlueWhale.enums.RoleEnum;
 import com.seecoder.BlueWhale.exception.BlueWhaleException;
 import com.seecoder.BlueWhale.po.Store;
 import com.seecoder.BlueWhale.po.User;
-import com.seecoder.BlueWhale.repository.StoreRepository;
 import com.seecoder.BlueWhale.repository.UserRepository;
+import com.seecoder.BlueWhale.service.StoreService;
 import com.seecoder.BlueWhale.service.UserService;
 import com.seecoder.BlueWhale.util.SecurityUtil;
 import com.seecoder.BlueWhale.util.TokenUtil;
@@ -34,7 +34,7 @@ public class UserServiceImpl implements UserService {
     SecurityUtil securityUtil;
 
     @Autowired
-    StoreRepository storeRepository;
+    StoreService storeService;
 
     @Override
     public Boolean register(UserVO userVO) {
@@ -87,8 +87,13 @@ public class UserServiceImpl implements UserService {
         if (storeId==null){
             return userVO;
         }
-        Store store = storeRepository.findById(storeId).get();
+        Store store = storeService.getStore(storeId).toPO();
         userVO.setStoreName(store.getName());
         return userVO;
     }
+
+    @Override
+    public User getUser(Integer id) {
+        return userRepository.findById(id).orElse(null);
+    }
 }