first commit
This commit is contained in:
parent
213fb4f1b5
commit
bc7bb41837
33
.gitignore
vendored
Normal file
33
.gitignore
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
HELP.md
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
!**/src/main/**/target/
|
||||
!**/src/test/**/target/
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
build/
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
118
.mvn/wrapper/MavenWrapperDownloader.java
vendored
Normal file
118
.mvn/wrapper/MavenWrapperDownloader.java
vendored
Normal file
@ -0,0 +1,118 @@
|
||||
/*
|
||||
* Copyright 2007-present the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import java.net.*;
|
||||
import java.io.*;
|
||||
import java.nio.channels.*;
|
||||
import java.util.Properties;
|
||||
|
||||
public class MavenWrapperDownloader {
|
||||
|
||||
private static final String WRAPPER_VERSION = "0.5.6";
|
||||
/**
|
||||
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
|
||||
*/
|
||||
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
|
||||
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
|
||||
|
||||
/**
|
||||
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
|
||||
* use instead of the default one.
|
||||
*/
|
||||
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
|
||||
".mvn/wrapper/maven-wrapper.properties";
|
||||
|
||||
/**
|
||||
* Path where the maven-wrapper.jar will be saved to.
|
||||
*/
|
||||
private static final String MAVEN_WRAPPER_JAR_PATH =
|
||||
".mvn/wrapper/maven-wrapper.jar";
|
||||
|
||||
/**
|
||||
* Name of the property which should be used to override the default download url for the wrapper.
|
||||
*/
|
||||
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
|
||||
|
||||
public static void main(String args[]) {
|
||||
System.out.println("- Downloader started");
|
||||
File baseDirectory = new File(args[0]);
|
||||
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
|
||||
|
||||
// If the maven-wrapper.properties exists, read it and check if it contains a custom
|
||||
// wrapperUrl parameter.
|
||||
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
|
||||
String url = DEFAULT_DOWNLOAD_URL;
|
||||
if (mavenWrapperPropertyFile.exists()) {
|
||||
FileInputStream mavenWrapperPropertyFileInputStream = null;
|
||||
try {
|
||||
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
|
||||
Properties mavenWrapperProperties = new Properties();
|
||||
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
|
||||
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
|
||||
} catch (IOException e) {
|
||||
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
|
||||
} finally {
|
||||
try {
|
||||
if (mavenWrapperPropertyFileInputStream != null) {
|
||||
mavenWrapperPropertyFileInputStream.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// Ignore ...
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println("- Downloading from: " + url);
|
||||
|
||||
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
|
||||
if (!outputFile.getParentFile().exists()) {
|
||||
if (!outputFile.getParentFile().mkdirs()) {
|
||||
System.out.println(
|
||||
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
|
||||
}
|
||||
}
|
||||
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
|
||||
try {
|
||||
downloadFileFromURL(url, outputFile);
|
||||
System.out.println("Done");
|
||||
System.exit(0);
|
||||
} catch (Throwable e) {
|
||||
System.out.println("- Error downloading");
|
||||
e.printStackTrace();
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
|
||||
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
|
||||
String username = System.getenv("MVNW_USERNAME");
|
||||
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
|
||||
Authenticator.setDefault(new Authenticator() {
|
||||
@Override
|
||||
protected PasswordAuthentication getPasswordAuthentication() {
|
||||
return new PasswordAuthentication(username, password);
|
||||
}
|
||||
});
|
||||
}
|
||||
URL website = new URL(urlString);
|
||||
ReadableByteChannel rbc;
|
||||
rbc = Channels.newChannel(website.openStream());
|
||||
FileOutputStream fos = new FileOutputStream(destination);
|
||||
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
|
||||
fos.close();
|
||||
rbc.close();
|
||||
}
|
||||
|
||||
}
|
BIN
.mvn/wrapper/maven-wrapper.jar
vendored
Normal file
BIN
.mvn/wrapper/maven-wrapper.jar
vendored
Normal file
Binary file not shown.
2
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
2
.mvn/wrapper/maven-wrapper.properties
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
|
||||
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
|
199
db/mydoc.sql
Normal file
199
db/mydoc.sql
Normal file
@ -0,0 +1,199 @@
|
||||
create DATABASE mydoc;
|
||||
use mydoc;
|
||||
create table article (
|
||||
id varchar(64) not null PRIMARY key comment '文章id',
|
||||
user_id varchar(64) not null comment '作者id',
|
||||
status int(4) default 1 comment '显示状态 0 私密 1 公开 2不显示 3删除',
|
||||
original int(4) comment '原创 0 原创 1 转载',
|
||||
reprint_link varchar(100) comment '转载来源链接url',
|
||||
examine_status int(4) comment '文章审核状态 0 待审核 1 已审核 2、已驳回',
|
||||
examine_time datetime comment '文章审核时间',
|
||||
browse_num int(11) comment '浏览次数',
|
||||
fabulous_num int(11) comment '点赞次数',
|
||||
create_time datetime comment '创建时间',
|
||||
update_time datetime comment '更新时间'
|
||||
);
|
||||
|
||||
create table article_information (
|
||||
id varchar(64) NOT NULL PRIMARY KEY,
|
||||
article_id varchar(64) not null comment '文章id',
|
||||
content_id varchar(64) not null comment '内容id',
|
||||
user_id varchar(64) not null comment '用户id',
|
||||
classify_id varchar(64) comment '分类id',
|
||||
tag_id varchar(64) comment '标签id',
|
||||
type_id int(4) comment '文章类型表id'
|
||||
);
|
||||
|
||||
create table article_content (
|
||||
id varchar(64) comment '内容id',
|
||||
content longtext default null COMMENT '内容'
|
||||
);
|
||||
|
||||
create table article_classify (
|
||||
id varchar(64) not null primary key comment '分类id',
|
||||
parent_id varchar(64) default 0 comment '父分类id 若为0则父分类',
|
||||
name varchar(64) comment '分类名称',
|
||||
status int comment '状态 0删除/弃用 1表示使用',
|
||||
create_time datetime comment '创建时间',
|
||||
update_time datetime comment '更新时间'
|
||||
);
|
||||
create table article_tag (
|
||||
id varchar(64) not null primary key comment '标签id',
|
||||
name varchar(20) not null comment '标签名称',
|
||||
status int(2) default 1 comment '状态 0删除/弃用 1表示使用',
|
||||
create_time datetime comment '创建时间',
|
||||
update_time datetime comment '更新时间'
|
||||
);
|
||||
|
||||
create table article_type (
|
||||
id varchar(64) not null primary key comment '文章类型id',
|
||||
name varchar(20) comment '文章类型名字',
|
||||
user_id varchar(64) comment '创建者 用户id',
|
||||
create_time datetime comment '创建时间',
|
||||
update_time datetime comment '更新时间'
|
||||
);
|
||||
|
||||
create table article_fabulous (
|
||||
id varchar(64) not null primary key comment 'id',
|
||||
article_id varchar(64) not null comment '文章id',
|
||||
user_id varchar(64) not null comment '点赞者 用户id',
|
||||
fabulous_time datetime comment '点赞时间'
|
||||
);
|
||||
|
||||
create table article_discuss (
|
||||
id varchar(64) not null primary key comment '评论表id',
|
||||
article_id varchar(64) not null comment '文章id',
|
||||
user_id varchar(64) not null comment '评论用户id',
|
||||
content nvarchar(500) default NULL comment '评论内容',
|
||||
target_user_id varchar(64) not null comment '评论目标用户id',
|
||||
discuss_time datetime comment '评论时间'
|
||||
);
|
||||
|
||||
create table article_browse (
|
||||
id varchar(64) not null primary key comment 'id',
|
||||
article_id varchar(64) not null comment '评论表id',
|
||||
user_id varchar(64) not null comment '评论用户id',
|
||||
browse_time datetime comment '评论时间'
|
||||
);
|
||||
|
||||
create table user (
|
||||
id varchar(64) not null primary key comment '用户id',
|
||||
username varchar(64) not null comment '用户名',
|
||||
nickname varchar(64) comment '昵称',
|
||||
age int(3) comment '用户年龄',
|
||||
avatar varchar(255) DEFAULT NULL COMMENT '头像',
|
||||
password varchar(100) comment '用户密码',
|
||||
phone int(12) comment '用户密码',
|
||||
email varchar(64) comment '邮箱',
|
||||
introduction varchar(600) default null comment '用户介绍',
|
||||
status int(4) comment '用户状态 0启用 1注销',
|
||||
follow_num int(11) comment '关注数量',
|
||||
fans_num int(11) comment '粉丝数量',
|
||||
create_time datetime comment '创建时间',
|
||||
update_time datetime comment '更新时间'
|
||||
);
|
||||
|
||||
create table user_relation (
|
||||
id varchar(64) not null primary key comment 'id',
|
||||
user_id varchar(64) not null comment '用户id',
|
||||
user_tag_id varchar(64) comment '标签id',
|
||||
follow_id varchar(64) comment '关注列表id',
|
||||
fans_id varchar(64) comment '粉丝列表id',
|
||||
collect_id varchar(64) comment '粉丝列表id'
|
||||
);
|
||||
|
||||
create table user_tag (
|
||||
id varchar(64) not null primary key comment '标签id',
|
||||
parent_id varchar(64) default null comment '父标签id null 父标签 其余则为子标签 ',
|
||||
name varchar(64) comment '标签名称'
|
||||
);
|
||||
|
||||
create table user_follow (
|
||||
id varchar(64) not null primary key comment 'id',
|
||||
user_id varchar(64) not null comment '用户id',
|
||||
user_follow_id varchar(64) not null comment '关注目标用户id'
|
||||
);
|
||||
|
||||
create table user_fans (
|
||||
id varchar(64) not null primary key comment 'id',
|
||||
user_id varchar(64) not null comment '用户id',
|
||||
user_fans_id varchar(64) not null comment '粉丝id'
|
||||
);
|
||||
|
||||
create table user_collect (
|
||||
id varchar(64) not null primary key comment '收藏夹id',
|
||||
name varchar(64) not null comment '收藏夹名字',
|
||||
user_id varchar(64) not null comment '用户id',
|
||||
article_id varchar(64) not null comment '文章id'
|
||||
);
|
||||
|
||||
create table user_configure (
|
||||
id varchar(64) not null primary key comment '用户配置id',
|
||||
user_id varchar(64) not null comment '用户id',
|
||||
theme_colour int(4) default 0 comment '主题 0 白色 1黑色',
|
||||
theme_background varchar(50) default null comment '系统背景图片 url String',
|
||||
editor int default 0 comment '默认编辑器id 0 markdown 1.富文本'
|
||||
);
|
||||
|
||||
create table system_configure (
|
||||
id varchar(64) not null primary key comment '全局配置表id',
|
||||
icp varchar(64) default null comment '备案信息',
|
||||
footer varchar(100) default null comment '页脚信息',
|
||||
title varchar(50) default '笔记' comment '站点标题',
|
||||
subtitle varchar(50) default null comment '站点副标题',
|
||||
site_name varchar(50) default '笔记' comment '站点名称',
|
||||
register int(4) default 0 comment '注册是否需要邀请码 0不需要 1需要'
|
||||
);
|
||||
|
||||
create table information (
|
||||
id varchar(64) not null primary key comment '消息id',
|
||||
user_id varchar(64) not null comment '发送者id 发送者为0 则为系统',
|
||||
news_content varchar(600) default null comment '内容',
|
||||
point_user_id varchar(64) not null comment '目标用户id',
|
||||
images varchar(640) default null comment '图片列表',
|
||||
send_time datetime comment '发送时间'
|
||||
);
|
||||
|
||||
create table invitation_code (
|
||||
id varchar(64) not null primary key comment '邀请码id',
|
||||
code varchar(20) not null comment '邀请码',
|
||||
status int(2) default 0 comment '状态 0 正常 1失效 ',
|
||||
use_times int(4) default 10 comment '可以使用的次数',
|
||||
create_id varchar(64) not null comment '创建者id',
|
||||
create_time datetime comment '创建时间',
|
||||
invalid_time datetime comment '失效时间'
|
||||
);
|
||||
CREATE TABLE user_role (
|
||||
id varchar(64) NOT NULL PRIMARY KEY comment '用户角色关联表id',
|
||||
user_id varchar(64) DEFAULT NULL comment '用户id',
|
||||
role_id varchar(64) DEFAULT NULL comment '角色id'
|
||||
);
|
||||
|
||||
CREATE TABLE role (
|
||||
id varchar(64) NOT NULL primary key comment 'id',
|
||||
name varchar(64) DEFAULT NULL comment '角色名字',
|
||||
icon varchar(64) DEFAULT NULL comment '角色图标',
|
||||
description varchar(64) DEFAULT NULL comment '角色介绍',
|
||||
create_time datetime comment '创建时间',
|
||||
update_time datetime comment '更新时间'
|
||||
);
|
||||
CREATE TABLE menu_role (
|
||||
id varchar(64) NOT NULL PRIMARY KEY comment '角色权限关联表id',
|
||||
role_id varchar(64) DEFAULT NULL comment '角色id',
|
||||
menu_id varchar(64) DEFAULT NULL comment '权限id'
|
||||
);
|
||||
CREATE TABLE menu (
|
||||
id varchar(64) NOT NULL primary key comment '权限表id',
|
||||
name varchar(64) DEFAULT NULL comment '权限名字',
|
||||
icon varchar(64) DEFAULT NULL comment '权限权限图标',
|
||||
url varchar(64) DEFAULT NULL comment '权限路径',
|
||||
parent_id varchar(64) DEFAULT NULL comment '父节点',
|
||||
description varchar(64) DEFAULT NULL comment '介绍',
|
||||
create_time datetime comment '创建时间',
|
||||
update_time datetime comment '更新时间'
|
||||
);
|
||||
CREATE TABLE user_menu (
|
||||
id varchar(64) NOT NULL PRIMARY KEY,
|
||||
user_id varchar(64) DEFAULT NULL,
|
||||
role_id varchar(64) DEFAULT NULL
|
||||
);
|
322
mvnw
vendored
Normal file
322
mvnw
vendored
Normal file
@ -0,0 +1,322 @@
|
||||
#!/bin/sh
|
||||
# ----------------------------------------------------------------------------
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Maven Start Up Batch script
|
||||
#
|
||||
# Required ENV vars:
|
||||
# ------------------
|
||||
# JAVA_HOME - location of a JDK home dir
|
||||
#
|
||||
# Optional ENV vars
|
||||
# -----------------
|
||||
# M2_HOME - location of maven2's installed home dir
|
||||
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
# e.g. to debug Maven itself, use
|
||||
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
if [ -z "$MAVEN_SKIP_RC" ]; then
|
||||
|
||||
if [ -f /etc/mavenrc ]; then
|
||||
. /etc/mavenrc
|
||||
fi
|
||||
|
||||
if [ -f "$HOME/.mavenrc" ]; then
|
||||
. "$HOME/.mavenrc"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
# OS specific support. $var _must_ be set to either true or false.
|
||||
cygwin=false
|
||||
darwin=false
|
||||
mingw=false
|
||||
case "$(uname)" in
|
||||
CYGWIN*) cygwin=true ;;
|
||||
MINGW*) mingw=true ;;
|
||||
Darwin*)
|
||||
darwin=true
|
||||
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
|
||||
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
if [ -x "/usr/libexec/java_home" ]; then
|
||||
export JAVA_HOME="$(/usr/libexec/java_home)"
|
||||
else
|
||||
export JAVA_HOME="/Library/Java/Home"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
if [ -r /etc/gentoo-release ]; then
|
||||
JAVA_HOME=$(java-config --jre-home)
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$M2_HOME" ]; then
|
||||
## resolve links - $0 may be a link to maven's home
|
||||
PRG="$0"
|
||||
|
||||
# need this for relative symlinks
|
||||
while [ -h "$PRG" ]; do
|
||||
ls=$(ls -ld "$PRG")
|
||||
link=$(expr "$ls" : '.*-> \(.*\)$')
|
||||
if expr "$link" : '/.*' >/dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG="$(dirname "$PRG")/$link"
|
||||
fi
|
||||
done
|
||||
|
||||
saveddir=$(pwd)
|
||||
|
||||
M2_HOME=$(dirname "$PRG")/..
|
||||
|
||||
# make it fully qualified
|
||||
M2_HOME=$(cd "$M2_HOME" && pwd)
|
||||
|
||||
cd "$saveddir"
|
||||
# echo Using m2 at $M2_HOME
|
||||
fi
|
||||
|
||||
# For Cygwin, ensure paths are in UNIX format before anything is touched
|
||||
if $cygwin; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=$(cygpath --unix "$M2_HOME")
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
|
||||
fi
|
||||
|
||||
# For Mingw, ensure paths are in UNIX format before anything is touched
|
||||
if $mingw; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME="$( (
|
||||
cd "$M2_HOME"
|
||||
pwd
|
||||
))"
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME="$( (
|
||||
cd "$JAVA_HOME"
|
||||
pwd
|
||||
))"
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
javaExecutable="$(which javac)"
|
||||
if [ -n "$javaExecutable" ] && ! [ "$(expr \"$javaExecutable\" : '\([^ ]*\)')" = "no" ]; then
|
||||
# readlink(1) is not available as standard on Solaris 10.
|
||||
readLink=$(which readlink)
|
||||
if [ ! $(expr "$readLink" : '\([^ ]*\)') = "no" ]; then
|
||||
if $darwin; then
|
||||
javaHome="$(dirname \"$javaExecutable\")"
|
||||
javaExecutable="$(cd \"$javaHome\" && pwd -P)/javac"
|
||||
else
|
||||
javaExecutable="$(readlink -f \"$javaExecutable\")"
|
||||
fi
|
||||
javaHome="$(dirname \"$javaExecutable\")"
|
||||
javaHome=$(expr "$javaHome" : '\(.*\)/bin')
|
||||
JAVA_HOME="$javaHome"
|
||||
export JAVA_HOME
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$JAVACMD" ]; then
|
||||
if [ -n "$JAVA_HOME" ]; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ]; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
else
|
||||
JAVACMD="$(which java)"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -x "$JAVACMD" ]; then
|
||||
echo "Error: JAVA_HOME is not defined correctly." >&2
|
||||
echo " We cannot execute $JAVACMD" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$JAVA_HOME" ]; then
|
||||
echo "Warning: JAVA_HOME environment variable is not set."
|
||||
fi
|
||||
|
||||
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
|
||||
|
||||
# traverses directory structure from process work directory to filesystem root
|
||||
# first directory with .mvn subdirectory is considered project base directory
|
||||
find_maven_basedir() {
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Path not specified to find_maven_basedir"
|
||||
return 1
|
||||
fi
|
||||
|
||||
basedir="$1"
|
||||
wdir="$1"
|
||||
while [ "$wdir" != '/' ]; do
|
||||
if [ -d "$wdir"/.mvn ]; then
|
||||
basedir=$wdir
|
||||
break
|
||||
fi
|
||||
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
|
||||
if [ -d "${wdir}" ]; then
|
||||
wdir=$(
|
||||
cd "$wdir/.."
|
||||
pwd
|
||||
)
|
||||
fi
|
||||
# end of workaround
|
||||
done
|
||||
echo "${basedir}"
|
||||
}
|
||||
|
||||
# concatenates all lines of a file
|
||||
concat_lines() {
|
||||
if [ -f "$1" ]; then
|
||||
echo "$(tr -s '\n' ' ' <"$1")"
|
||||
fi
|
||||
}
|
||||
|
||||
BASE_DIR=$(find_maven_basedir "$(pwd)")
|
||||
if [ -z "$BASE_DIR" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
##########################################################################################
|
||||
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
# This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
##########################################################################################
|
||||
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found .mvn/wrapper/maven-wrapper.jar"
|
||||
fi
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
|
||||
fi
|
||||
if [ -n "$MVNW_REPOURL" ]; then
|
||||
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
else
|
||||
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
fi
|
||||
while IFS="=" read key value; do
|
||||
case "$key" in wrapperUrl)
|
||||
jarUrl="$value"
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done <"$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Downloading from: $jarUrl"
|
||||
fi
|
||||
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
|
||||
if $cygwin; then
|
||||
wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
|
||||
fi
|
||||
|
||||
if command -v wget >/dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found wget ... using wget"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
wget "$jarUrl" -O "$wrapperJarPath"
|
||||
else
|
||||
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
|
||||
fi
|
||||
elif command -v curl >/dev/null; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Found curl ... using curl"
|
||||
fi
|
||||
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
|
||||
curl -o "$wrapperJarPath" "$jarUrl" -f
|
||||
else
|
||||
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
|
||||
fi
|
||||
|
||||
else
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo "Falling back to using Java to download"
|
||||
fi
|
||||
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
|
||||
# For Cygwin, switch paths to Windows format before running javac
|
||||
if $cygwin; then
|
||||
javaClass=$(cygpath --path --windows "$javaClass")
|
||||
fi
|
||||
if [ -e "$javaClass" ]; then
|
||||
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Compiling MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
# Compiling the Java class
|
||||
("$JAVA_HOME/bin/javac" "$javaClass")
|
||||
fi
|
||||
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
|
||||
# Running the downloader
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo " - Running MavenWrapperDownloader.java ..."
|
||||
fi
|
||||
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
##########################################################################################
|
||||
# End of extension
|
||||
##########################################################################################
|
||||
|
||||
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
|
||||
if [ "$MVNW_VERBOSE" = true ]; then
|
||||
echo $MAVEN_PROJECTBASEDIR
|
||||
fi
|
||||
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin; then
|
||||
[ -n "$M2_HOME" ] &&
|
||||
M2_HOME=$(cygpath --path --windows "$M2_HOME")
|
||||
[ -n "$JAVA_HOME" ] &&
|
||||
JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
|
||||
[ -n "$CLASSPATH" ] &&
|
||||
CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
|
||||
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
|
||||
MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
|
||||
fi
|
||||
|
||||
# Provide a "standardized" way to retrieve the CLI args that will
|
||||
# work with both Windows and non-Windows executions.
|
||||
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
|
||||
export MAVEN_CMD_LINE_ARGS
|
||||
|
||||
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
exec "$JAVACMD" \
|
||||
$MAVEN_OPTS \
|
||||
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
|
||||
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
|
||||
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
|
182
mvnw.cmd
vendored
Normal file
182
mvnw.cmd
vendored
Normal file
@ -0,0 +1,182 @@
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Licensed to the Apache Software Foundation (ASF) under one
|
||||
@REM or more contributor license agreements. See the NOTICE file
|
||||
@REM distributed with this work for additional information
|
||||
@REM regarding copyright ownership. The ASF licenses this file
|
||||
@REM to you under the Apache License, Version 2.0 (the
|
||||
@REM "License"); you may not use this file except in compliance
|
||||
@REM with the License. You may obtain a copy of the License at
|
||||
@REM
|
||||
@REM https://www.apache.org/licenses/LICENSE-2.0
|
||||
@REM
|
||||
@REM Unless required by applicable law or agreed to in writing,
|
||||
@REM software distributed under the License is distributed on an
|
||||
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
@REM KIND, either express or implied. See the License for the
|
||||
@REM specific language governing permissions and limitations
|
||||
@REM under the License.
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM ----------------------------------------------------------------------------
|
||||
@REM Maven Start Up Batch script
|
||||
@REM
|
||||
@REM Required ENV vars:
|
||||
@REM JAVA_HOME - location of a JDK home dir
|
||||
@REM
|
||||
@REM Optional ENV vars
|
||||
@REM M2_HOME - location of maven2's installed home dir
|
||||
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
|
||||
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
|
||||
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
|
||||
@REM e.g. to debug Maven itself, use
|
||||
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
|
||||
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
|
||||
@REM ----------------------------------------------------------------------------
|
||||
|
||||
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
|
||||
@echo off
|
||||
@REM set title of command window
|
||||
title %0
|
||||
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
|
||||
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
|
||||
|
||||
@REM set %HOME% to equivalent of $HOME
|
||||
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
|
||||
|
||||
@REM Execute a user defined script before this one
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
|
||||
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
|
||||
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
|
||||
:skipRcPre
|
||||
|
||||
@setlocal
|
||||
|
||||
set ERROR_CODE=0
|
||||
|
||||
@REM To isolate internal variables from possible post scripts, we use another setlocal
|
||||
@setlocal
|
||||
|
||||
@REM ==== START VALIDATION ====
|
||||
if not "%JAVA_HOME%" == "" goto OkJHome
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME not found in your environment. >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
:OkJHome
|
||||
if exist "%JAVA_HOME%\bin\java.exe" goto init
|
||||
|
||||
echo.
|
||||
echo Error: JAVA_HOME is set to an invalid directory. >&2
|
||||
echo JAVA_HOME = "%JAVA_HOME%" >&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the >&2
|
||||
echo location of your Java installation. >&2
|
||||
echo.
|
||||
goto error
|
||||
|
||||
@REM ==== END VALIDATION ====
|
||||
|
||||
:init
|
||||
|
||||
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
|
||||
@REM Fallback to current working directory if not found.
|
||||
|
||||
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
|
||||
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
|
||||
|
||||
set EXEC_DIR=%CD%
|
||||
set WDIR=%EXEC_DIR%
|
||||
:findBaseDir
|
||||
IF EXIST "%WDIR%"\.mvn goto baseDirFound
|
||||
cd ..
|
||||
IF "%WDIR%"=="%CD%" goto baseDirNotFound
|
||||
set WDIR=%CD%
|
||||
goto findBaseDir
|
||||
|
||||
:baseDirFound
|
||||
set MAVEN_PROJECTBASEDIR=%WDIR%
|
||||
cd "%EXEC_DIR%"
|
||||
goto endDetectBaseDir
|
||||
|
||||
:baseDirNotFound
|
||||
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
|
||||
cd "%EXEC_DIR%"
|
||||
|
||||
:endDetectBaseDir
|
||||
|
||||
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
|
||||
|
||||
@setlocal EnableExtensions EnableDelayedExpansion
|
||||
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
|
||||
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
|
||||
|
||||
:endReadAdditionalConfig
|
||||
|
||||
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
|
||||
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
|
||||
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
|
||||
|
||||
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
|
||||
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
|
||||
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
|
||||
)
|
||||
|
||||
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
|
||||
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
|
||||
if exist %WRAPPER_JAR% (
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Found %WRAPPER_JAR%
|
||||
)
|
||||
) else (
|
||||
if not "%MVNW_REPOURL%" == "" (
|
||||
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
|
||||
)
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Couldn't find %WRAPPER_JAR%, downloading it ...
|
||||
echo Downloading from: %DOWNLOAD_URL%
|
||||
)
|
||||
|
||||
powershell -Command "&{"^
|
||||
"$webclient = new-object System.Net.WebClient;"^
|
||||
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
|
||||
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
|
||||
"}"^
|
||||
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
|
||||
"}"
|
||||
if "%MVNW_VERBOSE%" == "true" (
|
||||
echo Finished downloading %WRAPPER_JAR%
|
||||
)
|
||||
)
|
||||
@REM End of extension
|
||||
|
||||
@REM Provide a "standardized" way to retrieve the CLI args that will
|
||||
@REM work with both Windows and non-Windows executions.
|
||||
set MAVEN_CMD_LINE_ARGS=%*
|
||||
|
||||
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
|
||||
if ERRORLEVEL 1 goto error
|
||||
goto end
|
||||
|
||||
:error
|
||||
set ERROR_CODE=1
|
||||
|
||||
:end
|
||||
@endlocal & set ERROR_CODE=%ERROR_CODE%
|
||||
|
||||
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
|
||||
@REM check for post script, once with legacy .bat ending and once with .cmd ending
|
||||
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
|
||||
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
|
||||
:skipRcPost
|
||||
|
||||
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
|
||||
if "%MAVEN_BATCH_PAUSE%" == "on" pause
|
||||
|
||||
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
|
||||
|
||||
exit /B %ERROR_CODE%
|
127
pom.xml
Normal file
127
pom.xml
Normal file
@ -0,0 +1,127 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>2.4.1</version>
|
||||
<relativePath/> <!-- lookup parent from repository -->
|
||||
</parent>
|
||||
<groupId>com.zyjblogs</groupId>
|
||||
<artifactId>mydoc</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<name>mydoc</name>
|
||||
<description>Demo project for Spring Boot</description>
|
||||
|
||||
<properties>
|
||||
<java.version>1.8</java.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.3.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.github.xiaoymin</groupId>
|
||||
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||
<version>2.0.8</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ma.glasnost.orika</groupId>
|
||||
<artifactId>orika-core</artifactId>
|
||||
<version>1.5.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid-spring-boot-starter</artifactId>
|
||||
<version>1.1.21</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-mail</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-security</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-validation</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>1.2.68</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>io.jsonwebtoken</groupId>
|
||||
<artifactId>jjwt</artifactId>
|
||||
<version>0.9.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-devtools</artifactId>
|
||||
<scope>runtime</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.security</groupId>
|
||||
<artifactId>spring-security-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>3.10</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>joda-time</groupId>
|
||||
<artifactId>joda-time</artifactId>
|
||||
<version>2.10.5</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
13
src/main/java/com/zyjblogs/mydoc/MydocApplication.java
Normal file
13
src/main/java/com/zyjblogs/mydoc/MydocApplication.java
Normal file
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class MydocApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(MydocApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.zyjblogs.mydoc.config.mybatisplus;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* @author zhuyijun
|
||||
*/
|
||||
@Configuration
|
||||
@MapperScan("com.zyjblogs.mydoc.server.*.mapper")
|
||||
public class MyBatisPlusConfig {
|
||||
|
||||
@Bean
|
||||
public PaginationInterceptor paginationInterceptor() {
|
||||
return new PaginationInterceptor();
|
||||
}
|
||||
}
|
@ -0,0 +1,65 @@
|
||||
package com.zyjblogs.mydoc.config.redis;
|
||||
|
||||
import com.alibaba.fastjson.parser.ParserConfig;
|
||||
import com.alibaba.fastjson.support.spring.FastJsonRedisSerializer;
|
||||
import com.zyjblogs.mydoc.server.util.data.RedisTemplateService;
|
||||
import org.springframework.cache.CacheManager;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.redis.cache.RedisCacheManager;
|
||||
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
/**
|
||||
* redis配置
|
||||
*/
|
||||
@Configuration
|
||||
public class RedisConfig {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean("redisTemplateService")
|
||||
public RedisTemplateService redisTemplateService(){
|
||||
return new RedisTemplateService();
|
||||
}
|
||||
/**
|
||||
* 设置key跟value的序列化方式
|
||||
* @param redisConnectionFactory
|
||||
* @return
|
||||
*/
|
||||
|
||||
@Bean
|
||||
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
||||
|
||||
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
||||
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
||||
FastJsonRedisSerializer<Object> fastJsonRedisSerializer = new FastJsonRedisSerializer<>(Object.class);
|
||||
// 建议使用这种方式,小范围指定白名单
|
||||
ParserConfig.getGlobalInstance().addAccept("com.zyjblogs.mydoc.server");
|
||||
// 设置值(value)的序列化采用FastJsonRedisSerializer。
|
||||
redisTemplate.setValueSerializer(fastJsonRedisSerializer);
|
||||
redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
|
||||
// 设置键(key)的序列化采用StringRedisSerializer。
|
||||
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
||||
redisTemplate.afterPropertiesSet();
|
||||
return redisTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* 缓存管理器
|
||||
* @param redisConnectionFactory
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
|
||||
RedisCacheManager.RedisCacheManagerBuilder builder = RedisCacheManager
|
||||
.RedisCacheManagerBuilder
|
||||
.fromConnectionFactory(redisConnectionFactory);
|
||||
return builder.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.zyjblogs.mydoc.config.rest;
|
||||
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
@Configuration
|
||||
public class RestTemplateConfig {
|
||||
|
||||
@Bean("restTemplate")
|
||||
public RestTemplate restTemplate() {
|
||||
SimpleClientHttpRequestFactory simpleClientHttpRequestFactory = new SimpleClientHttpRequestFactory();
|
||||
simpleClientHttpRequestFactory.setConnectTimeout(1000);
|
||||
simpleClientHttpRequestFactory.setReadTimeout(1000);
|
||||
return new RestTemplate(simpleClientHttpRequestFactory);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,191 @@
|
||||
package com.zyjblogs.mydoc.config.security;
|
||||
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.filter.TokenAuthenticationFilter;
|
||||
import com.zyjblogs.mydoc.server.user.handler.*;
|
||||
import com.zyjblogs.mydoc.server.user.login.service.impl.LoginUserServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.user.provider.UserAuthenticationProvider;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.security.authentication.AuthenticationProvider;
|
||||
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
|
||||
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
|
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
|
||||
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
||||
import org.springframework.security.config.http.SessionCreationPolicy;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
import org.springframework.security.crypto.password.PasswordEncoder;
|
||||
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
|
||||
import org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl;
|
||||
import org.springframework.security.web.authentication.rememberme.PersistentTokenRepository;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@Configuration
|
||||
@EnableWebSecurity
|
||||
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
|
||||
public class SecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
@Autowired
|
||||
private MyAccessDeniedHandler accessDeniedHandler;
|
||||
|
||||
@Autowired
|
||||
UserAuthenticationEntryPoint authenticationEntryPoint;
|
||||
|
||||
@Autowired
|
||||
private DataSource dataSource;
|
||||
|
||||
@Autowired
|
||||
private PersistentTokenRepository persistentTokenRepository;
|
||||
|
||||
@Autowired
|
||||
LoginUserServiceImpl loginUserService;
|
||||
@Autowired
|
||||
UserAuthenticationSuccessHandler authenticationSuccessHandler;
|
||||
@Autowired
|
||||
UserAuthenticationFailureHandler authenticationFailureHandler;
|
||||
|
||||
@Autowired
|
||||
UserLogoutSuccessHandler logoutSuccessHandler;
|
||||
|
||||
@Autowired
|
||||
private TokenAuthenticationFilter tokenAuthenticationFilter;
|
||||
|
||||
@Bean
|
||||
public PasswordEncoder passwordEncoder() {
|
||||
return new BCryptPasswordEncoder();
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理 rememberMe 自动登录认证
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public PersistentTokenRepository persistentTokenRepository() {
|
||||
JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl();
|
||||
jdbcTokenRepository.setDataSource(dataSource);
|
||||
//自动建表,第一次启动时开启,第二次启动时注释掉
|
||||
jdbcTokenRepository.setCreateTableOnStartup(false);
|
||||
return jdbcTokenRepository;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public PasswordEncoder getPw() {
|
||||
return new BCryptPasswordEncoder();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void configure(HttpSecurity http) throws Exception {
|
||||
|
||||
http // 使用 JWT,使用无状态会话,不需要session
|
||||
// .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
||||
// //配置 Http Basic 验证
|
||||
// .and()
|
||||
// .httpBasic()
|
||||
//
|
||||
// .and()
|
||||
/**
|
||||
* 表单提交
|
||||
*/
|
||||
.formLogin()
|
||||
//自定义用户名密码入参
|
||||
.usernameParameter("userName")
|
||||
.passwordParameter("passWord")
|
||||
//自定义登录页面
|
||||
.loginPage("/login.html")
|
||||
// .loginPage("/showLogin")
|
||||
//必须和表单提交的接口一样,获取执行自定义登录逻辑
|
||||
.loginProcessingUrl("/login")
|
||||
//登录成功后跳转的页面,必须是POST请求
|
||||
// .successForwardUrl("/toMain")
|
||||
//自定义登录成功处理器
|
||||
// .successHandler(new MyAuthenticationSuccessHandler("/toMain"))
|
||||
// 登录成功
|
||||
.successHandler(authenticationSuccessHandler)
|
||||
// 登录失败
|
||||
.failureHandler(authenticationFailureHandler)
|
||||
//登录失败后转跳的页面,必须是POST请求
|
||||
.failureForwardUrl("/toError")
|
||||
|
||||
/**
|
||||
* remeberMe记住我
|
||||
*/
|
||||
.and()
|
||||
.rememberMe()
|
||||
//设置数据源
|
||||
.tokenRepository(persistentTokenRepository)
|
||||
// .rememberMeParameter()
|
||||
.tokenValiditySeconds(600)
|
||||
//自定义登录逻辑
|
||||
.userDetailsService(loginUserService)
|
||||
|
||||
/**
|
||||
* 退出
|
||||
*/
|
||||
.and()
|
||||
.logout()
|
||||
// .logoutUrl("/user/logout")
|
||||
// .logoutUrl("/logout")
|
||||
// .logoutSuccessHandler(new MyLogoutSuccessHandler("/login.html"))
|
||||
// .logoutSuccessUrl("/login.html")
|
||||
.logoutSuccessHandler(logoutSuccessHandler)
|
||||
|
||||
/**
|
||||
* 授权
|
||||
*/
|
||||
.and()
|
||||
//拦截是有顺序的《从上往下》,.anyRequest().authenticated()需放最后
|
||||
.authorizeRequests()
|
||||
.antMatchers("/login/**", "/static/**,/doc.html", "/login.html", "/toError").permitAll()
|
||||
.anyRequest()
|
||||
// .permitAll()
|
||||
// RBAC 动态 url 认证
|
||||
.access("@rbacServiceImpl.hasPermission(request, authentication)")
|
||||
|
||||
// .anyRequest().authenticated()
|
||||
.and()
|
||||
//配置 Http Basic 验证
|
||||
.httpBasic()
|
||||
//匿名用户异常拦截处理器
|
||||
.authenticationEntryPoint(authenticationEntryPoint)
|
||||
.and()
|
||||
.exceptionHandling().accessDeniedHandler(accessDeniedHandler)
|
||||
/**
|
||||
* csrf防护
|
||||
*/
|
||||
.and()
|
||||
.csrf().disable()
|
||||
// 前后端分离采用JWT 不需要session
|
||||
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
|
||||
.and()
|
||||
//将JWT Token Filter验证配置到Spring Security
|
||||
.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description Spring security认证Bean
|
||||
* @Date 2019/7/4 17:39
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Bean
|
||||
public AuthenticationProvider authenticationProvider() {
|
||||
AuthenticationProvider authenticationProvider = new UserAuthenticationProvider();
|
||||
return authenticationProvider;
|
||||
}
|
||||
|
||||
/**
|
||||
* @Description Spring Security认证服务中的相关实现重新定义
|
||||
* @Date 2019/7/4 17:40
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Override
|
||||
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
|
||||
// 加入自定义的安全认证
|
||||
auth.userDetailsService(this.userDetailsService()).passwordEncoder(this.passwordEncoder());
|
||||
auth.authenticationProvider(this.authenticationProvider());
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package com.zyjblogs.mydoc.config.swagger;
|
||||
|
||||
import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import springfox.documentation.builders.ApiInfoBuilder;
|
||||
import springfox.documentation.builders.PathSelectors;
|
||||
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||
import springfox.documentation.service.ApiInfo;
|
||||
import springfox.documentation.service.Contact;
|
||||
import springfox.documentation.spi.DocumentationType;
|
||||
import springfox.documentation.spring.web.plugins.Docket;
|
||||
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
|
||||
|
||||
/**
|
||||
* copyright (C), 2020, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2020/12/29 12:12 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2020/12/29 12:12
|
||||
*/
|
||||
@Configuration
|
||||
@EnableSwagger2WebMvc
|
||||
@EnableKnife4j
|
||||
@ConditionalOnProperty(value = {"true"}, matchIfMissing = true)
|
||||
public class Knife4jConfig {
|
||||
@Bean
|
||||
public Docket createRestApi() {
|
||||
return new Docket(DocumentationType.SWAGGER_2)
|
||||
.apiInfo(apiInfo())
|
||||
.select()
|
||||
.apis(RequestHandlerSelectors.basePackage("com.zyjblogs.mydoc.server"))
|
||||
.paths(PathSelectors.any())
|
||||
.build();
|
||||
}
|
||||
|
||||
private ApiInfo apiInfo() {
|
||||
Contact contact = new Contact("zhuyijun", "http://localhost:9029/doc.html", "zhuyijun@hatech.com.cn");
|
||||
return new ApiInfoBuilder()
|
||||
.title("SpringBoot项目 后台服务API接口文档")
|
||||
.description("使用 knife4j 搭建的后台服务API接口文档")
|
||||
.termsOfServiceUrl("http://localhost:9029/")
|
||||
.contact(contact)
|
||||
.version("1.0.0")
|
||||
.build();
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.zyjblogs.mydoc.server.article.contant;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:55 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:55
|
||||
*/
|
||||
public class ArticleConstants {
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 16:07 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 16:07
|
||||
*/
|
||||
@RequestMapping("/article/browse")
|
||||
@RestController
|
||||
public class ArticleBrowseController {
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/article/classify")
|
||||
public class ArticleClassifyController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/article/content")
|
||||
public class ArticleContentController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:55 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:55
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/article")
|
||||
public class ArticleController {
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/article/discuss")
|
||||
public class ArticleDiscussController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/article/fabulous")
|
||||
public class ArticleFabulousController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/article/information")
|
||||
public class ArticleInformationController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/article/tag")
|
||||
public class ArticleTagController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/article/type")
|
||||
public class ArticleTypeController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,39 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:56 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:56
|
||||
*/
|
||||
@Data
|
||||
public class ArticleBrowseDTO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 评论表id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 评论用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论时间
|
||||
*/
|
||||
private LocalDateTime browseTime;
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.dto.BaseDTO;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleClassifyDTO extends BaseDTO {
|
||||
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 父分类id 若为0则父分类
|
||||
*/
|
||||
private String parentId;
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 状态 0删除/弃用 1表示使用
|
||||
*/
|
||||
|
||||
private Integer status;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleContentDTO {
|
||||
/**
|
||||
* 内容id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import com.zyjblogs.mydoc.server.util.page.PaginationQuery;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleDTO extends PaginationQuery {
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 作者id
|
||||
*/
|
||||
private String userId;
|
||||
/**
|
||||
* 显示状态 0 私密 1 公开 2不显示 3删除
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 原创 0 原创 1 转载
|
||||
*/
|
||||
private Integer original;
|
||||
|
||||
/**
|
||||
* 转载来源链接url
|
||||
*/
|
||||
private String reprintLink;
|
||||
|
||||
/**
|
||||
* 文章审核状态 0 待审核 1 已审核 2、已驳回
|
||||
*/
|
||||
private Integer examineStatus;
|
||||
|
||||
/**
|
||||
* 文章审核时间
|
||||
*/
|
||||
private LocalDateTime examineTime;
|
||||
|
||||
/**
|
||||
* 浏览次数
|
||||
*/
|
||||
private Integer browseNum;
|
||||
|
||||
/**
|
||||
* 点赞次数
|
||||
*/
|
||||
private Integer fabulousNum;
|
||||
/**
|
||||
* 简介
|
||||
*/
|
||||
private String description;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import com.zyjblogs.mydoc.server.util.page.PaginationQuery;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author zhuyijun
|
||||
*/
|
||||
@Data
|
||||
public class ArticleDiscussDTO extends PaginationQuery {
|
||||
/**
|
||||
* 评论表id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 评论用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 评论目标用户id
|
||||
*/
|
||||
private String targetUserId;
|
||||
|
||||
/**
|
||||
* 评论时间
|
||||
*/
|
||||
private LocalDateTime discussTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleFabulousDTO {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 点赞者 用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 点赞时间
|
||||
*/
|
||||
private LocalDateTime fabulousTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* @author zhuyijun
|
||||
*/
|
||||
@Data
|
||||
public class ArticleInformationDTO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 内容id
|
||||
*/
|
||||
private String contentId;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private String classifyId;
|
||||
|
||||
/**
|
||||
* 标签id
|
||||
*/
|
||||
private String tagId;
|
||||
|
||||
/**
|
||||
* 文章类型表id
|
||||
*/
|
||||
private Integer typeId;
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.dto.BaseDTO;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ArticleTagDTO extends BaseDTO {
|
||||
/**
|
||||
* 标签id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 标签名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 状态 0删除/弃用 1表示使用
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.zyjblogs.mydoc.server.article.dto;
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.dto.BaseDTO;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
|
||||
public class ArticleTypeDTO extends BaseDTO {
|
||||
|
||||
/**
|
||||
* 文章类型id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章类型名字
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 创建者 用户id
|
||||
*/
|
||||
private String userId;
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleBrowsePO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 16:07 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 16:07
|
||||
*/
|
||||
@Mapper
|
||||
public interface ArticleBrowseMapper extends BaseMapper<ArticleBrowsePO> {
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleClassifyPO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ArticleClassifyMapper extends BaseMapper<ArticleClassifyPO> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleContentPO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ArticleContentMapper extends BaseMapper<ArticleContentPO> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleDiscussPO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ArticleDiscussMapper extends BaseMapper<ArticleDiscussPO> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleFabulousPO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ArticleFabulousMapper extends BaseMapper<ArticleFabulousPO> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleInformationPO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ArticleInformationMapper extends BaseMapper<ArticleInformationPO> {
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticlePO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:53 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:53
|
||||
*/
|
||||
@Mapper
|
||||
public interface ArticleMapper extends BaseMapper<ArticlePO> {
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleTagPO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ArticleTagMapper extends BaseMapper<ArticleTagPO> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.article.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleTypePO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface ArticleTypeMapper extends BaseMapper<ArticleTypePO> {
|
||||
|
||||
}
|
@ -0,0 +1,59 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:56 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:56
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_browse")
|
||||
public class ArticleBrowsePO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 评论表id
|
||||
*/
|
||||
@TableField("article_id")
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 评论用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("browse_time")
|
||||
private LocalDateTime browseTime;
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.zyjblogs.mydoc.server.user.po.BasePO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_classify")
|
||||
public class ArticleClassifyPO extends BasePO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 父分类id 若为0则父分类
|
||||
*/
|
||||
@TableField("parent_id")
|
||||
private String parentId;
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
@TableField("name")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 状态 0删除/弃用 1表示使用
|
||||
*/
|
||||
@TableField("status")
|
||||
private Integer status;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_content")
|
||||
public class ArticleContentPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 内容id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@TableField("content")
|
||||
private String content;
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author zhuyijun
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_discuss")
|
||||
public class ArticleDiscussPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 评论表id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
@TableField("article_id")
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 评论用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论内容
|
||||
*/
|
||||
@TableField("content")
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 评论目标用户id
|
||||
*/
|
||||
@TableField("target_user_id")
|
||||
private String targetUserId;
|
||||
|
||||
/**
|
||||
* 评论时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("discuss_time")
|
||||
private LocalDateTime discussTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_fabulous")
|
||||
public class ArticleFabulousPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
@TableField("article_id")
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 点赞者 用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 点赞时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("fabulous_time")
|
||||
private LocalDateTime fabulousTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* @author zhuyijun
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_information")
|
||||
public class ArticleInformationPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
@TableField("article_id")
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 内容id
|
||||
*/
|
||||
@TableField("content_id")
|
||||
private String contentId;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
@TableField("classify_id")
|
||||
private String classifyId;
|
||||
|
||||
/**
|
||||
* 标签id
|
||||
*/
|
||||
@TableField("tag_id")
|
||||
private String tagId;
|
||||
|
||||
/**
|
||||
* 文章类型表id
|
||||
*/
|
||||
@TableField("type_id")
|
||||
private Integer typeId;
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.zyjblogs.mydoc.server.user.po.BasePO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article")
|
||||
public class ArticlePO extends BasePO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 作者id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 显示状态 0 私密 1 公开 2不显示 3删除
|
||||
*/
|
||||
@TableField("status")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 原创 0 原创 1 转载
|
||||
*/
|
||||
@TableField("original")
|
||||
private Integer original;
|
||||
|
||||
/**
|
||||
* 转载来源链接url
|
||||
*/
|
||||
@TableField("reprint_link")
|
||||
private String reprintLink;
|
||||
|
||||
/**
|
||||
* 文章审核状态 0 待审核 1 已审核 2、已驳回
|
||||
*/
|
||||
@TableField("examine_status")
|
||||
private Integer examineStatus;
|
||||
|
||||
/**
|
||||
* 文章审核时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("examine_time")
|
||||
private LocalDateTime examineTime;
|
||||
|
||||
/**
|
||||
* 浏览次数
|
||||
*/
|
||||
@TableField("browse_num")
|
||||
private Integer browseNum;
|
||||
|
||||
/**
|
||||
* 点赞次数
|
||||
*/
|
||||
@TableField("fabulous_num")
|
||||
private Integer fabulousNum;
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.zyjblogs.mydoc.server.user.po.BasePO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_tag")
|
||||
public class ArticleTagPO extends BasePO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 标签id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 标签名称
|
||||
*/
|
||||
@TableField("name")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 状态 0删除/弃用 1表示使用
|
||||
*/
|
||||
@TableField("status")
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.zyjblogs.mydoc.server.article.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.zyjblogs.mydoc.server.user.po.BasePO;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("article_type")
|
||||
public class ArticleTypePO extends BasePO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 文章类型id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章类型名字
|
||||
*/
|
||||
@TableField("name")
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 创建者 用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleBrowsePO;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 16:06 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 16:06
|
||||
*/
|
||||
public interface ArticleBrowseService extends IService<ArticleBrowsePO> {
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleClassifyPO;
|
||||
|
||||
|
||||
public interface ArticleClassifyService extends IService<ArticleClassifyPO> {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleContentPO;
|
||||
|
||||
|
||||
public interface ArticleContentService extends IService<ArticleContentPO> {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleDiscussPO;
|
||||
|
||||
|
||||
public interface ArticleDiscussService extends IService<ArticleDiscussPO> {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleFabulousPO;
|
||||
|
||||
|
||||
public interface ArticleFabulousService extends IService<ArticleFabulousPO> {
|
||||
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleInformationPO;
|
||||
|
||||
public interface ArticleInformationService extends IService<ArticleInformationPO> {
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticlePO;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:52 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:52
|
||||
*/
|
||||
public interface ArticleService extends IService<ArticlePO> {
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleTagPO;
|
||||
|
||||
|
||||
public interface ArticleTagService extends IService<ArticleTagPO> {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zyjblogs.mydoc.server.article.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleTypePO;
|
||||
|
||||
|
||||
public interface ArticleTypeService extends IService<ArticleTypePO> {
|
||||
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleBrowseMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleBrowsePO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleBrowseService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 16:06 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 16:06
|
||||
*/
|
||||
@Service
|
||||
public class ArticleBrowseServiceImpl extends ServiceImpl<ArticleBrowseMapper, ArticleBrowsePO> implements ArticleBrowseService {
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleClassifyMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleClassifyPO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleClassifyService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class ArticleClassifyServiceImpl extends ServiceImpl<ArticleClassifyMapper, ArticleClassifyPO> implements ArticleClassifyService {
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleContentMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleContentPO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleContentService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class ArticleContentServiceImpl extends ServiceImpl<ArticleContentMapper, ArticleContentPO> implements ArticleContentService {
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleDiscussMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleDiscussPO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleDiscussService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class ArticleDiscussServiceImpl extends ServiceImpl<ArticleDiscussMapper, ArticleDiscussPO> implements ArticleDiscussService {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleFabulousMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleFabulousPO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleFabulousService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class ArticleFabulousServiceImpl extends ServiceImpl<ArticleFabulousMapper, ArticleFabulousPO> implements ArticleFabulousService {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleInformationMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleInformationPO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleInformationService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class ArticleInformationServiceImpl extends ServiceImpl<ArticleInformationMapper, ArticleInformationPO> implements ArticleInformationService {
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticlePO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:52 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:52
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class ArticleServiceImpl extends ServiceImpl<ArticleMapper, ArticlePO> implements ArticleService {
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleTagMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleTagPO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleTagService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class ArticleTagServiceImpl extends ServiceImpl<ArticleTagMapper, ArticleTagPO> implements ArticleTagService {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.article.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.article.mapper.ArticleTypeMapper;
|
||||
import com.zyjblogs.mydoc.server.article.po.ArticleTypePO;
|
||||
import com.zyjblogs.mydoc.server.article.service.ArticleTypeService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class ArticleTypeServiceImpl extends ServiceImpl<ArticleTypeMapper, ArticleTypePO> implements ArticleTypeService {
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* copyright (C), 2021, 北京同创永益科技发展有限公司
|
||||
*
|
||||
* @author zhuyijun
|
||||
* @version 1.0.0
|
||||
* <author> <time> <version> <description>
|
||||
* zhuyijun 2021/1/6 15:56 1.0
|
||||
* @program mydoc
|
||||
* @description
|
||||
* @create 2021/1/6 15:56
|
||||
*/
|
||||
@Data
|
||||
public class ArticleBrowseVO {
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 评论表id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 评论用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论时间
|
||||
*/
|
||||
private LocalDateTime browseTime;
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.vo.BaseVO;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleClassifyVO extends BaseVO {
|
||||
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 父分类id 若为0则父分类
|
||||
*/
|
||||
private String parentId;
|
||||
|
||||
/**
|
||||
* 分类名称
|
||||
*/
|
||||
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 状态 0删除/弃用 1表示使用
|
||||
*/
|
||||
|
||||
private Integer status;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleContentVO {
|
||||
/**
|
||||
* 内容id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String content;
|
||||
}
|
@ -0,0 +1,43 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @author zhuyijun
|
||||
*/
|
||||
@Data
|
||||
public class ArticleDiscussVO {
|
||||
/**
|
||||
* 评论表id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 评论用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 评论内容
|
||||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 评论目标用户id
|
||||
*/
|
||||
private String targetUserId;
|
||||
|
||||
/**
|
||||
* 评论时间
|
||||
*/
|
||||
private LocalDateTime discussTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleFabulousVO {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 点赞者 用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 点赞时间
|
||||
*/
|
||||
private LocalDateTime fabulousTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
/**
|
||||
* @author zhuyijun
|
||||
*/
|
||||
@Data
|
||||
public class ArticleInformationVO {
|
||||
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String articleId;
|
||||
|
||||
/**
|
||||
* 内容id
|
||||
*/
|
||||
private String contentId;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 分类id
|
||||
*/
|
||||
private String classifyId;
|
||||
|
||||
/**
|
||||
* 标签id
|
||||
*/
|
||||
private String tagId;
|
||||
|
||||
/**
|
||||
* 文章类型表id
|
||||
*/
|
||||
private Integer typeId;
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.vo.BaseVO;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ArticleTagVO extends BaseVO {
|
||||
/**
|
||||
* 标签id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 标签名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 状态 0删除/弃用 1表示使用
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.vo.BaseVO;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
|
||||
public class ArticleTypeVO extends BaseVO {
|
||||
|
||||
/**
|
||||
* 文章类型id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文章类型名字
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 创建者 用户id
|
||||
*/
|
||||
private String userId;
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.zyjblogs.mydoc.server.article.vo;
|
||||
|
||||
import com.zyjblogs.mydoc.server.user.vo.BaseVO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
public class ArticleVO extends BaseVO {
|
||||
|
||||
/**
|
||||
* 文章id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 作者id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 显示状态 0 私密 1 公开 2不显示 3删除
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 原创 0 原创 1 转载
|
||||
*/
|
||||
private Integer original;
|
||||
|
||||
/**
|
||||
* 转载来源链接url
|
||||
*/
|
||||
private String reprintLink;
|
||||
|
||||
/**
|
||||
* 文章审核状态 0 待审核 1 已审核 2、已驳回
|
||||
*/
|
||||
private Integer examineStatus;
|
||||
|
||||
/**
|
||||
* 文章审核时间
|
||||
*/
|
||||
private LocalDateTime examineTime;
|
||||
|
||||
/**
|
||||
* 浏览次数
|
||||
*/
|
||||
private Integer browseNum;
|
||||
|
||||
/**
|
||||
* 点赞次数
|
||||
*/
|
||||
private Integer fabulousNum;
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.message.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/message/information")
|
||||
public class InformationController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
package com.zyjblogs.mydoc.server.message.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
public class InformationDTO {
|
||||
|
||||
/**
|
||||
* 消息id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 发送者id 发送者为0 则为系统
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String newsContent;
|
||||
|
||||
/**
|
||||
* 目标用户id
|
||||
*/
|
||||
private String pointUserId;
|
||||
|
||||
/**
|
||||
* 图片列表
|
||||
*/
|
||||
private String images;
|
||||
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
private LocalDateTime sendTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.message.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.message.po.InformationPO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface InformationMapper extends BaseMapper<InformationPO> {
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.zyjblogs.mydoc.server.message.po;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("information")
|
||||
public class InformationPO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 消息id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 发送者id 发送者为0 则为系统
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
@TableField("news_content")
|
||||
private String newsContent;
|
||||
|
||||
/**
|
||||
* 目标用户id
|
||||
*/
|
||||
@TableField("point_user_id")
|
||||
private String pointUserId;
|
||||
|
||||
/**
|
||||
* 图片列表
|
||||
*/
|
||||
@TableField("images")
|
||||
private String images;
|
||||
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("send_time")
|
||||
private LocalDateTime sendTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.zyjblogs.mydoc.server.message.service.Impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.message.mapper.InformationMapper;
|
||||
import com.zyjblogs.mydoc.server.message.po.InformationPO;
|
||||
import com.zyjblogs.mydoc.server.message.service.InformationService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class InformationServiceImpl extends ServiceImpl<InformationMapper, InformationPO> implements InformationService {
|
||||
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.zyjblogs.mydoc.server.message.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.zyjblogs.mydoc.server.message.po.InformationPO;
|
||||
|
||||
public interface InformationService extends IService<InformationPO> {
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package com.zyjblogs.mydoc.server.message.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
|
||||
@Data
|
||||
public class InformationVO {
|
||||
|
||||
/**
|
||||
* 消息id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 发送者id 发送者为0 则为系统
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 内容
|
||||
*/
|
||||
private String newsContent;
|
||||
|
||||
/**
|
||||
* 目标用户id
|
||||
*/
|
||||
private String pointUserId;
|
||||
|
||||
/**
|
||||
* 图片列表
|
||||
*/
|
||||
private String images;
|
||||
|
||||
/**
|
||||
* 发送时间
|
||||
*/
|
||||
private LocalDateTime sendTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.system.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/system/invitationcode")
|
||||
public class InvitationCodeController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.system.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/system/configure")
|
||||
public class SystemConfigureController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.system.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/system/user/configure")
|
||||
public class UserConfigureController {
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,49 @@
|
||||
package com.zyjblogs.mydoc.server.system.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 注册邀请码
|
||||
*/
|
||||
@Data
|
||||
public class InvitationCodeDTO {
|
||||
|
||||
/**
|
||||
* 邀请码id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 邀请码
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 状态 0 正常 1失效
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 可以使用的次数
|
||||
*/
|
||||
private Integer useTimes;
|
||||
|
||||
/**
|
||||
* 创建者id
|
||||
*/
|
||||
private String createId;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 失效时间
|
||||
*/
|
||||
private LocalDateTime invalidTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.zyjblogs.mydoc.server.system.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
@Data
|
||||
|
||||
public class SystemConfigureDTO implements Serializable {
|
||||
/**
|
||||
* 全局配置表id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 备案信息
|
||||
*/
|
||||
private String icp;
|
||||
|
||||
/**
|
||||
* 页脚信息
|
||||
*/
|
||||
private String footer;
|
||||
|
||||
/**
|
||||
* 站点标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 站点副标题
|
||||
*/
|
||||
private String subTitle;
|
||||
|
||||
/**
|
||||
* 站点名称
|
||||
*/
|
||||
private String siteName;
|
||||
|
||||
/**
|
||||
* 注册是否需要邀请码 0不需要 1需要
|
||||
*/
|
||||
private Integer register;
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package com.zyjblogs.mydoc.server.system.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class UserConfigureDTO {
|
||||
/**
|
||||
* 用户配置id
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 主题 0 白色 1黑色
|
||||
*/
|
||||
private Integer themeColour;
|
||||
|
||||
/**
|
||||
* 系统背景图片 url String
|
||||
*/
|
||||
private String themeBackground;
|
||||
|
||||
/**
|
||||
* 默认编辑器id 0 markdown 1.富文本
|
||||
*/
|
||||
private Integer editor;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.system.po.InvitationCodePO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface InvitationCodeMapper extends BaseMapper<InvitationCodePO> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.system.po.SystemConfigurePO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface SystemConfigureMapper extends BaseMapper<SystemConfigurePO> {
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zyjblogs.mydoc.server.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zyjblogs.mydoc.server.system.po.UserConfigurePO;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
@Mapper
|
||||
public interface UserConfigureMapper extends BaseMapper<UserConfigurePO> {
|
||||
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package com.zyjblogs.mydoc.server.system.po;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 注册邀请码
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("invitation_code")
|
||||
public class InvitationCodePO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 邀请码id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 邀请码
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* 状态 0 正常 1失效
|
||||
*/
|
||||
@TableField("status")
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 可以使用的次数
|
||||
*/
|
||||
@TableField("use_times")
|
||||
private Integer useTimes;
|
||||
|
||||
/**
|
||||
* 创建者id
|
||||
*/
|
||||
@TableField("create_id")
|
||||
private String createId;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("create_time")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
/**
|
||||
* 失效时间
|
||||
*/
|
||||
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
|
||||
@TableField("invalid_time")
|
||||
private LocalDateTime invalidTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.zyjblogs.mydoc.server.system.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("system_configure")
|
||||
public class SystemConfigurePO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 全局配置表id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 备案信息
|
||||
*/
|
||||
@TableField("icp")
|
||||
private String icp;
|
||||
|
||||
/**
|
||||
* 页脚信息
|
||||
*/
|
||||
@TableField("footer")
|
||||
private String footer;
|
||||
|
||||
/**
|
||||
* 站点标题
|
||||
*/
|
||||
@TableField("title")
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 站点副标题
|
||||
*/
|
||||
@TableField("sub_title")
|
||||
private String subTitle;
|
||||
|
||||
/**
|
||||
* 站点名称
|
||||
*/
|
||||
@TableField("site_name")
|
||||
private String siteName;
|
||||
|
||||
/**
|
||||
* 注册是否需要邀请码 0不需要 1需要
|
||||
*/
|
||||
@TableField("register")
|
||||
private Integer register;
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
package com.zyjblogs.mydoc.server.system.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@TableName("user_configure")
|
||||
public class UserConfigurePO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 用户配置id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.ASSIGN_UUID)
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@TableField("user_id")
|
||||
private String userId;
|
||||
|
||||
/**
|
||||
* 主题 0 白色 1黑色
|
||||
*/
|
||||
@TableField("theme_colour")
|
||||
private Integer themeColour;
|
||||
|
||||
/**
|
||||
* 系统背景图片 url String
|
||||
*/
|
||||
@TableField("theme_background")
|
||||
private String themeBackground;
|
||||
|
||||
/**
|
||||
* 默认编辑器id 0 markdown 1.富文本
|
||||
*/
|
||||
@TableField("editor")
|
||||
private Integer editor;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.zyjblogs.mydoc.server.system.service.Impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.system.mapper.InvitationCodeMapper;
|
||||
import com.zyjblogs.mydoc.server.system.po.InvitationCodePO;
|
||||
import com.zyjblogs.mydoc.server.system.service.InvitationCodeService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class InvitationCodeServiceImpl extends ServiceImpl<InvitationCodeMapper, InvitationCodePO> implements InvitationCodeService {
|
||||
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.zyjblogs.mydoc.server.system.service.Impl;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.system.mapper.SystemConfigureMapper;
|
||||
import com.zyjblogs.mydoc.server.system.po.SystemConfigurePO;
|
||||
import com.zyjblogs.mydoc.server.system.service.SystemConfigureService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class SystemConfigureServiceImpl extends ServiceImpl<SystemConfigureMapper, SystemConfigurePO> implements SystemConfigureService {
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.zyjblogs.mydoc.server.system.service.Impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zyjblogs.mydoc.server.system.mapper.UserConfigureMapper;
|
||||
import com.zyjblogs.mydoc.server.system.po.UserConfigurePO;
|
||||
import com.zyjblogs.mydoc.server.system.service.UserConfigureService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@Service
|
||||
public class UserConfigureServiceImpl extends ServiceImpl<UserConfigureMapper, UserConfigurePO> implements UserConfigureService {
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user