From 6819e65cce0b8357eb591320fd73b657b9df4b57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 13 Sep 2024 14:42:11 +0800 Subject: [PATCH] 'commit' --- .../com/dsideal/base/BaseApplication.java | 8 +++- .../Controller/DataAuthorityController.java | 25 ++++++++++ .../Model/DataAuthorityModel.java | 48 +++++++++++++++++++ .../com/dsideal/base/Tools/SyncResource.java | 28 +++++++++++ 4 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 ds-base/src/main/java/com/dsideal/base/DataAuthority/Controller/DataAuthorityController.java create mode 100644 ds-base/src/main/java/com/dsideal/base/DataAuthority/Model/DataAuthorityModel.java create mode 100644 ds-base/src/main/java/com/dsideal/base/Tools/SyncResource.java diff --git a/ds-base/src/main/java/com/dsideal/base/BaseApplication.java b/ds-base/src/main/java/com/dsideal/base/BaseApplication.java index 38fdcc20..67707fd9 100644 --- a/ds-base/src/main/java/com/dsideal/base/BaseApplication.java +++ b/ds-base/src/main/java/com/dsideal/base/BaseApplication.java @@ -4,6 +4,7 @@ import com.alibaba.druid.filter.stat.StatFilter; import com.alibaba.druid.wall.WallFilter; import com.dsideal.base.Base.Controller.BaseController; import com.dsideal.base.Classes.Controller.ClassController; +import com.dsideal.base.DataAuthority.Controller.DataAuthorityController; import com.dsideal.base.Dm.Controller.DmController; import com.dsideal.base.Global.Controller.GlobalController; import com.dsideal.base.Handler.XssHandler; @@ -28,6 +29,7 @@ import com.jfinal.plugin.druid.IDruidStatViewAuth; import com.jfinal.plugin.redis.RedisPlugin; import com.jfinal.server.undertow.UndertowServer; import com.jfinal.template.Engine; + import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import java.io.File; @@ -40,7 +42,7 @@ public class BaseApplication extends JFinalConfig { } public static void main(String[] args) { - System.out.println("当前环境: " + getEnvPrefix()); + System.out.println("当前环境: " + getEnvPrefix()); String configFile = "undertow_{?}.properties".replace("{?}", getEnvPrefix()); UndertowServer.create(BaseApplication.class, configFile).start(); } @@ -86,6 +88,8 @@ public class BaseApplication extends JFinalConfig { me.add("/studentYd", StudentYdController.class); //菜单管理 me.add("/menu", MenuController.class); + //数据权限 + me.add("/dataAuthority", DataAuthorityController.class); } @Override @@ -143,7 +147,7 @@ public class BaseApplication extends JFinalConfig { //加载 me.add(arp); // 用于缓存模块的redis服务 - RedisPlugin redis = new RedisPlugin("myRedis", PropKit.get("redis_ip"), PropKit.getInt("redis_port"), 10 * 1000,PropKit.get("redis_password")); + RedisPlugin redis = new RedisPlugin("myRedis", PropKit.get("redis_ip"), PropKit.getInt("redis_port"), 10 * 1000, PropKit.get("redis_password")); me.add(redis); } diff --git a/ds-base/src/main/java/com/dsideal/base/DataAuthority/Controller/DataAuthorityController.java b/ds-base/src/main/java/com/dsideal/base/DataAuthority/Controller/DataAuthorityController.java new file mode 100644 index 00000000..3c787a1a --- /dev/null +++ b/ds-base/src/main/java/com/dsideal/base/DataAuthority/Controller/DataAuthorityController.java @@ -0,0 +1,25 @@ +package com.dsideal.base.DataAuthority.Controller; + +import com.dsideal.base.DataAuthority.Model.DataAuthorityModel; +import com.dsideal.base.Interceptor.IsSysAdminInterface; +import com.jfinal.aop.Before; +import com.jfinal.core.Controller; +import com.jfinal.ext.interceptor.POST; +import com.jfinal.kit.Kv; + +@SuppressWarnings("unchecked") +public class DataAuthorityController extends Controller { + DataAuthorityModel dm = new DataAuthorityModel(); + + /** + * 功能:同步数据权限的资源数据 + */ + @Before({POST.class}) + @IsSysAdminInterface({"1"})//只有超级管理员才能调用此接口 + public void syncResource() { + Kv kv = dm.syncResource(); + kv.set("success", true); + kv.set("message", "共同步了" + kv.getInt("count") + "条数据,共" + kv.getInt("total") + "条数据"); + renderJson(kv); + } +} \ No newline at end of file diff --git a/ds-base/src/main/java/com/dsideal/base/DataAuthority/Model/DataAuthorityModel.java b/ds-base/src/main/java/com/dsideal/base/DataAuthority/Model/DataAuthorityModel.java new file mode 100644 index 00000000..59b03ed3 --- /dev/null +++ b/ds-base/src/main/java/com/dsideal/base/DataAuthority/Model/DataAuthorityModel.java @@ -0,0 +1,48 @@ +package com.dsideal.base.DataAuthority.Model; + +import com.jfinal.kit.Kv; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; + +import java.util.List; + +@SuppressWarnings("unchecked") +public class DataAuthorityModel { + + /** + * 功能:同步资源数据 + * + * @return + */ + public static Kv syncResource() { + //找出所有需要同步的资源类型 + String sql = "select * from t_sys_resource_type"; + List list = Db.find(sql); + int count = 0; + for (Record record : list) { + String sync_sql = record.getStr("sync_sql"); + if (sync_sql != null) { + String resource_type_code = record.getStr("resource_type_code"); + List records = Db.find(sync_sql); + for (int i = 0; i < records.size(); i++) { + Record r = records.get(i); + String resource_id = r.getStr("resource_id"); + String resource_name = r.getStr("resource_name"); + //检查这个资源是否已经存在 + sql = "select count(1) as c from t_sys_resource where resource_type_code=? and resource_id=?"; + Record res = Db.findFirst(sql, resource_type_code, resource_id); + if (res.getInt("c") == 0) { + sql = "insert into t_sys_resource(resource_type_code,resource_id,resource_name) values(?,?,?)"; + Db.update(sql, resource_type_code, resource_id, resource_name); + count++; + } + } + } + } + sql = "select count(1) as c from t_sys_resource"; + Record record = Db.findFirst(sql); + int total = record.getInt("c"); + return Kv.by("total", total).set("count", count); + } + +} diff --git a/ds-base/src/main/java/com/dsideal/base/Tools/SyncResource.java b/ds-base/src/main/java/com/dsideal/base/Tools/SyncResource.java new file mode 100644 index 00000000..0006a693 --- /dev/null +++ b/ds-base/src/main/java/com/dsideal/base/Tools/SyncResource.java @@ -0,0 +1,28 @@ +package com.dsideal.base.Tools; + +import com.jfinal.kit.Kv; +import com.jfinal.kit.PropKit; +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; +import com.jfinal.plugin.druid.DruidPlugin; + +import java.util.List; + +public class SyncResource { + + + public static void main(String[] args) { + //1、配置数据库 + PropKit.use("application_dev.properties"); + DruidPlugin druid = new DruidPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), + PropKit.get("password").trim(), PropKit.get("driverClassName")); + druid.start(); + // 配置ActiveRecord插件 + ActiveRecordPlugin arp = new ActiveRecordPlugin(druid); + arp.start(); + + //Kv kv = syncResource(); + //System.out.println("共同步了" + kv.getInt("count") + "条数据,共" + kv.getInt("total") + "条数据"); + } +}