package com.ruoyi.user.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.user.domain.AccountCertificationApply; import com.ruoyi.user.domain.vo.AccountCertificationApplyVo; import com.ruoyi.user.service.IAccountCertificationApplyService; /** * 主体认证审核 信息操作处理 * * 网关前缀 /account 由 StripPrefix=1 剥掉,故此处映射为 /user/certification, * 外部实际路径是 /account/user/certification/**。 * * 本模块只有"审"没有"增删":申请由 C 端会员提交(不在本仓库范围), * 后台只负责查看与通过/驳回。 * * @author ruoyi */ @RestController @RequestMapping("/user/certification") public class AccountCertificationApplyController extends BaseController { @Autowired private IAccountCertificationApplyService certificationApplyService; /** * 查询认证申请列表 */ @RequiresPermissions("member:certification:list") @GetMapping("/list") public TableDataInfo list(AccountCertificationApplyVo apply) { // 筛选区是「申请号与申请人」合一的单个输入框。纯数字时补一个 keywordId 让申请号与 // 用户编号走等值匹配;非数字则不参与这两列的比较(否则要 cast 列,主键索引用不上)。 String keyword = (String) apply.getParams().get("keyword"); if (StringUtils.isNotEmpty(keyword)) { try { apply.getParams().put("keywordId", Long.valueOf(keyword.trim())); } catch (NumberFormatException ignored) { // 非纯数字,只走手机号/姓名/企业名的模糊匹配 } } startPage(); return getDataTable(certificationApplyService.selectCertificationApplyList(apply)); } /** * 获取认证申请审核详情 */ @RequiresPermissions("member:certification:query") @GetMapping("/detail/{id}") public AjaxResult detail(@PathVariable Long id) { return success(certificationApplyService.selectCertificationApplyDetail(id)); } /** * 审核认证申请(通过/驳回) * * 置为独立接口而非复用 PUT 全量更新:审核只允许改审核结果 4 列, * 走全量更新会把申请快照(会员提交的资料)也暴露成可写字段。 */ @RequiresPermissions("member:certification:audit") @Log(title = "主体认证审核", businessType = BusinessType.UPDATE) @PutMapping("/audit") public AjaxResult audit(@RequestBody AccountCertificationApply apply) { if (StringUtils.isNull(apply.getId())) { return error("申请号不能为空"); } if (StringUtils.isEmpty(apply.getAuditStatus())) { return error("审核结果不能为空"); } return toAjax(certificationApplyService.auditCertificationApply( apply.getId(), apply.getAuditStatus(), apply.getAuditRemark())); } }