From 8b1376a256d8750f718276cbe475cb6f1f7ebddc Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 13 八月 2024 11:14:51 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java | 82 ++++++++++++++++++++++++++++++++++++++++- 1 files changed, 80 insertions(+), 2 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java index 7462917..cbcd8b3 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java @@ -1,9 +1,12 @@ package com.ruoyi.other.controller; +import com.ruoyi.account.api.dto.GrantCouponDto; import com.ruoyi.account.api.feignClient.AppCouponClient; import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery; +import com.ruoyi.account.api.vo.CouponListVOVO; import com.ruoyi.account.api.vo.ExchangeRecordVO; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.other.api.domain.TCoupon; @@ -13,9 +16,18 @@ import com.ruoyi.other.service.TActivityService; import com.ruoyi.other.service.TCouponService; import com.ruoyi.other.service.TGoodsService; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Objects; /** * <p> @@ -64,13 +76,79 @@ @PostMapping("/exchangeRecord") @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情-兑换记录") public AjaxResult<PageInfo<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) { - - return AjaxResult.ok(null); + PageInfo<ExchangeRecordVO> data = appCouponClient.getExchangeRecordByCouponId(dto).getData(); + List<ExchangeRecordVO> records = data.getRecords(); + for (ExchangeRecordVO record : records) { + TCoupon byId = tCouponService.getById(record.getCouponId()); + if (byId!=null){ + record.setDiscountAmount("¥"+byId.getDiscountAmount()); + if (Objects.equals(byId.getMeetTheConditions(), BigDecimal.ZERO)){ + record.setMeetTheConditions("无门槛"); + }else{ + record.setMeetTheConditions("满"+byId.getMeetTheConditions()+"元可用"); + } + } + } + return AjaxResult.ok(data); } + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "发放优惠券") + @GetMapping(value = "/grantCoupon") + public AjaxResult grantCoupon(@RequestBody GrantCouponDto dto) { + TCoupon byId = tCouponService.getById(dto.getCouponId()); + Integer waysToObtain = byId.getWaysToObtain(); + dto.setWaysToObtain(waysToObtain); + switch (byId.getValidityPeriodMode()){ + case 1: + dto.setEndTime(byId.getEndTime()); + break; + case 2: + dto.setEndTime(LocalDateTime.now().plusDays(byId.getDays())); + break; + } + appCouponClient.grantCoupon(dto); + return AjaxResult.success(); + } + @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询") @PostMapping(value = "/pageList") public AjaxResult<PageInfo<TCoupon>> pageList(@RequestBody CouponQuery dto) { return AjaxResult.ok(tCouponService.pageList(dto)); } + + /** + * 小程序远程调用 获取优惠券信息 + */ + @PostMapping(value = "/getCouponInfoByCouponIds") + public R<List<CouponListVOVO>> getCouponInfoByCouponIds(@RequestBody List<CouponListVOVO> list) { + for (CouponListVOVO couponListVOVO : list) { + TCoupon byId = tCouponService.getById(couponListVOVO.getCouponId()); + BeanUtils.copyProperties(byId,couponListVOVO); + couponListVOVO.setCouponName(byId.getName()); + // 根据预付金额 判断是否满足 + if (byId.getMeetTheConditions().compareTo(BigDecimal.ZERO) == 0){ + // 无门槛 + couponListVOVO.setIsUse(1); + }else if (couponListVOVO.getPayMoney().compareTo(byId.getMeetTheConditions()) < 0){ + couponListVOVO.setIsUse(0); + }else{ + couponListVOVO.setIsUse(1); + } + // 根据优惠券类型和预付金额 判断哪一个优惠券减免的金额最大 将其排在第一位 + if (couponListVOVO.getIsUse() == 1){ + switch (byId.getPreferentialMode()){ + case 1: + couponListVOVO.setMoney(byId.getDiscountAmount()); + break; + case 2: + + break; + } + }else{ + couponListVOVO.setMoney(BigDecimal.ZERO); + } + + } + return R.ok(list); + } } -- Gitblit v1.7.1