












1. 页面截图分析与模块定位
2. 我的中心总体设计
3. 六大功能域详细设计
4. 页面交互与状态设计
5. 权限、租户与动态菜单设计
6. 数据库表结构设计
7. 后端接口设计
8. 后端开发实现说明
9. 前端开发实现说明
10. 打印设置专项设计
11. 安全、缓存、日志与审计
12. 测试用例与验收标准
13. 研发排期与落地建议
14. 附录:核心 DDL 与代码骨架
根据截图,当前页面是移动端底部导航“我的”页面。顶部为蓝色品牌头部,中间显示用户头像、账号、编辑图标与二维码图标;下方卡片显示“升鲜宝1.0专业版”和“用户数:1235”;菜单分为推广奖励、服务支持、打印与设置三类。
本模块建议分为“配置类表、用户设置类表、服务支持类表、打印类表、推广奖励类表、授权快照类表”。字段命名遵循升鲜宝规范:不使用 is_ 前缀,布尔字段使用 xxx_flag。
{
"userInfo": {
"userId": 1,
"username": "admin",
"nickname": "admin",
"avatarUrl": "https://cdn.sxb.com/avatar.png",
"phone": "13800000000",
"roleName": "系统管理员",
"tenantName": "杭州升鲜宝科技有限公司",
"shopName": "总部",
"qrCodeUrl": "https://cdn.sxb.com/qrcode/user/1.png"
},
"licenseInfo": {
"systemName": "升鲜宝",
"versionName": "升鲜宝1.0专业版",
"packageName": "专业版",
"usedUserCount": 1235,
"userLimit": 2000,
"expireDate": "2026-12-31",
"licenseStatus": "normal"
},
"menuGroups": [
{
"groupCode": "promotion",
"groupName": "推广奖励",
"menus": [
{"menuCode":"my_reward","menuName":"我的奖励","iconCode":"reward","path":"/mine/reward"},
{"menuCode":"my_invite","menuName":"我的拉新","iconCode":"invite","path":"/mine/invite"},
{"menuCode":"new_customer","menuName":"开拓新客","iconCode":"customer","path":"/mine/customer-lead"}
]
}
]
}
|
对象 |
字段 |
|
MineHomeVO |
userInfo, licenseInfo, menuGroups |
|
MineUserInfoVO |
userId, username, nickname, avatarUrl, phone, roleName, tenantName, shopName, qrCodeUrl |
|
TenantLicenseVO |
systemName, versionName, packageName, usedUserCount, userLimit, expireDate, licenseStatus, moduleCodes |
|
MineMenuGroupVO |
groupCode, groupName, sortNo, menus |
|
MineMenuVO |
menuCode, menuName, iconCode, iconUrl, path, badgeCount, actionType |
|
UserSettingSaveDTO |
settingKey, settingValue, valueType |
|
PrintDeviceSaveDTO |
id, shopId, warehouseId, deviceName, deviceType, deviceCode, ipAddress, port, paperType, defaultFlag, enabledFlag |
|
FeedbackSubmitDTO |
feedbackType, title, content, contactPhone, contactEmail, attachmentUrls |
CREATE TABLE sys_mine_menu (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID,0表示平台默认',
menu_code VARCHAR(100) NOT NULL COMMENT '菜单编码',
menu_name VARCHAR(100) NOT NULL COMMENT '菜单名称',
group_code VARCHAR(50) NOT NULL COMMENT '分组编码:promotion,support,print,setting',
group_name VARCHAR(100) DEFAULT NULL COMMENT '分组名称',
icon_code VARCHAR(100) DEFAULT NULL COMMENT '图标编码',
icon_url VARCHAR(500) DEFAULT NULL COMMENT '图标地址',
path VARCHAR(300) DEFAULT NULL COMMENT '前端跳转路径',
action_type VARCHAR(30) NOT NULL DEFAULT 'route' COMMENT '动作类型:route,webview,phone,email,copy',
permission_code VARCHAR(100) DEFAULT NULL COMMENT '权限编码',
module_code VARCHAR(100) DEFAULT NULL COMMENT '授权模块编码',
terminal_type VARCHAR(30) NOT NULL DEFAULT 'app' COMMENT '终端类型:app,h5,mini,pos,warehouse',
visible_flag TINYINT NOT NULL DEFAULT 1 COMMENT '是否显示:0否,1是',
enabled_flag TINYINT NOT NULL DEFAULT 1 COMMENT '是否启用:0否,1是',
sort_no INT NOT NULL DEFAULT 0 COMMENT '排序号',
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0正常,1删除',
UNIQUE KEY uk_tenant_menu_code (tenant_id, menu_code),
KEY idx_tenant_group (tenant_id, group_code),
KEY idx_terminal_type (terminal_type)
) COMMENT='我的中心菜单配置表';
CREATE TABLE sys_user_feedback (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
user_id BIGINT NOT NULL COMMENT '反馈用户ID',
feedback_type VARCHAR(30) NOT NULL COMMENT '反馈类型:suggestion,complaint,bug,cooperation,other',
title VARCHAR(200) NOT NULL COMMENT '反馈标题',
content TEXT NOT NULL COMMENT '反馈内容',
contact_phone VARCHAR(30) DEFAULT NULL COMMENT '联系电话',
contact_email VARCHAR(100) DEFAULT NULL COMMENT '联系邮箱',
attachment_urls TEXT DEFAULT NULL COMMENT '附件地址JSON',
status VARCHAR(30) NOT NULL DEFAULT 'pending' COMMENT '状态:pending,accepted,processing,replied,closed',
reply_content TEXT DEFAULT NULL COMMENT '回复内容',
reply_user_id BIGINT DEFAULT NULL COMMENT '回复人ID',
reply_time DATETIME DEFAULT NULL COMMENT '回复时间',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0正常,1删除',
KEY idx_tenant_user (tenant_id, user_id),
KEY idx_status (status)
) COMMENT='用户反馈与CEO信箱表';
CREATE TABLE sys_print_device (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
shop_id BIGINT DEFAULT NULL COMMENT '门店ID',
warehouse_id BIGINT DEFAULT NULL COMMENT '仓库ID',
user_id BIGINT DEFAULT NULL COMMENT '用户ID,用户私有打印机时使用',
device_name VARCHAR(100) NOT NULL COMMENT '打印机名称',
device_type VARCHAR(30) NOT NULL COMMENT '设备类型:bluetooth,network,usb,cloud,browser',
device_code VARCHAR(100) DEFAULT NULL COMMENT '设备编码',
ip_address VARCHAR(100) DEFAULT NULL COMMENT 'IP地址',
port INT DEFAULT NULL COMMENT '端口',
paper_type VARCHAR(30) DEFAULT NULL COMMENT '纸张类型:58mm,80mm,A4,label',
default_flag TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认:0否,1是',
enabled_flag TINYINT NOT NULL DEFAULT 1 COMMENT '启用状态:0停用,1启用',
remark VARCHAR(500) DEFAULT NULL COMMENT '备注',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0正常,1删除',
KEY idx_tenant_shop (tenant_id, shop_id),
KEY idx_tenant_warehouse (tenant_id, warehouse_id),
KEY idx_tenant_user (tenant_id, user_id)
) COMMENT='打印设备配置表';
CREATE TABLE sys_print_template_bind (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
shop_id BIGINT DEFAULT NULL COMMENT '门店ID',
warehouse_id BIGINT DEFAULT NULL COMMENT '仓库ID',
biz_type VARCHAR(50) NOT NULL COMMENT '业务类型:pos_ticket,stockin,stockout,delivery,label,reconciliation',
template_id BIGINT NOT NULL COMMENT '打印模板ID',
device_id BIGINT DEFAULT NULL COMMENT '默认打印设备ID',
default_flag TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认:0否,1是',
enabled_flag TINYINT NOT NULL DEFAULT 1 COMMENT '启用状态:0停用,1启用',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0正常,1删除',
KEY idx_tenant_biz (tenant_id, biz_type),
KEY idx_device_id (device_id)
) COMMENT='打印模板绑定表';
CREATE TABLE mkt_invite_relation (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
inviter_user_id BIGINT NOT NULL COMMENT '邀请人用户ID',
invitee_user_id BIGINT DEFAULT NULL COMMENT '被邀请用户ID',
invitee_phone VARCHAR(30) DEFAULT NULL COMMENT '被邀请手机号',
invite_code VARCHAR(100) NOT NULL COMMENT '邀请码',
invite_status VARCHAR(30) NOT NULL DEFAULT 'invited' COMMENT '状态:invited,registered,verified,opened,deal,invalid',
register_time DATETIME DEFAULT NULL COMMENT '注册时间',
deal_time DATETIME DEFAULT NULL COMMENT '成交时间',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0正常,1删除',
UNIQUE KEY uk_invite_code (invite_code),
KEY idx_inviter (tenant_id, inviter_user_id)
) COMMENT='邀请拉新关系表';
CREATE TABLE mkt_reward_account (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
user_id BIGINT NOT NULL COMMENT '用户ID',
total_amount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '累计奖励金额',
available_amount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '可提现金额',
pending_amount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '待结算金额',
withdrawn_amount DECIMAL(18,2) NOT NULL DEFAULT 0.00 COMMENT '已提现金额',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
UNIQUE KEY uk_tenant_user (tenant_id, user_id)
) COMMENT='用户奖励账户表';
CREATE TABLE mkt_reward_flow (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
user_id BIGINT NOT NULL COMMENT '用户ID',
source_type VARCHAR(30) NOT NULL COMMENT '来源类型:invite_register,customer_deal,renewal,activity,manual',
source_id BIGINT DEFAULT NULL COMMENT '来源业务ID',
reward_amount DECIMAL(18,2) NOT NULL COMMENT '奖励金额',
reward_status VARCHAR(30) NOT NULL DEFAULT 'pending' COMMENT '状态:pending,available,withdrawn,canceled',
settle_time DATETIME DEFAULT NULL COMMENT '结算时间',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
KEY idx_user_status (tenant_id, user_id, reward_status)
) COMMENT='用户奖励流水表';
CREATE TABLE crm_customer_lead (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
tenant_id BIGINT NOT NULL COMMENT '租户ID',
owner_user_id BIGINT NOT NULL COMMENT '负责人用户ID',
customer_name VARCHAR(200) NOT NULL COMMENT '客户名称',
contact_name VARCHAR(100) DEFAULT NULL COMMENT '联系人',
contact_phone VARCHAR(30) DEFAULT NULL COMMENT '联系电话',
industry_type VARCHAR(50) DEFAULT NULL COMMENT '行业类型',
region_name VARCHAR(200) DEFAULT NULL COMMENT '所在地区',
source_type VARCHAR(50) DEFAULT NULL COMMENT '来源类型',
intention_level VARCHAR(30) DEFAULT NULL COMMENT '意向等级',
follow_status VARCHAR(30) NOT NULL DEFAULT 'new' COMMENT '跟进状态:new,following,deal,lost',
remark VARCHAR(1000) DEFAULT NULL COMMENT '备注',
create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记:0正常,1删除',
KEY idx_owner (tenant_id, owner_user_id),
KEY idx_customer_name (tenant_id, customer_name)
) COMMENT='客户线索表';
INSERT INTO sys_mine_menu
(tenant_id, menu_code, menu_name, group_code, group_name, icon_code, path, action_type, permission_code, module_code, terminal_type, visible_flag, enabled_flag, sort_no, remark)
VALUES
(0, 'my_reward', '我的奖励', 'promotion', '推广奖励', 'reward', '/mine/reward', 'route', 'mine:reward:view', 'promotion', 'app', 1, 1, 10, '奖励中心'),
(0, 'my_invite', '我的拉新', 'promotion', '推广奖励', 'invite', '/mine/invite', 'route', 'mine:invite:view', 'promotion', 'app', 1, 1, 20, '拉新记录'),
(0, 'new_customer', '开拓新客', 'promotion', '推广奖励', 'customer', '/mine/customer-lead', 'route', 'crm:lead:add', 'crm', 'app', 1, 1, 30, '新增客户线索'),
(0, 'support_hotline', '客服热线', 'support', '服务支持', 'hotline', '', 'phone', NULL, NULL, 'app', 1, 1, 40, '客服电话'),
(0, 'support_online', '在线客服', 'support', '服务支持', 'online_service', '/support/online', 'route', NULL, NULL, 'app', 1, 1, 50, '在线客服'),
(0, 'support_ceo_email', 'CEO邮箱', 'support', '服务支持', 'email', '/support/feedback?type=ceo', 'route', NULL, NULL, 'app', 1, 1, 60, 'CEO反馈'),
(0, 'print_setting', '打印设置', 'print', '打印设置', 'print', '/print/device', 'route', 'print:device:view', 'print', 'app', 1, 1, 70, '打印设备配置'),
(0, 'system_setting', '设置', 'setting', '系统设置', 'setting', '/setting/index', 'route', 'setting:view', NULL, 'app', 1, 1, 80, '系统设置');
本设计将截图中的“我的/设置”页面正式抽象为升鲜宝移动端的“我的中心”模块。模块通过动态菜单、权限过滤、租户配置和服务端聚合接口,实现用户信息、授权信息、推广奖励、服务支持、打印设置、系统设置六大能力的统一入口。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。