luodangjia
2024-08-13 8b1376a256d8750f718276cbe475cb6f1f7ebddc
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -4,7 +4,9 @@
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;
@@ -18,6 +20,7 @@
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.*;
@@ -89,8 +92,8 @@
        return AjaxResult.ok(data);
    }
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "发放优惠券")
    @GetMapping(value = "/pageList")
    public AjaxResult pageList(@RequestBody GrantCouponDto dto) {
    @GetMapping(value = "/grantCoupon")
    public AjaxResult grantCoupon(@RequestBody GrantCouponDto dto) {
        TCoupon byId = tCouponService.getById(dto.getCouponId());
        Integer waysToObtain = byId.getWaysToObtain();
        dto.setWaysToObtain(waysToObtain);
@@ -102,13 +105,50 @@
                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);
    }
}