西藏巴青项目

市场栏位管理技术方案.md 6.1KB

市场栏位管理 — 技术方案

依据:同目录 市场栏位管理功能需求.md。市场栏位 CRUD + 逻辑删除 + 编号自动生成(2 位);列表栏位编号 模糊筛选;全局配置表(与隔离圈位区分)。


1. 技术架构

说明
后端 RuoYi v3.9.2springboot2 分支):JDK 8、Spring Boot 2.x、Spring MVC、MyBatis、Druid
数据库 MySQL 5.7.39,InnoDB,utf8mb4
前端 若依 Vue2;字段 小驼峰(本方案不展开页面)

分层ControllerServiceMarketStallValidation编号生成)→ Mapper/XML → domain

代码包(建议)com.ruoyi.web.modules.trademarket

业务摘要

场景 行为
新增 校验通过后 StallCodeGenerator 分配 stall_code0199);del_flag=0
修改 不可改 stall_code;仅更新 remark
列表/详情 del_flag=0;排序 stall_code ASC, id ASC
列表筛选 stall_code 模糊 LIKE %keyword%
删除 del_flag=2;下游引用时 ServiceException

与隔离圈位biz_market_stallbiz_isolation_pen 独立表、独立编号序列0199 在两模块内各自维护,互不影响。


2. 数据库设计

2.1 表 biz_market_stall(市场栏位)

字段 类型 非空 默认值 说明
id bigint(20) Y 自增 主键
stall_code char(2) Y 栏位编号 0199本表内全局唯一
remark varchar(50) N NULL 栏位备注(≤50 字)
del_flag char(1) Y '0' 0 存在 2 删除
create_by / create_time / update_by / update_time 若依惯例 审计

索引PRIMARY KEY (id)UNIQUE KEY uk_stall_code (stall_code)KEY idx_del_flag (del_flag)

2.2 DDL(MySQL 5.7)

CREATE TABLE `biz_market_stall` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
  `stall_code` char(2) NOT NULL COMMENT '栏位编号01-99',
  `remark` varchar(50) DEFAULT NULL COMMENT '栏位备注',
  `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '0存在 2删除',
  `create_by` varchar(64) DEFAULT '' COMMENT '创建者',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_by` varchar(64) DEFAULT '' COMMENT '更新者',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_stall_code` (`stall_code`),
  KEY `idx_del_flag` (`del_flag`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='市场栏位';

2.3 枚举

删除标记 del_flag

含义
0 正常
2 已逻辑删除

2.4 编号生成(StallCodeGenerator

biz_market_stalldel_flag=0 范围内取 MAX(stall_code) + 1,格式 %02d;上限 99;与插入同一事务,避免并发重复。


3. 接口设计

统一响应AjaxResult / TableDataInfocodemsgdata / rowstotal)。

权限标识tradeMarket:marketStall:list|query|add|edit|remove

Base Path/tradeMarket/marketStall

# 说明 Method URI 权限
3.1 分页列表 GET /tradeMarket/marketStall/list list
3.2 详情 GET /tradeMarket/marketStall/{id} query
3.3 新增 POST /tradeMarket/marketStall add
3.4 修改 PUT /tradeMarket/marketStall edit
3.5 删除 DELETE /tradeMarket/marketStall/{ids} remove

3.1.1 列表 Query

参数 类型 必填 说明
pageNum / pageSize int N 默认 1 / 20
stallCode string N 栏位编号模糊stall_code LIKE %value%

排序stall_code ASC, id ASC

3.2.1 详情 data(驼峰)

idstallCoderemark、审计字段。

3.3.1 新增 / 修改 Body(驼峰)

字段 新增 修改 说明
id Y 主键
stallCode 禁止传入;仅响应带回
remark N N ≤50 字,trim;空串存 NULL

3.4 服务端校验(MarketStallValidation

规则
备注 有内容时 ≤50 字
修改 禁止改 stall_code;记录存在且 del_flag=0
删除 未删;MarketStallReferenceChecker.hasReference(id) 为 false(本期可占位 false

3.5 删除

  • 单条:DELETE /tradeMarket/marketStall/{ids},传一个 id。
  • UPDATE … SET del_flag='2' WHERE id=? AND del_flag='0'

3.6 Mapper 约定

  • 条件均带 del_flag='0'
  • 模糊:AND stall_code LIKE CONCAT('%', #{stallCode}, '%')

4. 菜单与权限(示例)

类型 名称 权限标识
菜单 市场栏位管理 tradeMarket:marketStall:list
按钮 查询 tradeMarket:marketStall:query
按钮 新增 tradeMarket:marketStall:add
按钮 修改 tradeMarket:marketStall:edit
按钮 删除 tradeMarket:marketStall:remove

组件路径:tradeMarket/marketStall/index(「交易市场平台」目录下)。


5. 与隔离圈位模块对照

隔离圈位 biz_isolation_pen 市场栏位 biz_market_stall
编号字段 pen_code stall_code
扩展表 biz_isolation_setting
配置接口 /isolationPen/setting
Base Path /tradeMarket/isolationPen /tradeMarket/marketStall
权限 config 仅 list/query/add/edit/remove

6. 交付清单

  • sql/biz_market_stall.sql、菜单权限 SQL
  • BizMarketStall、Mapper/XML、Service、Controller
  • StallCodeGeneratorMarketStallValidation
  • 单元测试(编号、备注长度、模糊 SQL)
  • MockMvc(list 模糊、CRUD)

7. 修订记录

版本 说明
1.0 初稿:biz_market_stall;CRUD+逻辑删除;2 位 stall_code/tradeMarket/marketStall;与隔离圈位分表分序列