puzhibing
2023-12-13 1772afb069b75871572c9c438bbd2bc403f864df
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -1,22 +1,34 @@
package com.ruoyi.shop.controller.management;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.shop.domain.dto.*;
import com.ruoyi.shop.domain.pojo.shop.BankBranchCode;
import com.ruoyi.shop.domain.vo.*;
import com.ruoyi.shop.service.shop.*;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
/**
 * @author jqs34
@@ -29,6 +41,8 @@
@RestController
@RequestMapping("/mgt/shop")
public class MgtShopController {
    Logger logger = LoggerFactory.getLogger(MgtShopController.class);
    @Resource
    private ShopService shopService;
@@ -45,8 +59,14 @@
    @Resource
    private ShopCertificateService shopCertificateService;
    @Resource
    private BankBranchCodeService bankBranchCodeService;
    @RequestMapping(value = "/listMgtShopSimpleVo", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取商户列表")
    @ApiOperation(value = "获取简易商户列表")
    public R<List<MgtShopListSimpleVo>> listMgtShopSimpleVo(@RequestBody MgtShopListDto mgtShopListDto) {
        List<MgtShopListSimpleVo> mgtShopListSimpleVoList = shopService.listMgtShopSimpleVo(mgtShopListDto);
        return R.ok(mgtShopListSimpleVoList);
@@ -62,9 +82,26 @@
        return R.ok(page.setRecords(mgtShopPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtShop", method = RequestMethod.POST)
    @ApiOperation(value = "导出商户列表")
    public void exportPageMgtShop(MgtShopPageDto mgtShopPageDto, HttpServletResponse response) {
        Page<MgtShopPageVo> page = new Page<>();
        if(mgtShopPageDto.getPageSize() > 5000){
            page.setSize(5000);
            page.setCurrent(1);
        }else{
            page.setSize(mgtShopPageDto.getPageSize());
            page.setCurrent(mgtShopPageDto.getPageNum());
        }
        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
        ExcelUtil<MgtShopPageVo> util = new ExcelUtil<MgtShopPageVo>(MgtShopPageVo.class);
        util.exportExcel(response, mgtShopPageVoList, "商户列表");
    }
    @RequestMapping(value = "/createMgtShop", method = RequestMethod.POST)
    @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "编辑商户")
    @ApiOperation(value = "平台编辑商户")
    public R createMgtShop(@RequestBody MgtEditShopDto mgtEditShopDto) {
    public R createMgtShop(@Validated @RequestBody MgtEditShopDto mgtEditShopDto) {
        Long userId = SecurityUtils.getUserId();
        mgtEditShopDto.setUserId(userId);
        shopService.createShop(mgtEditShopDto);
@@ -86,13 +123,43 @@
    }
    @RequestMapping(value = "/editMgtShopTag", method = RequestMethod.POST)
    @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "修改商户标签")
    @ApiOperation(value = "修改商户标签")
    public R editMgtShopTag(@RequestBody MgtEditShopTagDto mgtEditShopTagDto) {
        shopService.editShopTag(mgtEditShopTagDto);
        return R.ok();
    }
    @RequestMapping(value = "/transferMgtShop", method = RequestMethod.POST)
    @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "转移客户")
    @ApiOperation(value = "转移客户")
    public R transferMgtShop(@RequestBody MgtTransferShopDto mgtTransferShopDto) {
        shopService.transferMgtShop(mgtTransferShopDto);
        return R.ok();
    }
    @RequestMapping(value = "/terminateMgtCooperation", method = RequestMethod.POST)
    @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "终止合作")
    @ApiOperation(value = "终止合作")
    public R terminateMgtCooperation(@RequestBody MgtTerminateCooperationDto mgtTerminateCooperationDto) {
        Long userId = SecurityUtils.getUserId();
        mgtTerminateCooperationDto.setUserId(userId);
        shopService.terminateMgtCooperation(mgtTerminateCooperationDto);
        return R.ok();
    }
    @RequestMapping(value = "/frozenMgtShop", method = RequestMethod.POST)
    @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "终止合作")
    @ApiOperation(value = "冻结商户")
    public R frozenMgtShop(@RequestBody MgtFrozenShopDto mgtFrozenShopDto) {
        Long userId = SecurityUtils.getUserId();
        mgtFrozenShopDto.setUserId(userId);
        shopService.frozenMgtShop(mgtFrozenShopDto);
        return R.ok();
    }
    @RequestMapping(value = "/changeMgtCooperationTime", method = RequestMethod.POST)
    @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "修改合作时间")
    @ApiOperation(value = "修改合作时间")
    public R changeMgtCooperationTime(@RequestBody MgtChangeCoopDto mgtChangeCoopDto) {
        Long userId = SecurityUtils.getUserId();
@@ -112,6 +179,7 @@
    }
    @RequestMapping(value = "/editMgtShopProportion", method = RequestMethod.POST)
    @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "修改商户分成")
    @ApiOperation(value = "修改商户分成")
    public R editMgtShopProportion(@RequestBody MgtShopProportionEditDto mgtShopProportionEditDto) {
        mgtShopProportionEditDto.setUserId(SecurityUtils.getUserId());
@@ -131,8 +199,27 @@
        return R.ok(page.setRecords(mgtShopSuggestPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtShopSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "导出商户建议列表")
    public void exportPageMgtShopSuggest(MgtShopSuggestPageDto mgtShopSuggestPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtShopSuggestPageDto.setUserId(userId);
        Page<MgtShopSuggestPageVo> page = new Page<>();
        if(mgtShopSuggestPageDto.getPageSize() > 5000){
            page.setSize(5000);
            page.setCurrent(1);
        }else{
            page.setSize(mgtShopSuggestPageDto.getPageSize());
            page.setCurrent(mgtShopSuggestPageDto.getPageNum());
        }
        List<MgtShopSuggestPageVo> mgtShopSuggestPageVoList = shopSuggestService.pageMgtShopSuggest(page,mgtShopSuggestPageDto);
        ExcelUtil<MgtShopSuggestPageVo> util = new ExcelUtil<MgtShopSuggestPageVo>(MgtShopSuggestPageVo.class);
        util.exportExcel(response, mgtShopSuggestPageVoList, "商户建议列表");
    }
    @RequestMapping(value = "/mgtReplayShopSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "平台回复会员建议")
    @Log(title = "商户建议管理", businessType = BusinessType.UPDATE,operContent = "回复商户建议")
    @ApiOperation(value = "平台回复建议")
    public R mgtReplayShopSuggest(@RequestBody MgtReplayShopSuggestDto mgtReplayShopSuggestDto) {
        Long userId = SecurityUtils.getUserId();
        mgtReplayShopSuggestDto.setUserId(userId);
@@ -148,7 +235,8 @@
    }
    @RequestMapping(value = "/mgtEditShopSuggestTag", method = RequestMethod.POST)
    @ApiOperation(value = "平台编辑会员建议标签")
    @Log(title = "商户建议管理", businessType = BusinessType.UPDATE,operContent = "编辑商户建议标签")
    @ApiOperation(value = "平台编辑商户建议标签")
    public R mgtEditShopSuggestTag(@RequestBody MgtTagShopSuggestDto mgtTagShopSuggestDto) {
        Long userId = SecurityUtils.getUserId();
        mgtTagShopSuggestDto.setUserId(userId);
@@ -169,7 +257,8 @@
    }
    @RequestMapping(value = "/mgtAuditShopCertificate", method = RequestMethod.POST)
    @ApiOperation(value = "平台编辑会员建议标签")
    @Log(title = "商户证书管理", businessType = BusinessType.UPDATE,operContent = "审核商户证书")
    @ApiOperation(value = "平台审核商户证书")
    public R mgtAuditShopCertificate(@RequestBody MgtAuditShopCertificateDto mgtAuditShopCertificateDto) {
        Long userId = SecurityUtils.getUserId();
        mgtAuditShopCertificateDto.setUserId(userId);
@@ -196,4 +285,121 @@
        List<MgtShopAuthPageVo> mgtShopAuthPageVoList = shopService.pageMgtShopAuth(page,mgtShopAuthPageDto);
        return R.ok(page.setRecords(mgtShopAuthPageVoList));
    }
    @RequestMapping(value = "/mgtShopAuth", method = RequestMethod.POST)
    @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户进件")
    @ApiOperation(value = "平台商户进件")
    public R mgtShopAuth(@Validated @RequestBody MgtShopAuthDto mgtShopAuthDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopAuthDto.setUserId(userId);
        shopService.mgtShopAuth(mgtShopAuthDto);
        return R.ok();
    }
    @RequestMapping(value = "/getMgtShopAuth", method = RequestMethod.POST)
    @ApiOperation(value = "获取商户进件信息")
    public R<MgtShopAuthGetVo> getMgtShopAuth(@RequestBody MgtShopAuthGetDto mgtShopAuthGetDto) {
        MgtShopAuthGetVo shopAuthGetVo = shopService.getMgtShopAuth(mgtShopAuthGetDto.getAuthId());
        return R.ok(shopAuthGetVo);
    }
    @RequestMapping(value = "/getMgtShopAuthCode", method = RequestMethod.POST)
    @ApiOperation(value = "获取商户进件验证信息")
    public R<MgtShopAuthCodeVo> getMgtShopAuthCode(@RequestBody MgtShopAuthGetDto mgtShopAuthGetDto) {
        MgtShopAuthCodeVo mgtShopAuthCodeVo = shopService.getMgtShopAuthCode(mgtShopAuthGetDto.getAuthId());
        return R.ok(mgtShopAuthCodeVo);
    }
    @RequestMapping(value = "/mgtAddProfitSharingReceiver", method = RequestMethod.POST)
    @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户添加分账方")
    @ApiOperation(value = "平台商户添加分账方")
    public R mgtAddProfitSharingReceiver(@RequestBody MgtShopAuthGetDto mgtShopAuthGetDto){
        Long userId = SecurityUtils.getUserId();
        mgtShopAuthGetDto.setUserId(userId);
        shopService.addProfitSharingReceiver(mgtShopAuthGetDto);
        return R.ok();
    }
    @RequestMapping(value = "/pageMgtShopHFTXAuth", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取商户进件列表(汇付天下)")
    public R<Page<MgtShopHFTXAuthPageVo>> pageMgtShopHFTXAuth(@RequestBody MgtShopHFTXAuthPageDto mgtShopAuthPageDto) {
        Page<MgtShopHFTXAuthPageVo> page = new Page<>();
        page.setSize(mgtShopAuthPageDto.getPageSize());
        page.setCurrent(mgtShopAuthPageDto.getPageNum());
        List<MgtShopHFTXAuthPageVo> mgtShopHFTXAuthPageVos = shopService.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto);
        return R.ok(page.setRecords(mgtShopHFTXAuthPageVos));
    }
    @RequestMapping(value = "/mgtShopHFTXAuth", method = RequestMethod.POST)
    @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户进件")
    @ApiOperation(value = "平台商户进件(汇付天下)")
    public R mgtShopHFTXAuth(@RequestBody MgtShopHFTXAuthDto mgtShopHFTXAuthDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopHFTXAuthDto.setUserId(userId);
        shopService.mgtShopHFTXAuth(mgtShopHFTXAuthDto);
        return R.ok();
    }
    @RequestMapping(value = "/merchantBasicdataNotify", method = RequestMethod.POST)
    @Log(title = "商户进件回调通知(汇付天下)", businessType = BusinessType.UPDATE,operContent = "商户进件")
    public void merchantBasicdataNotify(MerchantBasicDataNotifyDto dto, HttpServletResponse response){
        R<String> r = shopService.merchantBasicdataNotify(dto);
        if(r.getCode() == 200){
            response.setStatus(200);
            PrintWriter out = null;
            try {
                out = response.getWriter();
                out.print("RECV_ORD_ID_" + r.getData());
                out.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                out.close();
            }
        }
    }
    @RequestMapping(value = "/getMgtShopHFTXAuthInfo", method = RequestMethod.POST)
    @ApiOperation(value = "获取商户进件信息(汇付天下)")
    public R<MgtShopHFTXAuthGetVo> getMgtShopHFTXAuthInfo(@Validated @RequestBody MgtShopHFTXAuthGetDto mgtShopHFTXAuthGetDto){
        MgtShopHFTXAuthGetVo mgtShopHFTXAuthInfo = shopService.getMgtShopHFTXAuthInfo(mgtShopHFTXAuthGetDto.getShopId());
        return R.ok(mgtShopHFTXAuthInfo);
    }
    @RequestMapping(value = "/setMgtShopShareRatio", method = RequestMethod.POST)
    @ApiOperation(value = "设置分账比例(汇付天下)")
    public R setMgtShopShareRatio(@Validated @RequestBody MgtShopShareRatioSetDto mgtShopShareRatioSetDto){
        return shopService.setMgtShopShareRatio(mgtShopShareRatioSetDto);
    }
    @RequestMapping(value = "/getMerchantBasicDataSettlement", method = RequestMethod.POST)
    @ApiOperation(value = "获取提现记录(汇付天下)")
    public R<List<MerchantBasicdataSettlementVo>> getMerchantBasicDataSettlement(@Validated @RequestBody MerchantBasicdataSettlementDto mgtShopShareRatioSetDto){
        return shopService.getMerchantBasicDataSettlement(mgtShopShareRatioSetDto);
    }
    @RequestMapping(value = "/getBankList", method = RequestMethod.POST)
    @ApiOperation(value = "获取银行列表(汇付天下)")
    public R<List<Map<String, String>>> getBankList(@Validated @RequestBody BankListGetDto dto){
        List<Map<String, String>> bankList = bankBranchCodeService.getBankList(dto.getName());
        return R.ok(bankList);
    }
    @RequestMapping(value = "/getBankBranchCode", method = RequestMethod.POST)
    @ApiOperation(value = "获取银行分行列表(汇付天下)")
    public R<List<Map<String, String>>> getBankBranchCode(@Validated @RequestBody BankBranchCodeGetDto dto){
        List<Map<String, String>> bankBranchCode = bankBranchCodeService.getBankBranchCode(dto.getBankNumber());
        return R.ok(bankBranchCode);
    }
}