eff7ba2340
自主填报拆分为「驻店填报 / 跑店填报」两种类型,跑店填报的填报内容是
「巡店列表(多门店,每条含门店/定位/打卡照片)+ 活动小结」,与
yxe_self_report 的单门店结构不兼容:yxe_self_report 既没有多门店字段,
也没有区分驻店/跑店类型的字段。为不污染既有 928 条历史数据与既有
审核/导出逻辑,本次新建独立表 yxe_visit_report。
- entity/param/mapper(+xml)/service(+impl)/controller 全套
- 接口:page、audit/page、GET、userList、GET /{id}、POST、PUT、
PUT /resubmit、DELETE /{id}、DELETE /batch、PUT /batch、POST /export
- 审核通过复用自主填报逻辑:scene=6 写余额,备注「跑店填报审核通过获得收入」
- 提交人须 auth_status=2;resubmit 仅本人 + 仅已驳回记录
- store_count 由 store_list JSON 长度重算,不信任前端传值
- 列表接口(page / audit/page)裁剪 store_list 与 image:
一次巡店最多 9 图 × N 店,整列 JSON 可达数百 KB,列表只用 store_count,
明细展开时再按 id 拉详情;userList(填报记录页要渲染门店列表)与导出不裁剪
- 导出表头含门店清单/连锁清单等从 store_list 展开的列
配套:
- yxe_visit_report.sql(建表,幂等,含执行前后核对 SELECT)
- yxe-mp packageUser/self-report/select、visit
- yxe-admin yxeVisitReport API 与跑店详情
62 lines
3.5 KiB
SQL
62 lines
3.5 KiB
SQL
-- 用途:新增 yxe_visit_report 表(跑店填报)
|
|
-- 日期:2026-10-11
|
|
-- 背景:甲方要求把「自主填报」拆成「驻店填报 / 跑店填报」两种类型:
|
|
-- 1) 原自主填报页改为「驻店填报」,数据仍存 yxe_self_report,不动;
|
|
-- 2) 新增「跑店填报」,填报内容为「巡店列表(多门店,每条含门店/定位/打卡照片)+ 活动小结」。
|
|
-- 巡店列表是「一次填报多家门店」的数组结构,yxe_self_report 既没有多门店字段,
|
|
-- 也没有区分驻店/跑店类型的字段;本次选择新建独立表,避免污染既有 928 条历史数据
|
|
-- 与既有审核/导出逻辑。
|
|
-- 影响:新建空表,0 行业务数据;不改动 yxe_self_report 任何结构。
|
|
-- 性质:幂等,可重复执行(CREATE TABLE IF NOT EXISTS)。
|
|
-- 配套代码:
|
|
-- yxe-java YxeVisitReport.java / YxeVisitReportParam.java / YxeVisitReportMapper.java
|
|
-- / YxeVisitReportMapper.xml / YxeVisitReportService(+Impl)
|
|
-- / YxeVisitReportController.java
|
|
-- yxe-mp packageUser/self-report/select.vue(选择填报类型)
|
|
-- packageUser/self-report/visit.vue(跑店填报)
|
|
-- packageUser/self-report/records.vue(填报记录加类型切换)
|
|
-- pages/audit/index.vue(药审核加跑店填报类型)
|
|
-- yxe-admin src/api/yxe/yxeVisitReport/*、src/views/yxe/yxeSelfReport/*(类型筛选与跑店详情)
|
|
|
|
-- 执行前核对(应为 0,即表不存在)
|
|
SELECT COUNT(*) AS table_exists
|
|
FROM information_schema.TABLES
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'yxe_visit_report';
|
|
|
|
-- 变更:建表(已存在则跳过)
|
|
CREATE TABLE IF NOT EXISTS `yxe_visit_report` (
|
|
`id` int NOT NULL AUTO_INCREMENT,
|
|
`user_id` int DEFAULT NULL COMMENT '提交人ID',
|
|
`store_count` int DEFAULT 0 COMMENT '巡店门店数',
|
|
`store_list` longtext COMMENT '巡店列表JSON(门店/定位/打卡照片)',
|
|
`image` longtext COMMENT '全部图片集合',
|
|
`summary` longtext COMMENT '活动小结',
|
|
`reward` decimal(10,2) DEFAULT NULL COMMENT '奖金金额(审核时填写)',
|
|
`lat` varchar(64) DEFAULT NULL COMMENT '纬度(整单,取首条门店)',
|
|
`lng` varchar(64) DEFAULT NULL COMMENT '经度(整单,取首条门店)',
|
|
`location` varchar(500) DEFAULT NULL COMMENT '定位地址(整单,取首条门店)',
|
|
`sort_number` int DEFAULT 0 COMMENT '排序',
|
|
`comments` varchar(500) DEFAULT NULL COMMENT '备注',
|
|
`status` tinyint DEFAULT 0 COMMENT '状态:0待审核,1通过,2拒绝',
|
|
`reject_reason` varchar(500) DEFAULT NULL COMMENT '驳回原因',
|
|
`deleted` tinyint DEFAULT 0 COMMENT '逻辑删除',
|
|
`tenant_id` int DEFAULT 10325 COMMENT '租户ID',
|
|
`create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
`update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
PRIMARY KEY (`id`),
|
|
KEY `idx_yxe_visit_report_user_id` (`user_id`),
|
|
KEY `idx_yxe_visit_report_status` (`status`),
|
|
KEY `idx_yxe_visit_report_create_time` (`create_time`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='跑店填报';
|
|
|
|
-- 执行后核对(应返回 1 行,且列/注释符合预期)
|
|
SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT, ORDINAL_POSITION
|
|
FROM information_schema.COLUMNS
|
|
WHERE TABLE_SCHEMA = DATABASE()
|
|
AND TABLE_NAME = 'yxe_visit_report'
|
|
ORDER BY ORDINAL_POSITION;
|
|
|
|
-- 执行后核对(应为 0,跑店填报为新建功能,无历史数据)
|
|
SELECT COUNT(*) AS row_count FROM `yxe_visit_report`;
|