zxl
3 天以前 bc17bd6324288676fe4e7a843921e57e82c7b217
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
package cn.lili.controller.lmk;
 
import cn.lili.common.utils.StringUtils;
import cn.lili.group.Update;
import cn.lili.group.Add;
import cn.lili.modules.lmk.domain.entity.StorePrizeProof;
import cn.lili.modules.lmk.domain.query.PrizeClaimRecordQuery;
import cn.lili.modules.lmk.mapper.StorePrizeProofMapper;
import cn.lili.modules.lmk.service.PrizeClaimRecordService;
import cn.lili.modules.lmk.service.StorePrizeProofService;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import lombok.RequiredArgsConstructor;
import java.util.List;
import org.springframework.validation.annotation.Validated;
import javax.validation.constraints.NotEmpty;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import cn.lili.modules.lmk.service.ScanPrizeService;
import cn.lili.base.Result;
import cn.lili.modules.lmk.domain.form.ScanPrizeForm;
import cn.lili.modules.lmk.domain.query.ScanPrizeQuery;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
 
/**
 * 店铺活动关联 前端控制器
 *
 * @author peng
 * @since 2025-09-30
 */
@Validated
@RequiredArgsConstructor
@Api(value = "店铺活动关联", tags = "店铺活动关联管理")
@RestController
@RequestMapping("/manager/lmk/scan-prize")
public class ScanPrizeController {
 
    private final ScanPrizeService scanPrizeService;
    private final PrizeClaimRecordService prizeClaimRecordService;
 
    private final StorePrizeProofMapper storePrizeProofMapper;
 
    private final COSUtil cosUtil;
    @PutMapping
    @ApiOperation(value = "修改", notes = "修改")
    public Result update(@RequestBody @Validated(Update.class) ScanPrizeForm form) {
        return scanPrizeService.update(form);
    }
 
    @DeleteMapping("/{id}")
    @ApiOperation(value = "ID删除", notes = "ID删除")
    public Result removeById(@PathVariable("id") String id) {
        return scanPrizeService.removeById(id);
    }
 
    @DeleteMapping("/batch")
    @ApiOperation(value = "批量删除", notes = "批量删除")
    public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) {
        return scanPrizeService.remove(ids);
    }
 
    @GetMapping("/page")
    @ApiOperation(value = "分页", notes = "分页")
    public Result page(ScanPrizeQuery query) {
        return scanPrizeService.page(query);
    }
 
    @GetMapping("/{id}")
    @ApiOperation(value = "详情", notes = "详情")
    public Result detail(@PathVariable("id") String id) {
        return scanPrizeService.detail(id);
    }
 
    @GetMapping("/list")
    @ApiOperation(value = "列表", notes = "列表")
    public Result list() {
        return scanPrizeService.all();
    }
 
 
    @PostMapping
    @ApiOperation(value = "添加", notes = "添加")
    public Result add(@RequestBody @Validated(Add.class) ScanPrizeForm form) {
        return scanPrizeService.add(form);
    }
 
    /**
     * 修改订单店铺抽奖机会状态
     * @param id
     * @return
     */
    @PostMapping("/changeStatus/{id}")
    public Result changeStatus(@PathVariable String id){
        return  scanPrizeService.changeStatus(id);
    }
 
    /**
     * 根据店铺关联关系生成单品
     * @param id
     * @return
     */
    @PostMapping("/generateStorePrize/{id}")
    public Result generateStorePrize(@PathVariable String id){
        return  scanPrizeService.generateStorePrize(id);
    }
 
 
    @GetMapping("/getClaimPage")
    public Result getClaimPage(PrizeClaimRecordQuery query){
        return prizeClaimRecordService.page(query,"manager");
    }
 
    @GetMapping("/getDetailData/{id}")
    public Result getDetailData(@PathVariable String id){
        StorePrizeProof vo = new LambdaQueryChainWrapper<>(storePrizeProofMapper)
                .eq(StorePrizeProof::getStorePrizeClaimId, id)
                .eq(StorePrizeProof::getDeleteFlag, 0)
                .one();
 
        if (StringUtils.isNotBlank(vo.getUrlPath()))   {
            vo.setUrlPath( cosUtil.getPreviewUrl(vo.getUrlPath()));
        }
 
        return Result.ok().data(vo);
    }
}