zhibing.pu
2024-08-10 c3363d35b8dd42a862681d505360cd2c72d070a1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
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.ExchangeRecordVO;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
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.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.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>
 *  前端控制器
 * </p>
 *
 * @author 无关风月
 * @since 2024-08-06
 */
@RestController
@RequestMapping("/t-coupon")
public class TCouponController {
    @Autowired
    private TCouponService tCouponService;
 
    @Autowired
    private AppCouponClient appCouponClient;
    @PostMapping("/saveGoods")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券添加")
    public AjaxResult saveActivity(@RequestBody TCoupon dto) {
        tCouponService.save(dto);
        return AjaxResult.success();
    }
    @GetMapping("/delete")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券删除")
    public AjaxResult delete(Integer id) {
        tCouponService.removeById(id);
        return AjaxResult.success();
    }
    @PostMapping("/updateVip")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券修改")
    public AjaxResult updateActivity(@RequestBody TCoupon dto) {
        tCouponService.updateById(dto);
        return AjaxResult.success();
    }
    @GetMapping("/getInfo")
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券查看详情")
    public AjaxResult<TCoupon> getInfo(Integer id) {
        TCoupon byId = tCouponService.getById(id);
        // 查询累计发放数量
        byId.setCount(appCouponClient.getCountByCouponIds(String.valueOf(id)).getData().get(0));
        // 查询累计使用数量
        byId.setUseCount(appCouponClient.getUseCountByCouponId(id).getData());
        return AjaxResult.ok(byId);
    }
    @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) {
            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 = "/pageList")
    public AjaxResult pageList(@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;
        }
        // 远程送优惠券
        return AjaxResult.success();
    }
    @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询")
    @PostMapping(value = "/pageList")
    public AjaxResult<PageInfo<TCoupon>> pageList(@RequestBody CouponQuery dto) {
        return AjaxResult.ok(tCouponService.pageList(dto));
    }
}