From 0774ea976b6aa86a8a7de334fa24fbd7524295d5 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期五, 26 一月 2024 11:57:11 +0800
Subject: [PATCH] 看板统计

---
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java |  377 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 365 insertions(+), 12 deletions(-)

diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
index d378a00..408fcfc 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -1,5 +1,7 @@
 package com.ruoyi.shop.controller.management;
 
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.poi.ExcelUtil;
@@ -7,12 +9,18 @@
 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.poji.shop.Shop;
+import com.ruoyi.system.api.domain.poji.sys.SysUser;
 import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
+import com.ruoyi.system.api.service.RemoteUserService;
 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;
@@ -21,7 +29,12 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author jqs34
@@ -34,6 +47,8 @@
 @RestController
 @RequestMapping("/mgt/shop")
 public class MgtShopController {
+
+    Logger logger = LoggerFactory.getLogger(MgtShopController.class);
 
     @Resource
     private ShopService shopService;
@@ -50,32 +65,167 @@
     @Resource
     private ShopCertificateService shopCertificateService;
 
+    @Resource
+    private BankBranchCodeService bankBranchCodeService;
+    @Resource
+    private RemoteUserService sysUserService;
+
+
+
     @RequestMapping(value = "/listMgtShopSimpleVo", method = RequestMethod.POST)
     @ApiOperation(value = "获取简易商户列表")
     public R<List<MgtShopListSimpleVo>> listMgtShopSimpleVo(@RequestBody MgtShopListDto mgtShopListDto) {
-        List<MgtShopListSimpleVo> mgtShopListSimpleVoList = shopService.listMgtShopSimpleVo(mgtShopListDto);
+        // 获取当前登陆人的可视权限
+        SysUser sysUser = SecurityUtils.getSysUser();
+        // 店铺ids
+        List<Long> scope = new ArrayList<>();
+        if (sysUser!=null){
+            String dataScope = sysUser.getDataScope();
+            if (!sysUser.getUserName().equals("admin")){
+                if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                    switch (dataScope){
+                        case "3":
+                            // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                            // 根据用户id 查询同部门下所有员工id
+                            List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData();
+                            // 店铺ids
+                            List<Long> data = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", userIds)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data);
+                            }
+
+                            break;
+                        case "5":
+                            // 仅个人数据 查询当前登陆人关联店铺下的用户
+                            List<Long> longs = new ArrayList<>();
+                            longs.add(sysUser.getUserId());
+                            // 获取店铺ids
+                            List<Long> data1 = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", longs)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data1.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data1);
+                            }
+                            break;
+                    }
+                }
+            }
+        }
+        List<MgtShopListSimpleVo> mgtShopListSimpleVoList = shopService.listMgtShopSimpleVo(mgtShopListDto,scope);
         return R.ok(mgtShopListSimpleVoList);
     }
 
     @RequestMapping(value = "/pageMgtShop", method = RequestMethod.POST)
     @ApiOperation(value = "分页获取商户列表")
     public R<Page<MgtShopPageVo>> pageMgtShop(@RequestBody MgtShopPageDto mgtShopPageDto) {
+        // 获取当前登陆人的可视权限
+        SysUser sysUser = SecurityUtils.getSysUser();
+        // 店铺ids
+        List<Long> scope = new ArrayList<>();
+        if (sysUser!=null){
+            String dataScope = sysUser.getDataScope();
+            if (!sysUser.getUserName().equals("admin")){
+                if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                    switch (dataScope){
+                        case "3":
+                            // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                            // 根据用户id 查询同部门下所有员工id
+                            List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData();
+                            // 店铺ids
+                            List<Long> data = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", userIds)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data);
+                            }
+
+                            break;
+                        case "5":
+                            // 仅个人数据 查询当前登陆人关联店铺下的用户
+                            List<Long> longs = new ArrayList<>();
+                            longs.add(sysUser.getUserId());
+                            // 获取店铺ids
+                            List<Long> data1 = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", longs)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data1.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data1);
+                            }
+                            break;
+                    }
+                }
+            }
+        }
         Page<MgtShopPageVo> page = new Page<>();
         page.setSize(mgtShopPageDto.getPageSize());
         page.setCurrent(mgtShopPageDto.getPageNum());
-        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
+        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto,scope);
         return R.ok(page.setRecords(mgtShopPageVoList));
     }
 
     @RequestMapping(value = "/exportPageMgtShop", method = RequestMethod.POST)
     @ApiOperation(value = "导出商户列表")
-    public void exportPageMgtShop(@RequestBody MgtShopPageDto mgtShopPageDto, HttpServletResponse response) {
+    public void exportPageMgtShop(MgtShopPageDto mgtShopPageDto, HttpServletResponse response) {
         Page<MgtShopPageVo> page = new Page<>();
-        page.setSize(2000);
-        page.setCurrent(1);
-        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
+        if(mgtShopPageDto.getPageSize() > 5000){
+            page.setSize(5000);
+            page.setCurrent(1);
+        }else{
+            page.setSize(mgtShopPageDto.getPageSize());
+            page.setCurrent(mgtShopPageDto.getPageNum());
+        }
+        // 获取当前登陆人的可视权限
+        SysUser sysUser = SecurityUtils.getSysUser();
+        // 店铺ids
+        List<Long> scope = new ArrayList<>();
+        if (sysUser!=null){
+            String dataScope = sysUser.getDataScope();
+            if (!sysUser.getUserName().equals("admin")){
+                if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                    switch (dataScope){
+                        case "3":
+                            // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                            // 根据用户id 查询同部门下所有员工id
+                            List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData();
+                            // 店铺ids
+                            List<Long> data = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", userIds)
+                                    .eq("del_flag", 1))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            scope.addAll(data);
+                            break;
+                        case "5":
+                            // 仅个人数据 查询当前登陆人关联店铺下的用户
+                            List<Long> longs = new ArrayList<>();
+                            longs.add(sysUser.getUserId());
+                            // 获取店铺ids
+                            List<Long> data1 = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", longs)
+                                    .eq("del_flag", 1))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            scope.addAll(data1);
+                            break;
+                    }
+                }
+            }
+        }
+        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto,scope);
         ExcelUtil<MgtShopPageVo> util = new ExcelUtil<MgtShopPageVo>(MgtShopPageVo.class);
-        util.exportExcel(response, mgtShopPageVoList, "用户订单列表");
+        util.exportExcel(response, mgtShopPageVoList, "商户列表");
     }
 
     @RequestMapping(value = "/createMgtShop", method = RequestMethod.POST)
@@ -110,6 +260,14 @@
         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 = "终止合作")
@@ -117,6 +275,16 @@
         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();
     }
 
@@ -163,12 +331,17 @@
 
     @RequestMapping(value = "/exportPageMgtShopSuggest", method = RequestMethod.POST)
     @ApiOperation(value = "导出商户建议列表")
-    public void exportPageMgtShopSuggest(@RequestBody MgtShopSuggestPageDto mgtShopSuggestPageDto, HttpServletResponse response) {
+    public void exportPageMgtShopSuggest(MgtShopSuggestPageDto mgtShopSuggestPageDto, HttpServletResponse response) {
         Long userId = SecurityUtils.getUserId();
         mgtShopSuggestPageDto.setUserId(userId);
         Page<MgtShopSuggestPageVo> page = new Page<>();
-        page.setSize(2000);
-        page.setCurrent(1);
+        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, "商户建议列表");
@@ -239,19 +412,64 @@
         Page<MgtShopAuthPageVo> page = new Page<>();
         page.setSize(mgtShopAuthPageDto.getPageSize());
         page.setCurrent(mgtShopAuthPageDto.getPageNum());
-        List<MgtShopAuthPageVo> mgtShopAuthPageVoList = shopService.pageMgtShopAuth(page,mgtShopAuthPageDto);
+        // 获取当前登陆人的可视权限
+        SysUser sysUser = SecurityUtils.getSysUser();
+        // 店铺ids
+        List<Long> scope = new ArrayList<>();
+        if (sysUser!=null){
+            String dataScope = sysUser.getDataScope();
+            if (!sysUser.getUserName().equals("admin")){
+                if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                    switch (dataScope){
+                        case "3":
+                            // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                            // 根据用户id 查询同部门下所有员工id
+                            List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData();
+                            // 店铺ids
+                            List<Long> data = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", userIds)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data);
+                            }
+
+                            break;
+                        case "5":
+                            // 仅个人数据 查询当前登陆人关联店铺下的用户
+                            List<Long> longs = new ArrayList<>();
+                            longs.add(sysUser.getUserId());
+                            // 获取店铺ids
+                            List<Long> data1 = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", longs)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data1.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data1);
+                            }
+                            break;
+                    }
+                }
+            }
+        }
+        List<MgtShopAuthPageVo> mgtShopAuthPageVoList = shopService.pageMgtShopAuth(page,mgtShopAuthPageDto,scope);
         return R.ok(page.setRecords(mgtShopAuthPageVoList));
     }
 
     @RequestMapping(value = "/mgtShopAuth", method = RequestMethod.POST)
     @Log(title = "商户进件管理", businessType = BusinessType.UPDATE,operContent = "商户进件")
     @ApiOperation(value = "平台商户进件")
-    public R mgtShopAuth(@RequestBody MgtShopAuthDto mgtShopAuthDto) {
+    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 = "获取商户进件信息")
@@ -266,4 +484,139 @@
         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) {
+        // 获取当前登陆人的可视权限
+        SysUser sysUser = SecurityUtils.getSysUser();
+        // 店铺ids
+        List<Long> scope = new ArrayList<>();
+        if (sysUser!=null){
+            String dataScope = sysUser.getDataScope();
+            if (!sysUser.getUserName().equals("admin")){
+                if (org.springframework.util.StringUtils.hasLength(dataScope)){
+                    switch (dataScope){
+                        case "3":
+                            // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺
+                            // 根据用户id 查询同部门下所有员工id
+                            List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData();
+                            // 店铺ids
+                            List<Long> data = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", userIds)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data);
+                            }
+                            break;
+                        case "5":
+                            // 仅个人数据 查询当前登陆人关联店铺下的用户
+                            List<Long> longs = new ArrayList<>();
+                            longs.add(sysUser.getUserId());
+                            // 获取店铺ids
+                            List<Long> data1 = shopService.list(new QueryWrapper<Shop>()
+                                    .in("belong_user_id", longs)
+                                    .eq("del_flag", 0))
+                                    .stream().map(Shop::getShopId).collect(Collectors.toList());
+                            if (data1.size()==0){
+                                scope.add(0L);
+                            }else{
+                                scope.addAll(data1);
+                            }
+                            break;
+                    }
+                }
+            }
+        }
+        Page<MgtShopHFTXAuthPageVo> page = new Page<>();
+        page.setSize(mgtShopAuthPageDto.getPageSize());
+        page.setCurrent(mgtShopAuthPageDto.getPageNum());
+        List<MgtShopHFTXAuthPageVo> mgtShopHFTXAuthPageVos = shopService.pageMgtShopHFTXAuth(page, mgtShopAuthPageDto,scope);
+        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);
+    }
 }

--
Gitblit v1.7.1