You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
7.3 KiB

11 months ago
package com.dsideal.base;
import com.dsideal.base.Base.Controller.BaseController;
import com.dsideal.base.Classes.Controller.ClassController;
10 months ago
import com.dsideal.base.DataAuthority.Controller.DataAuthorityController;
11 months ago
import com.dsideal.base.Dm.Controller.DmController;
import com.dsideal.base.Global.Controller.GlobalController;
import com.dsideal.base.Handler.XssHandler;
import com.dsideal.base.Index.Controller.IndexController;
import com.dsideal.base.Interceptor.*;
import com.dsideal.base.LoginPerson.Controller.LoginPersonController;
import com.dsideal.base.Menu.Controller.MenuController;
import com.dsideal.base.Organization.Controller.OrganizationController;
10 months ago
import com.dsideal.base.Plugin.YamlProp;
11 months ago
import com.dsideal.base.Student.Controller.StudentController;
import com.dsideal.base.StudentYd.Controller.StudentYdController;
import com.dsideal.base.Teacher.Controller.TeacherController;
import com.dsideal.base.TeacherYd.Controller.TeacherYdController;
10 months ago
import com.dsideal.base.Tools.Controller.excelConvertController;
9 months ago
import com.dsideal.base.Util.CommonUtil;
11 months ago
import com.dsideal.base.Util.LogBackLogFactory;
import com.dsideal.base.Util.PkUtil;
import com.jfinal.config.*;
10 months ago
import com.jfinal.kit.Prop;
10 months ago
import com.jfinal.kit.StrKit;
11 months ago
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
10 months ago
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.hikaricp.HikariCpPlugin;
11 months ago
import com.jfinal.plugin.redis.RedisPlugin;
import com.jfinal.server.undertow.UndertowServer;
import com.jfinal.template.Engine;
9 months ago
import lombok.SneakyThrows;
import java.util.List;
11 months ago
public class BaseApplication extends JFinalConfig {
11 months ago
11 months ago
public static String getEnvPrefix() {
String myEnvVar = System.getenv("WORKING_ENV");
10 months ago
if (myEnvVar == null) {
myEnvVar = "dev";
}
return myEnvVar;
11 months ago
}
11 months ago
public static void main(String[] args) {
10 months ago
System.out.println("当前环境: " + getEnvPrefix());
11 months ago
String configFile = "undertow_{?}.properties".replace("{?}", getEnvPrefix());
UndertowServer.create(BaseApplication.class, configFile).start();
11 months ago
}
/**
*
*/
10 months ago
public static Prop PropKit;
10 months ago
11 months ago
@Override
public void configConstant(Constants me) {
//使用LogBack
me.setLogFactory(new LogBackLogFactory());
11 months ago
//加载配置文件
10 months ago
String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix());
PropKit = new YamlProp(configFile);
10 months ago
// 设置静态根目录为上传根目录
me.setBaseUploadPath(PropKit.get("uploadTempPath"));
11 months ago
}
/**
*
*/
@Override
public void configRoute(Routes me) {
//默认页面
me.add("/", IndexController.class);
//登录表
me.add("/loginPerson", LoginPersonController.class);
//全局变量
me.add("/global", GlobalController.class);
//数据字典
me.add("/dm", DmController.class);
//基础数据
me.add("/base", BaseController.class);
//组织机构
me.add("/organization", OrganizationController.class);
//班级
me.add("/class", ClassController.class);
//教师
me.add("/teacher", TeacherController.class);
//教师异动
me.add("/teacherYd", TeacherYdController.class);
//学生
me.add("/student", StudentController.class);
//学生异动
me.add("/studentYd", StudentYdController.class);
//菜单管理
me.add("/menu", MenuController.class);
10 months ago
//数据权限
me.add("/dataAuthority", DataAuthorityController.class);
10 months ago
//excel格式变更
me.add("/excelConvert", excelConvertController.class);
11 months ago
}
@Override
public void configEngine(Engine engine) {
}
10 months ago
9 months ago
@SneakyThrows
11 months ago
@Override
public void configPlugin(Plugins me) {
10 months ago
HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"),
PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName"));
10 months ago
10 months ago
String jdbcUrlSlave = PropKit.get("mysql.jdbcUrlSlave");
if (StrKit.isBlank(jdbcUrlSlave)) jdbcUrlSlave = PropKit.get("mysql.jdbcUrl");
HikariCpPlugin slavePlugin = new HikariCpPlugin(jdbcUrlSlave, PropKit.get("mysql.user"),
PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName"));
10 months ago
me.add(masterPlugin);
me.add(slavePlugin);
11 months ago
// 配置ActiveRecord插件
10 months ago
ActiveRecordPlugin masterArp = new ActiveRecordPlugin("master", masterPlugin);
masterArp.setDialect(new MysqlDialect());
ActiveRecordPlugin slaveArp = new ActiveRecordPlugin("slave", slavePlugin);
slaveArp.setDialect(new MysqlDialect());
9 months ago
//加载所有的sql文件
List<String> list = CommonUtil.getAllSql();
for (String sqlFile : list) {
masterArp.addSqlTemplate(sqlFile);
slaveArp.addSqlTemplate(sqlFile);
11 months ago
}
//加载
10 months ago
me.add(masterArp);
me.add(slaveArp);
11 months ago
// 用于缓存模块的redis服务
10 months ago
RedisPlugin redis = new RedisPlugin("Redis", PropKit.get("redis.ip"), PropKit.getInt("redis.port"), 10 * 1000, PropKit.get("redis.password"));
10 months ago
//启动redis组件
11 months ago
me.add(redis);
}
/**
*
*/
@Override
public void configInterceptor(Interceptors me) {
//检查是不是登录了
me.add(new IsLoginInterceptor());
//注册参数数字检查器
me.add(new IsNumbericInterceptor());
//注册非空拦截器
me.add(new EmptyInterceptor());
//注册layui的分页检查器
me.add(new LayUiPageInfoInterceptor());
//注册Ids检查是不是数字的检查器
me.add(new CheckIdsInterceptor());
//注册一个GUID号的检查器
me.add(new IsGuidInterceptor());
//是不是具备操作组织机构的权限
me.add(new AuthorityInterceptor());
//检查是不是系统管理员
me.add(new IsSysAdminInterceptor());
//注册一个检查身份证号的拦截
me.add(new VerifyIDCardInterceptor());
//检查手机号是否正确和是否存在
me.add(new VerifyTelephoneInterceptor());
//检查邮箱是否正确和是否存在
me.add(new VerifyEmailInterceptor());
//注册一个检查输入文本长度的拦截器
me.add(new LengthInterceptor());
}
/**
*
*/
@Override
public void configHandler(Handlers me) {
//加入统一的XSS处理器
//添加xss 过滤(正则表达式:"/((\\%3C)|<)((\\%2F)|\\/)*[a-z0-9\\%]+((\\%3E)|>)/ix"
me.add(new XssHandler("/((\\%3C)|<)((\\%2F)|\\/)*[a-z0-9\\%]+((\\%3E)|>)/ix"));
}
/**
* jfinal
*/
9 months ago
@SneakyThrows
11 months ago
@Override
public void onStart() {
//打印 启动Logo
9 months ago
System.out.println(CommonUtil.txt2String("logo.txt"));
11 months ago
//初始化人员主键序列
PkUtil.InitPersonNumPk();
//初始化组织机构主键序列
PkUtil.InitOrgNumPk();
}
}