无关风月
2024-09-12 a75bb5cc48daa9eaf6e40933e96bb0b8ff144ddc
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -1,6 +1,7 @@
package com.ruoyi.other.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.account.api.dto.GrantCouponDto;
import com.ruoyi.account.api.feignClient.AppCouponClient;
import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
@@ -9,10 +10,15 @@
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.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.other.api.domain.Region;
import com.ruoyi.other.api.domain.TCoupon;
import com.ruoyi.other.api.domain.TGoods;
import com.ruoyi.other.api.dto.GoodsDTO;
import com.ruoyi.other.query.CouponQuery;
import com.ruoyi.other.service.IRegionService;
import com.ruoyi.other.service.TActivityService;
import com.ruoyi.other.service.TCouponService;
import com.ruoyi.other.service.TGoodsService;
@@ -23,13 +29,16 @@
import io.swagger.annotations.ApiParam;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * <p>
@@ -48,9 +57,19 @@
    @Autowired
    private AppCouponClient appCouponClient;
    /**
     * 远程调用 根据名称 查询优惠券ids
     * @return
     */
    @PostMapping("/getCouponIdsByName/{name}")
    public R<List<Integer>> getCouponIdsByName(@PathVariable("name")String name) {
        List<Integer> collect = tCouponService.list(new QueryWrapper<TCoupon>()
                .eq("name", name)).stream().map(TCoupon::getId).collect(Collectors.toList());
        return R.ok(collect);
    }
    @PostMapping("/saveGoods")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券添加")
    @Log(title = "【优惠券管理】添加优惠券", businessType = BusinessType.INSERT,operatorType = OperatorType.MANAGE)
    public AjaxResult saveActivity(@RequestBody TCoupon dto) {
        tCouponService.save(dto);
        return AjaxResult.success();
@@ -60,8 +79,9 @@
    @GetMapping("/delete")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券删除")
    public AjaxResult delete(Integer id) {
        tCouponService.removeById(id);
    @Log(title = "【优惠券管理】删除优惠券", businessType = BusinessType.DELETE,operatorType = OperatorType.MANAGE)
    public AjaxResult delete(String ids) {
        tCouponService.removeBatchByIds(Arrays.asList(ids.split(",")));
        return AjaxResult.success();
    }
@@ -69,6 +89,7 @@
    @PostMapping("/updateVip")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券修改")
    @Log(title = "【优惠券管理】修改优惠券", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE)
    public AjaxResult updateActivity(@RequestBody TCoupon dto) {
        tCouponService.updateById(dto);
        return AjaxResult.success();
@@ -91,10 +112,9 @@
    @PostMapping("/exchangeRecord")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情-兑换记录")
    public AjaxResult<PageInfo<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) {
        PageInfo<ExchangeRecordVO> data = appCouponClient.getExchangeRecordByCouponId(dto).getData();
        List<ExchangeRecordVO> records = data.getRecords();
        for (ExchangeRecordVO record : records) {
    public AjaxResult<List<ExchangeRecordVO>> exchangeRecord(@RequestBody ExchangeRecordGoodsQuery dto) {
        List<ExchangeRecordVO> data = appCouponClient.getExchangeRecordByCouponId(dto).getData();
        for (ExchangeRecordVO record : data) {
            TCoupon byId = tCouponService.getById(record.getCouponId());
            if (byId!=null){
                    record.setDiscountAmount("¥"+byId.getDiscountAmount());
@@ -107,13 +127,17 @@
                record.setDetailsPicture(byId.getDetailsPicture());
            }
        }
        PageInfo<ExchangeRecordVO> exchangeRecordVOPageInfo = new PageInfo<>(1, 99999999);
        exchangeRecordVOPageInfo.setRecords(data);
        return AjaxResult.ok(data);
    }
    @Autowired
    private IRegionService regionService;
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "发放优惠券")
    @GetMapping(value = "/grantCoupon")
    @PostMapping(value = "/grantCoupon")
    @Log(title = "【优惠券管理】发放优惠券", businessType = BusinessType.OTHER,operatorType = OperatorType.MANAGE)
    public AjaxResult grantCoupon(@RequestBody GrantCouponDto dto) {
        TCoupon byId = tCouponService.getById(dto.getCouponId());
        Integer waysToObtain = byId.getWaysToObtain();
@@ -126,18 +150,36 @@
                dto.setEndTime(LocalDateTime.now().plusDays(byId.getDays()));
                break;
        }
        if (StringUtils.hasLength(dto.getProvinceCode())){
            for (String s : dto.getProvinceCode().split(",")) {
                Region code = regionService.getOne(new QueryWrapper<Region>()
                        .eq("code", s));
                List<String> collect = regionService.list(new QueryWrapper<Region>()
                        .eq("parent_id", code.getId())).stream().map(Region::getCode).collect(Collectors.toList());
                StringBuilder temp = new StringBuilder();
                for (String string : collect) {
                    temp.append(string).append(",");
                }
                if (StringUtils.hasLength(dto.getCityCode())){
                    String s1 = dto.getCityCode() + "," + temp;
                    // 去除最后一位字符
                    dto.setCityCode(s1.substring(0, s1.length() - 1));
                }else{
                    String substring = temp.substring(0, temp.length() - 1);
                    dto.setCityCode(substring);
                }
            }
        }
        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));
    }
    /**
     * 小程序远程调用 获取优惠券信息
@@ -152,8 +194,6 @@
        return R.ok(list);
    }
    /**
     * 根据id获取优惠券信息
     * @param id
@@ -164,5 +204,23 @@
        TCoupon coupon = tCouponService.getById(id);
        return R.ok(coupon);
    }
    @PostMapping(value = "/getCouponById")
    public R<TCoupon> getCouponById(@RequestParam("id") Integer id){
        TCoupon coupon = tCouponService.getById(id);
        return R.ok(coupon);
    }
    /**
     * 修改优惠券
     * @param coupon
     * @return
     */
    @PostMapping(value = "/updateCoupon")
    public R updateCoupon(@RequestBody TCoupon coupon){
        tCouponService.updateById(coupon);
        return R.ok();
    }
}