liujie
昨天 c983a0a398504697a777ffae48e59961b5ee2bd7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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()));
    }
}