From a768dc3daa04d35fedfbe75c0a59b9b2545b85c4 Mon Sep 17 00:00:00 2001
From: gongzuming <gongzuming>
Date: 星期四, 19 九月 2024 16:59:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master-v2'

---
 src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateController.java |  160 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 160 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateController.java
new file mode 100644
index 0000000..aa89964
--- /dev/null
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateController.java
@@ -0,0 +1,160 @@
+package com.mzl.flower.web.v2.coupon;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.mzl.flower.base.BaseController;
+import com.mzl.flower.base.R;
+import com.mzl.flower.base.ReturnDataDTO;
+import com.mzl.flower.config.exception.ValidationException;
+import com.mzl.flower.dto.request.coupon.CreateCouponTemplateDTO;
+import com.mzl.flower.dto.request.coupon.QueryCouponDTO;
+import com.mzl.flower.dto.response.coupon.CouponTemplateActivyVO;
+import com.mzl.flower.enums.CouponUsageTypeEnum;
+import com.mzl.flower.service.coupon.CouponTemplateService2;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import com.mzl.flower.entity.coupon.CouponTemplateDO;
+
+
+/**
+* @author @TaoJie
+* @since 2024-08-22
+*/
+@RestController
+@RequestMapping("/api/v2/coupon/all")
+//@Api(value = "优惠券管理-活动", tags = "优惠券管理-活动")
+@Validated
+public class CouponTemplateController extends BaseController {
+
+    @Autowired
+    CouponTemplateService2 couponTemplateService;
+
+    @PostMapping("")
+    @ApiOperation(value = "新增优惠券", notes = "新增优惠券")
+    public ResponseEntity<ReturnDataDTO> create(@Validated @RequestBody CreateCouponTemplateDTO dto) {
+
+        // 信息验证
+        valid(dto);
+
+//        couponTemplateService.createCouponTemplate(dto);
+        return returnData(R.SUCCESS.getCode(), null);
+    }
+
+    @PutMapping("/{id}")
+    @ApiOperation(value = "修改", notes = "修改")
+    public ResponseEntity<ReturnDataDTO>  update(@PathVariable String id,@Validated @RequestBody CreateCouponTemplateDTO dto) {
+
+        // 手动设置id值
+        dto.setId(id);
+        CouponTemplateDO couponTemplateDO= couponTemplateService.getById(dto.getId());
+        if(null==couponTemplateDO){
+            throw new ValidationException("优惠券不存在");
+        }
+
+        // 信息验证
+        valid(dto);
+
+//        couponTemplateService.updateCouponTemplate(dto);
+
+        return returnData(R.SUCCESS.getCode(), null);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation(value = "删除", notes = "删除")
+    public ResponseEntity<ReturnDataDTO> delete(@PathVariable String id ) {
+
+        CouponTemplateDO couponTemplateDO= couponTemplateService.getById(id);
+        if(null==couponTemplateDO){
+            throw new ValidationException("优惠券不存在");
+        }
+        couponTemplateService.deleteCouponTemplate(id);
+        return returnData(R.SUCCESS.getCode(), null);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation(value = "详情", notes = "详情")
+    public ResponseEntity<ReturnDataDTO>  get(@PathVariable String id) {
+//        CouponTemplateActivyVO couponTemplateActivyVO=couponTemplateService.getActivityCouponDetailById(id);
+        return returnData(R.SUCCESS.getCode(),null);
+    }
+
+    @GetMapping("/page")
+    @ApiOperation(value = "查询-分页", notes = "查询-分页")
+    public ResponseEntity<ReturnDataDTO<Page<CouponTemplateActivyVO>>> page(
+            Page page, QueryCouponDTO dto
+    ) {
+//        couponTemplateService.getActivityPage(page,dto);
+        return returnData(R.SUCCESS.getCode(), null);
+    }
+
+    @GetMapping("/list")
+    @ApiOperation(value = "查询-全部", notes = "查询-全部")
+    public ResponseEntity<ReturnDataDTO<Page<CouponTemplateActivyVO>>> list(QueryCouponDTO dto
+    ) {
+//        couponTemplateService.getActivityList(dto)
+        return returnData(R.SUCCESS.getCode(), null);
+    }
+
+
+    @PutMapping("/active/{id}")
+    @ApiOperation(value = "发布", notes = "发布")
+    public ResponseEntity<ReturnDataDTO>  active(@PathVariable String id) {
+
+        CouponTemplateDO couponTemplateDO= couponTemplateService.getById(id);
+        if(null==couponTemplateDO){
+            throw new ValidationException("优惠券不存在");
+        }
+
+        couponTemplateService.activeCouponTemplate(id);
+
+        return returnData(R.SUCCESS.getCode(), null);
+    }
+
+    @PutMapping("/expire/{id}")
+    @ApiOperation(value = "下架", notes = "下架")
+    public ResponseEntity<ReturnDataDTO>  expire(@PathVariable String id) {
+
+        CouponTemplateDO couponTemplateDO= couponTemplateService.getById(id);
+        if(null==couponTemplateDO){
+            throw new ValidationException("优惠券不存在");
+        }
+
+        couponTemplateService.expireCouponTemplate(id);
+
+        return returnData(R.SUCCESS.getCode(), null);
+    }
+
+
+    private void valid(CreateCouponTemplateDTO dto){
+        // 领取后 固定时间
+        if(StringUtils.isNotBlank(dto.getUsageType()) && dto.getUsageType().equals(CouponUsageTypeEnum.FIXED.getType()) ){
+            // 如果使用时间是固定时间的话,那么固定时间的开始时间和结束时间就不能为空
+            if(dto.getUsageStartDate()==null){
+                throw new ValidationException("固定时间开始日期不能为空");
+            }
+            if(dto.getUsageEndDate()==null){
+                throw new ValidationException("固定时间结束日期不能为空");
+            }
+        }
+
+        // 领取后 有效时间
+        if(StringUtils.isNotBlank(dto.getUsageType()) && dto.getUsageType().equals(CouponUsageTypeEnum.GET_AFTER_TIME.getType())){
+            // 如果使用时间是领取后有效时间的话,那么领取后的时间类型不能为空,且时间不能为空
+            if(StringUtils.isBlank(dto.getUsageTimeType())){
+                throw new ValidationException("领取后有效时间类型不能为空");
+            }
+
+            if(dto.getUsageTimeNum()==null){
+                throw new ValidationException("领取后有效时间整数不能为空");
+            }
+            if(dto.getUsageTimeNum()<=0){
+                throw new ValidationException("领取后有效时间整数需要大于0");
+            }
+        }
+    }
+
+}

--
Gitblit v1.9.3