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/CouponTemplateAppController.java | 171 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 171 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateAppController.java b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateAppController.java
new file mode 100644
index 0000000..fb33a94
--- /dev/null
+++ b/src/main/java/com/mzl/flower/web/v2/coupon/CouponTemplateAppController.java
@@ -0,0 +1,171 @@
+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.config.security.SecurityUtils;
+import com.mzl.flower.dto.request.coupon.CreateCouponRecordAppDTO;
+import com.mzl.flower.dto.request.coupon.CreateCouponRecordDTO;
+import com.mzl.flower.dto.request.coupon.QueryActivityEffectCouponDTO;
+import com.mzl.flower.dto.request.coupon.QueryMineCouponRecordDTO;
+import com.mzl.flower.dto.response.coupon.CouponTemplateAppVO;
+import com.mzl.flower.dto.response.coupon.CouponTemplateVO;
+import com.mzl.flower.dto.response.customer.CustomerDTO;
+import com.mzl.flower.entity.coupon.CouponTemplateDO;
+import com.mzl.flower.enums.CouponCategoryEnum;
+import com.mzl.flower.enums.CouponGetTypeEnum;
+import com.mzl.flower.enums.CouponStatusEnum;
+import com.mzl.flower.enums.CouponUsedStatusEnum;
+import com.mzl.flower.mapper.customer.CustomerMapper;
+import com.mzl.flower.service.coupon.CouponRecordService;
+import com.mzl.flower.service.coupon.CouponTemplateService2;
+import com.mzl.flower.utils.ConverterUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * @author @TaoJie
+ * @since 2024-08-22
+ */
+@RestController
+@RequestMapping("/api/v2/coupon/app")
+@Api(value = "优惠券管理-小程序", tags = "优惠券管理-小程序")
+@Validated
+public class CouponTemplateAppController extends BaseController {
+
+ @Autowired
+ CouponTemplateService2 couponTemplateService;
+
+ @Autowired
+ CouponRecordService couponRecordService;
+
+
+ @Autowired
+ CustomerMapper customerMapper;
+
+// @GetMapping("/home/list")
+// @ApiOperation(value = "查询-首页弹框", notes = "查询-首页弹框")
+// public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> homeList(QueryActivityEffectCouponDTO dto) {
+// // 活动优惠券
+// dto.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
+// // 已经发布
+// dto.setStatus(CouponStatusEnum.ACTIVE.getStatus());
+// // 首页弹窗
+// dto.setGetType(CouponGetTypeEnum.HOME.getType());
+// return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getActivityEffectList(dto), CouponTemplateAppVO.class));
+// }
+
+ @GetMapping("/home/alert")
+ @ApiOperation(value = "查询-首页弹框", notes = "查询-首页弹框")
+ public ResponseEntity<ReturnDataDTO<CouponTemplateVO>> homeAlert(QueryActivityEffectCouponDTO dto) {
+ // 活动优惠券
+ dto.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
+ // 已经发布
+ dto.setStatus(CouponStatusEnum.ACTIVE.getStatus());
+ // 首页弹窗
+ dto.setGetType(CouponGetTypeEnum.HOME.getType());
+ // 如果当前人员已经领取过的话,则不返回
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transObject(couponTemplateService.getHomeActivityEffectAlert(dto), CouponTemplateAppVO.class));
+ }
+
+ @GetMapping("/activy/list")
+ @ApiOperation(value = "查询-活动入口", notes = "查询-活动入口")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> activyList(QueryActivityEffectCouponDTO dto) {
+ // 活动优惠券
+ dto.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
+ // 已经发布
+ dto.setStatus(CouponStatusEnum.ACTIVE.getStatus());
+ // 活动入口
+ dto.setGetType(CouponGetTypeEnum.ACTIVITY.getType());
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getActivityEffectList(dto), CouponTemplateAppVO.class));
+
+ }
+
+ @GetMapping("/center/list")
+ @ApiOperation(value = "查询-领券中心", notes = "查询-领券中心")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> centerList(QueryActivityEffectCouponDTO dto) {
+ // 活动优惠券
+ dto.setCategory(CouponCategoryEnum.ACTIVITY.getStatus());
+ // 已经发布
+ dto.setStatus(CouponStatusEnum.ACTIVE.getStatus());
+ // 首页弹窗
+ dto.setGetType(CouponGetTypeEnum.CENTER.getType());
+
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponTemplateService.getActivityEffectList(dto), CouponTemplateAppVO.class));
+
+ }
+
+ @GetMapping("/mine/unused/list")
+ @ApiOperation(value = "我的优惠券-未使用", notes = "我的优惠券-未使用")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> unusedList(QueryMineCouponRecordDTO dto) {
+ // 未使用
+ dto.setStatus(CouponUsedStatusEnum.UNUSED.getType());
+ dto.setUserId(SecurityUtils.getUserId());
+
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponRecordService.getMineCouponRecordList(dto), CouponTemplateAppVO.class));
+
+ }
+ @GetMapping("/mine/used/list")
+ @ApiOperation(value = "我的优惠券-已使用", notes = "我的优惠券-已使用")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> usedList(QueryMineCouponRecordDTO dto) {
+
+ // 已使用
+ dto.setStatus(CouponUsedStatusEnum.USED.getType());
+ dto.setUserId(SecurityUtils.getUserId());
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponRecordService.getMineCouponRecordList(dto), CouponTemplateAppVO.class));
+
+ }
+
+ @GetMapping("/mine/expired/list")
+ @ApiOperation(value = "我的优惠券-已过期", notes = "我的优惠券-已过期")
+ public ResponseEntity<ReturnDataDTO<Page<CouponTemplateVO>>> expiredList(QueryMineCouponRecordDTO dto) {
+ // 已过期
+ dto.setStatus(CouponUsedStatusEnum.EXPIRED.getType());
+ dto.setUserId(SecurityUtils.getUserId());
+ return returnData(R.SUCCESS.getCode(), ConverterUtil.transList(couponRecordService.getMineCouponRecordList(dto), CouponTemplateAppVO.class));
+
+ }
+
+ @PostMapping("/receive")
+ @ApiOperation(value = "优惠券领取", notes = "优惠券领取")
+ public ResponseEntity<ReturnDataDTO> create(@Validated @RequestBody CreateCouponRecordAppDTO dto) {
+
+ final CouponTemplateDO couponTemplateDO = couponTemplateService.getById(dto.getCouponId());
+ if(null==couponTemplateDO){
+ throw new ValidationException("优惠券不存在");
+ }
+
+ if(StringUtils.isNotBlank(couponTemplateDO.getStatus()) && couponTemplateDO.getStatus().equals(CouponStatusEnum.INACTIVE.getStatus())){
+ throw new ValidationException("优惠券还未发布");
+ }
+ if(StringUtils.isNotBlank(couponTemplateDO.getStatus()) && couponTemplateDO.getStatus().equals(CouponStatusEnum.EXPIRED.getStatus())){
+ throw new ValidationException("优惠券已下架");
+ }
+
+ // 根据当前获取获取商户的ID
+ CustomerDTO currentCustomer = customerMapper.getCurrentCustomer(SecurityUtils.getUserId());
+ if(null==currentCustomer){
+ throw new ValidationException("当前登录的用户记录不存在");
+ }
+ // 设置当前用户为登录用户
+ dto.setCustomerId(currentCustomer.getId());
+
+ CreateCouponRecordDTO dtoTrans=new CreateCouponRecordDTO();
+ BeanUtils.copyProperties(dto,dtoTrans);
+
+ couponRecordService.createCouponRecord(dtoTrans);
+ return returnData(R.SUCCESS.getCode(), null);
+ }
+
+
+}
--
Gitblit v1.9.3