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 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> pageImportList(ChannelInfoPageDto pageDto) { IPage result = channelInfoService.pageImportList(pageDto); return ResultJson.ok(result); } @PostMapping(value = "/addChannelInfo") @ApiOperation(value = "新增渠道") @PreAuthorize("hasAuthority('channelInfo.addChannelInfo')") public ResultJson addChannelInfo(@RequestBody ChannelInfoDto channelInfoDto) { ChannelInfoVo info = channelInfoService.addChannelInfo(channelInfoDto); return ResultJson.ok(info); } @PostMapping(value = "/editChannelInfo") @ApiOperation(value = "编辑渠道") @PreAuthorize("hasAuthority('channelInfo.editChannelInfo')") public ResultJson 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> getSupermarketList(@PathVariable("id") Long id, PageRequest pageRequest) { IPage result = channelInfoService.pageSupermarkets(id, pageRequest); return ResultJson.ok(result); } @GetMapping(value = "/getChannelInfoByKey") @ApiOperation(value = "通过渠道Key获取渠道信息") public ResultJson getChannelInfoByKey(String appId, HttpServletRequest request) { ChannelConfigVo result = channelInfoService.getChannelInfoByKey(appId, request); return ResultJson.ok(result); } @PostMapping(value = "/editMemberDefault") @ApiOperation(value = "编辑会员默认权益") public ResultJson editMemberDefault(@RequestBody ChannelInfoDefaultVipDto channelInfo) { channelInfoService.editMemberDefault(channelInfo); return ResultJson.success(); } @PostMapping(value = "/editChannelLoanMarket") @ApiOperation(value = "编辑渠道贷超配置") @PreAuthorize("hasAuthority('channelInfo.editChannelLoanMarket')") public ResultJson editChannelLoanMarket(@RequestBody ChannelLoanMarketDto channelLoanMarketDto) { channelSupermarketService.editChannelLoanMarket(channelLoanMarketDto); return ResultJson.success(); } @GetMapping(value = "/pageH5LoanMarkets/{id}") @ApiOperation(value = "根据渠道Id获取H5贷超管理列表") @PreAuthorize("hasAuthority('channelInfo.pageH5LoanMarkets')") public ResultJson> pageH5LoanMarkets(@PathVariable("id") Long id, PageRequest pageRequest) { IPage result = channelInfoService.pageH5LoanMarkets(id, pageRequest); return ResultJson.ok(result); } @PostMapping(value = "/editH5LoanMarket") @ApiOperation(value = "编辑H5渠道贷超配置") @PreAuthorize("hasAuthority('channelInfo.editH5LoanMarket')") public ResultJson editH5LoanMarket(@RequestBody ChannelLoanMarketDto channelLoanMarketDto) { h5ChannelLoanMarketService.editH5LoanMarket(channelLoanMarketDto); return ResultJson.success(); } @GetMapping(value = "/getLoanMarketHotLinkList") @ApiOperation(value = "获取贷超直链列表") @PreAuthorize("hasAuthority('loanMarketHotLink.getLoanMarketHotLinkList')") public ResultJson> getLoanMarketHotLinkList() { List result = loanSupermarketService.getLoanMarketHotLinkList(); return ResultJson.ok(result); } @PostMapping(value = "/editLoanMarketHotLink") @ApiOperation(value = "编辑渠道贷超直链配置") @PreAuthorize("hasAuthority('loanMarketHotLink.edit')") public ResultJson editLoanMarketHotLink(@RequestBody ChannelLoanMarketHotLinkDto loanMarketHotLinkDto) { channelInfoService.editLoanMarketHotLink(loanMarketHotLinkDto); return ResultJson.success(); } }