Sunshine
2024-11-04 919ed870ea1def0cfdd1dff23bec204975e7f34c
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
132
133
134
135
136
137
138
139
140
141
142
143
144
package com.nova.sankuai.controller.v1;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nova.sankuai.domain.dto.*;
import com.nova.sankuai.domain.entity.ChannelInfo;
import com.nova.sankuai.domain.vo.LoanMarketHotLinkVo;
import com.nova.sankuai.domain.vo.LoanSupermarketVo;
import com.nova.sankuai.domain.vo.channel.ChannelConfigVo;
import com.nova.sankuai.domain.vo.channel.ChannelInfoVo;
import com.nova.sankuai.infra.config.CommonException;
import com.nova.sankuai.infra.utils.PageRequest;
import com.nova.sankuai.infra.utils.ResultJson;
import com.nova.sankuai.service.IChannelInfoService;
import com.nova.sankuai.service.IChannelSupermarketService;
import com.nova.sankuai.service.IH5ChannelLoanMarketService;
import com.nova.sankuai.service.ILoanSupermarketService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletRequest;
import java.util.List;
 
/**
 * @author weikangdi
 * @create 2021/12/27
 */
@Api(tags = "渠道管理")
@RestController
@RequestMapping(value = "/api/v1/channelInfo")
@AllArgsConstructor
public class ChannelInfoController {
 
    private final IChannelInfoService channelInfoService;
 
    private final IChannelSupermarketService channelSupermarketService;
 
    private final IH5ChannelLoanMarketService h5ChannelLoanMarketService;
 
    private final ILoanSupermarketService loanSupermarketService;
 
    @GetMapping(value = "/getChannelInfo/{id}")
    @ApiOperation(value = "根据Id获取渠道信息")
    @PreAuthorize("hasAuthority('channelInfo.getChannelInfo')")
    public ResultJson<ChannelInfo> getChannelInfo(@PathVariable("id") Long id) {
        ChannelInfo channelInfo = channelInfoService.getById(id);
        if (channelInfo == null) {
            throw new CommonException("该渠道不存在");
        }
        return ResultJson.ok(channelInfo);
    }
 
 
    @GetMapping(value = "/pageImportList")
    @ApiOperation(value = "分页获取入口渠道列表")
    @PreAuthorize("hasAuthority('channelInfo.pageImportList')")
    public ResultJson<IPage<ChannelInfoVo>> pageImportList(ChannelInfoPageDto pageDto) {
        IPage<ChannelInfoVo> result = channelInfoService.pageImportList(pageDto);
        return ResultJson.ok(result);
    }
 
    @PostMapping(value = "/addChannelInfo")
    @ApiOperation(value = "新增渠道")
    @PreAuthorize("hasAuthority('channelInfo.addChannelInfo')")
    public ResultJson<ChannelInfoVo> addChannelInfo(@RequestBody ChannelInfoDto channelInfoDto) {
        ChannelInfoVo info = channelInfoService.addChannelInfo(channelInfoDto);
        return ResultJson.ok(info);
    }
 
 
    @PostMapping(value = "/editChannelInfo")
    @ApiOperation(value = "编辑渠道")
    @PreAuthorize("hasAuthority('channelInfo.editChannelInfo')")
    public ResultJson<Void> editChannelInfo(@RequestBody ChannelInfoDto channelInfoDto) {
        System.out.println("channelInfoDto::"+channelInfoDto);
        channelInfoService.editChannelInfo(channelInfoDto);
        return ResultJson.success();
    }
 
    @GetMapping(value = "/pageSupermarkets/{id}")
    @ApiOperation(value = "根据渠道Id获取贷超管理列表")
    @PreAuthorize("hasAuthority('channelInfo.pageSupermarkets')")
    public ResultJson<IPage<LoanSupermarketVo>> getSupermarketList(@PathVariable("id") Long id, PageRequest pageRequest) {
        IPage<LoanSupermarketVo> result = channelInfoService.pageSupermarkets(id, pageRequest);
        return ResultJson.ok(result);
    }
 
    @GetMapping(value = "/getChannelInfoByKey")
    @ApiOperation(value = "通过渠道Key获取渠道信息")
    public ResultJson<ChannelConfigVo> getChannelInfoByKey(String appId, HttpServletRequest request) {
        ChannelConfigVo result = channelInfoService.getChannelInfoByKey(appId, request);
        return ResultJson.ok(result);
    }
 
    @PostMapping(value = "/editMemberDefault")
    @ApiOperation(value = "编辑会员默认权益")
    public ResultJson<Void> editMemberDefault(@RequestBody ChannelInfoDefaultVipDto channelInfo) {
        channelInfoService.editMemberDefault(channelInfo);
        return ResultJson.success();
    }
 
    @PostMapping(value = "/editChannelLoanMarket")
    @ApiOperation(value = "编辑渠道贷超配置")
    @PreAuthorize("hasAuthority('channelInfo.editChannelLoanMarket')")
    public ResultJson<Void> editChannelLoanMarket(@RequestBody ChannelLoanMarketDto channelLoanMarketDto) {
        channelSupermarketService.editChannelLoanMarket(channelLoanMarketDto);
        return ResultJson.success();
    }
 
    @GetMapping(value = "/pageH5LoanMarkets/{id}")
    @ApiOperation(value = "根据渠道Id获取H5贷超管理列表")
    @PreAuthorize("hasAuthority('channelInfo.pageH5LoanMarkets')")
    public ResultJson<IPage<LoanSupermarketVo>> pageH5LoanMarkets(@PathVariable("id") Long id, PageRequest pageRequest) {
        IPage<LoanSupermarketVo> result = channelInfoService.pageH5LoanMarkets(id, pageRequest);
        return ResultJson.ok(result);
    }
 
    @PostMapping(value = "/editH5LoanMarket")
    @ApiOperation(value = "编辑H5渠道贷超配置")
    @PreAuthorize("hasAuthority('channelInfo.editH5LoanMarket')")
    public ResultJson<Void> editH5LoanMarket(@RequestBody ChannelLoanMarketDto channelLoanMarketDto) {
        h5ChannelLoanMarketService.editH5LoanMarket(channelLoanMarketDto);
        return ResultJson.success();
    }
 
 
    @GetMapping(value = "/getLoanMarketHotLinkList")
    @ApiOperation(value = "获取贷超直链列表")
    @PreAuthorize("hasAuthority('loanMarketHotLink.getLoanMarketHotLinkList')")
    public ResultJson<List<LoanMarketHotLinkVo>> getLoanMarketHotLinkList() {
        List<LoanMarketHotLinkVo> result = loanSupermarketService.getLoanMarketHotLinkList();
        return ResultJson.ok(result);
    }
 
    @PostMapping(value = "/editLoanMarketHotLink")
    @ApiOperation(value = "编辑渠道贷超直链配置")
    @PreAuthorize("hasAuthority('loanMarketHotLink.edit')")
    public ResultJson<Void> editLoanMarketHotLink(@RequestBody ChannelLoanMarketHotLinkDto loanMarketHotLinkDto) {
        channelInfoService.editLoanMarketHotLink(loanMarketHotLinkDto);
        return ResultJson.success();
    }
}