From 36a7041a06f5f7f949098fb5e4a0e89b7d4bc929 Mon Sep 17 00:00:00 2001
From: popup <18690563721@163.com>
Date: Sat, 17 Jan 2026 15:47:34 +0800
Subject: [PATCH] =?UTF-8?q?2026-01-17=201.=E6=B7=BB=E5=8A=A0Md5=E5=B7=A5?=
=?UTF-8?q?=E5=85=B7?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 121 ++++++++++++++++++
pom.xml | 2 +-
.../lailab/toolbox/beans/tools/ToolMd5.java | 14 ++
.../toolbox/controller/ToolController.java | 2 +-
.../controller/tools/ToolMd5Controller.java | 16 +++
.../lailab/toolbox/mapper/ToolMd5Mapper.java | 25 ++++
.../toolbox/service/ToolMd5Service.java | 12 ++
.../service/impl/ToolMd5ServiceImpl.java | 24 ++++
src/main/resources/application-pro.yml | 4 +-
src/main/resources/mapper/ToolMd5Mppper.xml | 12 ++
.../static/tools/JiSuanQi/JiSuanQi.html | 10 +-
.../toolbox/service/ToolMd5ServiceTest.java | 23 ++++
12 files changed, 256 insertions(+), 9 deletions(-)
create mode 100644 README.md
create mode 100644 src/main/java/cn/lailab/toolbox/beans/tools/ToolMd5.java
create mode 100644 src/main/java/cn/lailab/toolbox/controller/tools/ToolMd5Controller.java
create mode 100644 src/main/java/cn/lailab/toolbox/mapper/ToolMd5Mapper.java
create mode 100644 src/main/java/cn/lailab/toolbox/service/ToolMd5Service.java
create mode 100644 src/main/java/cn/lailab/toolbox/service/impl/ToolMd5ServiceImpl.java
create mode 100644 src/main/resources/mapper/ToolMd5Mppper.xml
create mode 100644 src/test/java/cn/lailab/toolbox/service/ToolMd5ServiceTest.java
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..f382154
--- /dev/null
+++ b/README.md
@@ -0,0 +1,121 @@
+# SQL脚本
+
+## 一、常用表
+
+### 1.users:用户表
+
+```SQL
+CREATE TABLE `users` (
+ `id` int(5) NOT NULL AUTO_INCREMENT COMMENT '顺序号',
+ `username` varchar(10) NOT NULL COMMENT '用户名',
+ `password` varchar(100) NOT NULL COMMENT '密码',
+ `nickName` varchar(20) DEFAULT NULL COMMENT '昵称',
+ `gender` tinyint(1) DEFAULT NULL COMMENT '性别 0-不详 1-男 2-女',
+ `country` varchar(20) DEFAULT NULL COMMENT '国家',
+ `province` varchar(20) DEFAULT NULL COMMENT '省份',
+ `city` varchar(20) DEFAULT NULL COMMENT '城市',
+ `avatarUrl` varchar(500) DEFAULT NULL COMMENT '图像地址',
+ `openId` varchar(100) DEFAULT NULL COMMENT '微信OpenId识别代码',
+ `phone` varchar(20) DEFAULT NULL COMMENT '电话',
+ `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
+ `createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ `creator` varchar(10) NOT NULL COMMENT '创建人',
+ `source` tinyint(1) DEFAULT NULL COMMENT '来源 0-后台 1-小程序 2-网站',
+ `status` tinyint(1) NOT NULL COMMENT '用户状态 0-正常 1-限制使用 2-完全限制 3-封号 4-注销',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE KEY `username` (`username`) USING BTREE COMMENT 'username不能重复',
+ UNIQUE KEY `openId` (`openId`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT
+```
+
+### 2.auth_codes:授权码生成表
+
+```sql
+CREATE TABLE `auth_codes` (
+ `id` int(5) NOT NULL AUTO_INCREMENT,
+ `code` varchar(10) NOT NULL COMMENT '授权码',
+ `md5code` varchar(50) DEFAULT NULL COMMENT '加密授权码',
+ `type` varchar(20) NOT NULL COMMENT '类型: activate, reset, api',
+ `useCount` int(3) DEFAULT '0' COMMENT '调用次数',
+ `createTime` datetime NOT NULL COMMENT '创建时间',
+ KEY `id` (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=1020 DEFAULT CHARSET=utf8mb4
+```
+
+### 3.sys_parameter:系统参数表
+
+```sql
+CREATE TABLE `sys_parameter` (
+ `id` int(5) NOT NULL AUTO_INCREMENT COMMENT '参数ID',
+ `sort_id` int(11) DEFAULT '0' COMMENT '排序号',
+ `is_system` tinyint(1) DEFAULT '0' COMMENT '是否系统参数(0-用户参数 1-系统参数)',
+ `category` varchar(50) DEFAULT 'default' COMMENT '分类分组',
+ `type` varchar(20) DEFAULT 'string' COMMENT '参数类型: string, number, boolean, json, text',
+ `parameter_name` varchar(100) NOT NULL COMMENT '参数名称',
+ `parameter_value` text COMMENT '参数值',
+ `description` varchar(500) DEFAULT NULL COMMENT '参数描述',
+ `status` tinyint(1) DEFAULT '1' COMMENT '状态: 0-禁用 1-启用',
+ `create_user` varchar(50) DEFAULT NULL COMMENT '创建人',
+ `create_time` datetime NOT NULL COMMENT '创建时间',
+ `update_user` varchar(50) DEFAULT NULL COMMENT '更新人',
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`id`) USING BTREE,
+ KEY `idx_category_status` (`category`,`status`) USING BTREE,
+ KEY `idx_is_system` (`is_system`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=COMPACT COMMENT='系统参数配置表'
+```
+
+
+
+## 二、其他表
+
+### 1.tools_md5_dict:Md5解密
+
+```Sql
+-- 创建字符MD5编码字典表(最终版)
+CREATE TABLE `tool_md5_dict` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+ `str` varchar(255) NOT NULL COMMENT '原始字符',
+ `md5` varchar(255) NOT NULL COMMENT 'MD5编码',
+ `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `uk_char` (`char`) COMMENT '确保数字字符唯一,避免重复存储',
+ KEY `idx_md5` (`md5`) COMMENT 'MD5值索引,提升反向查询效率'
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数字字符MD5编码字典表'
+```
+
+
+
+## 三、备份表
+
+### 1.users_log:用户数据变更日志表
+
+```sql
+CREATE TABLE `users_log` (
+ `logId` int(11) NOT NULL AUTO_INCREMENT COMMENT '日志ID',
+ `operation` varchar(10) NOT NULL COMMENT '操作方法: UPDATE/DELETE',
+ `operator` varchar(10) NOT NULL COMMENT '操作人',
+ `operationTime` datetime NOT NULL COMMENT '操作时间',
+ `dataType` varchar(10) NOT NULL COMMENT '数据类型: OLD(旧数据)/NEW(新数据)',
+ `id` int(5) DEFAULT NULL COMMENT '用户ID',
+ `username` varchar(10) DEFAULT NULL COMMENT '用户名',
+ `password` varchar(500) DEFAULT NULL COMMENT '密码',
+ `nickName` varchar(20) DEFAULT NULL COMMENT '昵称',
+ `gender` tinyint(1) DEFAULT NULL COMMENT '性别 0-不详 1-男 2-女',
+ `country` varchar(20) DEFAULT NULL COMMENT '国家',
+ `province` varchar(20) DEFAULT NULL COMMENT '省份',
+ `city` varchar(20) DEFAULT NULL COMMENT '城市',
+ `avatarUrl` varchar(500) DEFAULT NULL COMMENT '图像地址',
+ `openId` varchar(100) DEFAULT NULL COMMENT '微信OpenId',
+ `phone` varchar(20) DEFAULT NULL COMMENT '电话',
+ `email` varchar(50) DEFAULT NULL COMMENT '邮箱',
+ `createTime` datetime DEFAULT NULL COMMENT '创建时间',
+ `creator` varchar(10) DEFAULT NULL COMMENT '创建人',
+ `source` tinyint(1) DEFAULT NULL COMMENT '来源 0-后台 1-小程序 2-网站',
+ `status` tinyint(1) DEFAULT NULL COMMENT '用户状态',
+ PRIMARY KEY (`logId`) USING BTREE,
+ KEY `idx_user_id` (`id`),
+ KEY `idx_operation_time` (`operationTime`),
+ KEY `idx_operation` (`operation`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户操作日志表'
+```
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 4f86a36..0bec4ba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -98,6 +98,7 @@
annotationProcessor
+
log4j
log4j
@@ -133,5 +134,4 @@
-
diff --git a/src/main/java/cn/lailab/toolbox/beans/tools/ToolMd5.java b/src/main/java/cn/lailab/toolbox/beans/tools/ToolMd5.java
new file mode 100644
index 0000000..f3a2848
--- /dev/null
+++ b/src/main/java/cn/lailab/toolbox/beans/tools/ToolMd5.java
@@ -0,0 +1,14 @@
+package cn.lailab.toolbox.beans.tools;
+
+import java.util.Date;
+
+import lombok.Data;
+
+@Data
+public class ToolMd5 {
+ int id;
+ String str;
+ String md5;
+ Date createTime;
+ String authCode;
+}
diff --git a/src/main/java/cn/lailab/toolbox/controller/ToolController.java b/src/main/java/cn/lailab/toolbox/controller/ToolController.java
index 8cb0682..3d1877d 100644
--- a/src/main/java/cn/lailab/toolbox/controller/ToolController.java
+++ b/src/main/java/cn/lailab/toolbox/controller/ToolController.java
@@ -6,7 +6,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ToolController {
- @RequestMapping("/JiSuanQi")
+ @RequestMapping("/tools/JiSuanQi")
public String JiSuanQi() {
return "tools/JiSuanQi/JiSuanQi.html";
}
diff --git a/src/main/java/cn/lailab/toolbox/controller/tools/ToolMd5Controller.java b/src/main/java/cn/lailab/toolbox/controller/tools/ToolMd5Controller.java
new file mode 100644
index 0000000..1f53dda
--- /dev/null
+++ b/src/main/java/cn/lailab/toolbox/controller/tools/ToolMd5Controller.java
@@ -0,0 +1,16 @@
+package cn.lailab.toolbox.controller.tools;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.lailab.toolbox.beans.tools.ToolMd5;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@RestController
+public class ToolMd5Controller {
+ @RequestMapping("/tools/insertMd5")
+ public String insertToolMd51String(@RequestParam ToolMd5 ToolMd5) {
+ return "12345";
+ }
+}
diff --git a/src/main/java/cn/lailab/toolbox/mapper/ToolMd5Mapper.java b/src/main/java/cn/lailab/toolbox/mapper/ToolMd5Mapper.java
new file mode 100644
index 0000000..08cf9d5
--- /dev/null
+++ b/src/main/java/cn/lailab/toolbox/mapper/ToolMd5Mapper.java
@@ -0,0 +1,25 @@
+package cn.lailab.toolbox.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import cn.lailab.toolbox.beans.tools.ToolMd5;
+
+@Mapper
+public interface ToolMd5Mapper {
+ /**
+ * 添加Md5到库里
+ *
+ * @param toolMd5
+ * @return
+ */
+ int insertToolMd5(ToolMd5 toolMd5);
+
+ /**
+ * 获取对用的Md5信息
+ *
+ * @param toolMd5
+ * @return
+ */
+ ToolMd5 selectToolMd5(ToolMd5 toolMd5);
+
+}
diff --git a/src/main/java/cn/lailab/toolbox/service/ToolMd5Service.java b/src/main/java/cn/lailab/toolbox/service/ToolMd5Service.java
new file mode 100644
index 0000000..f090f3f
--- /dev/null
+++ b/src/main/java/cn/lailab/toolbox/service/ToolMd5Service.java
@@ -0,0 +1,12 @@
+package cn.lailab.toolbox.service;
+
+import org.springframework.stereotype.Service;
+
+import cn.lailab.toolbox.beans.tools.ToolMd5;
+
+@Service
+public interface ToolMd5Service {
+ int insertToolMd5(ToolMd5 toolMd5);
+
+ ToolMd5 selectToolMd5(ToolMd5 toolMd5);
+}
\ No newline at end of file
diff --git a/src/main/java/cn/lailab/toolbox/service/impl/ToolMd5ServiceImpl.java b/src/main/java/cn/lailab/toolbox/service/impl/ToolMd5ServiceImpl.java
new file mode 100644
index 0000000..b6f6be0
--- /dev/null
+++ b/src/main/java/cn/lailab/toolbox/service/impl/ToolMd5ServiceImpl.java
@@ -0,0 +1,24 @@
+package cn.lailab.toolbox.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+
+import cn.lailab.toolbox.beans.tools.ToolMd5;
+import cn.lailab.toolbox.mapper.ToolMd5Mapper;
+import cn.lailab.toolbox.service.ToolMd5Service;
+
+public class ToolMd5ServiceImpl implements ToolMd5Service {
+
+ @Autowired
+ ToolMd5Mapper toolMd5Mapper;
+
+ @Override
+ public int insertToolMd5(ToolMd5 toolMd5) {
+ return toolMd5Mapper.insertToolMd5(toolMd5);
+ }
+
+ @Override
+ public ToolMd5 selectToolMd5(ToolMd5 toolMd5) {
+ return toolMd5Mapper.selectToolMd5(toolMd5);
+ }
+
+}
diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml
index 73ccc6b..e48cc6c 100644
--- a/src/main/resources/application-pro.yml
+++ b/src/main/resources/application-pro.yml
@@ -33,7 +33,7 @@ mybatis:
# mapper-locations: classpath:mapper/*Mapper.xml #mapper的映射文件
mapper-locations: classpath:mapper/**/*.xml
# 2. 配置实体类的别名包(这样在 XML 中可以直接用类名,不用写全限定名)
- type-aliases-package: cn.lailab.toolbox.beans.domain
+ type-aliases-package: cn.lailab.toolbox.beans.domain,cn.lailab.toolbox.beans.other
# 3. 开启驼峰命名自动转换(比如数据库字段 user_name 自动映射到实体类属性 userName)
# configuration:
# map-underscore-to-camel-case: true
@@ -46,7 +46,7 @@ logging:
level:
org.springframework.web: info
org.hibernate.SQL: debug
- cn.lailab: info
+ cn.lailab.toolbox: info
logback:
rollingpolicy:
max-file-size: 10MB
diff --git a/src/main/resources/mapper/ToolMd5Mppper.xml b/src/main/resources/mapper/ToolMd5Mppper.xml
new file mode 100644
index 0000000..cd50e6f
--- /dev/null
+++ b/src/main/resources/mapper/ToolMd5Mppper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ insert into tool_md5_dict(str,md5)
+ values(#{str}, #{md5});
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/static/tools/JiSuanQi/JiSuanQi.html b/src/main/resources/static/tools/JiSuanQi/JiSuanQi.html
index a90a3d5..7eac689 100644
--- a/src/main/resources/static/tools/JiSuanQi/JiSuanQi.html
+++ b/src/main/resources/static/tools/JiSuanQi/JiSuanQi.html
@@ -53,12 +53,12 @@
/* 功能按钮(AC、+/-、%) */
.func-btn {
- background-color: #e6f7ff;
- color: #1890ff;
+ background-color: #e3b0a1;
+ color: #dd4d20;
}
.func-btn:active {
- background-color: #bae7ff;
+ background-color: #ea8363;
}
/* 数字按钮 */
@@ -73,12 +73,12 @@
/* 运算符按钮(天蓝色主题) */
.op-btn {
- background-color: #1890ff;
+ background-color: #dd4d20;
color: #ffffff;
}
.op-btn:active {
- background-color: #096dd9;
+ background-color: #c76a4e;
}
/* 0号按钮占两列 */
diff --git a/src/test/java/cn/lailab/toolbox/service/ToolMd5ServiceTest.java b/src/test/java/cn/lailab/toolbox/service/ToolMd5ServiceTest.java
new file mode 100644
index 0000000..9c24974
--- /dev/null
+++ b/src/test/java/cn/lailab/toolbox/service/ToolMd5ServiceTest.java
@@ -0,0 +1,23 @@
+package cn.lailab.toolbox.service;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import cn.lailab.toolbox.beans.tools.ToolMd5;
+
+@SpringBootTest
+public class ToolMd5ServiceTest {
+
+ // @Autowired
+ // ToolMd5Service toolMd5Service;
+
+ @Test
+ public void insertToolMd5Tests() {
+ // ToolMd5 toolMd5 = new ToolMd5();
+ // toolMd5.setStr("12345");
+ // toolMd5.setMd5("34556");
+ // int rst = toolMd5Service.insertToolMd5(toolMd5);
+ System.out.println("返回:");
+ }
+}