当前位置: 首页 > news >正文

月票车超时配置功能

📋 功能概述

之前月票车超时配置数据存储在 violations 违规记录表中,这种设计不合理。现在创建了专门的配置表 monthly_ticket_timeout_config 来存储月票车超时配置。

🗄️ 数据库变更

新增表:monthly_ticket_timeout_config

-- 月票车超时配置表
CREATE TABLE `monthly_ticket_timeout_config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID',`park_code` varchar(50) NOT NULL COMMENT '车场编码',`park_name` varchar(100) DEFAULT NULL COMMENT '车场名称',`timeout_minutes` int(11) NOT NULL DEFAULT 60 COMMENT '超时时间(分钟)',`max_violation_count` int(11) NOT NULL DEFAULT 5 COMMENT '最大违规次数',`is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用:1-启用,0-禁用',`description` varchar(255) DEFAULT NULL COMMENT '配置说明',`created_by` varchar(50) DEFAULT NULL COMMENT '创建人',`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_park_code` (`park_code`) COMMENT '车场编码唯一索引',KEY `idx_park_code_active` (`park_code`, `is_active`) COMMENT '车场编码和启用状态联合索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='月票车超时配置表';

🏗️ 代码架构

新增类文件

  1. 实体类: MonthlyTicketTimeoutConfig.java
    • 定义配置表的实体结构
  1. Mapper接口: MonthlyTicketTimeoutConfigMapper.java
    • 数据访问层接口
  1. Service接口: MonthlyTicketTimeoutConfigService.java
    • 业务逻辑接口
  1. Service实现: MonthlyTicketTimeoutConfigServiceImpl.java
    • 业务逻辑实现

修改的类文件

  1. ViolationsServiceImpl.java
    • 更新 saveMonthlyTicketTimeoutConfig() 方法,使用新的配置服务
    • 更新 getMonthlyTicketTimeoutConfig() 方法,从新的配置表读取数据

🔧 部署步骤

  1. 执行建表SQL
# 连接到MySQL数据库
mysql -u root -p project_lzx# 执行建表SQL
source sql/monthly_ticket_timeout_config.sql
  1. 重启应用
    • 重新编译并启动Spring Boot应用

✅ 功能验证

  1. 保存配置测试
POST /violations/saveMonthlyTicketTimeoutConfig
{"parkCode": "TEST001","timeoutMinutes": 30,"maxViolationCount": 5,"operatorId": "admin"
}
  1. 获取配置测试
GET /violations/getMonthlyTicketTimeoutConfig?parkCode=TEST001

📈 优势

  1. 数据隔离: 配置数据与违规记录数据分离,避免混乱
  1. 性能优化: 专门的索引设计,查询性能更好
  1. 易于维护: 专门的服务类,代码更清晰
  1. 扩展性强: 可以轻松添加新的配置字段

🔄 数据迁移

如果有现有的配置数据在 violations 表中,可以执行以下迁移脚本:

-- 迁移现有配置数据(如果需要)
INSERT INTO monthly_ticket_timeout_config (park_code, timeout_minutes, max_violation_count, description, created_by, created_at)
SELECT park_code,-- 从description字段解析timeoutCAST(SUBSTRING_INDEX(SUBSTRING_INDEX(description, 'timeout=', -1), '分', 1) AS UNSIGNED) as timeout_minutes,-- 从description字段解析maxCount  CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(description, 'maxCount=', -1), '次', 1) AS UNSIGNED) as max_violation_count,description,created_by,created_at
FROM violations 
WHERE violation_type = 'SYSTEM_CONFIG' AND plate_number LIKE 'CFG_%'
ON DUPLICATE KEY UPDATEtimeout_minutes = VALUES(timeout_minutes),max_violation_count = VALUES(max_violation_count),updated_at = NOW();
http://www.dtcms.com/a/407941.html

相关文章:

  • 网站软件下载安装网站建设项目采购公告
  • jsp购物网站开发微信小程序与wordpress
  • AlmaLinux release 9.6服务器离线安装nginx-1.24.0详细步骤
  • 淘宝获取商品详情数据API接口PC端和App端的实际操作指南
  • 在哪个公司建设网站好设计网站页面要注意什么
  • 移动固态硬盘连接手机无法读取是什么原因?
  • 做阿里巴巴1688网站程序cms网站开发实验报告
  • 做美图+网站有哪些公司网站怎么做
  • Ubuntu24搭建PHP访问SQL Server环境
  • 甘州区建设局网站做logo的网站
  • 网站名 注册钓鱼网站搭建教程
  • 电子商务网站规划与建设步骤武夷山网站建设wzjseo
  • 学校网站开发免费行情软件app网站大全下载免费入口
  • 北京网站建设排行榜10条重大新闻事件
  • 阅读网站建设重庆网站关键字优化
  • C++基础(21)——内存管理
  • 企业网站建设的目的网页 网站 站点的区别
  • 图像分类项目
  • wordpress 英语太原seo优化公司
  • 专门做壁纸的网站传奇页游
  • ubuntu18.04 vsomeip的编译及使用
  • 自适应网站价格成都it公司排名
  • 长沙seo网站排名厦门同安网站建设
  • 企业购网站建设小说分销平台
  • langchain概述
  • C++笔记(基础)基于范围的for循环 nullptr,using关键字
  • cpanel 子网站做旅游网站犯法吗
  • 浙江华企做的网站效果如何wordpress弹窗
  • 学做效果图的网站有哪些四川平昌县建设局网站
  • 在国外做黄皮网站违法么软盟软件 app开发公司