Browse Source

fix: correct

wanghongkai 5 years ago
parent
commit
983d657e4f
77 changed files with 292 additions and 192 deletions
  1. 5 5
      courselearning.log
  2. 4 4
      src/main/java/cn/seecoder/courselearning/controller/coupon/CouponController.java
  3. 2 2
      src/main/java/cn/seecoder/courselearning/controller/course/CourseController.java
  4. 2 2
      src/main/java/cn/seecoder/courselearning/controller/course/CourseWareController.java
  5. 2 2
      src/main/java/cn/seecoder/courselearning/controller/file/FileController.java
  6. 2 2
      src/main/java/cn/seecoder/courselearning/controller/order/CourseOrderController.java
  7. 3 3
      src/main/java/cn/seecoder/courselearning/controller/order/RechargeController.java
  8. 3 3
      src/main/java/cn/seecoder/courselearning/controller/user/UserController.java
  9. 1 1
      src/main/java/cn/seecoder/courselearning/dto/coupon/CouponDTO.java
  10. 1 1
      src/main/java/cn/seecoder/courselearning/dto/coupon/DeliverCouponDTO.java
  11. 16 3
      src/main/java/cn/seecoder/courselearning/enums/CouponDeliver.java
  12. 2 2
      src/main/java/cn/seecoder/courselearning/enums/CouponScope.java
  13. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/coupon/CouponMapper.java
  14. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/coupon/CourseOrderCouponMapper.java
  15. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/coupon/UserCouponMapper.java
  16. 1 1
      src/main/java/cn/seecoder/courselearning/mapperservice/course/CourseLikesMapper.java
  17. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/course/CourseMapper.java
  18. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/course/CourseWareMapper.java
  19. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/order/CourseOrderMapper.java
  20. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/order/RechargeOrderMapper.java
  21. 2 2
      src/main/java/cn/seecoder/courselearning/mapperservice/user/UserMapper.java
  22. 2 2
      src/main/java/cn/seecoder/courselearning/po/coupon/Coupon.java
  23. 1 1
      src/main/java/cn/seecoder/courselearning/po/coupon/CourseOrderCoupon.java
  24. 1 1
      src/main/java/cn/seecoder/courselearning/po/coupon/UserCoupon.java
  25. 2 2
      src/main/java/cn/seecoder/courselearning/po/course/Course.java
  26. 2 2
      src/main/java/cn/seecoder/courselearning/po/course/CourseWare.java
  27. 2 2
      src/main/java/cn/seecoder/courselearning/po/order/CourseOrder.java
  28. 2 2
      src/main/java/cn/seecoder/courselearning/po/order/RechargeOrder.java
  29. 2 2
      src/main/java/cn/seecoder/courselearning/po/user/User.java
  30. 5 5
      src/main/java/cn/seecoder/courselearning/service/coupon/CouponService.java
  31. 2 2
      src/main/java/cn/seecoder/courselearning/service/coupon/coupondeliverstrategy/CouponDeliverStrategy.java
  32. 2 2
      src/main/java/cn/seecoder/courselearning/service/coupon/couponstrategy/CouponStrategy.java
  33. 2 2
      src/main/java/cn/seecoder/courselearning/service/course/CourseService.java
  34. 1 1
      src/main/java/cn/seecoder/courselearning/service/course/CourseWareService.java
  35. 1 1
      src/main/java/cn/seecoder/courselearning/service/file/FileService.java
  36. 1 1
      src/main/java/cn/seecoder/courselearning/service/order/CourseOrderService.java
  37. 1 1
      src/main/java/cn/seecoder/courselearning/service/order/QueryOrderService.java
  38. 1 2
      src/main/java/cn/seecoder/courselearning/service/order/RechargeService.java
  39. 2 2
      src/main/java/cn/seecoder/courselearning/service/user/UserService.java
  40. 11 7
      src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/CouponServiceImpl.java
  41. 4 2
      src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/coupondeliverstrategy/AllUserDeliverStrategy.java
  42. 10 2
      src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/coupondeliverstrategy/CourseLikeDeliverStrategy.java
  43. 4 2
      src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/coupondeliverstrategy/SingleUserDeliverStrategy.java
  44. 5 5
      src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/couponstrategy/AbstractCouponStrategy.java
  45. 2 2
      src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/couponstrategy/CutDownCouponStrategy.java
  46. 2 2
      src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/couponstrategy/DiscountCouponStrategy.java
  47. 5 6
      src/main/java/cn/seecoder/courselearning/serviceimpl/course/CourseServiceImpl.java
  48. 4 4
      src/main/java/cn/seecoder/courselearning/serviceimpl/course/CourseWareServiceImpl.java
  49. 1 1
      src/main/java/cn/seecoder/courselearning/serviceimpl/file/FileServiceImpl.java
  50. 12 3
      src/main/java/cn/seecoder/courselearning/serviceimpl/order/CourseOrderServiceImpl.java
  51. 2 2
      src/main/java/cn/seecoder/courselearning/serviceimpl/order/QueryOrderServiceImpl.java
  52. 4 6
      src/main/java/cn/seecoder/courselearning/serviceimpl/order/RechargeServiceImpl.java
  53. 3 3
      src/main/java/cn/seecoder/courselearning/serviceimpl/user/UserServiceImpl.java
  54. 1 1
      src/main/java/cn/seecoder/courselearning/util/CouponValidator.java
  55. 1 1
      src/main/java/cn/seecoder/courselearning/util/FileHelper.java
  56. 12 0
      src/main/java/cn/seecoder/courselearning/util/IntHolder.java
  57. 2 2
      src/main/java/cn/seecoder/courselearning/vo/coupon/CouponVO.java
  58. 2 2
      src/main/java/cn/seecoder/courselearning/vo/course/CourseVO.java
  59. 2 2
      src/main/java/cn/seecoder/courselearning/vo/course/CourseWareVO.java
  60. 1 1
      src/main/java/cn/seecoder/courselearning/vo/file/FileInfoVO.java
  61. 3 2
      src/main/java/cn/seecoder/courselearning/vo/order/CourseOrderVO.java
  62. 2 2
      src/main/java/cn/seecoder/courselearning/vo/order/RechargeOrderVO.java
  63. 1 1
      src/main/java/cn/seecoder/courselearning/vo/user/UserFormVO.java
  64. 2 2
      src/main/java/cn/seecoder/courselearning/vo/user/UserVO.java
  65. 4 4
      src/main/resources/mapper/CouponMapper.xml
  66. 1 1
      src/main/resources/mapper/CourseLikesMapper.xml
  67. 5 5
      src/main/resources/mapper/CourseMapper.xml
  68. 3 3
      src/main/resources/mapper/CourseOrderCouponMapper.xml
  69. 4 4
      src/main/resources/mapper/CourseOrderMapper.xml
  70. 4 4
      src/main/resources/mapper/CourseWareMapper.xml
  71. 4 4
      src/main/resources/mapper/RechargeOrderMapper.xml
  72. 4 4
      src/main/resources/mapper/UserCouponMapper.xml
  73. 4 4
      src/main/resources/mapper/UserMapper.xml
  74. 1 1
      src/main/resources/mybatis-config.xml
  75. 60 0
      src/test/java/cn/seecoder/courselearning/controller/CourseControllerTest.java
  76. 5 7
      src/test/java/cn/seecoder/courselearning/controller/UserControllerTest.java
  77. 3 8
      src/test/java/cn/seecoder/courselearning/serviceImpl/UserServiceTest.java

+ 5 - 5
courselearning.log

@@ -148,11 +148,11 @@ javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,
 2021-03-09 11:21:11.169 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Identified candidate component class: file [C:\Users\tubinyan\IdeaProjects\courselearning\target\classes\cn\seecoder\courselearning\mapperservice\RechargeOrderMapper.class]
 2021-03-09 11:21:11.169 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Identified candidate component class: file [C:\Users\tubinyan\IdeaProjects\courselearning\target\classes\cn\seecoder\courselearning\mapperservice\UserMapper.class]
 2021-03-09 11:21:11.169 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Identified candidate component class: file [C:\Users\tubinyan\IdeaProjects\courselearning\target\classes\cn\seecoder\courselearning\mapperservice\UserTokenMapper.class]
-2021-03-09 11:21:11.170 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'courseMapper' and 'cn.seecoder.courselearning.mapperservice.CourseMapper' mapperInterface
-2021-03-09 11:21:11.171 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'courseOrderMapper' and 'cn.seecoder.courselearning.mapperservice.CourseOrderMapper' mapperInterface
-2021-03-09 11:21:11.171 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'courseWareMapper' and 'cn.seecoder.courselearning.mapperservice.CourseWareMapper' mapperInterface
-2021-03-09 11:21:11.172 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'rechargeOrderMapper' and 'cn.seecoder.courselearning.mapperservice.RechargeOrderMapper' mapperInterface
-2021-03-09 11:21:11.172 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'userMapper' and 'cn.seecoder.courselearning.mapperservice.UserMapper' mapperInterface
+2021-03-09 11:21:11.170 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'courseMapper' and 'cn.seecoder.courselearning.mapperservice.course.CourseMapper' mapperInterface
+2021-03-09 11:21:11.171 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'courseOrderMapper' and 'cn.seecoder.courselearning.mapperservice.order.CourseOrderMapper' mapperInterface
+2021-03-09 11:21:11.171 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'courseWareMapper' and 'cn.seecoder.courselearning.mapperservice.course.CourseWareMapper' mapperInterface
+2021-03-09 11:21:11.172 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'rechargeOrderMapper' and 'cn.seecoder.courselearning.mapperservice.order.RechargeOrderMapper' mapperInterface
+2021-03-09 11:21:11.172 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'userMapper' and 'cn.seecoder.courselearning.mapperservice.user.UserMapper' mapperInterface
 2021-03-09 11:21:11.172 DEBUG 12536 --- [main] o.m.s.mapper.ClassPathMapperScanner      : Creating MapperFactoryBean with name 'userTokenMapper' and 'cn.seecoder.courselearning.mapperservice.UserTokenMapper' mapperInterface
 2021-03-09 11:21:11.223 DEBUG 12536 --- [main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'org.springframework.context.event.internalEventListenerProcessor'
 2021-03-09 11:21:11.223 DEBUG 12536 --- [main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'preserveErrorControllerTargetClassPostProcessor'

+ 4 - 4
src/main/java/cn/seecoder/courselearning/controller/CouponController.java → src/main/java/cn/seecoder/courselearning/controller/coupon/CouponController.java

@@ -1,9 +1,9 @@
-package cn.seecoder.courselearning.controller;
+package cn.seecoder.courselearning.controller.coupon;
 
-import cn.seecoder.courselearning.dto.CouponDTO;
-import cn.seecoder.courselearning.dto.DeliverCouponDTO;
+import cn.seecoder.courselearning.dto.coupon.CouponDTO;
+import cn.seecoder.courselearning.dto.coupon.DeliverCouponDTO;
 import cn.seecoder.courselearning.service.coupon.CouponService;
-import cn.seecoder.courselearning.vo.CouponVO;
+import cn.seecoder.courselearning.vo.coupon.CouponVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.web.bind.annotation.*;
 

+ 2 - 2
src/main/java/cn/seecoder/courselearning/controller/CourseController.java → src/main/java/cn/seecoder/courselearning/controller/course/CourseController.java

@@ -1,8 +1,8 @@
-package cn.seecoder.courselearning.controller;
+package cn.seecoder.courselearning.controller.course;
 
 import cn.seecoder.courselearning.service.course.CourseService;
 import cn.seecoder.courselearning.util.Constant;
-import cn.seecoder.courselearning.vo.CourseVO;
+import cn.seecoder.courselearning.vo.course.CourseVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import com.github.pagehelper.PageInfo;
 import org.springframework.web.bind.annotation.*;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/controller/CourseWareController.java → src/main/java/cn/seecoder/courselearning/controller/course/CourseWareController.java

@@ -1,7 +1,7 @@
-package cn.seecoder.courselearning.controller;
+package cn.seecoder.courselearning.controller.course;
 
 import cn.seecoder.courselearning.service.course.CourseWareService;
-import cn.seecoder.courselearning.vo.CourseWareVO;
+import cn.seecoder.courselearning.vo.course.CourseWareVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.web.bind.annotation.*;
 

+ 2 - 2
src/main/java/cn/seecoder/courselearning/controller/FileController.java → src/main/java/cn/seecoder/courselearning/controller/file/FileController.java

@@ -1,7 +1,7 @@
-package cn.seecoder.courselearning.controller;
+package cn.seecoder.courselearning.controller.file;
 
 import cn.seecoder.courselearning.service.file.FileService;
-import cn.seecoder.courselearning.vo.FileInfoVO;
+import cn.seecoder.courselearning.vo.file.FileInfoVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/controller/CourseOrderController.java → src/main/java/cn/seecoder/courselearning/controller/order/CourseOrderController.java

@@ -1,7 +1,7 @@
-package cn.seecoder.courselearning.controller;
+package cn.seecoder.courselearning.controller.order;
 
 import cn.seecoder.courselearning.service.order.CourseOrderService;
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.web.bind.annotation.*;
 

+ 3 - 3
src/main/java/cn/seecoder/courselearning/controller/RechargeController.java → src/main/java/cn/seecoder/courselearning/controller/order/RechargeController.java

@@ -1,7 +1,7 @@
-package cn.seecoder.courselearning.controller;
+package cn.seecoder.courselearning.controller.order;
 
 import cn.seecoder.courselearning.service.order.RechargeService;
-import cn.seecoder.courselearning.vo.RechargeOrderVO;
+import cn.seecoder.courselearning.vo.order.RechargeOrderVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -16,7 +16,7 @@ public class RechargeController {
     @Resource
     RechargeService rechargeService;
 
-    @PostMapping("/")
+    @PostMapping("")
     public ResultVO<RechargeOrderVO> recharge(@RequestBody RechargeOrderVO rechargeOrderVO){
         return rechargeService.rechargeAccount(rechargeOrderVO);
     }

+ 3 - 3
src/main/java/cn/seecoder/courselearning/controller/UserController.java → src/main/java/cn/seecoder/courselearning/controller/user/UserController.java

@@ -1,9 +1,9 @@
-package cn.seecoder.courselearning.controller;
+package cn.seecoder.courselearning.controller.user;
 
 import cn.seecoder.courselearning.service.user.UserService;
 import cn.seecoder.courselearning.vo.ResultVO;
-import cn.seecoder.courselearning.vo.UserFormVO;
-import cn.seecoder.courselearning.vo.UserVO;
+import cn.seecoder.courselearning.vo.user.UserFormVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/dto/CouponDTO.java → src/main/java/cn/seecoder/courselearning/dto/coupon/CouponDTO.java

@@ -1,4 +1,4 @@
-package cn.seecoder.courselearning.dto;
+package cn.seecoder.courselearning.dto.coupon;
 
 import cn.seecoder.courselearning.enums.CouponScope;
 import cn.seecoder.courselearning.enums.CouponType;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/dto/DeliverCouponDTO.java → src/main/java/cn/seecoder/courselearning/dto/coupon/DeliverCouponDTO.java

@@ -1,4 +1,4 @@
-package cn.seecoder.courselearning.dto;
+package cn.seecoder.courselearning.dto.coupon;
 
 import cn.seecoder.courselearning.enums.CouponDeliver;
 import lombok.Data;

+ 16 - 3
src/main/java/cn/seecoder/courselearning/enums/CouponDeliver.java

@@ -5,15 +5,19 @@ import cn.seecoder.courselearning.serviceimpl.coupon.coupondeliverstrategy.AllUs
 import cn.seecoder.courselearning.serviceimpl.coupon.coupondeliverstrategy.CourseLikeDeliverStrategy;
 import cn.seecoder.courselearning.serviceimpl.coupon.coupondeliverstrategy.SingleUserDeliverStrategy;
 import lombok.Getter;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
 
 /**
  * 优惠券发放对象类型
  */
 @Getter
 public enum CouponDeliver {
-    SINGLE("发放给单个用户", new SingleUserDeliverStrategy()),
-    COURSE_LIKE("发放给某课程点赞的用户", new CourseLikeDeliverStrategy()),
-    ALL("发放给全体用户", new AllUserDeliverStrategy());
+    SINGLE("发放给单个用户", CouponDeliver.ApplicationContextInjector.applicationContext.getBean(SingleUserDeliverStrategy.class)),
+    COURSE_LIKE("发放给某课程点赞的用户", CouponDeliver.ApplicationContextInjector.applicationContext.getBean(CourseLikeDeliverStrategy.class)),
+    ALL("发放给全体用户", CouponDeliver.ApplicationContextInjector.applicationContext.getBean(AllUserDeliverStrategy.class));
 
     private final String value;
 
@@ -28,4 +32,13 @@ public enum CouponDeliver {
     public String toString() {
         return value;
     }
+
+    @Component
+    public static class ApplicationContextInjector implements ApplicationContextAware {
+        public static ApplicationContext applicationContext;
+        @Override
+        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+            this.applicationContext = applicationContext;
+        }
+    }
 }

+ 2 - 2
src/main/java/cn/seecoder/courselearning/enums/CouponScope.java

@@ -1,7 +1,7 @@
 package cn.seecoder.courselearning.enums;
 
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.po.Course;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.course.Course;
 import cn.seecoder.courselearning.util.JSONHelper;
 import java.util.function.BiFunction;
 

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/CouponMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/coupon/CouponMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.coupon;
 
-import cn.seecoder.courselearning.po.Coupon;
+import cn.seecoder.courselearning.po.coupon.Coupon;
 import java.util.List;
 
 public interface CouponMapper {

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/CourseOrderCouponMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/coupon/CourseOrderCouponMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.coupon;
 
-import cn.seecoder.courselearning.po.CourseOrderCoupon;
+import cn.seecoder.courselearning.po.coupon.CourseOrderCoupon;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/UserCouponMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/coupon/UserCouponMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.coupon;
 
-import cn.seecoder.courselearning.po.UserCoupon;
+import cn.seecoder.courselearning.po.coupon.UserCoupon;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/mapperservice/CourseLikesMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/course/CourseLikesMapper.java

@@ -1,4 +1,4 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.course;
 
 import org.apache.ibatis.annotations.Param;
 

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/CourseMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/course/CourseMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.course;
 
-import cn.seecoder.courselearning.po.Course;
+import cn.seecoder.courselearning.po.course.Course;
 import java.util.List;
 
 public interface CourseMapper {

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/CourseWareMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/course/CourseWareMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.course;
 
-import cn.seecoder.courselearning.po.CourseWare;
+import cn.seecoder.courselearning.po.course.CourseWare;
 import java.util.List;
 
 public interface CourseWareMapper {

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/CourseOrderMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/order/CourseOrderMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.order;
 
-import cn.seecoder.courselearning.po.CourseOrder;
+import cn.seecoder.courselearning.po.order.CourseOrder;
 import java.util.List;
 
 public interface CourseOrderMapper {

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/RechargeOrderMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/order/RechargeOrderMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.order;
 
-import cn.seecoder.courselearning.po.RechargeOrder;
+import cn.seecoder.courselearning.po.order.RechargeOrder;
 import java.util.List;
 
 public interface RechargeOrderMapper {

+ 2 - 2
src/main/java/cn/seecoder/courselearning/mapperservice/UserMapper.java → src/main/java/cn/seecoder/courselearning/mapperservice/user/UserMapper.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.mapperservice;
+package cn.seecoder.courselearning.mapperservice.user;
 
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.po.user.User;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/po/Coupon.java → src/main/java/cn/seecoder/courselearning/po/coupon/Coupon.java

@@ -1,8 +1,8 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.coupon;
 
 import cn.seecoder.courselearning.enums.CouponScope;
 import cn.seecoder.courselearning.enums.CouponType;
-import cn.seecoder.courselearning.vo.CouponVO;
+import cn.seecoder.courselearning.vo.coupon.CouponVO;
 import lombok.AccessLevel;
 import lombok.Data;
 import lombok.Getter;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/po/CourseOrderCoupon.java → src/main/java/cn/seecoder/courselearning/po/coupon/CourseOrderCoupon.java

@@ -1,4 +1,4 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.coupon;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/po/UserCoupon.java → src/main/java/cn/seecoder/courselearning/po/coupon/UserCoupon.java

@@ -1,4 +1,4 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.coupon;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/po/Course.java → src/main/java/cn/seecoder/courselearning/po/course/Course.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.course;
 
-import cn.seecoder.courselearning.vo.CourseVO;
+import cn.seecoder.courselearning.vo.course.CourseVO;
 import lombok.NonNull;
 
 import java.util.Date;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/po/CourseWare.java → src/main/java/cn/seecoder/courselearning/po/course/CourseWare.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.course;
 
-import cn.seecoder.courselearning.vo.CourseWareVO;
+import cn.seecoder.courselearning.vo.course.CourseWareVO;
 import lombok.NonNull;
 
 import java.util.Date;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/po/CourseOrder.java → src/main/java/cn/seecoder/courselearning/po/order/CourseOrder.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.order;
 
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 import lombok.NonNull;
 
 import java.util.Date;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/po/RechargeOrder.java → src/main/java/cn/seecoder/courselearning/po/order/RechargeOrder.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.order;
 
-import cn.seecoder.courselearning.vo.RechargeOrderVO;
+import cn.seecoder.courselearning.vo.order.RechargeOrderVO;
 
 import java.util.Date;
 

+ 2 - 2
src/main/java/cn/seecoder/courselearning/po/User.java → src/main/java/cn/seecoder/courselearning/po/user/User.java

@@ -1,7 +1,7 @@
-package cn.seecoder.courselearning.po;
+package cn.seecoder.courselearning.po.user;
 
 import cn.seecoder.courselearning.enums.UserRole;
-import cn.seecoder.courselearning.vo.UserVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 
 import java.util.Date;
 

+ 5 - 5
src/main/java/cn/seecoder/courselearning/service/coupon/CouponService.java

@@ -1,10 +1,10 @@
 package cn.seecoder.courselearning.service.coupon;
 
-import cn.seecoder.courselearning.dto.CouponDTO;
-import cn.seecoder.courselearning.dto.DeliverCouponDTO;
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.po.UserCoupon;
-import cn.seecoder.courselearning.vo.CouponVO;
+import cn.seecoder.courselearning.dto.coupon.CouponDTO;
+import cn.seecoder.courselearning.dto.coupon.DeliverCouponDTO;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.coupon.UserCoupon;
+import cn.seecoder.courselearning.vo.coupon.CouponVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 
 import java.util.List;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/service/coupon/coupondeliverstrategy/CouponDeliverStrategy.java

@@ -1,7 +1,7 @@
 package cn.seecoder.courselearning.service.coupon.coupondeliverstrategy;
 
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.user.User;
 
 import java.util.Map;
 

+ 2 - 2
src/main/java/cn/seecoder/courselearning/service/coupon/couponstrategy/CouponStrategy.java

@@ -1,7 +1,7 @@
 package cn.seecoder.courselearning.service.coupon.couponstrategy;
 
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 
 
 // 优惠券匹配策略

+ 2 - 2
src/main/java/cn/seecoder/courselearning/service/course/CourseService.java

@@ -1,7 +1,7 @@
 package cn.seecoder.courselearning.service.course;
 
-import cn.seecoder.courselearning.po.Course;
-import cn.seecoder.courselearning.vo.CourseVO;
+import cn.seecoder.courselearning.po.course.Course;
+import cn.seecoder.courselearning.vo.course.CourseVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import com.github.pagehelper.PageInfo;
 

+ 1 - 1
src/main/java/cn/seecoder/courselearning/service/course/CourseWareService.java

@@ -1,6 +1,6 @@
 package cn.seecoder.courselearning.service.course;
 
-import cn.seecoder.courselearning.vo.CourseWareVO;
+import cn.seecoder.courselearning.vo.course.CourseWareVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 
 import java.util.List;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/service/file/FileService.java

@@ -1,6 +1,6 @@
 package cn.seecoder.courselearning.service.file;
 
-import cn.seecoder.courselearning.vo.FileInfoVO;
+import cn.seecoder.courselearning.vo.file.FileInfoVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.web.multipart.MultipartFile;
 

+ 1 - 1
src/main/java/cn/seecoder/courselearning/service/order/CourseOrderService.java

@@ -1,6 +1,6 @@
 package cn.seecoder.courselearning.service.order;
 
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 
 import java.util.List;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/service/order/QueryOrderService.java

@@ -1,6 +1,6 @@
 package cn.seecoder.courselearning.service.order;
 
-import cn.seecoder.courselearning.po.CourseOrder;
+import cn.seecoder.courselearning.po.order.CourseOrder;
 
 public interface QueryOrderService {
 

+ 1 - 2
src/main/java/cn/seecoder/courselearning/service/order/RechargeService.java

@@ -1,8 +1,7 @@
 package cn.seecoder.courselearning.service.order;
 
-import cn.seecoder.courselearning.vo.RechargeOrderVO;
+import cn.seecoder.courselearning.vo.order.RechargeOrderVO;
 import cn.seecoder.courselearning.vo.ResultVO;
-import org.springframework.stereotype.Service;
 
 public interface RechargeService {
     // 账号充值

+ 2 - 2
src/main/java/cn/seecoder/courselearning/service/user/UserService.java

@@ -1,8 +1,8 @@
 package cn.seecoder.courselearning.service.user;
 
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.po.user.User;
 import cn.seecoder.courselearning.vo.ResultVO;
-import cn.seecoder.courselearning.vo.UserVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 
 import java.util.List;
 

+ 11 - 7
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/CouponServiceImpl.java

@@ -1,19 +1,23 @@
 package cn.seecoder.courselearning.serviceimpl.coupon;
 
-import cn.seecoder.courselearning.dto.CouponDTO;
-import cn.seecoder.courselearning.dto.DeliverCouponDTO;
-import cn.seecoder.courselearning.mapperservice.*;
-import cn.seecoder.courselearning.po.*;
+import cn.seecoder.courselearning.dto.coupon.CouponDTO;
+import cn.seecoder.courselearning.dto.coupon.DeliverCouponDTO;
+import cn.seecoder.courselearning.mapperservice.coupon.CouponMapper;
+import cn.seecoder.courselearning.mapperservice.coupon.UserCouponMapper;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.coupon.UserCoupon;
+import cn.seecoder.courselearning.po.course.Course;
+import cn.seecoder.courselearning.po.order.CourseOrder;
+import cn.seecoder.courselearning.po.user.User;
 import cn.seecoder.courselearning.service.coupon.coupondeliverstrategy.CouponDeliverStrategy;
 import cn.seecoder.courselearning.service.coupon.CouponService;
 import cn.seecoder.courselearning.service.course.CourseService;
-import cn.seecoder.courselearning.service.order.CourseOrderService;
 import cn.seecoder.courselearning.service.order.QueryOrderService;
 import cn.seecoder.courselearning.service.user.UserService;
 import cn.seecoder.courselearning.util.Constant;
 import cn.seecoder.courselearning.util.CouponValidator;
-import cn.seecoder.courselearning.vo.CouponVO;
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.coupon.CouponVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;

+ 4 - 2
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/coupondeliverstrategy/AllUserDeliverStrategy.java

@@ -1,11 +1,13 @@
 package cn.seecoder.courselearning.serviceimpl.coupon.coupondeliverstrategy;
 
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.user.User;
 import cn.seecoder.courselearning.service.coupon.coupondeliverstrategy.CouponDeliverStrategy;
+import org.springframework.stereotype.Component;
 
 import java.util.Map;
 
+@Component
 public class AllUserDeliverStrategy implements CouponDeliverStrategy {
     @Override
     public boolean canDeliver(User user, Coupon coupon, Map<String, String> extra) {

+ 10 - 2
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/coupondeliverstrategy/CourseLikeDeliverStrategy.java

@@ -1,15 +1,23 @@
 package cn.seecoder.courselearning.serviceimpl.coupon.coupondeliverstrategy;
 
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.mapperservice.course.CourseLikesMapper;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.user.User;
 import cn.seecoder.courselearning.service.coupon.coupondeliverstrategy.CouponDeliverStrategy;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 
 import java.util.Map;
 
 /**
  * 用户点赞数发放策略
  */
+@Component
 public class CourseLikeDeliverStrategy implements CouponDeliverStrategy {
+
+    @Autowired
+    protected CourseLikesMapper courseLikesMapper;
+
     @Override
     public boolean canDeliver(User user, Coupon coupon, Map<String, String> extra) {
         // 获取用户点赞数

+ 4 - 2
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/coupondeliverstrategy/SingleUserDeliverStrategy.java

@@ -1,14 +1,16 @@
 package cn.seecoder.courselearning.serviceimpl.coupon.coupondeliverstrategy;
 
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.user.User;
 import cn.seecoder.courselearning.service.coupon.coupondeliverstrategy.CouponDeliverStrategy;
+import org.springframework.stereotype.Component;
 
 import java.util.Map;
 
 /**
  * 只发放给单个用户的
  */
+@Component
 public class SingleUserDeliverStrategy implements CouponDeliverStrategy {
 
     @Override

+ 5 - 5
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/couponstrategy/AbstractCouponStrategy.java

@@ -1,12 +1,12 @@
 package cn.seecoder.courselearning.serviceimpl.coupon.couponstrategy;
 
-import cn.seecoder.courselearning.mapperservice.UserCouponMapper;
-import cn.seecoder.courselearning.po.Coupon;
-import cn.seecoder.courselearning.po.Course;
-import cn.seecoder.courselearning.po.UserCoupon;
+import cn.seecoder.courselearning.mapperservice.coupon.UserCouponMapper;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.course.Course;
+import cn.seecoder.courselearning.po.coupon.UserCoupon;
 import cn.seecoder.courselearning.service.coupon.couponstrategy.CouponStrategy;
 import cn.seecoder.courselearning.service.course.CourseService;
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import java.time.LocalDateTime;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/couponstrategy/CutDownCouponStrategy.java

@@ -1,8 +1,8 @@
 package cn.seecoder.courselearning.serviceimpl.coupon.couponstrategy;
 
-import cn.seecoder.courselearning.po.Coupon;
+import cn.seecoder.courselearning.po.coupon.Coupon;
 import cn.seecoder.courselearning.util.JSONHelper;
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 import org.springframework.stereotype.Component;
 
 /**

+ 2 - 2
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/couponstrategy/DiscountCouponStrategy.java

@@ -1,8 +1,8 @@
 package cn.seecoder.courselearning.serviceimpl.coupon.couponstrategy;
 
-import cn.seecoder.courselearning.po.Coupon;
+import cn.seecoder.courselearning.po.coupon.Coupon;
 import cn.seecoder.courselearning.util.JSONHelper;
-import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
 import org.springframework.stereotype.Component;
 
 /**

+ 5 - 6
src/main/java/cn/seecoder/courselearning/serviceimpl/course/CourseServiceImpl.java

@@ -1,15 +1,14 @@
 package cn.seecoder.courselearning.serviceimpl.course;
 
-import cn.seecoder.courselearning.mapperservice.CourseLikesMapper;
-import cn.seecoder.courselearning.mapperservice.CourseMapper;
-import cn.seecoder.courselearning.po.Course;
-import cn.seecoder.courselearning.po.CourseOrder;
+import cn.seecoder.courselearning.mapperservice.course.CourseLikesMapper;
+import cn.seecoder.courselearning.mapperservice.course.CourseMapper;
+import cn.seecoder.courselearning.po.course.Course;
+import cn.seecoder.courselearning.po.order.CourseOrder;
 import cn.seecoder.courselearning.service.course.CourseService;
-import cn.seecoder.courselearning.service.order.CourseOrderService;
 import cn.seecoder.courselearning.service.order.QueryOrderService;
 import cn.seecoder.courselearning.util.Constant;
 import cn.seecoder.courselearning.util.PageInfoUtil;
-import cn.seecoder.courselearning.vo.CourseVO;
+import cn.seecoder.courselearning.vo.course.CourseVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;

+ 4 - 4
src/main/java/cn/seecoder/courselearning/serviceimpl/course/CourseWareServiceImpl.java

@@ -1,12 +1,12 @@
 package cn.seecoder.courselearning.serviceimpl.course;
 
-import cn.seecoder.courselearning.mapperservice.CourseWareMapper;
-import cn.seecoder.courselearning.po.CourseOrder;
-import cn.seecoder.courselearning.po.CourseWare;
+import cn.seecoder.courselearning.mapperservice.course.CourseWareMapper;
+import cn.seecoder.courselearning.po.order.CourseOrder;
+import cn.seecoder.courselearning.po.course.CourseWare;
 import cn.seecoder.courselearning.service.course.CourseWareService;
 import cn.seecoder.courselearning.service.order.QueryOrderService;
 import cn.seecoder.courselearning.util.Constant;
-import cn.seecoder.courselearning.vo.CourseWareVO;
+import cn.seecoder.courselearning.vo.course.CourseWareVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/serviceimpl/file/FileServiceImpl.java

@@ -4,7 +4,7 @@ import cn.seecoder.courselearning.exception.MyException;
 import cn.seecoder.courselearning.service.file.FileService;
 import cn.seecoder.courselearning.util.Constant;
 import cn.seecoder.courselearning.util.FileHelper;
-import cn.seecoder.courselearning.vo.FileInfoVO;
+import cn.seecoder.courselearning.vo.file.FileInfoVO;
 import cn.seecoder.courselearning.vo.ResultVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

+ 12 - 3
src/main/java/cn/seecoder/courselearning/serviceimpl/order/CourseOrderServiceImpl.java

@@ -1,14 +1,23 @@
 package cn.seecoder.courselearning.serviceimpl.order;
 
-import cn.seecoder.courselearning.mapperservice.*;
-import cn.seecoder.courselearning.po.*;
+import cn.seecoder.courselearning.mapperservice.coupon.CourseOrderCouponMapper;
+import cn.seecoder.courselearning.mapperservice.order.CourseOrderMapper;
+import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.coupon.CourseOrderCoupon;
+import cn.seecoder.courselearning.po.coupon.UserCoupon;
+import cn.seecoder.courselearning.po.course.Course;
+import cn.seecoder.courselearning.po.order.CourseOrder;
 import cn.seecoder.courselearning.service.coupon.CouponService;
 import cn.seecoder.courselearning.service.course.CourseService;
 import cn.seecoder.courselearning.service.order.CourseOrderService;
 import cn.seecoder.courselearning.service.user.UserService;
 import cn.seecoder.courselearning.util.Constant;
+import cn.seecoder.courselearning.util.IntHolder;
 import cn.seecoder.courselearning.vo.*;
-import org.omg.CORBA.IntHolder;
+import cn.seecoder.courselearning.vo.coupon.CouponVO;
+import cn.seecoder.courselearning.vo.course.CourseVO;
+import cn.seecoder.courselearning.vo.order.CourseOrderVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/serviceimpl/order/QueryOrderServiceImpl.java

@@ -1,7 +1,7 @@
 package cn.seecoder.courselearning.serviceimpl.order;
 
-import cn.seecoder.courselearning.mapperservice.CourseOrderMapper;
-import cn.seecoder.courselearning.po.CourseOrder;
+import cn.seecoder.courselearning.mapperservice.order.CourseOrderMapper;
+import cn.seecoder.courselearning.po.order.CourseOrder;
 import cn.seecoder.courselearning.service.order.QueryOrderService;
 import org.springframework.stereotype.Service;
 

+ 4 - 6
src/main/java/cn/seecoder/courselearning/serviceimpl/order/RechargeServiceImpl.java

@@ -1,15 +1,13 @@
 package cn.seecoder.courselearning.serviceimpl.order;
 
-import cn.seecoder.courselearning.mapperservice.RechargeOrderMapper;
-import cn.seecoder.courselearning.mapperservice.UserMapper;
-import cn.seecoder.courselearning.po.RechargeOrder;
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.mapperservice.order.RechargeOrderMapper;
+import cn.seecoder.courselearning.po.order.RechargeOrder;
 import cn.seecoder.courselearning.service.order.RechargeService;
 import cn.seecoder.courselearning.service.user.UserService;
 import cn.seecoder.courselearning.util.Constant;
-import cn.seecoder.courselearning.vo.RechargeOrderVO;
+import cn.seecoder.courselearning.vo.order.RechargeOrderVO;
 import cn.seecoder.courselearning.vo.ResultVO;
-import cn.seecoder.courselearning.vo.UserVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;

+ 3 - 3
src/main/java/cn/seecoder/courselearning/serviceimpl/user/UserServiceImpl.java

@@ -1,11 +1,11 @@
 package cn.seecoder.courselearning.serviceimpl.user;
 
-import cn.seecoder.courselearning.mapperservice.UserMapper;
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.mapperservice.user.UserMapper;
+import cn.seecoder.courselearning.po.user.User;
 import cn.seecoder.courselearning.service.user.UserService;
 import cn.seecoder.courselearning.util.Constant;
 import cn.seecoder.courselearning.vo.ResultVO;
-import cn.seecoder.courselearning.vo.UserVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
 

+ 1 - 1
src/main/java/cn/seecoder/courselearning/util/CouponValidator.java

@@ -1,6 +1,6 @@
 package cn.seecoder.courselearning.util;
 
-import cn.seecoder.courselearning.po.Coupon;
+import cn.seecoder.courselearning.po.coupon.Coupon;
 
 public class CouponValidator {
     public static boolean isInvalid(Coupon coupon) {

+ 1 - 1
src/main/java/cn/seecoder/courselearning/util/FileHelper.java

@@ -1,7 +1,7 @@
 package cn.seecoder.courselearning.util;
 import cn.seecoder.courselearning.enums.ExceptionType;
 import cn.seecoder.courselearning.exception.MyException;
-import cn.seecoder.courselearning.vo.FileInfoVO;
+import cn.seecoder.courselearning.vo.file.FileInfoVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.core.io.Resource;
 import org.springframework.core.io.UrlResource;

+ 12 - 0
src/main/java/cn/seecoder/courselearning/util/IntHolder.java

@@ -0,0 +1,12 @@
+package cn.seecoder.courselearning.util;
+
+/**
+ * 可变的整形引用类型,与Integer不同,Integer是immutable的
+ */
+public class IntHolder {
+    public int value;
+
+    public IntHolder(int value) {
+        this.value = value;
+    }
+}

+ 2 - 2
src/main/java/cn/seecoder/courselearning/vo/CouponVO.java → src/main/java/cn/seecoder/courselearning/vo/coupon/CouponVO.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.coupon;
 
-import cn.seecoder.courselearning.po.Coupon;
+import cn.seecoder.courselearning.po.coupon.Coupon;
 import lombok.AccessLevel;
 import lombok.Data;
 import lombok.Getter;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/vo/CourseVO.java → src/main/java/cn/seecoder/courselearning/vo/course/CourseVO.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.course;
 
-import cn.seecoder.courselearning.po.Course;
+import cn.seecoder.courselearning.po.course.Course;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.NonNull;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/vo/CourseWareVO.java → src/main/java/cn/seecoder/courselearning/vo/course/CourseWareVO.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.course;
 
-import cn.seecoder.courselearning.po.CourseWare;
+import cn.seecoder.courselearning.po.course.CourseWare;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.NonNull;

+ 1 - 1
src/main/java/cn/seecoder/courselearning/vo/FileInfoVO.java → src/main/java/cn/seecoder/courselearning/vo/file/FileInfoVO.java

@@ -1,4 +1,4 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.file;
 
 import lombok.Data;
 

+ 3 - 2
src/main/java/cn/seecoder/courselearning/vo/CourseOrderVO.java → src/main/java/cn/seecoder/courselearning/vo/order/CourseOrderVO.java

@@ -1,6 +1,7 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.order;
 
-import cn.seecoder.courselearning.po.CourseOrder;
+import cn.seecoder.courselearning.po.order.CourseOrder;
+import cn.seecoder.courselearning.vo.coupon.CouponVO;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.NonNull;

+ 2 - 2
src/main/java/cn/seecoder/courselearning/vo/RechargeOrderVO.java → src/main/java/cn/seecoder/courselearning/vo/order/RechargeOrderVO.java

@@ -1,6 +1,6 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.order;
 
-import cn.seecoder.courselearning.po.RechargeOrder;
+import cn.seecoder.courselearning.po.order.RechargeOrder;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 

+ 1 - 1
src/main/java/cn/seecoder/courselearning/vo/UserFormVO.java → src/main/java/cn/seecoder/courselearning/vo/user/UserFormVO.java

@@ -1,4 +1,4 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.user;
 
 import lombok.Data;
 

+ 2 - 2
src/main/java/cn/seecoder/courselearning/vo/UserVO.java → src/main/java/cn/seecoder/courselearning/vo/user/UserVO.java

@@ -1,7 +1,7 @@
-package cn.seecoder.courselearning.vo;
+package cn.seecoder.courselearning.vo.user;
 
 import cn.seecoder.courselearning.enums.UserRole;
-import cn.seecoder.courselearning.po.User;
+import cn.seecoder.courselearning.po.user.User;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.NonNull;

+ 4 - 4
src/main/resources/mapper/CouponMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.CouponMapper">
-  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.Coupon">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.coupon.CouponMapper">
+  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.coupon.Coupon">
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="type" jdbcType="VARCHAR" property="type" />
     <result column="scope" jdbcType="VARCHAR" property="scope" />
@@ -17,7 +17,7 @@
     delete from coupon
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="cn.seecoder.courselearning.po.Coupon" useGeneratedKeys="true" keyProperty="id">
+  <insert id="insert" parameterType="cn.seecoder.courselearning.po.coupon.Coupon" useGeneratedKeys="true" keyProperty="id">
     insert into coupon (id, type, scope, name,
       description, metadata,
       start_time, end_time, is_valid, 
@@ -27,7 +27,7 @@
       #{startTime,jdbcType=TIMESTAMP}, #{endTime,jdbcType=TIMESTAMP}, #{valid,jdbcType=BIT}, 
       #{sharable,jdbcType=BIT})
   </insert>
-  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.Coupon">
+  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.coupon.Coupon">
     update coupon
     set type = #{type,jdbcType=VARCHAR},
       scope = #{scope,jdbcType=VARCHAR},

+ 1 - 1
src/main/resources/mapper/CourseLikesMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.CourseLikesMapper">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.course.CourseLikesMapper">
   <delete id="deleteByPrimaryKey" parameterType="map">
     delete from course_likes
     where course_id = #{courseId,jdbcType=INTEGER}

+ 5 - 5
src/main/resources/mapper/CourseMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.CourseMapper">
-  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.Course">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.course.CourseMapper">
+  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.course.Course">
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="name" jdbcType="VARCHAR" property="name" />
     <result column="type" jdbcType="VARCHAR" property="type" />
@@ -19,7 +19,7 @@
     delete from course
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="cn.seecoder.courselearning.po.Course" useGeneratedKeys="true" keyProperty="id">
+  <insert id="insert" parameterType="cn.seecoder.courselearning.po.course.Course" useGeneratedKeys="true" keyProperty="id">
     insert into course (id, name, type,
       intro, picture, school,
       create_time, delete_time, cost,
@@ -29,7 +29,7 @@
       #{createTime,jdbcType=TIMESTAMP}, #{deleteTime,jdbcType=TIMESTAMP}, #{cost,jdbcType=INTEGER},
       #{teacherId,jdbcType=INTEGER}, #{teacherName,jdbcType=VARCHAR})
   </insert>
-  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.Course">
+  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.course.Course">
     update course
     set name = #{name,jdbcType=VARCHAR},
       type = #{type,jdbcType=VARCHAR},
@@ -102,7 +102,7 @@
     )
     group by c.id
   </select>
-  <select id="selectHotCourses" resultType="cn.seecoder.courselearning.po.Course">
+  <select id="selectHotCourses" resultType="cn.seecoder.courselearning.po.course.Course">
     select c.id, c.name, c.type, c.intro, c.picture, c.school, c.create_time, c.delete_time, c.cost, c.teacher_id, c.teacher_name, count(t.user_id) as likes
     from course c
     left join course_likes t

+ 3 - 3
src/main/resources/mapper/CourseOrderCouponMapper.xml

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.CourseOrderCouponMapper">
-    <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.CourseOrderCoupon">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.coupon.CourseOrderCouponMapper">
+    <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.coupon.CourseOrderCoupon">
         <id column="order_id" jdbcType="INTEGER" property="orderId" />
         <id column="coupon_id" jdbcType="INTEGER" property="couponId" />
     </resultMap>
-    <insert id="insert" parameterType="cn.seecoder.courselearning.po.CourseOrderCoupon">
+    <insert id="insert" parameterType="cn.seecoder.courselearning.po.coupon.CourseOrderCoupon">
     insert into course_order_coupon (order_id, coupon_id)
     values (#{orderId,jdbcType=INTEGER}, #{couponId,jdbcType=INTEGER})
     </insert>

+ 4 - 4
src/main/resources/mapper/CourseOrderMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.CourseOrderMapper">
-  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.CourseOrder">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.order.CourseOrderMapper">
+  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.order.CourseOrder">
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="origin" jdbcType="INTEGER" property="origin" />
     <result column="cost" jdbcType="INTEGER" property="cost" />
@@ -15,7 +15,7 @@
     delete from course_order
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="cn.seecoder.courselearning.po.CourseOrder" useGeneratedKeys="true" keyProperty="id">
+  <insert id="insert" parameterType="cn.seecoder.courselearning.po.order.CourseOrder" useGeneratedKeys="true" keyProperty="id">
     insert into course_order (id, origin, cost, course_id,
       course_name, create_time, user_id, 
       status)
@@ -23,7 +23,7 @@
       #{courseName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{userId,jdbcType=INTEGER}, 
       #{status,jdbcType=INTEGER})
   </insert>
-  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.CourseOrder">
+  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.order.CourseOrder">
     update course_order
     set cost = #{cost,jdbcType=INTEGER},
       origin = #{origin,jdbcType=INTEGER},

+ 4 - 4
src/main/resources/mapper/CourseWareMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.CourseWareMapper">
-  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.CourseWare">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.course.CourseWareMapper">
+  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.course.CourseWare">
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="course_id" jdbcType="INTEGER" property="courseId" />
     <result column="number" jdbcType="INTEGER" property="number" />
@@ -17,7 +17,7 @@
     delete from course_ware
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="cn.seecoder.courselearning.po.CourseWare" useGeneratedKeys="true" keyProperty="id">
+  <insert id="insert" parameterType="cn.seecoder.courselearning.po.course.CourseWare" useGeneratedKeys="true" keyProperty="id">
     insert into course_ware (id, course_id, number, 
       title, file_name, file_type, 
       file_size, free_flag, download_flag, 
@@ -27,7 +27,7 @@
       #{fileSize,jdbcType=VARCHAR}, #{freeFlag,jdbcType=BIT}, #{downloadFlag,jdbcType=BIT}, 
       #{uploadTime,jdbcType=TIMESTAMP})
   </insert>
-  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.CourseWare">
+  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.course.CourseWare">
     update course_ware
     set course_id = #{courseId,jdbcType=INTEGER},
       number = #{number,jdbcType=INTEGER},

+ 4 - 4
src/main/resources/mapper/RechargeOrderMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.RechargeOrderMapper">
-  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.RechargeOrder">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.order.RechargeOrderMapper">
+  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.order.RechargeOrder">
     <id column="order_id" jdbcType="INTEGER" property="orderId" />
     <result column="user_id" jdbcType="INTEGER" property="userId" />
     <result column="value" jdbcType="INTEGER" property="value" />
@@ -11,13 +11,13 @@
     delete from recharge_order
     where order_id = #{orderId,jdbcType=VARCHAR}
   </delete>
-  <insert id="insert" parameterType="cn.seecoder.courselearning.po.RechargeOrder" useGeneratedKeys="true" keyProperty="orderId">
+  <insert id="insert" parameterType="cn.seecoder.courselearning.po.order.RechargeOrder" useGeneratedKeys="true" keyProperty="orderId">
     insert into recharge_order (order_id, user_id, value, 
       create_time)
     values (#{orderId,jdbcType=VARCHAR}, #{userId,jdbcType=INTEGER}, #{value,jdbcType=INTEGER}, 
       #{createTime,jdbcType=TIMESTAMP})
   </insert>
-  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.RechargeOrder">
+  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.order.RechargeOrder">
     update recharge_order
     set user_id = #{userId,jdbcType=INTEGER},
       value = #{value,jdbcType=INTEGER},

+ 4 - 4
src/main/resources/mapper/UserCouponMapper.xml

@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.UserCouponMapper">
-    <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.UserCoupon">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.coupon.UserCouponMapper">
+    <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.coupon.UserCoupon">
         <id column="coupon_id" jdbcType="INTEGER" property="couponId" />
         <id column="user_id" jdbcType="INTEGER" property="userId" />
         <result column="nums" jdbcType="INTEGER" property="nums" />
     </resultMap>
-    <insert id="insert" parameterType="cn.seecoder.courselearning.po.UserCoupon">
+    <insert id="insert" parameterType="cn.seecoder.courselearning.po.coupon.UserCoupon">
     insert into user_coupon (coupon_id, user_id, nums)
     values (#{couponId,jdbcType=INTEGER}, #{userId,jdbcType=INTEGER}, #{nums,jdbcType=INTEGER})
     </insert>
-    <update id="update" parameterType="cn.seecoder.courselearning.po.UserCoupon">
+    <update id="update" parameterType="cn.seecoder.courselearning.po.coupon.UserCoupon">
     update user_coupon
     set nums = #{nums,jdbcType=INTEGER}
     where coupon_id = #{couponId,jdbcType=INTEGER} and user_id = #{userId,jdbcType=INTEGER}

+ 4 - 4
src/main/resources/mapper/UserMapper.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="cn.seecoder.courselearning.mapperservice.UserMapper">
-  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.User">
+<mapper namespace="cn.seecoder.courselearning.mapperservice.user.UserMapper">
+  <resultMap id="BaseResultMap" type="cn.seecoder.courselearning.po.user.User">
     <id column="id" jdbcType="INTEGER" property="id" />
     <result column="uname" jdbcType="VARCHAR" property="uname" />
     <result column="phone" jdbcType="VARCHAR" property="phone" />
@@ -15,7 +15,7 @@
     delete from user_info
     where id = #{id,jdbcType=INTEGER}
   </delete>
-  <insert id="insert" parameterType="cn.seecoder.courselearning.po.User" useGeneratedKeys="true" keyProperty="id">
+  <insert id="insert" parameterType="cn.seecoder.courselearning.po.user.User" useGeneratedKeys="true" keyProperty="id">
     insert into user_info (id, uname, phone, 
       password, picture, balance, 
       user_role, create_time)
@@ -23,7 +23,7 @@
       #{password,jdbcType=VARCHAR}, #{picture,jdbcType=VARCHAR}, #{balance,jdbcType=INTEGER}, 
       #{userRole,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})
   </insert>
-  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.User">
+  <update id="updateByPrimaryKey" parameterType="cn.seecoder.courselearning.po.user.User">
     update user_info
     set uname = #{uname,jdbcType=VARCHAR},
       phone = #{phone,jdbcType=VARCHAR},

+ 1 - 1
src/main/resources/mybatis-config.xml

@@ -17,6 +17,6 @@
 <!--                     jdbcType="VARCHAR"/>-->
 <!--    </typeHandlers>-->
 <!--    <mappers>-->
-<!--        <mapper class="cn.seecoder.courselearning.mapperservice.UserMapper"/>-->
+<!--        <mapper class="cn.seecoder.courselearning.mapperservice.user.UserMapper"/>-->
 <!--    </mappers>-->
 </configuration>

+ 60 - 0
src/test/java/cn/seecoder/courselearning/controller/CourseControllerTest.java

@@ -0,0 +1,60 @@
+package cn.seecoder.courselearning.controller;
+
+import cn.seecoder.courselearning.mapperservice.course.CourseLikesMapper;
+import org.junit.Assert;
+import org.junit.FixMethodOrder;
+import org.junit.Test;
+import org.junit.jupiter.api.TestInstance;
+import org.junit.runner.RunWith;
+import org.junit.runners.MethodSorters;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.http.MediaType;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.test.web.servlet.MockMvc;
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
+import org.springframework.test.web.servlet.setup.MockMvcBuilders;
+import org.springframework.web.context.WebApplicationContext;
+
+import javax.annotation.Resource;
+
+import static org.hamcrest.core.Is.is;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@FixMethodOrder(MethodSorters.NAME_ASCENDING)
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+@WebAppConfiguration
+public class CourseControllerTest {
+
+    private MockMvc mockMvc;
+
+    @Autowired
+    private WebApplicationContext wac;
+
+    @Resource
+    private CourseLikesMapper courseLikesMapper;
+
+    @Test
+    public void testLike() throws Exception {
+        mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();  //构建MockMVC
+        mockMvc.perform(post("/api/course/like/1?uid=1"))
+                .andExpect(MockMvcResultMatchers.status().isOk());
+        int result = courseLikesMapper.count(1, 1);
+        Assert.assertEquals(result, 1);
+        courseLikesMapper.deleteByPrimaryKey(1, 1);
+    }
+
+    @Test
+    public void testUnLike() throws Exception {
+        mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();  //构建MockMVC
+        courseLikesMapper.insert(1, 1);
+        mockMvc.perform(post("/api/course/cancel_like/1?uid=1"))
+                .andExpect(MockMvcResultMatchers.status().isOk());
+        int result = courseLikesMapper.count(1, 1);
+        Assert.assertEquals(result, 0);
+    }
+}

+ 5 - 7
src/test/java/cn/seecoder/courselearning/controller/UserControllerTest.java

@@ -1,19 +1,17 @@
 package cn.seecoder.courselearning.controller;
 
-import cn.seecoder.courselearning.mapperservice.UserMapper;
-import cn.seecoder.courselearning.vo.RechargeOrderVO;
-import cn.seecoder.courselearning.vo.UserFormVO;
-import cn.seecoder.courselearning.vo.UserVO;
+import cn.seecoder.courselearning.mapperservice.user.UserMapper;
+import cn.seecoder.courselearning.vo.order.RechargeOrderVO;
+import cn.seecoder.courselearning.vo.user.UserFormVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectWriter;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
-import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.TestInstance;
 import org.junit.runner.RunWith;
 import org.junit.runners.MethodSorters;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.http.MediaType;
 import org.springframework.test.context.junit4.SpringRunner;
@@ -113,7 +111,7 @@ public class UserControllerTest {
         rechargeOrderVO.setCreateTime(new Date());
         String requestJson = ow.writeValueAsString(rechargeOrderVO);
 
-        mockMvc.perform(post("/api/user/recharge")
+        mockMvc.perform(post("/api/recharge")
                 .contentType(MediaType.APPLICATION_JSON).content(requestJson))
                 .andExpect(MockMvcResultMatchers.status().isOk())
                 .andExpect(jsonPath("$.msg", is("充值成功")));

+ 3 - 8
src/test/java/cn/seecoder/courselearning/serviceImpl/UserServiceTest.java

@@ -1,9 +1,9 @@
-package cn.seecoder.courselearning.serviceimpl;
+package cn.seecoder.courselearning.serviceImpl;
 
 import cn.seecoder.courselearning.enums.UserRole;
-import cn.seecoder.courselearning.mapperservice.UserMapper;
+import cn.seecoder.courselearning.mapperservice.user.UserMapper;
 import cn.seecoder.courselearning.service.user.UserService;
-import cn.seecoder.courselearning.vo.UserVO;
+import cn.seecoder.courselearning.vo.user.UserVO;
 import org.junit.Assert;
 import org.junit.FixMethodOrder;
 import org.junit.Rule;
@@ -118,10 +118,5 @@ public class UserServiceTest {
 //        Assert.assertEquals(expectedRes, res2);
 //        Assert.assertEquals(expectedRes, res3);
 //    }
-
-    @AfterAll
-    public void reset(){
-      userMapper.decreaseBalance(2, 100);
-    }
 }