数据格式
+ *
+ * data: Map
+ */
+ public static Map renderSuccess(List list) {
+ return renderSuccess(null, list, null, 0, 0, 0);
+ }
+ public static Map renderSuccess(String msg, List list) {
+ return renderSuccess(msg, list, null, 0, 0, 0);
+ }
+ public static Map renderSuccess(Page page) {
+ return renderSuccess(null, page.getList(), "list", page.getPageNumber(), page.getPageSize(), page.getTotalRow());
+ }
+
+ public static Map renderSuccess(String msg, Page page, String dataName) {
+ return renderSuccess(msg, page.getList(), dataName, page.getPageNumber(), page.getPageSize(), page.getTotalRow());
+ }
+
+ public static Map renderSuccess(String msg, Map map) {
+ Map rMap = new HashMap<>();
+ rMap.put("code", 200);
+ if (!StrKit.isBlank(msg)) {
+ rMap.put("msg", msg);
+ }
+ rMap.put("data", map);
+ return rMap;
+ }
+
+ public static Map renderSuccess(cn.hutool.json.JSONArray jsonArray) {
+ return renderSuccess(null, jsonArray);
+ }
+
+ public static Map renderSuccess(String msg, cn.hutool.json.JSONArray jsonArray) {
+ Map rMap = new HashMap<>();
+ rMap.put("code", 200);
+ if (!StrKit.isBlank(msg)) {
+ rMap.put("msg", msg);
+ }
+ rMap.put("data", jsonArray);
+ return rMap;
+ }
+
+ public static Map renderSuccess(String msg, List list, String dataName, int pageNum, int pageSize, int total) {
+ Map rMap = new HashMap<>();
+ rMap.put("code", 200);
+ if (!StrKit.isBlank(msg)) {
+ rMap.put("msg", msg);
+ }
+ if (StrKit.isBlank(dataName)) {
+ //没有List的名称,直接把list放到data中,[]数组形式
+ rMap.put("data", list);
+ } else {
+ //有List的名称,则把list放到data中,也需要把list的 size()做为一个属性,放到data上的count属性中
+ Map _map = new HashMap<>();
+ _map.put(dataName, list);
+ _map.put("total", list.size());
+ if (pageNum > 0) {
+ _map.put("pageNum", pageNum);
+ }
+ if (pageSize > 0) {
+ _map.put("pageSize", pageSize);
+ }
+ if (total > 0) {
+ _map.put("total", total);
+ }
+ rMap.put("data", _map);
+ }
+
+ return rMap;
+ }
+
+ public static Map renderFail(String msg) {
+ return renderFail(msg, null);
+ }
+
+ public static Map renderFail(String msg, Map map) {
+ Map rMap = new HashMap<>();
+ rMap.put("code", 500);
+ if (!StrKit.isBlank(msg)) {
+ rMap.put("msg", msg);
+ }
+ if (map != null) {
+ rMap.put("data", map);
+ }
+ return rMap;
+ }
+}
diff --git a/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java b/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java
index 2bad20d8..da6aeb79 100644
--- a/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java
+++ b/dsGw/src/main/java/com/dsideal/gw/Bean/RetBean.java
@@ -1,6 +1,5 @@
package com.dsideal.gw.Bean;
-import com.alibaba.fastjson.JSONObject;
import lombok.Getter;
import lombok.Setter;
@@ -16,20 +15,17 @@ public class RetBean {
*/
private int code;
private String msg;
- private JSONObject data;
-
public static final Integer SUCCESS = 200;
public static final Integer ERROR = 500;
public static final Integer OVERDUE = 401;
public static final Integer TIMEOUT = 30000;
- public RetBean(int code, String msg, JSONObject data) {
+ public RetBean(int code, String msg) {
this.code = code;
this.msg = msg;
- this.data = data;
- }
- public String toJsonString() {
- return JSONObject.toJSONString(this);
}
+ public String toString() {
+ return "{\"code\":" + code + ",\"msg\":\"" + msg + "\"}";
+ }
}
diff --git a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java
index 3a11d2b7..fa55bacc 100644
--- a/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java
+++ b/dsGw/src/main/java/com/dsideal/gw/Handler/RouterHandler.java
@@ -1,6 +1,5 @@
package com.dsideal.gw.Handler;
-import com.alibaba.fastjson.JSONObject;
import com.dsideal.gw.Bean.RetBean;
import com.dsideal.gw.GwApplication;
import com.dsideal.gw.Util.CommonUtil;
@@ -39,32 +38,14 @@ public class RouterHandler extends Handler {
* 功能:输出JSON文本串
*
* @param res
- * @param jo
*/
- public void renderJson(HttpServletResponse res, JSONObject jo) {
+ public void renderJson(HttpServletResponse res, String body) {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Cache-Control", "no-cache");
res.setCharacterEncoding("UTF-8");
res.setContentType("application/json");
try {
- RetBean ret;
- String msg = "";
- if (jo.containsKey("msg")) {
- msg = jo.getString("msg");
- jo.remove("msg");
- } else if (jo.containsKey("message")) {
- msg = jo.getString("message");
- jo.remove("message");
- }
-
- if (jo.getBoolean("success")) {
- jo.remove("success");
- ret = new RetBean(RetBean.SUCCESS, msg, jo);
- } else {
- jo.remove("success");
- ret = new RetBean(RetBean.ERROR, msg, jo);
- }
- res.getWriter().println(ret.toJsonString());
+ res.getWriter().println(body);
res.getWriter().flush();
} catch (IOException e) {
throw new RuntimeException(e);
@@ -79,13 +60,9 @@ public class RouterHandler extends Handler {
if (response.body() != null) {
responseBody = response.body().string();
}
- JSONObject jo = JSONObject.parseObject(responseBody);
- renderJson(res, jo);
+ renderJson(res, responseBody);
} else {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "请求失败!");
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "请求失败!").toString());
}
}
@@ -160,16 +137,13 @@ public class RouterHandler extends Handler {
if (req.getHeader("Authorization") != null) {
String jwtToken = req.getHeader("Authorization");
Claims claims = JwtUtil.getClaims(jwtToken);
- if (claims == null) {
+ if (claims != null) {
canPass = true;
}
}
}
if (!canPass) {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "登录已过期,请重新登录!");
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "登录已过期,请重新登录!").toString());
isHandled[0] = true; //停止filter
return;
}
@@ -182,20 +156,14 @@ public class RouterHandler extends Handler {
//action名称
String action = servletPath.substring(xie2 + 1);
if (xie1 == -1 || xie2 == -1) {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "输入的字符串格式不正确,没有找到两个 '/'。");
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "输入的字符串格式不正确,没有找到两个 '/'。").toString());
isHandled[0] = true; //停止filter
return;
}
String prefix = servletPath.substring(xie1 + 1, xie2); // 截取两个 '/' 之间的内容
if (!GwApplication.routeList.containsKey(prefix)) {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", prefix + "前缀没有找到合适的路由表,请检查是否请求正确!");
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, prefix + "前缀没有找到合适的路由表,请检查是否请求正确!").toString());
isHandled[0] = true; //停止filter
return;
}
@@ -209,10 +177,7 @@ public class RouterHandler extends Handler {
MultipartRequest mp = new MultipartRequest(req);
List files = mp.getFiles();
if (files.isEmpty()) {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "没有上传文件!");
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "没有上传文件!").toString());
isHandled[0] = true;//停止filter
return;
}
@@ -235,10 +200,7 @@ public class RouterHandler extends Handler {
isHandled[0] = true;//停止filter
return;
} catch (Exception e) {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "请求失败!" + e);
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "请求失败!" + e).toString());
isHandled[0] = true;//停止filter
return;
}
@@ -263,10 +225,7 @@ public class RouterHandler extends Handler {
isHandled[0] = true;//停止filter
return;
} catch (IOException e) {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "请求失败!" + e);
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "请求失败!" + e).toString());
isHandled[0] = true;//停止filter
return;
}
@@ -292,20 +251,14 @@ public class RouterHandler extends Handler {
isHandled[0] = true;//停止filter
return;
} catch (IOException e) {
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "请求失败!" + e);
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "请求失败!" + e).toString());
isHandled[0] = true;//停止filter
return;
}
}
//4、其它的OPTIONS
- JSONObject jo = new JSONObject();
- jo.put("success", false);
- jo.put("message", "系统只支持GET,POST,其它的OPTIONS不支持!文件上传请使用S3协议进行直传,不通过JAVA处理,JAVA只处理授权!");
- renderJson(res, jo);
+ renderJson(res, new RetBean(RetBean.ERROR, "系统只支持GET,POST,其它的OPTIONS不支持!文件上传请使用S3协议进行直传,不通过JAVA处理,JAVA只处理授权!").toString());
//停止filter
isHandled[0] = true;
}
diff --git a/dsGw/target/classes/application_ali.yaml b/dsGw/target/classes/application_ali.yaml
new file mode 100644
index 00000000..7604cfe6
--- /dev/null
+++ b/dsGw/target/classes/application_ali.yaml
@@ -0,0 +1,23 @@
+# 上传文件的临时路径
+uploadTempPath: /tmp
+# JWT
+SECRET: ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM
+# 生成Token的密码
+CookieMd5SingPwd: DsideaL4r5t6y7u
+
+# 路由
+route:
+ # 基础数据
+ dsBase:
+ url: http://ds-base:8001
+ # 资源库
+ dsRes:
+ url: http://ds-res:8002
+
+# 白名单
+whitelist:
+ # 全局变量获取
+ - /dsBase/global/getGlobalValueByKey
+ # 登录
+ - /dsBase/loginPerson/doLogin
+
diff --git a/dsRes.iml b/dsRes.iml
new file mode 100644
index 00000000..0c5c4d56
--- /dev/null
+++ b/dsRes.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dsRes/src/main/java/com/dsideal/resource/Base/Controller/BaseController.java b/dsRes/src/main/java/com/dsideal/resource/Base/Controller/BaseController.java
new file mode 100644
index 00000000..43d98a13
--- /dev/null
+++ b/dsRes/src/main/java/com/dsideal/resource/Base/Controller/BaseController.java
@@ -0,0 +1,26 @@
+package com.dsideal.resource.Base.Controller;
+
+import com.dsideal.resource.Base.Model.BaseModel;
+import com.dsideal.resource.Util.RetKit;
+import com.jfinal.core.Controller;
+import com.jfinal.plugin.activerecord.Page;
+import com.jfinal.plugin.activerecord.Record;
+
+import java.util.List;
+
+public class BaseController extends Controller {
+ BaseModel bm = new BaseModel();
+
+ /**
+ * 功能:获取学段列表
+ */
+ public void getStageList() {
+ List list = bm.getStageList();
+ Page page=new Page<>();
+ page.setList(list);
+ page.setPageSize(20);
+ page.setTotalRow(list.size());
+ page.setPageNumber(1);
+ renderJson(RetKit.renderSuccess(page));
+ }
+}
diff --git a/dsRes/src/main/java/com/dsideal/resource/Base/Model/BaseModel.java b/dsRes/src/main/java/com/dsideal/resource/Base/Model/BaseModel.java
new file mode 100644
index 00000000..6e58c750
--- /dev/null
+++ b/dsRes/src/main/java/com/dsideal/resource/Base/Model/BaseModel.java
@@ -0,0 +1,16 @@
+package com.dsideal.resource.Base.Model;
+
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
+import java.util.List;
+
+public class BaseModel {
+ /**
+ * 功能:获取学段列表
+ * @return
+ */
+ public List getStageList(){
+ String sql="select * from t_dm_stage order by stage_id";
+ return Db.find(sql);
+ }
+}
diff --git a/dsBase/src/main/java/com/dsideal/base/Const/RetBean.java b/dsRes/src/main/java/com/dsideal/resource/Const/RetBean.java
similarity index 90%
rename from dsBase/src/main/java/com/dsideal/base/Const/RetBean.java
rename to dsRes/src/main/java/com/dsideal/resource/Const/RetBean.java
index b145ad35..acd5e0aa 100644
--- a/dsBase/src/main/java/com/dsideal/base/Const/RetBean.java
+++ b/dsRes/src/main/java/com/dsideal/resource/Const/RetBean.java
@@ -1,4 +1,4 @@
-package com.dsideal.base.Const;
+package com.dsideal.resource.Const;
import com.alibaba.fastjson.JSONObject;
import lombok.Getter;
diff --git a/dsRes/src/main/java/com/dsideal/resource/Controller/IndexController.java b/dsRes/src/main/java/com/dsideal/resource/Index/IndexController.java
similarity index 77%
rename from dsRes/src/main/java/com/dsideal/resource/Controller/IndexController.java
rename to dsRes/src/main/java/com/dsideal/resource/Index/IndexController.java
index 4cb493c5..c7e668fe 100644
--- a/dsRes/src/main/java/com/dsideal/resource/Controller/IndexController.java
+++ b/dsRes/src/main/java/com/dsideal/resource/Index/IndexController.java
@@ -1,4 +1,4 @@
-package com.dsideal.resource.Controller;
+package com.dsideal.resource.Index;
import com.jfinal.core.Controller;
diff --git a/dsRes/src/main/java/com/dsideal/resource/Menu/Controller/MenuController.java b/dsRes/src/main/java/com/dsideal/resource/Menu/Controller/MenuController.java
new file mode 100644
index 00000000..2fb6b630
--- /dev/null
+++ b/dsRes/src/main/java/com/dsideal/resource/Menu/Controller/MenuController.java
@@ -0,0 +1,39 @@
+package com.dsideal.resource.Menu.Controller;
+
+import cn.hutool.json.JSONUtil;
+import com.dsideal.resource.Menu.Model.MenuModel;
+import com.dsideal.resource.Util.CommonUtil;
+import com.dsideal.resource.Util.JwtUtil;
+import com.dsideal.resource.Util.RetKit;
+import com.jfinal.aop.Before;
+import com.jfinal.core.Controller;
+import com.jfinal.ext.interceptor.GET;
+import io.jsonwebtoken.Claims;
+
+import java.util.List;
+
+public class MenuController extends Controller {
+ MenuModel mm = new MenuModel();
+
+ /**
+ * 功能:获取人员可以看到的菜单
+ */
+ @Before({GET.class})
+ public void getPersonMenu() {
+ //当前登录的人员是谁?
+ String token = getRequest().getHeader("Authorization");
+ if (token == null) {
+ renderJson(RetKit.renderFail("JWT token 为空,无法解析人员信息,请重新登录!"));
+ return;
+ }
+ Claims claims = JwtUtil.getClaims(token);
+ int identity_id = Integer.parseInt(claims.get("identity_id").toString());
+ String person_id = claims.get("person_id").toString();
+
+ //所有菜单
+ List menuList = mm.fetchMenu(160);
+ renderJson(RetKit.renderSuccess(JSONUtil.parseArray(menuList)));
+
+ //后续需要根据人员角色菜单关系,去掉不可见菜单
+ }
+}
diff --git a/dsRes/src/main/java/com/dsideal/resource/Menu/GetVueMenu.java b/dsRes/src/main/java/com/dsideal/resource/Menu/GetVueMenu.java
deleted file mode 100644
index d067cd35..00000000
--- a/dsRes/src/main/java/com/dsideal/resource/Menu/GetVueMenu.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package com.dsideal.resource.Menu;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.jfinal.kit.Prop;
-import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
-import com.jfinal.plugin.activerecord.Db;
-import com.jfinal.plugin.hikaricp.HikariCpPlugin;
-import com.dsideal.resource.Plugin.YamlProp;
-import com.jfinal.plugin.activerecord.Record;
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class GetVueMenu {
- //子类1:菜单
- @Getter
- @Setter
- public static class Menu {
- private String path;
- private String name;
- private String component;
- private Meta meta;
- private List