毕业设计

6 篇文章 0 订阅
5 篇文章 2 订阅

对账业务综合管理平台的设计与实现

接口文档

点击http://localhost:8001/doc.html 需要先启动项目!

Oracle数据库 查询所有表

oracle 中user_tables表各字段意思

DataGrip安装

DataGrip 下载安装及使用教程

记录idea和DataGrip激活的过程

DataGrip安装和使用

如何使用DataGrip导出整个数据库到一个.sql文件(oracle数据库)

将.sql文件转成.pdm文件

如何用PLSQL导出数据库存表结构信息

PL/SQL中导出整个表、表结构、部分数据、以及导入整个表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装客户端(宝塔)

fastcgi_param HTTPS $fastcgi_https;
systemctl restart nginx
add_header X-Frame-Options ALLWOALL
find / -name configure
./configure --with-php-config=/www/server/php/70/bin/php-config --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib

/www/server/php/70/bin/phpize
./configure --with-php-config=/www/server/php/70/bin/php-config --with-pdo-oci=instantclient,/usr/lib/oracle/11.2/client64/lib

/www/server/panel/vhost/nginx/check.mstudy.top.conf
# jar开机自启动
#!/bin/bash
#配置jdk的路径
export JAVA_HOME=/usr/java/jdk1.8.0_121/jre/bin/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
 
#有时需要把jar包延时启动(不设置延时启动jar,nacos会提示拒绝连接)
#延时10S运行jar包,需要延时启动则放开sleep注释行 (sleep+数字,表示延迟多少秒启动)
sleep 10
#配置jar包启动的路径 日志生成路径  nohup表示静默启动,不在窗口显示启动日志
nohup java -jar /www/wwwroot/check.mstudy.top/java_back/ck-bus-admin-1.0.0-BOOT.jar >/www/wwwroot/check.mstudy.top/java_back/nohup.log 2>&1 &

ps -ef | grep .jar

#!/bin/bash
nohup java -jar ck-bus-job-1.0.0-BOOT.jar >nohupJar.log 2>&1 &

#!/bin/bash
PID=$(ps -ef | grep ck-bus-job-1.0.0-BOOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo Application is already stopped
else
    echo kill $PID
    kill $PID
fi

chmod 700 linux-stop.sh

数据库设计

依赖commons-tool

dependencies {
    compile 'org.springframework.boot:spring-boot-starter-web:2.4.13'
    compile 'org.springframework.boot:spring-boot-starter-data-redis:2.4.13'
    compile 'org.apache.commons:commons-lang3:3.11'
    compile 'io.swagger:swagger-annotations:1.5.22'
    compile 'org.hibernate.validator:hibernate-validator:6.1.6.Final'
    compile 'cn.hutool:hutool-all:5.5.7'
    compile 'eu.bitwalker:UserAgentUtils:1.20'
    compile 'com.google.zxing:core:3.2.1'
    compile 'com.alibaba:fastjson:1.2.79'
    compile 'org.bouncycastle:bcprov-jdk15on:1.68'
    compile 'org.apache.poi:poi:3.16'
    /*excel*/
    compile 'org.apache.poi:poi-ooxml:3.16'
    compile 'commons-net:commons-net:3.6'
    compile 'commons-io:commons-io:2.6'
    compile 'com.jcraft:jsch:0.1.54'
    compile 'net.sf.dozer:dozer:5.5.1'
    compile 'net.sf.dozer:dozer-spring:5.5.1'
    compile 'com.github.pagehelper:pagehelper-spring-boot-starter:1.3.0'
    compile 'dom4j:dom4j:1.6.1'
    /*xml解析document.selectNodes*/
    compile 'jaxen:jaxen:1.1.6'
    // 解析文件类型
    compile 'org.apache.tika:tika-core:1.26'
    // 图片质量压缩
    compile 'net.coobird:thumbnailator:0.4.14'
    compile 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
}

SYS_USER

create table SYS_USER
(
    USER_ID                  NUMBER(16) not null
        constraint SYS_USER_PK
            primary key,
    USER_AVATAR_ID           NUMBER(16),
    USER_EMAIL               VARCHAR2(50),
    USER_STATUS              VARCHAR2(2),
    USER_PASSWORD            VARCHAR2(255),
    USER_NAME                VARCHAR2(100),
    USER_DEPT_ID             NUMBER(16),
    USER_PHONE               VARCHAR2(30),
    USER_JOB_ID              NUMBER(16),
    CREATE_TIME              DATE,
    LAST_PASSWORD_RESET_TIME DATE,
    USER_NICK_NAME           VARCHAR2(100),
    USER_GENDER              VARCHAR2(10),
    UPDATE_TIME              DATE,
    IS_DEL                   VARCHAR2(2) default '0',
    USER_ADDRESS             VARCHAR2(255)
)
/
comment on table SYS_USER is '系统用户'
/

SYS_USER_AVATAR

create table SYS_USER_AVATAR
(
    USER_AVATAR_ID   NUMBER(16) not null
        constraint SYS_USER_AVATAR_PK
            primary key,
    USER_AVATAR_NAME VARCHAR2(255),
    USER_AVATAR_PATH VARCHAR2(255),
    USER_AVATAR_SIZE VARCHAR2(255),
    CREATE_TIME      DATE,
    UPDATE_TIME      DATE,
    IS_DEL           VARCHAR2(2) default '0'
)
/
comment on column SYS_USER_AVATAR.USER_AVATAR_NAME is '真实文件名'
/
comment on column SYS_USER_AVATAR.USER_AVATAR_PATH is '路径'
/
comment on column SYS_USER_AVATAR.USER_AVATAR_SIZE is '大小'
/

USER_ROLE_REL

create table USER_ROLE_REL
(
    USER_ID     NUMBER(16) not null,
    ROLE_ID     NUMBER(16) not null,
    CREATE_TIME DATE       not null,
    IS_DEL      VARCHAR2(2) default '0',
    constraint SYS_USERS_ROLES_PK
        primary key (USER_ID, ROLE_ID, CREATE_TIME)
)
/
comment on table USER_ROLE_REL is '用户角色关联'
/
comment on column USER_ROLE_REL.USER_ID is '用户ID'
/
comment on column USER_ROLE_REL.ROLE_ID is '角色ID'
/

SYS_ROLE

create table SYS_ROLE
(
    ROLE_ID         NUMBER(16) not null
        constraint SYS_ROLE_PK
            primary key,
    ROLE_NAME       VARCHAR2(255),
    ROLE_REMARK     VARCHAR2(255),
    ROLE_DATA_SCOPE VARCHAR2(255),
    ROLE_LEVEL      NUMBER(11),
    CREATE_TIME     DATE,
    ROLE_PERMISSION VARCHAR2(255),
    UPDATE_TIME     DATE,
    IS_DEL          VARCHAR2(2) default '0',
    ROLE_STATUS     VARCHAR2(2)
)
/
comment on table SYS_ROLE is '角色表'
/
comment on column SYS_ROLE.ROLE_NAME is '名称'
/
comment on column SYS_ROLE.ROLE_REMARK is '备注'
/
comment on column SYS_ROLE.ROLE_DATA_SCOPE is '数据权限'
/
comment on column SYS_ROLE.ROLE_LEVEL is '角色级别'
/
comment on column SYS_ROLE.CREATE_TIME is '创建日期'
/
comment on column SYS_ROLE.ROLE_PERMISSION is '功能权限'
/

SYS_MENU

create table SYS_MENU
(
    MENU_ID             NUMBER(16) not null
        constraint SYS_MENU_PK
            primary key,
    MENU_I_FRAME        VARCHAR2(2),
    MENU_NAME           VARCHAR2(255),
    MENU_COMPONENT      VARCHAR2(255),
    MENU_PARENT_ID      NUMBER(16),
    MENU_SORT           NUMBER(16),
    MENU_ICON           VARCHAR2(255),
    MENU_PATH           VARCHAR2(255),
    MENU_CACHE          VARCHAR2(2),
    MENU_STATUS         VARCHAR2(2),
    MENU_COMPONENT_NAME VARCHAR2(20),
    CREATE_TIME         DATE,
    MENU_PERMISSION     VARCHAR2(255),
    MENU_TYPE           NUMBER(11),
    UPDATE_TIME         DATE,
    IS_DEL              VARCHAR2(2) default '0'
)
/
comment on table SYS_MENU is '菜单'
/
comment on column SYS_MENU.MENU_I_FRAME is '是否外链'
/
comment on column SYS_MENU.MENU_NAME is '菜单名称'
/
comment on column SYS_MENU.MENU_COMPONENT is '组件'
/
comment on column SYS_MENU.MENU_PARENT_ID is '上级菜单ID'
/
comment on column SYS_MENU.MENU_SORT is '排序'
/
comment on column SYS_MENU.MENU_ICON is '图标'
/
comment on column SYS_MENU.MENU_PATH is '链接地址'
/
comment on column SYS_MENU.MENU_CACHE is '缓存'
/
comment on column SYS_MENU.MENU_STATUS is '是否隐藏'
/
comment on column SYS_MENU.MENU_COMPONENT_NAME is '组件名称'
/
comment on column SYS_MENU.CREATE_TIME is '创建日期'
/
comment on column SYS_MENU.MENU_PERMISSION is '权限'
/
comment on column SYS_MENU.MENU_TYPE is '类型'
/

ROLE_MENU_REL

create table ROLE_MENU_REL
(
    ROLE_ID     NUMBER(16) not null,
    MENU_ID     NUMBER(16) not null,
    CREATE_TIME DATE       not null,
    IS_DEL      VARCHAR2(2) default '0',
    constraint ROLE_MENU_REL_PK
        primary key (ROLE_ID, MENU_ID, CREATE_TIME)
)
/
comment on table ROLE_MENU_REL is '角色菜单关系实体'
/
comment on column ROLE_MENU_REL.ROLE_ID is '角色id'
/
comment on column ROLE_MENU_REL.MENU_ID is '菜单id'
/

SYS_DEPT

create table SYS_DEPT
(
    DEPT_ID        NUMBER(16) not null
        constraint SYS_DEPT_PK
            primary key,
    DEPT_NAME      VARCHAR2(255),
    DEPT_PARENT_ID NUMBER(16),
    DEPT_STATUS    VARCHAR2(2),
    CREATE_TIME    DATE,
    UPDATE_TIME    DATE,
    IS_DEL         VARCHAR2(2) default '0',
    DEPT_REMARK    VARCHAR2(255)
)
/
comment on table SYS_DEPT is '部门'
/
comment on column SYS_DEPT.DEPT_NAME is '名称'
/
comment on column SYS_DEPT.DEPT_PARENT_ID is '上级部门'
/
comment on column SYS_DEPT.DEPT_STATUS is '状态'
/
comment on column SYS_DEPT.CREATE_TIME is '创建日期'
/

ROLE_DEPT_REL

create table ROLE_DEPT_REL
(
    ROLE_ID     NUMBER(16) not null,
    DEPT_ID     NUMBER(16) not null,
    CREATE_TIME DATE       not null,
    IS_DEL      VARCHAR2(2) default '0',
    constraint ROLE_DEPT_REL_PK
        primary key (ROLE_ID, DEPT_ID, CREATE_TIME)
)
/
comment on table ROLE_DEPT_REL is '角色部门关系实体'
/
comment on column ROLE_DEPT_REL.ROLE_ID is '角色id'
/
comment on column ROLE_DEPT_REL.DEPT_ID is '部门id'
/

SYS_JOB

create table SYS_JOB
(
    JOB_ID      NUMBER(16) not null
        constraint SYS_JOB_PK
            primary key,
    JOB_NAME    VARCHAR2(255),
    JOB_STATUS  VARCHAR2(2),
    JOB_SORT    NUMBER(16),
    JOB_DEPT_ID NUMBER(16),
    CREATE_TIME DATE,
    UPDATE_TIME DATE,
    IS_DEL      VARCHAR2(2) default '0',
    JOB_REMARK  VARCHAR2(255)
)
/
comment on table SYS_JOB is '岗位'
/
comment on column SYS_JOB.JOB_NAME is '岗位名称'
/
comment on column SYS_JOB.JOB_STATUS is '岗位状态'
/
comment on column SYS_JOB.JOB_SORT is '岗位排序'
/
comment on column SYS_JOB.JOB_DEPT_ID is '部门ID'
/
comment on column SYS_JOB.CREATE_TIME is '创建日期'
/
comment on column SYS_JOB.JOB_REMARK is '岗位描述'
/

SYS_DICT

create table SYS_DICT
(
    DICT_ID     NUMBER(11) not null
        constraint SYS_DICT_PK
            primary key,
    DICT_NAME   VARCHAR2(255),
    DICT_REMARK VARCHAR2(255),
    CREATE_TIME DATE,
    UPDATE_TIME DATE,
    IS_DEL      VARCHAR2(2) default '0'
)
/
comment on table SYS_DICT is '数据字典'
/
comment on column SYS_DICT.DICT_NAME is '字典名称'
/
comment on column SYS_DICT.DICT_REMARK is '描述'
/
comment on column SYS_DICT.CREATE_TIME is '创建日期'
/

SYS_DICT_DETAIL

create table SYS_DICT_DETAIL
(
    DICT_DETAIL_ID    NUMBER(11) not null
        constraint SYS_DICT_DETAIL_PK
            primary key,
    DICT_DETAIL_LABEL VARCHAR2(255),
    DICT_DETAIL_VALUE VARCHAR2(255),
    DICT_DETAIL_SORT  VARCHAR2(255),
    DICT_ID           NUMBER(11),
    CREATE_TIME       DATE,
    UPDATE_TIME       DATE,
    IS_DEL            VARCHAR2(2) default '0'
)
/
comment on table SYS_DICT_DETAIL is '数据字典详情'
/
comment on column SYS_DICT_DETAIL.DICT_DETAIL_LABEL is '字典标签'
/
comment on column SYS_DICT_DETAIL.DICT_DETAIL_VALUE is '字典值'
/
comment on column SYS_DICT_DETAIL.DICT_DETAIL_SORT is '排序'
/
comment on column SYS_DICT_DETAIL.DICT_ID is '字典ID'
/
comment on column SYS_DICT_DETAIL.CREATE_TIME is '创建日期'
/

SYS_LOG

create table SYS_LOG
(
    LOG_ID               NUMBER(16) not null
        constraint SYS_LOG_PK
            primary key,
    LOG_TYPE             VARCHAR2(255),
    LOG_USER_ID          NUMBER(16),
    LOG_USER_NAME        VARCHAR2(255),
    LOG_REQUEST_IP       VARCHAR2(255),
    LOG_REQUEST_ADDRESS  VARCHAR2(255),
    LOG_REQUEST_BROWSER  VARCHAR2(255),
    LOG_REQUEST_PARAMS   CLOB,
    LOG_REQUEST_METHOD   VARCHAR2(255),
    LOG_OPERATE_SYSTEM   VARCHAR2(100) default null,
    LOG_DESCRIPTION      VARCHAR2(255),
    LOG_EXCEPTION_DETAIL CLOB,
    LOG_REQUEST_TIME     NUMBER(16),
    CREATE_TIME          DATE,
    UPDATE_TIME          DATE,
    IS_DEL               VARCHAR2(2)   default '0'
)
/

SYS_VERIFICATION_CODE

create table SYS_VERIFICATION_CODE
(
    VERIF_ID      NUMBER(16) not null
        constraint SYS_VERIFICATION_CODE_PK
            primary key,
    VERIF_TYPE    VARCHAR2(15),
    VERIF_SCENE   VARCHAR2(15),
    VERIF_ACCOUNT VARCHAR2(100),
    VERIF_CODE    VARCHAR2(15),
    VERIF_STATUS  VARCHAR2(2),
    CREATE_TIME   DATE
)
/
comment on table SYS_VERIFICATION_CODE is '验证码'
/
comment on column SYS_VERIFICATION_CODE.VERIF_TYPE is '验证码类型:email或者短信'
/
comment on column SYS_VERIFICATION_CODE.VERIF_SCENE is '业务名称:如重置邮箱、重置密码等'
/
comment on column SYS_VERIFICATION_CODE.VERIF_ACCOUNT is '接收邮箱或者手机号码'
/
comment on column SYS_VERIFICATION_CODE.VERIF_CODE is '验证码'
/
comment on column SYS_VERIFICATION_CODE.VERIF_STATUS is '状态:U有效、E过期'
/

SYS_EMAIL_CONFIG

create table SYS_EMAIL_CONFIG
(
    MAIL_ID         NUMBER(16) not null
        constraint SYS_EMAIL_CONFIG_PK
            primary key,
    MAIL_STATUS     VARCHAR2(2),
    SEND_USER_NAME  VARCHAR2(30),
    FROM_USER_EMAIL VARCHAR2(50),
    MAIL_HOST       VARCHAR2(30),
    MAIL_PASS       VARCHAR2(50),
    MAIL_PORT       VARCHAR2(10),
    CREATE_TIME     DATE,
    UPDATE_TIME     DATE,
    IS_DEL          VARCHAR2(2) default '0',
    MAIL_SORT       NUMBER(5)
)
/
comment on table SYS_EMAIL_CONFIG is '邮箱配置'
/
comment on column SYS_EMAIL_CONFIG.MAIL_STATUS is '邮箱状态'
/
comment on column SYS_EMAIL_CONFIG.SEND_USER_NAME is '发件人名称'
/
comment on column SYS_EMAIL_CONFIG.FROM_USER_EMAIL is '发件人邮箱'
/
comment on column SYS_EMAIL_CONFIG.MAIL_HOST is '邮件服务器SMTP地址'
/
comment on column SYS_EMAIL_CONFIG.MAIL_PASS is '授权密码'
/
comment on column SYS_EMAIL_CONFIG.MAIL_PORT is '端口'
/
comment on column SYS_EMAIL_CONFIG.MAIL_SORT is '使用优先级'
/

定时任务

Quartz定时任务2.3版本数据库表字段说明

quartz 调度的12张表介绍

spring整合quartz(持久化数据库)

oracle账号被锁(ORA-28000)及密码错误(ORA-01005)

druid加密数据库密码

@MapperScan和@ComponentScan一块使用冲突问题

建表语句

CREATE TABLE QRTZ_JOB_DETAILS(
SCHED_NAME VARCHAR2(120) NOT NULL,
JOB_NAME VARCHAR2(200) NOT NULL,
JOB_GROUP VARCHAR2(200) NOT NULL,
DESCRIPTION VARCHAR2(250) NULL,
JOB_CLASS_NAME VARCHAR2(250) NOT NULL,
IS_DURABLE VARCHAR2(1) NOT NULL,
IS_NONCONCURRENT VARCHAR2(1) NOT NULL,
IS_UPDATE_DATA VARCHAR2(1) NOT NULL,
REQUESTS_RECOVERY VARCHAR2(1) NOT NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP));

CREATE TABLE QRTZ_TRIGGERS (
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
JOB_NAME VARCHAR2(200) NOT NULL,
JOB_GROUP VARCHAR2(200) NOT NULL,
DESCRIPTION VARCHAR2(250) NULL,
NEXT_FIRE_TIME NUMBER(13) NULL,
PREV_FIRE_TIME NUMBER(13) NULL,
PRIORITY NUMBER(13) NULL,
TRIGGER_STATE VARCHAR2(16) NOT NULL,
TRIGGER_TYPE VARCHAR2(8) NOT NULL,
START_TIME NUMBER(13) NOT NULL,
END_TIME NUMBER(13) NULL,
CALENDAR_NAME VARCHAR2(200) NULL,
MISFIRE_INSTR NUMBER(2) NULL,
JOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP));

CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
REPEAT_COUNT NUMBER(7) NOT NULL,
REPEAT_INTERVAL NUMBER(12) NOT NULL,
TIMES_TRIGGERED NUMBER(10) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP));

CREATE TABLE QRTZ_CRON_TRIGGERS (
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
CRON_EXPRESSION VARCHAR2(120) NOT NULL,
TIME_ZONE_ID VARCHAR2(80),
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP));

CREATE TABLE QRTZ_SIMPROP_TRIGGERS (
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
STR_PROP_1 VARCHAR2(512) NULL,
STR_PROP_2 VARCHAR2(512) NULL,
STR_PROP_3 VARCHAR2(512) NULL,
INT_PROP_1 NUMBER(10) NULL,
INT_PROP_2 NUMBER(10) NULL,
LONG_PROP_1 NUMBER(13) NULL,
LONG_PROP_2 NUMBER(13) NULL,
DEC_PROP_1 NUMBER(13,4) NULL,
DEC_PROP_2 NUMBER(13,4) NULL,
BOOL_PROP_1 VARCHAR2(1) NULL,
BOOL_PROP_2 VARCHAR2(1) NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP));

CREATE TABLE QRTZ_BLOB_TRIGGERS (
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
BLOB_DATA BLOB NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP));

CREATE TABLE QRTZ_CALENDARS (
SCHED_NAME VARCHAR2(120) NOT NULL,
CALENDAR_NAME VARCHAR2(200) NOT NULL,
CALENDAR BLOB NOT NULL,
PRIMARY KEY (SCHED_NAME,CALENDAR_NAME));

CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
SCHED_NAME VARCHAR2(120) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP));

CREATE TABLE QRTZ_FIRED_TRIGGERS (
SCHED_NAME VARCHAR2(120) NOT NULL,
ENTRY_ID VARCHAR2(95) NOT NULL,
TRIGGER_NAME VARCHAR2(200) NOT NULL,
TRIGGER_GROUP VARCHAR2(200) NOT NULL,
INSTANCE_NAME VARCHAR2(200) NOT NULL,
FIRED_TIME NUMBER(13) NOT NULL,
SCHED_TIME NUMBER(13) NOT NULL,
PRIORITY NUMBER(13) NOT NULL,
STATE VARCHAR2(16) NOT NULL,
JOB_NAME VARCHAR2(200) NULL,
JOB_GROUP VARCHAR2(200) NULL,
IS_NONCONCURRENT VARCHAR2(1) NULL,
REQUESTS_RECOVERY VARCHAR2(1) NULL,
PRIMARY KEY (SCHED_NAME,ENTRY_ID));

CREATE TABLE QRTZ_SCHEDULER_STATE (
SCHED_NAME VARCHAR2(120) NOT NULL,
INSTANCE_NAME VARCHAR2(200) NOT NULL,
LAST_CHECKIN_TIME NUMBER(13) NOT NULL,
CHECKIN_INTERVAL NUMBER(13) NOT NULL,
PRIMARY KEY (SCHED_NAME,INSTANCE_NAME));

CREATE TABLE QRTZ_LOCKS (
SCHED_NAME VARCHAR(120) NOT NULL,
LOCK_NAME VARCHAR(40) NOT NULL,
PRIMARY KEY (SCHED_NAME,LOCK_NAME));

java8时间自动转换

实体拷贝工具大汇总,你还在用BeanUtils? 赶紧来学一学吧

Java对象复制

我们为什么要使用LocalDateTime

创建序列

数据库序列的创建和使用

Oracle数据库——序列的创建

# 用户ID序列
drop sequence CK_BUS.SEQ_USER_ID;
create sequence CK_BUS.SEQ_USER_ID increment by 1 start with 1 maxvalue 99999999 minvalue 1 cache 20;

# 角色ID序列
drop sequence CK_BUS.SEQ_ROLE_ID;
create sequence CK_BUS.SEQ_ROLE_ID increment by 1 start with 1 maxvalue 99999999 minvalue 1 cache 20;

# 菜单ID序列
drop sequence CK_BUS.SEQ_MENU_ID;
create sequence CK_BUS.SEQ_MENU_ID increment by 1 start with 1 maxvalue 99999999 minvalue 1 cache 20;

# 权限ID序列
drop sequence CK_BUS.SEQ_DEPT_ID;
create sequence CK_BUS.SEQ_DEPT_ID increment by 1 start with 1 maxvalue 99999999 minvalue 1 cache 20;

drop sequence CK_BUS.SEQ_LOG_ID;
create sequence CK_BUS.SEQ_LOG_ID increment by 1 start with 1 maxvalue 99999999 minvalue 1 cache 20;

create sequence CK_BUS.SEQ_JOB_ID increment by 1 start with 1 maxvalue 99999999 minvalue 1 cache 20;

# 序列调用 产生一个新的序列
select CK_BUS.SEQ_USER_ID.nextval from dual;

# 查看当前序列的值
select CK_BUS.SEQ_USER_ID.currval from dual;

spring boot整合mybatis+druid和多数据源外加druid监视sql执行时间

druid数据库连接池 application.yml 最大连接池数量max-active 最大等待时间max-wait 高并发时大量线程等待TIMED_WAITING

Springboot整合Druid,添加拦截器进行数据监控

hutool 工具包实现rsa加密

ck_bus加密

DruidUtils druidUtils = DruidUtils.genDruidKeyPair();
System.out.println(druidUtils.getGenDruidPubKey());
System.out.println("9999999999999999999999999999999999999999");
System.out.println(druidUtils.getGenDruidPriKey());
String content = "ck_bus";
System.out.println("9999999999999999999999999999999999999999");
System.out.println(DruidUtils.druidEncrypt(content, druidUtils.getGenDruidPriKey()));
System.out.println("9999999999999999999999999999999999999999");
System.out.println(DruidUtils.druidDecrypt(DruidUtils.druidEncrypt(content, druidUtils.getGenDruidPriKey()), druidUtils.getGenDruidPubKey()));
    
RSAUtils rsaUtils = RSAUtils.genRsaKeyPair();
System.out.println(rsaUtils.getGenRsaPubKey());
System.out.println("9999999999999999999999999999999999999999");
System.out.println(rsaUtils.getGenRsaPriKey());
String content = "ck_bus";
System.out.println("9999999999999999999999999999999999999999");
System.out.println(RSAUtils.rsaEncrypt(content, rsaUtils.getGenRsaPubKey()));
System.out.println("9999999999999999999999999999999999999999");
System.out.println(RSAUtils.rsaDecrypt(RSAUtils.rsaEncrypt(content, rsaUtils.getGenRsaPubKey()), rsaUtils.getGenRsaPriKey()));

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRZI4EzZa/cqA1rp5AfREmHd0MYjuviNYjXAhMOQL3LO5QXMS27ZOEhk5yl0a/yMAxyZGBfxh4AFbg6K6Uj+j3WI7Yy1VAkmIzYjQveeyFgGinECWO+d6wIs3A9uiVz64tYo+1EBM9BXzw0Mu2AATH5F4P+wZuF8HHWDW+XJVocwIDAQAB
9999999999999999999999999999999999999999
MIICdAIBADANBgkqhkiG9w0BAQEFAASCAl4wggJaAgEAAoGBANFkjgTNlr9yoDWunkB9ESYd3QxiO6+I1iNcCEw5Avcs7lBcxLbtk4SGTnKXRr/IwDHJkYF/GHgAVuDorpSP6PdYjtjLVUCSYjNiNC957IWAaKcQJY753rAizcD26JXPri1ij7UQEz0FfPDQy7YABMfkXg/7Bm4XwcdYNb5clWhzAgMBAAECf2LVPjNbgUvb+W1dKP+cs1DKcmDl/PCy0GA1kF+/M9HMjgULGc6TVI241vjqGPrCRp/kBEnwiMbGDOZw7UuHTENDW6ynVXixwLtK0Fq2uWkKeYu+by2SLHTeUO/NXCSxjv/enog2gcQhLSPw3AaW4H2Ny3K5d2/YfhIaaOmzE9ECQQDvLSnPS7J81ud/JLaihyOOp3+N9AZ4l7xVNJvz8csZViO9baWJNxItjqwFdFsK96jGuWKZH8jCGTFFDqaEh5hjAkEA4B8UTOFjpuaN0l5BstwdljDnfJX65jnUSaqBoIae0GYbGWfUj5rjOjckaeKMgAbzH90rZlGlu4CCc5dYlVaEsQJAHfC9ZyHGujH80MG7yyS3osf9A7wkgzwba18mlqcSEZ3i43eyXTbzo5hUmGo0a28NRbM3UIvWCdY1gLuQxM5kmQJAH2u8CNtAgVGpaGjWhSDe9QN+MLVGK6jH3lwNOFgnQ8hM3E72OfvZB3xbmoysbfaLd1gmkX244oStxU7emHE8wQJBAKFss929s9Am8MviAJylklvYocdRH039sHbuCX8MyG651lCP309Mp4qRQKfYp48UgWpGFY03L8MOQQ20SNnCFss=
9999999999999999999999999999999999999999
YueFa/UJ92SE8dovgjtGpDKdMCaEtw38ZEO/ng8t4r2KAMbw0OnZ2lbz0f+XcF5uTZBuf3qfxNCfy2bBjGrDxBrJuUOoGaNlQ6lyJvvdVw1Jxx9qNAZcrrASBjXvLUPibbk2jvy0Ig/EtgcTDp8Qt7ybSWVGpnqacQM311KDJD8=
9999999999999999999999999999999999999999
ck_bus

springboot中druid数据源配置文件密码加密显示

响应数据结构

1 获取验证码

验证码

{
    "username": "admin",
    "password": "VJ9RKcEp9kDyF3tzHkuM+Mu2Le4pHWAcl83n8XaZGLDCbGThChkR4E0BEHVmDSUos1N4w0ye70s7sunUFvsQ54Z2sTItDZObGLPIVK2y2NmNFPncCiKFEXnizQYw2s66A7UwTOd2gsTvOy4qhqygYaRwXSjeVCYw/20co/5Ky/8=",
    "rememberMe": false,
    "code": "6",
    "codeKey": "codeKey_22f407a93d4d48a89eec5c89f2fc1828"
}

2 用户登录

登录者

说明

权限在后端匹配访问url,匹配不到对应值,会跳到401页面

权限在前端匹配的是页面上的功能按钮,匹配不到对应值,按钮就不会显示

权限值至少为一个

{
    "user": {
        "userId": 1,
        "userName": "admin",
        "userNickName": "管理员",
        "userGender": "男",
        "userAvatarPath": "/check/avatar/admin/20221230165338a9b4ea365154.jpg",
        "userAddress": "甘肃省-兰州市-榆中县",
        "userEmail": "307026****@qq.com",
        "userPhone": "1500942****",
        "userDept": {
            "deptId": 2,
            "deptName": "西北分部"
        },
        "userJob": {
            "jobId": 1,
            "jobName": "全栈开发"
        },
        "userRoles": [
            {
                "roleId": 1,
                "roleName": "超级管理员",
                "roleLevel": 1,
                "roleDataScope": "全部"
            },
            {
                "roleId": 3,
                "roleName": "普通管理员",
                "roleLevel": 1,
                "roleDataScope": "全部"
            }
        ],
        "createTime": "2022-07-14 21:14:51",
        "lastPasswordResetTime": "2022-12-25 23:35:49",
        "enabled": true,
        "userPermissions": [
            "MENU:ROLE_SELECT",
            "MENU:MENU_SELECT",
            "MENU:LOG_ERROR_DETAIL",
            "MENU:LOG_SELECT",
            "ROLE:ADMIN",
            "MENU:EMAIL_SELECT",
            "MENU:DICT_SELECT",
            "MENU:STORAGE_SELECT",
            "MENU:EMAIL_UPDATE",
            "MENU:EMAIL_DELETE",
            "MENU:STORAGE_DELETE",
            "MENU:STORAGE_UPDATE",
            "MENU:STORAGE_INSERT",
            "MENU:EMAIL_INSERT",
            "MENU:LOG_ERROR_SELECT",
            "MENU:DEPT_SELECT",
            "MENU:JOB_SELECT",
            "MENU:USER_SELECT"
        ]
    },
    "token": "Bearer_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJqdGkiOiIxN2EwYTM1NC05Y2JiLTRlZjktYWNlMC05MzI0ZjE5OGQzNWIiLCJpYXQiOjE2NzI1ODExNzcsImlzcyI6ImFkbWluIiwic3ViIjoi5pysdG9rZW7nlLFhZG1pbuetvuWPke-8gSIsImV4cCI6MTY3MjU5NTU3N30.e6Ve7eSnLzRztC9dMO2FbueygnBt2DNjUFYKP9G-G83shrpCTJsOLoOTLgLxVQB5gCL8PZTceSuRfHqdTqdw2Q"
}

3 加载用户菜单

菜单树

[
    {
        "name": "系统管理",
        "path": "/system",
        "hidden": false,
        "redirect": "noredirect",
        "component": "Layout",
        "alwaysShow": true,
        "meta": {
            "title": "系统管理",
            "icon": "system",
            "noCache": true
        },
        "children": [
            {
                "name": "User",
                "path": "user",
                "hidden": false,
                "component": "system/user/index",
                "meta": {
                    "title": "用户管理",
                    "icon": "peoples",
                    "noCache": true
                }
            },
            {
                "name": "Role",
                "path": "role",
                "hidden": false,
                "component": "system/role/index",
                "meta":{
                    "title": "角色管理",
                    "icon": "role",
                    "noCache": true
                }
            },
            {
                "name": "Menu",
                "path": "menu",
                "hidden": false,
                "component": "system/menu/index",
                "meta": {
                    "title": "菜单管理",
                    "icon": "menu",
                    "noCache": true
                }
            }
        ]
    }
]

后端项目中的问题

双主键的使用

mybatis-plus 复合主键的应用(多主键操作)

Oracle数据库 - 锁表与解锁

关于使用idea工具debug时,断点颜色由红色变成灰色

Oracle insert ignore 插入数据时忽略重复主键或多个字段

一条sql语句执行:有则更新,无则新增

mysql ignore_dup_key_OracleINSERT提示IGNORE_ROW_ON_DUPKEY_INDEX

自定义@PreAuthorize抛出异常security.access.AccessDeniedException: Access is denied

mybatis-plus的使用问题

Junit测试Gradle项目时报错:No tests found for given includes: xxxx.xxxxTest(filter.includeTestsMatching)

java.lang.Exception: Method contextLoads() should be public

Unsatisfied dependency expressed through field ‘baseMapper’

springCloud 启动报错Error creating bean with name ‘defaultValidator‘ defined in class path resource

Correct the classpath of your application so that it contains a single, compatible version of javax.

SpringBoot 401 Unauthorized问题解决方案

Caused by: org.springframework.jdbc.support.JdbcTransactionManager之解决方法

MybatisPuls注解开法及基于注解使用script标签实现动态sql

Long大小比较的问题

Mybatis-Plus(3.4.0) 使用教程(主键生成策略 - 自动填充 - 乐观锁 - 逻辑删除 - 性能分析 - 代码生成器)

Mybatisplus的一些缺陷以及解决方法

mybatis-plus中的注解

填充字段是实体名称,不是数据库字段名称

使用Mybatis-Plus自动填充时间失败,不生效

实体LocalDateTime,数据库date类型,Mybatis映射时间为空问题。

dozer无法映射java8中的LocalDateTime类型的解决方案

RedisTemplate反序列化LocalDateTime失败

java.sql.SQLSyntaxErrorException: ORA-00909: 参数个数无效

接口文档

knife4j:快速入门

Swagger 和 knife4j | 黑马程序员推荐

Swagger-Knife4j接口说明

springboot整合knife4j,从此告别手写接口文档

SpringBoot整合knife4j(swagger)实现前后端分离可视化接口调试与接口测试

读取swagger配置文件里的内容

@Order on WebSecurityConfigurers must be unique.报错

【Java异常】Consider renaming one of the beans or enabling overriding by setting spring.main

取消springsecurity默认的登录验证

Swagger /v2/api-docs-ext?group=default 404

swagger 配置多个basePackage

SpringBoot+SpringSecurity集成Swagger3与Knife4j

自定义springfox swagger对spring Pageable的支持

Spring Boot集成SpringFox Swagger的Pageable参数问题

knife4j:
  swagger:
    # 是否启用swagger
    enabled: true
    security: true
    title: 对账业务综合管理平台
    group: default
    description: 对账业务综合管理平台接口文档
    version: 1.0.0
    contact:
      name: 小马
      url: http://localhost:8001/doc.html
      email: 307026****@qq.com
    base-package: top.mstudy.check.modules.rest
    docket:
      user:
        title: 用户模块
        group: 用户模块
        description: 对账业务综合管理平台接口文档
        contact:
          name: 小马
          url: http://localhost:8001/doc.html
          email: 307026****@qq.com
        base-package: top.mstudy.check.modules.rest
      menu:
        title: 菜单模块
        base-package: top.mstudy.check.modules.rest

项目转写

JAVA父类强转子类

java用Json将父类转成子类

PO、DTO、VO、DO等对象概念

Java 开发中 一篇文章讲清楚VO,BO,PO,DO,DTO的区别

VO的实际应用;后端接收前端传入的值;实体类转化VO;PO,VO,DTO,BO,DAO,POJO区别

把父类的属性值赋值给子类

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:Unrecognized field

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “safeKey”

ip设备

Spring Boot 获取IP

springboot 获取访问者的ip地址、访问设备信息、城市地址信息

根据IP地址获取地理位置

Springboot获取公网IP和当前所在城市(非常简单)

SpringBoot获取访问接口设备的ip地址以及设备类型

全网的 IP 归属地显示,带你5分钟加上,就是这么简单

HttpServletRequest请求中获取操作系统,浏览器及浏览器版本信息

从 HTTPServletRequest 中根据 User-Agent 获取访问设备信息

Spring–浏览器解析工具–UserAgentUtils

JSON & GSON - 读取 JSON 文件

如何查看自己电脑的内网ip地址与公网ip地址

怎么查询公网IP

jwt + token

SpringBoot集成Swagger实现JWT验证token

Spring boot 入门教程-token验证

使用Token进行身份验证

生成token,过滤器验证登录

项目中token刷新

/**
 * ConfigurationProperties注解:在 Spring Boot 项目中大量的参数配置,在 application.properties
 * 或 application.yml 文件中,通过 @ConfigurationProperties 注解,我们可以方便的获取
 * 这些参数值,application.yml 文件本身支持list类型所以在application.yml 文件中可以这样配置:
 *        jwt:
 *          config:
 *            key: 自定义私钥key值
 *            timeOut: 有效时间(毫秒单位)
 */

JWT生成Token及解析Token

Spring Boot读取properties配置文件中的数据

SpringBoot和SpringSecurity整合一下JWTJwtUser

Spring Security 真正的前后分离实现JwtUser

一文掌握Java中的JWT介绍

Java JWT认证

Java使用JWT

Java-JWT介绍

JWT&对称加密&非对称加密

JWT令牌,常见加密算法,Base64笔记

jwt和jjwt的区别

Request请求对象和Response响应对象常用方法

springsecurity实现自定义SecurityConfigurerAdapter、accessDeniedHandle.authenticationEntryPoint示例

案例代码:springboot+springsecurity+redis设置新登录后踢出前一个登录用户

springmvc的GenericFilterBean和DelegatingFilterProxy和OncePerRequestFilter过滤器

Spring MVC过滤器-超类

11 Jwt(JSON Web Token)

JWT jwt 全都走默认配置,则每次启动项目会有新的盐值,生成的token与之前的匹配不上,所以会生成新的

JWT 和 JJWT,别再傻傻分不清了!

用户登录和退出,以及访问请求的token校验

BCryptPasswordEncoder的matches方法返回false

MD5加密 + Bcrypt加密 + Spring Security加密 笔记

14-SpringSecurity:前后端分离项目中用户名与密码通过RSA加密传输

Spring Security 真正的前后分离实现

【security】spring security放行不生效,security放行后还是被拦截,路径变成了error

解决o.s.web.servlet.PageNotFound 异常

分页

Spring学习笔记(三十一)——SpringBoot JPA优雅高效的工具:QueryHelp

springboot封装统一查询对象进行多条件查询案例(mybatis和mybatis-plus+反射两种版本)

基于PageHelper + Mybatis-plus + 自定义Query注解,实现快速分页查询

mybatis-puls 如何自定义注解进行模糊或者精准查询

@PageableDefault排序使用

List 转 Array数组

分页注意

附加:PageHelper分页插件的:Page和PageInfo的区别;

Mybatis-Plus驼峰命名规则之Date类型字段返回值为null

利用spring data的page和pageable实现分页查询

【基于JPA的Repository使用详解】

JPA的Repository详解

使用springbootdata的Pageable分页,继承的接口不一样;

使用pagehelper分页时controller中的Pageable也只是做为接收参数的实体,而这个实体我们也可以自己定义

主要代码为:

PageHelper.startPage(pageable.getPageNumber() + 1, pageable.getPageSize());
PageHelper.startPage(pageable.getPageNumber() + 1, pageable.getPageSize(), "CREATE_TIME DESC");
PageInfo page = new PageInfo<>(List<实体>)
PageInfo<SysUser> page = new PageInfo<>(queryAll(criteria));

线程池

高并发编程之ScheduledThreadPoolExecutor讲解邮箱验证码

ScheduledThreadPoolExecutor定时任务线程池实现次数退出,时间退出,条件退出

Java高并发编程中ScheduledExecutorService的使用及详细介绍-刘宇

[mybatis-plus-job-quickstart]动态定时任务(动态定时器)

springboot线程池配置使用 ==里面的几个参考链接==

springboot定时器的使用与源码分析

自定义线程池:简单demo(+自定义ThreadFactory)实现

@PostMapping("/task")
private void timedDestruction() {
    // 以下示例为程序调用结束继续运行
    ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(1, new BasicThreadFactory.Builder().namingPattern("verifyCode-schedule-pool-%d").daemon(true).build());
    try {
        ScheduledFuture<?> schedule = executorService.schedule(() -> {
            System.out.println("99999999999999999999999999999");
            System.out.println("当前时间:" + System.currentTimeMillis());
            // Thread.currentThread().getName():为获取线程的名字
            System.out.println(Thread.currentThread().getName());
            executorService.shutdownNow();
            // 已终止
            System.out.println(executorService.isTerminated());
            // 已关闭
            System.out.println(executorService.isShutdown());
            System.out.println(Thread.currentThread().getName());
        }, 5 * 1000L, TimeUnit.MILLISECONDS);
        // 为获取线程的名字
        System.out.println(Thread.currentThread().getName());
        // 已终止
        System.out.println(executorService.isTerminated());
        // 已关闭
        System.out.println(executorService.isShutdown());
        System.out.println(schedule.get());
    } catch (Exception e) {
        log.error(e.getMessage());
    }
}

日志

slf4j+logback的配置及使用

使用log4jdbc输出sql操作

slf4j+logback - logback.xml配置文件解析

其他

@EqualsAndHashCode(callSuper = true/false) 作用

Lombok常用注解使用方式和Lombok的@EqualsAndHashCode(callSuper = false)存在的问题

自定义数据源,导致mybatis自动扫描失效 @Mapper和@MapperScan注解

SpringBoot 集成MyBatis 中的@MapperScan注解

Java中的注解解析@Component、@ComponentScan、@Scope、@Autowired、@Bean、@ContextConfiguration、@RunWith等

关于component-scan中base-package包含通配符的问题探究

@ConditionalOnProperty注解

@RequestBody注解转对象中驼峰格式的参数无法接收到数据的问题解决方法

idea 一直scanning files to index的四种解决方法(VIP典藏版)

Long和long类型比较大小

Java 8新特性:list.stream()的相关操作

Thymeleaf和Freemarker比较

Commons-Configuration2简介、使用方式、代码范例 – 自动重新加载配置文件、监听器、处理器、自定义检测器

【排错日记】The supplied file was empty (zero bytes long)

前端项目中的问题

详解package.json和package-lock.json

亲测解决npm ERR! Unexpected end of JSON input while parsing near…的方法

生产环境和开发环境

解决vue和vue-template-compiler版本不一样的快捷办法

Vue cli3\4 babel配置转译解决浏览器兼容问题

Vue install 失败的一些解决办法

vue设置代理不起作用解决办法

Vue知识点:qs

VUE插件vue-treeselect的使用

前端报错TypeError: Cannot read properties of undefined (reading ‘toString’)

vue3 全局定义防抖函数

element ui 表格中,使用length判断报错

element-ui 日期选择范围限制,只允许选择上下浮动一个月内的日期

解决VueRouter编程路由(push||replace)重复点击报错问题

不更改版本 element ui el-date-picker 报错 Prop being mutated: “placement“解决

vue自定义指令实现按钮权限控制

[vue 进阶] 关于dicts字典的用法1

[vue 进阶] 关于dicts字典的用法2

Vue中qs插件的使用

【axios】get/post请求params/data传参总结

qs.js使用手把手教程

cron表达式选择器js插件_超棒 Vue 省市县联动选择器组件V-Distpicker 注意文章末尾github

vue实现省市县三级联动,超简单

github V - Distpicker

v-distpicker

级联与树形组件笔记

vue中的replaceAll替换问题

vue-particles(粒子背景)插件在Vue项目中使用

Particles.js:控制粒子计数和形状

【Web开发】粒子插件vue-particles的使用

Vue 使用 particles.js 实现粒子界面效果以及报错 particlesJS is not defined 解决

如何在 HTML 中使用 Font Awesome 图标

Font-AweSome在Vue中的使用

使用 scss 并设置全局样式

Vue 项目运行完成后自动打开浏览器【多种方法】

VUE使用常见问题,body设置属性overflow: auto !important;

# 开发环境 不填 <====>  --save  		<====>  -S
# 生产环境 --save-dev  	<====>  -D
# 基础依赖
npm uninstall core-js
npm install core-js@3.20.3
# ----------------------------------------------------
npm uninstall vue
npm install vue@2.6.14
# ----------------------------------------------------
npm uninstall @vue/cli-plugin-babel
npm install @vue/cli-plugin-babel@4.5.15 -D
# ----------------------------------------------------
npm uninstall @vue/cli-service
npm install @vue/cli-service@4.5.15 -D
# ----------------------------------------------------
npm uninstall vue-template-compiler
npm install vue-template-compiler@2.6.14 -D
# ----------------------------------------------------
# 我的其余依赖
npm install vuex@3.6.2
npm install vue-router@3.5.3
npm install axios@0.25.0
npm install element-ui@2.15.8
npm install highlightjs-line-numbers.js@2.8.0
npm install e-icon-picker@1.1.6
npm install amfe-flexible@2.2.1
npm install postcss-px2rem-exclude@0.0.6
npm install marked@2.0.3
npm install particles.js@2.0.0
npm install mavon-editor@2.10.4

# 省市县三级级联 vue ui中打开依赖管理页面搜索安装
npm install v-distpicker@1.3.3
# 粒子特效
npm install particles.js@2.0.0
npm install vue-particles
# 跳动的心
npm i font-awesome

# 对账的
npm install qs@6.9.1
npm install js-cookie@2.2.0
npm install sass-loader@7.3.1
npm install sass@1.26.5 -D
npm install sass-resources-loader@2.0.0 -D
npm install stylus@0.54.7 -D
npm install stylus-loader@3.0.2 -D
npm install nprogress@0.2.0

项目打包

平台角色:超级管理员、平台管理员、对账业务员、项目研发员
平台用户:
admin用户拥有最高权限,超级管理员
ck_admin1 1号平台管理员
check1 甲公司业务接入员
dev1 1号研发人员

# 修改admin和job中application.yml环境,job中的连接也要改
spring:
  profiles:
    # 选择开发/生产环境
#    active: dev
    active: prod
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@120.25.218.170:1521:ora_ck

# 配置代理
listen 8088;
server_name mstudy.top;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/mstudy.top;

location / {  # / 代理到首页
index index.html index.htm;
#配合vue-router的history模式
try_files $uri $uri/ @router;
}
#对应上面的@router,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
#因此需要rewrite到index.html中,然后交给路由在处理请求资源
location @router {
rewrite ^.*$ /index.html last;
}

#vue项目中的请求地址前面都需要加上api
#发起请求的代理配置,地址包含/api的回全部替换地址并转发到proxy_pass下的地址
location /prod-api/ {
rewrite ^/b/(.*)$ /$1 break;
proxy_pass http://www.mstudy.top:8099/;
# 地址http://www.mstudy.top:8090/;经过https处理后会将请求路径转换成https://sport.mstudy.top;
}

# 获取index壁纸的代理
location /bingProxy/ {
rewrite ^/b/(.*)$ /$1 break;
# proxy_pass https://bird.ioliu.cn/v1/?url=https://www.bing.com/;
proxy_pass https://cn.bing.com/;
}

location /druid/ {
rewrite ^/b/(.*)$ /$1 break;
proxy_pass http://120.25.218.170:8099/druid/;
#   if ($scheme = https ) {return 301 http://120.25.218.170:8099/druid/;}
}

#项目服务停止与启动
netstat -an | grep 8099
lsof -i:8099
kill -s 9 8885
sh build.sh
cd autoScript
sh startup.sh
sh shutdown.sh

# 设置开机自动,启动日志是覆盖,关闭日志是追加
# 赋予可执行权限
chmod +x jar_auto.sh
# 脚本添加到 /etc/rc.d/rc.local 文件最后一行
vim /etc/rc.d/init.d/jar_auto.sh
#!/bin/bash
#配置jdk的路径
export JAVA_HOME=/usr/java/jdk1.8.0_121/jre/bin/java
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

#有时需要把jar包延时启动(不设置延时启动jar,nacos会提示拒绝连接)
#延时10s关闭之前的服务(sleep+数字,表示延迟多少秒启动)
sleep 10
jarName=ck-bus-admin-1.0.0-BOOT.jar
var=`date +%Y%m%d`
ps -ef | grep `whoami` | grep java | grep $jarName | grep -v grep | awk '{print $2}' | while read PID
do
    kill -9 $PID 2>&1 >/dev/null
    [ "$?" == "0" ] && echo "$var stop instance $jarName successful! pid:${PID}" >> /www/wwwroot/www.mstudy.top/java_back/nohup-admin-stop.log
done
#延时3s运行jar包,需要延时启动则放开sleep注释行
sleep 3
#配置jar包启动的路径 日志生成路径  nohup表示静默启动,不在窗口显示启动日志
nohup java -jar /www/wwwroot/www.mstudy.top/java_back/ck-bus-admin-1.0.0-BOOT.jar >/www/wwwroot/www.mstudy.top/java_back/nohup-admin-start.log 2>&1 &

Java技能树

java中多种方法实现数组转list,数组转set

set集合求交集

Set<Long> deptIds = new HashSet<>();
deptIds.add(1L);
deptIds.add(2L);
System.out.println(deptIds);
Set<Long> deptIds1 = new HashSet<>();
deptIds1.add(2L);
deptIds1.add(3L);
System.out.println(deptIds1);
deptIds.retainAll(deptIds1);
System.out.println(deptIds);
[1, 2]
[2, 3]
[2]

SpringBoot中静态资源映射处理

Springboot整合FreeMarker生成静态html两种方法

springboot使用TemplateEngine修改邮箱后发送验证码示例

Spring Boot集成七牛云对象存储oss

Vue+SpringBoot整合七牛云图片上传

【SpringBoot学习】14、SpringBoot + 七牛云存储(实现文件上传、删除)

(七牛云系列)七牛云指定文件上传路径(各种语言通用)

springboot获取七牛云空间文件列表及下载功能

Java对七牛云的上传、资源路径获取、删除

vue中富文本编辑器 vue-ueditor-wrap 的使用

vue项目中使用vue-ueditor-wrap

vue中富文本编辑器 vue-ueditor-wrap 的使用

UEditor富文本编辑在Vue中的使用

LocalDateTime与DateTimeFormatter,毫秒值,时间和文本转换

sql字符型排序为什么1后面是10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AquaMriusC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值