依据:同目录
补贴发放记录功能需求.md。本模块为台账类 CRUD,无发布/下架状态;本文给出库表与 HTTP 接口约定。
| 项 | 说明 |
|---|---|
| 后端 | RuoYi v3.9.2(springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid |
| 数据库 | MySQL 5.7.39,InnoDB,utf8mb4 |
| 前端 | 若依 Vue2(路由、菜单、按钮权限按项目惯例) |
分层:Controller(校验、权限、AjaxResult / TableDataInfo)→ Service(字段校验、脱敏可选)→ Mapper/XML → domain。
业务特征(摘要)
grant_date 倒序,其次 create_time 倒序。biz_subsidy_grant_record(补贴发放记录)| 字段 | 类型 | 非空 | 默认值 | 说明 |
|---|---|---|---|---|
id |
bigint(20) |
Y | 自增 | 主键 |
subsidy_project_name |
varchar(64) |
Y | — | 补贴项目名称(需求 1~20 字) |
subsidy_type |
tinyint(4) |
Y | — | 1 农业生产,2 住房基建,3 民生保障 |
recipient_name |
varchar(32) |
Y | — | 受补贴人姓名(需求 1~10 字) |
id_card |
varchar(18) |
Y | — | 身份证号(18 位,末位 X/x) |
contact_phone |
varchar(20) |
Y | — | 联系电话(手机号) |
bank_account |
varchar(32) |
Y | — | 银行账户(建议存数字串,16~19 位) |
subsidy_amount |
decimal(12,2) |
Y | — | 补贴金额(> 0) |
grant_date |
date |
Y | — | 发放日期 |
create_by / create_time / update_by / update_time |
若依惯例 | — | — | 审计字段 |
remark |
varchar(500) |
N | NULL | 备注 |
索引:PRIMARY KEY (id);KEY idx_grant_date (grant_date);KEY idx_subsidy_type (subsidy_type);KEY idx_recipient_name (recipient_name);可选 KEY idx_id_card (id_card)(统计/去重扩展用)。
DDL(MySQL 5.7)
CREATE TABLE `biz_subsidy_grant_record` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`subsidy_project_name` varchar(64) NOT NULL COMMENT '补贴项目名称',
`subsidy_type` tinyint(4) NOT NULL COMMENT '1农业生产 2住房基建 3民生保障',
`recipient_name` varchar(32) NOT NULL COMMENT '受补贴人姓名',
`id_card` varchar(18) NOT NULL COMMENT '身份证号',
`contact_phone` varchar(20) NOT NULL COMMENT '联系电话',
`bank_account` varchar(32) NOT NULL COMMENT '银行账户',
`subsidy_amount` decimal(12,2) NOT NULL COMMENT '补贴金额',
`grant_date` date NOT NULL COMMENT '发放日期',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`),
KEY `idx_grant_date` (`grant_date`),
KEY `idx_subsidy_type` (`subsidy_type`),
KEY `idx_recipient_name` (`recipient_name`),
KEY `idx_id_card` (`id_card`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='补贴发放记录';
| 字段 | 值 | 含义 |
|---|---|---|
subsidy_type |
1 |
农业生产 |
2 |
住房基建 | |
3 |
民生保障 |
统一响应:AjaxResult(code / msg / data)或分页 TableDataInfo(rows、total)。
权限标识(示例):industryPolicy:subsidyRecord:list|query|add|edit|remove|export
Base Path(示例):/industryPolicy/subsidyRecord
| # | 说明 | Method | URI | 权限 | 要点 |
|---|---|---|---|---|---|
| 3.1 | 分页列表 | GET | /industryPolicy/subsidyRecord/list |
industryPolicy:subsidyRecord:list |
Query 见 3.1.1;排序 grant_date DESC, create_time DESC, id DESC |
| 3.2 | 详情 | GET | /industryPolicy/subsidyRecord/{id} |
industryPolicy:subsidyRecord:query |
全字段;敏感字段可按角色脱敏 |
| 3.3 | 新增 | POST | /industryPolicy/subsidyRecord |
industryPolicy:subsidyRecord:add |
Body 见 3.3.1 |
| 3.4 | 修改 | PUT | /industryPolicy/subsidyRecord |
industryPolicy:subsidyRecord:edit |
Body 含 id;全字段可改 |
| 3.5 | 删除 | DELETE | /industryPolicy/subsidyRecord/{ids} |
industryPolicy:subsidyRecord:remove |
支持逗号分隔批量 id |
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
pageNum |
int | N | 默认 1 |
pageSize |
int | N | 默认 20 |
recipientName |
string | N | 受补贴人姓名模糊匹配 |
subsidyType |
int | N | 1~3 精确匹配,空则不过滤 |
startDate |
string | N | 发放日期起 yyyy-MM-dd(闭区间,含当日) |
endDate |
string | N | 发放日期止 yyyy-MM-dd(闭区间,含当日) |
区间校验:startDate、endDate 同时存在时,startDate ≤ endDate;否则返回参数错误,不查库。
| 字段 | 必填 | 说明 |
|---|---|---|
id |
修改必填 | 主键 |
subsidyProjectName |
Y | 1~20 字符 |
subsidyType |
Y | 1~3 |
recipientName |
Y | 1~10 字符 |
idCard |
Y | 18 位身份证校验 |
contactPhone |
Y | 大陆手机号校验 |
bankAccount |
Y | 数字,长度 16~19(与项目校验器一致) |
subsidyAmount |
Y | > 0,decimal(12,2) |
grantDate |
Y | yyyy-MM-dd,默认不允许 > 当天 |
remark |
N | 备注 |
列表行字段(示例):id、subsidyProjectName、subsidyType、recipientName、subsidyAmount、grantDate、contactPhone(可脱敏)、createTime。
| 字段 | 列表/无特权详情 | 完整查看权限 |
|---|---|---|
idCard |
保留前 4 + 后 4,中间 * |
明文 |
contactPhone |
前 3 + **** + 后 4 |
明文 |
bankAccount |
仅后 4 位或全 * |
明文 |
脱敏在 Service 或 VO 层处理;入库仍为明文(除非项目统一字段加密)。
| 项 | 规则 |
|---|---|
| 补贴项目名称 | 非空,1~20 字符 |
| 补贴类型 | ∈ {1,2,3} |
| 受补贴人姓名 | 非空,1~10 字符 |
| 身份证号 | 格式 + 校验位(复用项目 IdCard 校验) |
| 联系电话 | 11 位手机号规则 |
| 银行账户 | 非空,16~19 位数字 |
| 补贴金额 | > 0,最多 2 位小数 |
| 发放日期 | 合法日期;默认 grant_date ≤ 当天 |
| 列表日期 | startDate ≤ endDate |
| 类型 | 名称 | 权限标识 |
|---|---|---|
| 菜单 | 补贴发放记录 | industryPolicy:subsidyRecord:list |
| 按钮 | 查询 | industryPolicy:subsidyRecord:query |
| 按钮 | 新增 | industryPolicy:subsidyRecord:add |
| 按钮 | 修改 | industryPolicy:subsidyRecord:edit |
| 按钮 | 删除 | industryPolicy:subsidyRecord:remove |
| 按钮 | 导出 | industryPolicy:subsidyRecord:export |
组件路径建议:policy/subsidyRecord/index(与前端目录约定一致即可)。
biz_subsidy_grant_record DDL、菜单与按钮权限 SQLBizSubsidyGrantRecord Domain / Mapper / Service / Controller| 日期 | 说明 |
|---|---|
| — | 初稿:对齐功能需求;台账 CRUD;subsidy_type 1~3;排序按 grant_date |