From 85d4289ba75e8e4cc1709ab46415626f9627c4e1 Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Wed, 4 Feb 2026 19:31:55 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=B8=AD=E4=BB=8BCon?= =?UTF-8?q?troller=E6=8E=A7=E5=88=B6=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增CcdiIntermediaryController,提供中介RESTful API - 支持个人和实体中介的统一列表查询 - 提供个人和实体中介的详情查询接口 - 支持个人和实体中介的新增、修改、删除操作 - 提供唯一性校验接口 - 支持Excel模板下载和数据导入功能 - 完整的Swagger API文档注解 Co-Authored-By: Claude Sonnet 4.5 --- .../CcdiIntermediaryController.java | 202 ++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/controller/CcdiIntermediaryController.java diff --git a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/controller/CcdiIntermediaryController.java b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/controller/CcdiIntermediaryController.java new file mode 100644 index 0000000..f2e1e73 --- /dev/null +++ b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/controller/CcdiIntermediaryController.java @@ -0,0 +1,202 @@ +package com.ruoyi.ccdi.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryEntityAddDTO; +import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryEntityEditDTO; +import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryPersonAddDTO; +import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryPersonEditDTO; +import com.ruoyi.ccdi.domain.dto.CcdiIntermediaryQueryDTO; +import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryEntityExcel; +import com.ruoyi.ccdi.domain.excel.CcdiIntermediaryPersonExcel; +import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryEntityDetailVO; +import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryPersonDetailVO; +import com.ruoyi.ccdi.domain.vo.CcdiIntermediaryVO; +import com.ruoyi.ccdi.service.ICcdiIntermediaryService; +import com.ruoyi.ccdi.utils.EasyExcelUtil; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.PageDomain; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.page.TableSupport; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.StringUtils; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +/** + * 中介信息Controller + * + * @author ruoyi + * @date 2026-02-04 + */ +@Tag(name = "中介信息管理") +@RestController +@RequestMapping("/ccdi/intermediary") +public class CcdiIntermediaryController extends BaseController { + + @Resource + private ICcdiIntermediaryService intermediaryService; + + /** + * 查询中介列表 + */ + @Operation(summary = "查询中介列表") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:list')") + @GetMapping("/list") + public TableDataInfo list(CcdiIntermediaryQueryDTO queryDTO) { + PageDomain pageDomain = TableSupport.buildPageRequest(); + Page page = new Page<>(pageDomain.getPageNum(), pageDomain.getPageSize()); + Page result = intermediaryService.selectIntermediaryPage(page, queryDTO); + return getDataTable(result.getRecords(), result.getTotal()); + } + + /** + * 查询个人中介详情 + */ + @Operation(summary = "查询个人中介详情") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:query')") + @GetMapping("/person/{bizId}") + public AjaxResult getPersonInfo(@PathVariable String bizId) { + CcdiIntermediaryPersonDetailVO vo = intermediaryService.selectIntermediaryPersonDetail(bizId); + return success(vo); + } + + /** + * 查询实体中介详情 + */ + @Operation(summary = "查询实体中介详情") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:query')") + @GetMapping("/entity/{socialCreditCode}") + public AjaxResult getEntityInfo(@PathVariable String socialCreditCode) { + CcdiIntermediaryEntityDetailVO vo = intermediaryService.selectIntermediaryEntityDetail(socialCreditCode); + return success(vo); + } + + /** + * 新增个人中介 + */ + @Operation(summary = "新增个人中介") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')") + @Log(title = "个人中介", businessType = BusinessType.INSERT) + @PostMapping("/person") + public AjaxResult addPerson(@Validated @RequestBody CcdiIntermediaryPersonAddDTO addDTO) { + return toAjax(intermediaryService.insertIntermediaryPerson(addDTO)); + } + + /** + * 修改个人中介 + */ + @Operation(summary = "修改个人中介") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')") + @Log(title = "个人中介", businessType = BusinessType.UPDATE) + @PutMapping("/person") + public AjaxResult editPerson(@Validated @RequestBody CcdiIntermediaryPersonEditDTO editDTO) { + return toAjax(intermediaryService.updateIntermediaryPerson(editDTO)); + } + + /** + * 新增实体中介 + */ + @Operation(summary = "新增实体中介") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:add')") + @Log(title = "实体中介", businessType = BusinessType.INSERT) + @PostMapping("/entity") + public AjaxResult addEntity(@Validated @RequestBody CcdiIntermediaryEntityAddDTO addDTO) { + return toAjax(intermediaryService.insertIntermediaryEntity(addDTO)); + } + + /** + * 修改实体中介 + */ + @Operation(summary = "修改实体中介") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:edit')") + @Log(title = "实体中介", businessType = BusinessType.UPDATE) + @PutMapping("/entity") + public AjaxResult editEntity(@Validated @RequestBody CcdiIntermediaryEntityEditDTO editDTO) { + return toAjax(intermediaryService.updateIntermediaryEntity(editDTO)); + } + + /** + * 删除中介 + */ + @Operation(summary = "删除中介") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:remove')") + @Log(title = "中介信息", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public AjaxResult remove(@PathVariable String[] ids) { + return toAjax(intermediaryService.deleteIntermediaryByIds(ids)); + } + + /** + * 校验人员ID唯一性 + */ + @Operation(summary = "校验人员ID唯一性") + @GetMapping("/checkPersonIdUnique") + public AjaxResult checkPersonIdUnique(@RequestParam String personId, @RequestParam(required = false) String bizId) { + boolean unique = intermediaryService.checkPersonIdUnique(personId, bizId); + return success(unique); + } + + /** + * 校验统一社会信用代码唯一性 + */ + @Operation(summary = "校验统一社会信用代码唯一性") + @GetMapping("/checkSocialCreditCodeUnique") + public AjaxResult checkSocialCreditCodeUnique(@RequestParam String socialCreditCode, @RequestParam(required = false) String excludeId) { + boolean unique = intermediaryService.checkSocialCreditCodeUnique(socialCreditCode, excludeId); + return success(unique); + } + + /** + * 下载个人中介导入模板 + */ + @Operation(summary = "下载个人中介导入模板") + @PostMapping("/importPersonTemplate") + public void importPersonTemplate(HttpServletResponse response) { + EasyExcelUtil.importTemplateWithDictDropdown(response, CcdiIntermediaryPersonExcel.class, "个人中介信息"); + } + + /** + * 下载实体中介导入模板 + */ + @Operation(summary = "下载实体中介导入模板") + @PostMapping("/importEntityTemplate") + public void importEntityTemplate(HttpServletResponse response) { + EasyExcelUtil.importTemplateWithDictDropdown(response, CcdiIntermediaryEntityExcel.class, "实体中介信息"); + } + + /** + * 导入个人中介数据 + */ + @Operation(summary = "导入个人中介数据") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:import')") + @Log(title = "个人中介", businessType = BusinessType.IMPORT) + @PostMapping("/importPersonData") + public AjaxResult importPersonData(MultipartFile file, @RequestParam(defaultValue = "false") boolean updateSupport) throws Exception { + List list = EasyExcelUtil.importExcel(file.getInputStream(), CcdiIntermediaryPersonExcel.class); + String message = intermediaryService.importIntermediaryPerson(list, updateSupport); + return success(message); + } + + /** + * 导入实体中介数据 + */ + @Operation(summary = "导入实体中介数据") + @PreAuthorize("@ss.hasPermi('ccdi:intermediary:import')") + @Log(title = "实体中介", businessType = BusinessType.IMPORT) + @PostMapping("/importEntityData") + public AjaxResult importEntityData(MultipartFile file, @RequestParam(defaultValue = "false") boolean updateSupport) throws Exception { + List list = EasyExcelUtil.importExcel(file.getInputStream(), CcdiIntermediaryEntityExcel.class); + String message = intermediaryService.importIntermediaryEntity(list, updateSupport); + return success(message); + } +}