hjl
2024-07-23 562699fa6d0c279fe0f4f81ce87c336a34a3fb91
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.ruoyi.admin.controller;
 
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.entity.Prize;
import com.ruoyi.admin.service.PrizeService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
 
/**
 * <p>
 * 奖品管理 前端控制器
 * </p>
 *
 * @author hjl
 * @since 2024-05-29
 */
@RestController
@RequestMapping("/prize")
@Api(tags = {"后台-系统设置-奖品管理"})
public class PrizeController {
 
    @Resource
    private PrizeService prizeService;
 
    /**
     * 奖品分页列表
     *
     * @param pageNum  页码
     * @param pageSize 每页显示条数
     */
    @RequiresPermissions("prize_list")
    @ApiOperation(value = "奖品分页查询列表", tags = {"后台-系统设置-奖品管理"})
    @GetMapping(value = "/page")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
            @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true)
    })
    public R<IPage<Prize>> queryPageList(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
                                         @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        return R.ok(prizeService.lambdaQuery().eq(Prize::getIsDelete, 0)
                .orderByDesc(Prize::getCreateTime).page(Page.of(pageNum, pageSize)));
    }
 
    /**
     * 奖品详情
     *
     * @param id 奖品id
     */
    @RequiresPermissions("prize_detail")
    @ApiOperation(value = "奖品详情", tags = {"后台-系统设置-奖品管理"})
    @GetMapping(value = "/detail")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "奖品id", name = "id", dataType = "Integer", required = true)
    })
    public R<Prize> detail(@RequestParam Integer id) {
        return R.ok(prizeService.getById(id));
    }
 
    /**
     * 新增奖品
     *
     * @param prize 奖品信息
     */
    @RequiresPermissions("prize_save")
    @ApiOperation(value = "新增奖品", tags = {"后台-系统设置-奖品管理"})
    @PostMapping(value = "/save")
    public R<String> save(@RequestBody Prize prize) {
        return prizeService.save(prize) ? R.ok() : R.fail();
    }
 
    /**
     * 编辑奖品
     *
     * @param prize 奖品信息
     */
    @RequiresPermissions("prize_update")
    @ApiOperation(value = "编辑奖品", tags = {"后台-系统设置-奖品管理"})
    @PostMapping(value = "/update")
    public R<String> update(@RequestBody Prize prize) {
        return prizeService.updateById(prize) ? R.ok() : R.fail();
    }
 
    /**
     * 根据id批量删除奖品
     *
     * @param ids 奖品id拼接
     */
    @RequiresPermissions("prize_delete")
    @ApiOperation(value = "批量删除奖品", tags = {"后台-系统设置-奖品管理"})
    @GetMapping(value = "/batchDelete")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "多条奖品id ',' 拼接", name = "ids", dataType = "String", required = true)
    })
    public R<String> batchDelete(@RequestParam String ids) {
        List<String> idList = Arrays.stream(ids.split(",")).collect(Collectors.toList());
        List<Prize> list = prizeService.lambdaQuery().in(Prize::getId, idList).list();
        list.forEach(data -> data.setIsDelete(1));
        return prizeService.updateBatchById(list) ? R.ok() : R.fail();
    }
 
    /**
     * 奖品列表 -- 远程调用
     */
    @GetMapping(value = "/prizeList")
    public R<List<Prize>> prizeList() {
        return R.ok(prizeService.lambdaQuery().eq(Prize::getIsDelete, 0)
                .orderByDesc(Prize::getCreateTime).list());
    }
 
    /**
     * 奖品详情 -- 远程调用
     */
    @GetMapping(value = "/prizeDetail")
    public R<Prize> prizeDetail(@RequestParam("id") String id) {
        return R.ok(prizeService.lambdaQuery().eq(Prize::getIsDelete, 0)
                .eq(Prize::getId, id).one());
    }
 
}