From 2fbe030da9f5b4c88a3fa7169ffd256bcfc054ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A6=BE=E5=87=A0=E6=B5=B7?= Date: Fri, 16 Oct 2020 16:35:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=AD=98=E5=82=A8=E8=A1=A8=E5=8F=8A=E5=85=B6=E5=A4=84=E7=90=86?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/celess/blog/entity/Config.java | 15 +++++ .../cn/celess/blog/mapper/ConfigMapper.java | 55 ++++++++++++++++ src/main/resources/mapper/ConfigMapper.xml | 50 +++++++++++++++ src/main/resources/sql/data.sql | 7 +++ src/main/resources/sql/schema.sql | 10 ++- src/main/resources/sql/schema_h2.sql | 8 +++ .../celess/blog/mapper/ConfigMapperTest.java | 63 +++++++++++++++++++ 7 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 src/main/java/cn/celess/blog/entity/Config.java create mode 100644 src/main/java/cn/celess/blog/mapper/ConfigMapper.java create mode 100644 src/main/resources/mapper/ConfigMapper.xml create mode 100644 src/test/java/cn/celess/blog/mapper/ConfigMapperTest.java diff --git a/src/main/java/cn/celess/blog/entity/Config.java b/src/main/java/cn/celess/blog/entity/Config.java new file mode 100644 index 0000000..5cdfcbd --- /dev/null +++ b/src/main/java/cn/celess/blog/entity/Config.java @@ -0,0 +1,15 @@ +package cn.celess.blog.entity; + +import lombok.Data; + +/** + * @author : xiaohai + * @date : 2020/10/16 15:24 + * @desc : + */ +@Data +public class Config { + private Integer id; + private String name; + private String value; +} diff --git a/src/main/java/cn/celess/blog/mapper/ConfigMapper.java b/src/main/java/cn/celess/blog/mapper/ConfigMapper.java new file mode 100644 index 0000000..9cda49c --- /dev/null +++ b/src/main/java/cn/celess/blog/mapper/ConfigMapper.java @@ -0,0 +1,55 @@ +package cn.celess.blog.mapper; + +import cn.celess.blog.entity.Config; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author : xiaohai + * @date : 2020/10/16 15:24 + * @desc : + */ +@Mapper +@Repository +public interface ConfigMapper { + /** + * 获取单个配置 + * + * @param key 配置名 + * @return 配置 + */ + Config getConfiguration(String key); + + /** + * 更新配置 + * + * @param c 配置 + * @return 改变数据行数 + */ + int updateConfiguration(Config c); + + /** + * 获取所有配置 + * + * @return 所有配置 + */ + List getConfigurations(); + + /** + * 新增配置 + * + * @param c 配置 + * @return 改变行数 + */ + int addConfiguration(Config c); + + /** + * 删除配置 + * + * @param id 主键id + * @return 改变行数 + */ + int deleteConfiguration(int id); +} diff --git a/src/main/resources/mapper/ConfigMapper.xml b/src/main/resources/mapper/ConfigMapper.xml new file mode 100644 index 0000000..fc843ed --- /dev/null +++ b/src/main/resources/mapper/ConfigMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + insert into config(conf_name, conf_value) + values (#{name}, #{value}) + + + + + + update config + set conf_value = #{value} + where conf_id = #{id} + + + + + delete + from config + where conf_id = #{id} + + + \ No newline at end of file diff --git a/src/main/resources/sql/data.sql b/src/main/resources/sql/data.sql index 1a52c25..198b129 100644 --- a/src/main/resources/sql/data.sql +++ b/src/main/resources/sql/data.sql @@ -214,3 +214,10 @@ VALUES (1, '1.新增网站更新接口api \n2.新增友链api \n3.优化了文 (16, '登陆处理过程变更,登陆时长修改至5天', '2019-11-22 11:39:03', 0), (17, '界面改版v2.0', '2020-04-06 11:00:53', 0); +INSERT INTO config (conf_id, conf_name, conf_value) +VALUES (1, 'file.type', 'local'), + (2, 'file.qiniu.accessKey', ''), + (3, 'file.qiniu.secretKey', ''), + (4, 'file.qiniu.bucket', ''), + (6, 'file.local.dictoryPath', ''), + (7, 'db.type', 'h2') diff --git a/src/main/resources/sql/schema.sql b/src/main/resources/sql/schema.sql index fe1c62a..f7f8975 100644 --- a/src/main/resources/sql/schema.sql +++ b/src/main/resources/sql/schema.sql @@ -8,6 +8,7 @@ drop table if exists tag_category; drop table if exists links; drop table if exists visitor; drop table if exists web_update; +drop table if exists config; CREATE TABLE `user` @@ -88,7 +89,7 @@ CREATE TABLE `links` `l_url` varchar(255) unique not null comment '首页地址', `l_icon_path` varchar(255) not null comment '友链的icon地址', `l_desc` varchar(255) COLLATE utf8mb4_unicode_ci not null comment '友链的说明描述', - `is_delete` boolean not null default false comment '该数据是否被删除', + `is_delete` boolean not null default false comment '该数据是否被删除', `l_email` varchar(255) comment '网站管理员的邮箱', `l_notification` boolean default false comment '是否通知了' ) comment '友站表'; @@ -110,6 +111,13 @@ CREATE TABLE `web_update` `is_delete` boolean not null default false comment '该数据是否被删除' ) comment '更新内容表'; +CREATE TABLE `config` +( + `conf_id` int primary key auto_increment, + `conf_name` varchar(255) unique not null comment '配置名', + `conf_value` varchar(255) not null comment '配置值' +); + CREATE VIEW articleView (articleId, title, summary, mdContent, url, isOriginal, readingCount, likeCount, dislikeCount, publishDate, updateDate, isOpen, diff --git a/src/main/resources/sql/schema_h2.sql b/src/main/resources/sql/schema_h2.sql index df185f2..818ee39 100644 --- a/src/main/resources/sql/schema_h2.sql +++ b/src/main/resources/sql/schema_h2.sql @@ -8,6 +8,7 @@ drop table if exists tag_category; drop table if exists links; drop table if exists visitor; drop table if exists web_update; +drop table if exists config; -- 用户表 CREATE TABLE `user` @@ -115,6 +116,13 @@ CREATE TABLE `web_update` `is_delete` boolean not null default false comment '该数据是否被删除' ); +CREATE TABLE `config` +( + `conf_id` int primary key auto_increment, + `conf_name` varchar(255) unique not null comment '配置名', + `conf_value` varchar(255) not null comment '配置值' +); + CREATE VIEW articleView (articleId, title, summary, mdContent, url, isOriginal, readingCount, likeCount, dislikeCount, publishDate, updateDate, isOpen, diff --git a/src/test/java/cn/celess/blog/mapper/ConfigMapperTest.java b/src/test/java/cn/celess/blog/mapper/ConfigMapperTest.java new file mode 100644 index 0000000..3c3264d --- /dev/null +++ b/src/test/java/cn/celess/blog/mapper/ConfigMapperTest.java @@ -0,0 +1,63 @@ +package cn.celess.blog.mapper; + +import cn.celess.blog.BaseTest; +import cn.celess.blog.entity.Config; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import static org.junit.Assert.*; + +public class ConfigMapperTest extends BaseTest { + + @Autowired + ConfigMapper configMapper; + + @Test + public void getConfiguration() { + Config file = configMapper.getConfiguration("file.type"); + assertNotNull(file); + assertNotNull(file.getId()); + assertEquals("file.type", file.getName()); + assertEquals("local", file.getValue()); + } + + @Test + public void updateConfiguration() { + Config config = generateConfig(); + configMapper.addConfiguration(config); + assertNotNull(config.getId()); + + String s = randomStr(); + config.setValue(s); + configMapper.updateConfiguration(config); + assertEquals(s, configMapper.getConfiguration(config.getName()).getValue()); + } + + @Test + public void getConfigurations() { + assertTrue(configMapper.getConfigurations().size() > 0); + } + + @Test + public void addConfiguration() { + Config config = generateConfig(); + configMapper.addConfiguration(config); + assertNotNull(config.getId()); + } + + @Test + public void deleteConfiguration() { + Config config = generateConfig(); + configMapper.addConfiguration(config); + assertNotNull(config.getId()); + assertNotEquals(0, configMapper.deleteConfiguration(config.getId())); + assertNull(configMapper.getConfiguration(config.getName())); + } + + private Config generateConfig() { + Config config = new Config(); + config.setName("test" + randomStr(4)); + config.setValue(randomStr(4)); + return config; + } +} \ No newline at end of file