소스 검색

change property `userId` of Coupon to `validUserId`.

tubinyan 5 년 전
부모
커밋
31cf5b96b0

+ 56 - 2
src/main/java/cn/seecoder/courselearning/controller/CouponController.java

@@ -1,9 +1,63 @@
 package cn.seecoder.courselearning.controller;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import cn.seecoder.courselearning.dto.CourseCouponDTO;
+import cn.seecoder.courselearning.dto.UniversalCouponDTO;
+import cn.seecoder.courselearning.dto.UserCouponDTO;
+import cn.seecoder.courselearning.service.CouponService;
+import cn.seecoder.courselearning.vo.CouponVO;
+import cn.seecoder.courselearning.vo.CourseOrderVO;
+import cn.seecoder.courselearning.vo.ResultVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 @RestController
 @RequestMapping("/coupon")
 public class CouponController {
+    @Resource
+    CouponService couponService;
+
+    // 创建通用型优惠券
+    @PostMapping("/create/universal")
+    ResultVO<CouponVO> createUniversalCoupon(@RequestBody UniversalCouponDTO universalCouponDTO) {
+        return couponService.createUniversalCoupon(universalCouponDTO);
+    }
+
+    // 创建课程型优惠券
+    @PostMapping("/create/course")
+    ResultVO<CouponVO> createCourseCoupon(@RequestBody CourseCouponDTO courseCouponDTO) {
+        return couponService.createCourseCoupon(courseCouponDTO);
+    }
+
+    // 创建用户定制化优惠券
+    @PostMapping("/create/universal")
+    ResultVO<CouponVO> createUserCoupon(@RequestBody UserCouponDTO userCouponDTO) {
+        return couponService.createUserCoupon(userCouponDTO);
+    }
+
+    // 查看所有的网站通用型优惠券
+    @GetMapping("/universal")
+    List<CouponVO> getUniversalCoupons() {
+        return couponService.getUniversalCoupons();
+    }
+
+
+    // 查看当前课程所有的课程优惠券(不含网站通用优惠券、用户定制化优惠券) 包含已经失效了的优惠活动
+    @GetMapping("/course/{courseId}")
+    List<CouponVO> getCourseCoupons(@PathVariable Integer courseId) {
+        return couponService.getCourseCoupons(courseId);
+    }
+
+//    // 查询 userId 对应的用户 目前可以使用的有效的优惠券
+//    @GetMapping("/user/{userId}")
+//    List<CouponVO> getAllEffectiveCouponsForUser(@PathVariable Integer userId) {
+//        return couponService.getAllEffectiveUserCoupons(userId);
+//    }
+
+    // 查看当前用户购买此课程可生效的所有优惠
+    @GetMapping("/check_for_order")
+    List<CouponVO> getAllEffectiveCouponsForOrder(@RequestBody CourseOrderVO orderVO) {
+        return couponService.getAllEffectiveCouponsForOrder(orderVO);
+    }
 }

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

@@ -43,7 +43,7 @@ public class CouponServiceImpl implements CouponService {
         Coupon coupon = new Coupon();
         BeanUtils.copyProperties(universalCouponDTO, coupon);
         // 网站优惠活动生成的优惠券一定是对所有用户、所有课程均有效的
-        coupon.setUserId(-1);
+        coupon.setValidUserId(-1);
         coupon.setCourseId(-1);
         coupon.setEffective(true);
         if(CouponValidator.isInvalid(coupon))
@@ -58,7 +58,7 @@ public class CouponServiceImpl implements CouponService {
         Coupon coupon = new Coupon();
         BeanUtils.copyProperties(courseCouponDTO, coupon);
         // 课程优惠活动生成的优惠券是对所有用户均有效的
-        coupon.setUserId(-1);
+        coupon.setValidUserId(-1);
         coupon.setEffective(true);
         if(CouponValidator.isInvalid(coupon) || coupon.getCourseId() == -1)
             return new ResultVO<>(Constant.REQUEST_FAIL, "优惠信息填写有误!");
@@ -73,7 +73,7 @@ public class CouponServiceImpl implements CouponService {
         BeanUtils.copyProperties(userCouponDTO, coupon);
         coupon.setEffective(true);
         // 用户定制化优惠活动生成的优惠券仅对某个用户有效
-        if(CouponValidator.isInvalid(coupon) || coupon.getUserId() == -1)
+        if(CouponValidator.isInvalid(coupon) || coupon.getValidUserId() == -1)
             return new ResultVO<>(Constant.REQUEST_FAIL, "优惠信息填写有误!");
         if(couponMapper.insert(coupon) > 0)
             return new ResultVO<>(Constant.REQUEST_SUCCESS, "用户优惠券发放成功", new CouponVO(coupon));

+ 1 - 1
src/main/java/cn/seecoder/courselearning/serviceimpl/couponstrategy/CourseCouponStrategyImpl.java

@@ -9,6 +9,6 @@ import org.springframework.stereotype.Service;
 public class CourseCouponStrategyImpl implements CouponStrategy {
     @Override
     public boolean isMatch(CourseOrderVO orderVO, Coupon coupon) {
-        return coupon.getCourseId().equals(orderVO.getCourseId()) && coupon.getUserId() == -1;
+        return coupon.getCourseId().equals(orderVO.getCourseId()) && coupon.getValidUserId() == -1;
     }
 }

+ 1 - 1
src/main/java/cn/seecoder/courselearning/serviceimpl/couponstrategy/UniversalCouponStrategyImpl.java

@@ -9,6 +9,6 @@ import org.springframework.stereotype.Service;
 public class UniversalCouponStrategyImpl implements CouponStrategy {
     @Override
     public boolean isMatch(CourseOrderVO orderVO, Coupon coupon) {
-        return coupon.getCourseId() == -1 && coupon.getUserId() == -1;
+        return coupon.getCourseId() == -1 && coupon.getValidUserId() == -1;
     }
 }

+ 1 - 1
src/main/java/cn/seecoder/courselearning/serviceimpl/couponstrategy/UserCouponStrategyImpl.java

@@ -9,6 +9,6 @@ import org.springframework.stereotype.Service;
 public class UserCouponStrategyImpl implements CouponStrategy {
     @Override
     public boolean isMatch(CourseOrderVO orderVO, Coupon coupon) {
-        return coupon.getCourseId() == -1 || (coupon.getCourseId().equals(orderVO.getCourseId()) && coupon.getUserId().equals(orderVO.getUserId()));
+        return coupon.getCourseId() == -1 || (coupon.getCourseId().equals(orderVO.getCourseId()) && coupon.getValidUserId().equals(orderVO.getUserId()));
     }
 }

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

@@ -4,7 +4,7 @@ import cn.seecoder.courselearning.po.Coupon;
 
 public class CouponValidator {
     public static boolean isInvalid(Coupon coupon) {
-        if (coupon.getCourseId() < -1 || coupon.getUserId() < -1)
+        if (coupon.getCourseId() < -1 || coupon.getValidUserId() < -1)
             return true;
         if (coupon.getStartTime() != null && coupon.getEndTime() != null
                 && coupon.getStartTime().isAfter(coupon.getEndTime()))