Ver código fonte

feat: 服务商优化

gufj 4 meses atrás
pai
commit
c26f88b059
25 arquivos alterados com 436 adições e 26 exclusões
  1. 3 3
      bound-link-api/blink-admin/src/main/java/com/wx/blink/admin/system/menu/service/MenuService.java
  2. 12 1
      bound-link-api/blink-admin/src/main/java/com/wx/blink/admin/system/role/dao/RoleMenuDao.java
  3. 2 1
      bound-link-api/blink-admin/src/main/java/com/wx/blink/admin/system/role/service/RoleMenuService.java
  4. 21 1
      bound-link-api/blink-admin/src/main/resources/mapper/system/role/RoleMenuMapper.xml
  5. 6 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCustomerController.java
  6. 9 6
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkProviderController.java
  7. 1 1
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkBizFileDO.java
  8. 6 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomerServiceImpl.java
  9. 10 1
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkProjectServiceImpl.java
  10. 15 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkProviderServiceImpl.java
  11. 1 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkProviderMapper.java
  12. 9 0
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkProjectRepository.java
  13. 12 3
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomerService.java
  14. 9 1
      bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkProviderService.java
  15. 7 0
      bound-link-api/blink-backend/src/main/resources/mapper/BlinkProjectRepositoryMapper.xml
  16. 3 3
      bound-link-api/blink-base/src/main/resources/dev/sa-base.yaml
  17. 7 1
      bound-link-api/blink-portal-api/src/main/java/com/wx/blink/portal/ProviderApi.java
  18. 2 0
      bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/controller/PortalProjectController.java
  19. 41 4
      bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/controller/PortalProviderController.java
  20. 63 0
      bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/domain/dto/BlinkProviderBankAccountDTO.java
  21. 11 0
      bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/domain/qry/BlinkProviderBankQry.java
  22. 59 0
      bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/manager/PortalProviderServiceImpl.java
  23. 55 0
      bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/repository/PortalProviderRepository.java
  24. 48 0
      bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/service/IPortalProviderService.java
  25. 24 0
      bound-link-api/blink-portal/src/main/resources/mapper/PortalProviderRepositoryMapper.xml

+ 3 - 3
bound-link-api/blink-admin/src/main/java/com/wx/blink/admin/system/menu/service/MenuService.java

@@ -70,9 +70,9 @@ public class MenuService {
             return ResponseDTO.userErrorParam("菜单已被删除");
         }
         //校验菜单名称
-        if (this.validateMenuName(menuUpdateForm)) {
-            return ResponseDTO.userErrorParam("菜单名称已存在");
-        }
+//        if (this.validateMenuName(menuUpdateForm)) {
+//            return ResponseDTO.userErrorParam("菜单名称已存在");
+//        }
         // 校验前端权限字符串
         if (this.validateWebPerms(menuUpdateForm)) {
             return ResponseDTO.userErrorParam("前端权限字符串已存在");

+ 12 - 1
bound-link-api/blink-admin/src/main/java/com/wx/blink/admin/system/role/dao/RoleMenuDao.java

@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,14 +33,24 @@ public interface RoleMenuDao extends BaseMapper<RoleMenuEntity> {
     List<Long> queryMenuIdByRoleId(@Param("roleId") Long roleId);
 
     /**
-     * 根据角色ID集合查询选择的菜单权限
+     * 根据角色ID集合查询选择的菜单权限-非管理员
      *
      */
     List<MenuEntity> selectMenuListByRoleIdList(@Param("roleIdList") List<Long> roleIdList, @Param("deletedFlag") Boolean deletedFlag);
 
+
+    /**
+     * 根据角色ID集合查询选择的菜单权限-管理员
+     * @param roleIdList
+     * @param deletedFlag
+     * @return
+     */
+    List<MenuEntity> selectAdministratorMenuListByRoleIdList(@Param("roleIdList") List<Long> roleIdList, @Param("deletedFlag") Boolean deletedFlag);
+
     /**
      * 查询所有的菜单角色
      *
      */
     List<RoleMenuEntity> queryAllRoleMenu();
+
 }

+ 2 - 1
bound-link-api/blink-admin/src/main/java/com/wx/blink/admin/system/role/service/RoleMenuService.java

@@ -73,7 +73,8 @@ public class RoleMenuService {
     public List<MenuVO> getMenuList(List<Long> roleIdList, Boolean administratorFlag) {
         //管理员返回所有菜单
         if(administratorFlag){
-            List<MenuEntity> menuEntityList = roleMenuDao.selectMenuListByRoleIdList(Lists.newArrayList(), false);
+            //List<MenuEntity> menuEntityList = roleMenuDao.selectMenuListByRoleIdList(Lists.newArrayList(), false);
+            List<MenuEntity> menuEntityList = roleMenuDao.selectAdministratorMenuListByRoleIdList(Lists.newArrayList(), false);
             return BlinkBeanUtil.copyList(menuEntityList, MenuVO.class);
         }
         //非管理员 无角色 返回空菜单

+ 21 - 1
bound-link-api/blink-admin/src/main/resources/mapper/system/role/RoleMenuMapper.xml

@@ -19,7 +19,6 @@
 
     <select id="selectMenuListByRoleIdList"
             resultType="com.wx.blink.admin.system.menu.domain.entity.MenuEntity">
-
         SELECT
         mate_menu.*
         from mate_menu
@@ -37,6 +36,27 @@
         </where>
         group by mate_menu.menu_id
         ORDER BY mate_menu.sort ASC
+    </select>
 
+    <select id="selectAdministratorMenuListByRoleIdList"
+            resultType="com.wx.blink.admin.system.menu.domain.entity.MenuEntity">
+        SELECT
+        mate_menu.*
+        from mate_menu
+        left join mate_role_menu on mate_role_menu.menu_id = mate_menu.menu_id
+        <where>
+            (mate_menu.sort <![CDATA[<]]> 1000 or mate_menu.sort >= 2000)
+            <if test="deletedFlag != null">
+                and mate_menu.deleted_flag = #{deletedFlag}
+            </if>
+            <if test="roleIdList != null and roleIdList.size > 0">
+                and mate_role_menu.role_id in
+                <foreach collection="roleIdList" open="(" close=")" item="item" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        group by mate_menu.menu_id
+        ORDER BY mate_menu.sort ASC
     </select>
 </mapper>

+ 6 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkCustomerController.java

@@ -65,4 +65,10 @@ public class BlinkCustomerController {
         return customerService.bizFileQueryPage(qry);
     }
 
+    @Operation(summary = "资料删除")
+    @PostMapping("/supports/biz/file/delete")
+    public ResponseDTO<String> bizFileDelete(@RequestParam("id") String id) {
+        return customerService.bizFileDelete(id);
+    }
+
 }

+ 9 - 6
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/controller/BlinkProviderController.java

@@ -6,12 +6,11 @@ import com.wx.blink.base.common.domain.ResponseDTO;
 import com.wx.blink.backend.domain.qry.BlinkProviderQry;
 import com.wx.blink.backend.service.IBlinkProviderService;
 import com.wx.blink.common.dto.BlinkProviderDTO;
+import com.wx.blink.common.vo.BlinkProjectVO;
+import com.wx.blink.common.vo.BlinkProviderCreateVO;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
@@ -27,7 +26,7 @@ public class BlinkProviderController {
     @NoNeedLogin
     @Operation(summary = "服务商创建")
     @PostMapping("/supports/provider/create")
-    public ResponseDTO<String> providerCreate(@RequestBody @Valid BlinkProviderDTO dto) {
+    public ResponseDTO<String> providerCreate(@RequestBody @Valid BlinkProviderCreateVO dto) {
         return providerService.supportsProviderCreate(dto);
     }
 
@@ -37,5 +36,9 @@ public class BlinkProviderController {
         return providerService.supportsProviderQueryPage(qry);
     }
 
-
+    @Operation(summary = "获取服务商信息")
+    @GetMapping("/supports/provider/{id}")
+    public ResponseDTO<BlinkProviderDTO> supportsProviderSingleQuery(@PathVariable String id) {
+        return providerService.supportsProviderSingleQuery(id);
+    }
 }

+ 1 - 1
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/domain/dataobject/BlinkBizFileDO.java

@@ -21,7 +21,7 @@ public class BlinkBizFileDO extends BaseEntity {
     /**
      * id
      */
-    @TableId(type = IdType.AUTO)
+    @TableId(type = IdType.ASSIGN_UUID)
     private Long id;
 
     /**

+ 6 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkCustomerServiceImpl.java

@@ -124,4 +124,10 @@ public class BlinkCustomerServiceImpl extends ServiceImpl<BlinkCustomerRepositor
         PageResult<BlinkBizFileVO> pageResult = BlinkPageUtil.convert2PageResult(page, list);
         return ResponseDTO.ok(pageResult);
     }
+
+    @Override
+    public ResponseDTO<String> bizFileDelete(String id) {
+        //customerMapper.bizFileDelete(id);
+        return ResponseDTO.ok();
+    }
 }

+ 10 - 1
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkProjectServiceImpl.java

@@ -189,7 +189,16 @@ public class BlinkProjectServiceImpl extends ServiceImpl<BlinkProjectRepository,
         //批量生成项目的阶段
         repository.saveBatchInstanceStatus(initializeInstanceStatusList);
         //获取阶段绑定的按钮信息
-        List<BlinkProjectInstanceContextVO> initializeInstanceContextList = repository.queryInitializeInstanceContextByConfig("button");
+            List<BlinkProjectInstanceContextVO> initializeInstanceContextList = repository.queryInitializeInstanceContextByConfig("button");
+        initializeInstanceContextList.stream().forEach(item -> {
+            item.setId(RandomUtil.randomString(32));
+            item.setProjectId(projectDO.getId());
+            BlinkEntityUtil.setCreateInfo(item);
+        });
+        if (CollectionUtil.isNotEmpty(initializeInstanceContextList)) {
+            //批量生成项目阶段对应的流程及按钮
+            repository.saveBatchInstanceContext(initializeInstanceContextList);
+        }
         return ResponseDTO.ok();
     }
 

+ 15 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/manager/BlinkProviderServiceImpl.java

@@ -1,8 +1,10 @@
 package com.wx.blink.backend.manager;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.wx.blink.backend.domain.dataobject.BlinkProjectDO;
 import com.wx.blink.backend.domain.dataobject.BlinkProviderDO;
 import com.wx.blink.backend.domain.qry.BlinkProviderQry;
 import com.wx.blink.backend.objectmapper.BlinkProviderMapper;
@@ -16,6 +18,8 @@ import com.wx.blink.base.common.util.BlinkPageUtil;
 import com.wx.blink.base.module.support.serialnumber.constant.SerialNumberIdEnum;
 import com.wx.blink.base.module.support.serialnumber.service.SerialNumberService;
 import com.wx.blink.common.dto.BlinkProviderDTO;
+import com.wx.blink.common.vo.BlinkProjectCombineTeamVO;
+import com.wx.blink.common.vo.BlinkProjectVO;
 import com.wx.blink.common.vo.BlinkProviderCreateVO;
 import org.springframework.stereotype.Service;
 
@@ -70,4 +74,15 @@ public class BlinkProviderServiceImpl extends ServiceImpl<BlinkProviderRepositor
         PageResult<BlinkProviderDTO> pageResult = BlinkPageUtil.convert2PageResult(page, list);
         return ResponseDTO.ok(pageResult);
     }
+
+    @Override
+    public ResponseDTO<BlinkProviderDTO> supportsProviderSingleQuery(String id) {
+        //定义返回
+        BlinkProviderDTO providerVO = new BlinkProviderDTO();
+        BlinkProviderDO providerDO = this.getById(id);
+        if (Objects.nonNull(providerDO)) {
+            mapper.domainToProviderVO(providerDO, providerVO);
+        }
+        return ResponseDTO.ok(providerVO);
+    }
 }

+ 1 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/objectmapper/BlinkProviderMapper.java

@@ -15,4 +15,5 @@ public interface BlinkProviderMapper {
 
     void toBlinkProviderDTO(BlinkProviderDO blinkProviderDO, @MappingTarget BlinkProviderDTO blinkProviderDTO);
 
+    void domainToProviderVO(BlinkProviderDO providerDO, @MappingTarget BlinkProviderDTO providerVO);
 }

+ 9 - 0
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/repository/BlinkProjectRepository.java

@@ -87,4 +87,13 @@ public interface BlinkProjectRepository extends BaseMapper<BlinkProjectDO> {
      * @return
      */
     List<BlinkProjectInstanceContextVO> queryInitializeInstanceContextByConfig(String nodeType);
+
+
+    /**
+     * 批量生成项目阶段对应的流程及按钮
+     *
+     * @param initializeInstanceContextList
+     * @return
+     */
+    boolean saveBatchInstanceContext(@Param("list") List<BlinkProjectInstanceContextVO> initializeInstanceContextList);
 }

+ 12 - 3
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkCustomerService.java

@@ -1,12 +1,12 @@
 package com.wx.blink.backend.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.wx.blink.base.common.domain.PageResult;
-import com.wx.blink.base.common.domain.ResponseDTO;
 import com.wx.blink.backend.domain.dataobject.BlinkCustomerDO;
 import com.wx.blink.backend.domain.qry.BlinkBizFileQry;
-import com.wx.blink.common.vo.*;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
 import com.wx.blink.common.qry.BlinkCustomerQry;
+import com.wx.blink.common.vo.*;
 
 import javax.validation.Valid;
 
@@ -68,4 +68,13 @@ public interface IBlinkCustomerService extends IService<BlinkCustomerDO> {
      * @return
      */
     ResponseDTO<PageResult<BlinkBizFileVO>> bizFileQueryPage(BlinkBizFileQry qry);
+
+
+    /**
+     * 资料删除
+     *
+     * @param id
+     * @return
+     */
+    ResponseDTO<String> bizFileDelete(String id);
 }

+ 9 - 1
bound-link-api/blink-backend/src/main/java/com/wx/blink/backend/service/IBlinkProviderService.java

@@ -1,8 +1,8 @@
 package com.wx.blink.backend.service;
 
+import com.wx.blink.backend.domain.qry.BlinkProviderQry;
 import com.wx.blink.base.common.domain.PageResult;
 import com.wx.blink.base.common.domain.ResponseDTO;
-import com.wx.blink.backend.domain.qry.BlinkProviderQry;
 import com.wx.blink.common.dto.BlinkProviderDTO;
 import com.wx.blink.common.vo.BlinkProviderCreateVO;
 
@@ -24,4 +24,12 @@ public interface IBlinkProviderService {
      */
     ResponseDTO<PageResult<BlinkProviderDTO>> supportsProviderQueryPage(BlinkProviderQry qry);
 
+
+    /**
+     * 获取服务商信息
+     *
+     * @param id
+     * @return
+     */
+    ResponseDTO<BlinkProviderDTO> supportsProviderSingleQuery(String id);
 }

+ 7 - 0
bound-link-api/blink-backend/src/main/resources/mapper/BlinkProjectRepositoryMapper.xml

@@ -59,4 +59,11 @@
             resultType="com.wx.blink.backend.domain.dto.BlinkProjectInstanceContextVO">
         select status_value statusValue,	mark flowCode,	mark_name flowName from blink_project_instance_config where deleted_flag = 0 and visible_state = 0 and node_type = #{nodeType}
     </select>
+
+    <select id="saveBatchInstanceContext" resultType="boolean">
+        INSERT INTO blink_project_instance_context( project_id, status_value, flow_code, flow_name, create_user_id, create_time)
+        <foreach collection="list" open="(" close=")" separator="," item="item">
+            (#{item.id},#{item.projectId},#{item.statusValue},#{flowCode},#{flowName},#{item.statusSort},#{item.createUserId},#{createTime})
+        </foreach>
+    </select>
 </mapper>

+ 3 - 3
bound-link-api/blink-base/src/main/resources/dev/sa-base.yaml

@@ -5,12 +5,12 @@ spring:
       min-idle: 5
       max-active: 50
       db1:
-        url: jdbc:p6spy:mysql://127.0.0.1:3306/bound_link?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
+        url: jdbc:p6spy:mysql://59.110.6.97:3306/bound_link?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
         username: blink
         password: blink@369
         driver-class-name: com.p6spy.engine.spy.P6SpyDriver
       db2:
-        url: jdbc:p6spy:mysql://127.0.0.1:3306/bound_link?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
+        url: jdbc:p6spy:mysql://59.110.6.97:3306/bound_link?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai
         username: blink
         password: blink@369
         driver-class-name: com.p6spy.engine.spy.P6SpyDriver
@@ -64,7 +64,7 @@ spring:
   # redis 连接池配置信息
   redis:
     database: 11
-    host: 127.0.0.1
+    host: 59.110.6.97
     port: 6379
     password: q!w@e#r$t%
     timeout: 10000ms

+ 7 - 1
bound-link-api/blink-portal-api/src/main/java/com/wx/blink/portal/ProviderApi.java

@@ -1,10 +1,13 @@
 package com.wx.blink.portal;
 
+import com.alibaba.fastjson.JSONObject;
 import com.wx.blink.base.common.annoation.NoNeedLogin;
 import com.wx.blink.base.common.domain.ResponseDTO;
 import com.wx.blink.common.dto.BlinkProviderDTO;
 import com.wx.blink.common.vo.BlinkProviderCreateVO;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
@@ -13,5 +16,8 @@ public interface ProviderApi {
 
     @NoNeedLogin
     @RequestMapping(value = "/supports/provider/create")
-    public ResponseDTO<String> providerCreate(@RequestBody BlinkProviderCreateVO vo);
+    ResponseDTO<String> providerCreate(@RequestBody BlinkProviderCreateVO vo);
+
+    @GetMapping("/supports/provider/{id}")
+    ResponseDTO<JSONObject> supportsProviderSingleQuery(@PathVariable("id") String id);
 }

+ 2 - 0
bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/controller/PortalProjectController.java

@@ -20,4 +20,6 @@ public class PortalProjectController {
     public ResponseDTO<String> login(@RequestBody BlinkProjectCreateVO dto) {
         return projectApi.supportsProjectCreate(dto);
     }
+
+
 }

+ 41 - 4
bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/controller/PortalProviderController.java

@@ -1,16 +1,19 @@
 package com.wx.blink.portal.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.wx.blink.base.common.annoation.NoNeedLogin;
+import com.wx.blink.base.common.domain.PageResult;
 import com.wx.blink.base.common.domain.ResponseDTO;
-import com.wx.blink.common.dto.BlinkProviderDTO;
 import com.wx.blink.common.vo.BlinkProviderCreateVO;
 import com.wx.blink.portal.ProviderApi;
+import com.wx.blink.portal.domain.dto.BlinkProviderBankAccountDTO;
+import com.wx.blink.portal.domain.qry.BlinkProviderBankQry;
+import com.wx.blink.portal.service.IPortalProviderService;
 import io.swagger.v3.oas.annotations.Operation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
+import java.util.Map;
 
 /**
  * 服务商
@@ -23,6 +26,8 @@ public class PortalProviderController {
 
     @Resource
     private ProviderApi providerApi;
+    @Resource
+    private IPortalProviderService providerService;
 
     @NoNeedLogin
     @PostMapping("/portal/provider/register")
@@ -30,4 +35,36 @@ public class PortalProviderController {
     public ResponseDTO<String> login(@RequestBody BlinkProviderCreateVO vo) {
         return providerApi.providerCreate(vo);
     }
+
+    @PostMapping("/portal/provider/{id}")
+    @Operation(summary = "服务商注册接口")
+    public ResponseDTO<JSONObject> login(@PathVariable String id) {
+        return providerApi.supportsProviderSingleQuery(id);
+    }
+
+    //---------------------------服务商银行账户-----------------------------
+
+    @PostMapping("/portal/provider/bank/create")
+    @Operation(summary = "服务商银行账户接口")
+    public ResponseDTO<String> providerBankCreate(@RequestBody BlinkProviderBankAccountDTO dto) {
+        return providerService.providerBankCreate(dto);
+    }
+
+    @PostMapping("/portal/provider/bank/delete")
+    @Operation(summary = "服务商银行账户删除")
+    public ResponseDTO<String> portalProviderBankDelete(@RequestBody Map<String,Object> param) {
+        return providerService.portalProviderBankDelete((String)param.get("id"));
+    }
+
+    @PostMapping("/portal/provider/bank/{id}")
+    @Operation(summary = "服务商银行账户查询")
+    public ResponseDTO<BlinkProviderBankAccountDTO> supportsProviderBankSingleQuery(@PathVariable String id) {
+        return providerService.supportsProviderBankSingleQuery(id);
+    }
+
+    @Operation(summary = "查询服务商银行账户列表")
+    @PostMapping("/supports/provider/bank/queryPage")
+    public ResponseDTO<PageResult<BlinkProviderBankAccountDTO>> supportsProviderBankQueryPage(@RequestBody BlinkProviderBankQry qry) {
+        return providerService.supportsProviderBankQueryPage(qry);
+    }
 }

+ 63 - 0
bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/domain/dto/BlinkProviderBankAccountDTO.java

@@ -0,0 +1,63 @@
+package com.wx.blink.portal.domain.dto;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.wx.blink.base.common.annoation.DataAdaptorMapping;
+import com.wx.blink.base.common.domain.BaseEntity;
+import com.wx.blink.base.common.json.deserializer.DictValueVoDeserializer;
+import lombok.Data;
+
+/**
+ * 服务商银行账户
+ *
+ * @Author gufj
+ * @Date 2025-06-18 11:57:46
+ */
+
+@Data
+@TableName("blink_provider_bank_account")
+public class BlinkProviderBankAccountDTO extends BaseEntity {
+
+    /**
+     * id
+     */
+    private String id;
+
+    /**
+     * 服务商id
+     */
+    private String providerId;
+
+    /**
+     * 开户名称
+     */
+    private String bankName;
+
+    /**
+     * 银行卡号
+     */
+    private String bankAccount;
+
+    /**
+     * 开户行
+     */
+    private String openBankName;
+
+    /**
+     * 联行号
+     */
+    private String innerBankNumber;
+
+    /**
+     * 银行地址
+     */
+    private String bankAddress;
+
+    /**
+     * 银行卡类型
+     */
+    @JsonDeserialize(using = DictValueVoDeserializer.class)
+    @DataAdaptorMapping(type = "dict", value = "BLINK_COMMON_BANK_TYPE")
+    private String bankCardType;
+}

+ 11 - 0
bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/domain/qry/BlinkProviderBankQry.java

@@ -0,0 +1,11 @@
+package com.wx.blink.portal.domain.qry;
+
+import com.wx.blink.base.common.domain.PageParam;
+import lombok.Data;
+
+@Data
+public class BlinkProviderBankQry
+        extends PageParam {
+
+    private String bankName;
+}

+ 59 - 0
bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/manager/PortalProviderServiceImpl.java

@@ -0,0 +1,59 @@
+
+package com.wx.blink.portal.manager;
+
+import cn.hutool.core.util.RandomUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import com.wx.blink.base.common.util.BlinkEntityUtil;
+import com.wx.blink.base.common.util.BlinkPageUtil;
+import com.wx.blink.base.common.util.BlinkRequestUtil;
+import com.wx.blink.common.dto.BlinkProviderDTO;
+import com.wx.blink.portal.domain.dto.BlinkProviderBankAccountDTO;
+import com.wx.blink.portal.domain.qry.BlinkProviderBankQry;
+import com.wx.blink.portal.repository.PortalProviderRepository;
+import com.wx.blink.portal.service.IPortalProviderService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @author gufj
+ * @date 2025/05/21
+ */
+@Service
+public class PortalProviderServiceImpl implements IPortalProviderService {
+    @Resource
+    private PortalProviderRepository repository;
+
+    @Override
+    public ResponseDTO<String> providerBankCreate(BlinkProviderBankAccountDTO dto) {
+        dto.setProviderId(BlinkRequestUtil.getRequestUserCode());
+        dto.setId(RandomUtil.randomString(32));
+        BlinkEntityUtil.setCreateInfo(dto);
+        repository.saveProviderBank(dto);
+        return ResponseDTO.ok();
+    }
+
+    @Override
+    public ResponseDTO<String> portalProviderBankDelete(String id) {
+        repository.portalProviderBankDelete(id);
+        return ResponseDTO.ok();
+    }
+
+    @Override
+    public ResponseDTO<BlinkProviderBankAccountDTO> supportsProviderBankSingleQuery(String id) {
+
+        BlinkProviderBankAccountDTO dto = repository.supportsProviderBankSingleQuery(id);
+        return ResponseDTO.ok(dto);
+    }
+
+    @Override
+    public ResponseDTO<PageResult<BlinkProviderBankAccountDTO>> supportsProviderBankQueryPage(BlinkProviderBankQry qry) {
+        Page<?> page = BlinkPageUtil.convert2PageQuery(qry);
+        List<BlinkProviderBankAccountDTO> list = repository.supportsProviderBankQueryPage(page, qry);
+        PageResult<BlinkProviderBankAccountDTO> pageResult = BlinkPageUtil.convert2PageResult(page, list);
+        return ResponseDTO.ok(pageResult);
+    }
+}

+ 55 - 0
bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/repository/PortalProviderRepository.java

@@ -0,0 +1,55 @@
+package com.wx.blink.portal.repository;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.wx.blink.portal.domain.dto.BlinkProviderBankAccountDTO;
+import com.wx.blink.portal.domain.qry.BlinkProviderBankQry;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author gufj
+ * @date 2025/05/21
+ */
+@Mapper
+@Component
+public interface PortalProviderRepository {
+
+
+    /**
+     * 服务商银行账户创建
+     *
+     * @param dto
+     * @return
+     */
+    boolean saveProviderBank(BlinkProviderBankAccountDTO dto);
+
+
+    /**
+     * 服务商银行账户删除
+     *
+     * @param id
+     * @return
+     */
+    boolean portalProviderBankDelete(String id);
+
+
+    /**
+     * 服务商银行账户查询
+     *
+     * @param id
+     * @return
+     */
+    BlinkProviderBankAccountDTO supportsProviderBankSingleQuery(String id);
+
+
+    /**
+     * 查询服务商银行账户列表
+     *
+     * @param page
+     * @param qry
+     * @return
+     */
+    List<BlinkProviderBankAccountDTO> supportsProviderBankQueryPage(Page<?> page, BlinkProviderBankQry qry);
+}

+ 48 - 0
bound-link-api/blink-portal/src/main/java/com/wx/blink/portal/service/IPortalProviderService.java

@@ -0,0 +1,48 @@
+package com.wx.blink.portal.service;
+
+import com.wx.blink.base.common.domain.PageResult;
+import com.wx.blink.base.common.domain.ResponseDTO;
+import com.wx.blink.portal.domain.dto.BlinkProviderBankAccountDTO;
+import com.wx.blink.portal.domain.qry.BlinkProviderBankQry;
+
+/**
+ * @author gufj
+ * @date 2025/05/21
+ */
+public interface IPortalProviderService {
+
+
+    /**
+     * 服务商银行账户创建
+     *
+     * @param dto
+     * @return
+     */
+    ResponseDTO<String> providerBankCreate(BlinkProviderBankAccountDTO dto);
+
+    /**
+     * 服务商银行账户删除
+     *
+     * @param id
+     * @return
+     */
+    ResponseDTO<String> portalProviderBankDelete(String id);
+
+
+    /**
+     * 服务商银行账户查询
+     *
+     * @param id
+     * @return
+     */
+    ResponseDTO<BlinkProviderBankAccountDTO> supportsProviderBankSingleQuery(String id);
+
+
+    /**
+     * 查询服务商银行账户列表
+     *
+     * @param qry
+     * @return
+     */
+    ResponseDTO<PageResult<BlinkProviderBankAccountDTO>> supportsProviderBankQueryPage(BlinkProviderBankQry qry);
+}

+ 24 - 0
bound-link-api/blink-portal/src/main/resources/mapper/PortalProviderRepositoryMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.wx.blink.portal.repository.PortalProviderRepository">
+
+    <insert id="saveProviderBank">
+        INSERT INTO blink_provider_bank_account(id, provider_id, bank_name, bank_account, open_bank_name,
+                inner_bank_number, bank_address, bank_card_type, create_user_id, create_time)
+        VALUES  (#{id},#{providerId},#{bankName},#{bankAccount},#{openBankName},#{innerBankNumber},#{bankAddress},#{bankCardType},#{createUserId},#{createTime,jdbcType=TIMESTAMP})
+    </insert>
+
+    <delete id="portalProviderBankDelete">
+        update blink_provider_bank_account set deleted_flag = 1 where id = #{id}
+    </delete>
+
+    <select id="supportsProviderBankSingleQuery"
+            resultType="com.wx.blink.portal.domain.dto.BlinkProviderBankAccountDTO">
+        select * from blink_provider_bank_account where id = #{id}
+        and deleted_flag = 0
+    </select>
+
+    <select id="supportsProviderBankQueryPage" resultType="com.wx.blink.portal.domain.dto.BlinkProviderBankAccountDTO">
+        select * from blink_provider_bank_account where  deleted_flag = 0
+    </select>
+</mapper>