diff --git a/Doc/v1.0/.cache.json b/Doc/v1.0/.cache.json deleted file mode 100644 index cf133d25..00000000 --- a/Doc/v1.0/.cache.json +++ /dev/null @@ -1 +0,0 @@ -[{"baseUrl":"","className":"DataEaseController","description":"DataEaseController","docFileName":"com_dsideal_base_DataEase_Controller_DataEaseController.html","generateDocs":true,"packageName":"com.dsideal.base.DataEase.Controller","requestNodes":[{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSet","deprecated":false,"description":"根据当前登录人员的identity_id,获取此人员可以维护的数据集名称","header":[],"method":["GET","POST"],"methodName":"getDataSet","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/getDataSet"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSetTable","deprecated":false,"description":"获取数据集下的数据表","header":[],"method":["GET","POST"],"methodName":"getDataSetTable","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"dataset_id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/getDataSetTable"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#saveDataSetTable","deprecated":false,"description":"保存数据集下的数据表","header":[],"method":["GET","POST"],"methodName":"saveDataSetTable","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"dataset_id","required":false,"type":"int"},{"description":"保存的数据","jsonBody":false,"name":"data","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/saveDataSetTable"}],"srcFileName":"D:\\dsWork\\YunNanDsBase\\src\\main\\java\\com\\dsideal\\base\\DataEase\\Controller\\DataEaseController.java"}] \ No newline at end of file diff --git a/Doc/v1.0/YunNanDsBase-v1.0-api-docs.json b/Doc/v1.0/YunNanDsBase-v1.0-api-docs.json deleted file mode 100644 index c2e7a63a..00000000 --- a/Doc/v1.0/YunNanDsBase-v1.0-api-docs.json +++ /dev/null @@ -1,59 +0,0 @@ -{ -"info": { -"_postman_id": "", -"name": "YunNanDsBase", -"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" -}, -"item": [ - { - "name": "DataEaseController", - "item": [ - { - "name": "根据当前登录人员的identity_id,获取此人员可以维护的数据集名称", - "request": { - "url": { - "raw": "{{domain}}/dataease/getDataSet", - "query": [ - ] - } - } - }, - { - "name": "获取数据集下的数据表", - "request": { - "url": { - "raw": "{{domain}}/dataease/getDataSetTable", - "query": [ - { - "key": "dataset_id", - "value": "", - "description": "数据集id" - } - ] - } - } - }, - { - "name": "保存数据集下的数据表", - "request": { - "url": { - "raw": "{{domain}}/dataease/saveDataSetTable", - "query": [ - { - "key": "dataset_id", - "value": "", - "description": "数据集id" - }, - { - "key": "data", - "value": "", - "description": "保存的数据" - } - ] - } - } - } - ] - } -] -} \ No newline at end of file diff --git a/Doc/v1.0/apidoc.log.lck b/Doc/v1.0/apidoc.log.lck new file mode 100644 index 00000000..e69de29b diff --git a/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html b/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html index 7afdb511..5b751916 100644 --- a/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html +++ b/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html @@ -42,6 +42,9 @@ DataEaseController
+ + 路由跳转 + 根据当前登录人员的identity_id,获取此人员可以维护的数据集名称 @@ -53,6 +56,23 @@
+
+
+ ResourceController +
+
+ + 获取知识库分页数据 + + + 上传知识库文档 + + + 删除知识库文档 + +
+
@@ -66,6 +86,33 @@
+

路由跳转

+

请求URL

+

+ /dataease/route + GET + POST +

+

请求参数 application/x-www-form-urlencoded

+ + + + + + + + + + + + + +
参数名类型必须描述
city_namestring城市名称
+

返回结果

+
{}
+
+
+

根据当前登录人员的identity_id,获取此人员可以维护的数据集名称

请求URL

@@ -150,9 +197,13 @@ - - - - - - \ No newline at end of file diff --git a/Doc/v1.0/style.css b/Doc/v1.0/style.css deleted file mode 100644 index 81f04a60..00000000 --- a/Doc/v1.0/style.css +++ /dev/null @@ -1,300 +0,0 @@ -body, html { - height: 100%; -} - -.book{ - position: relative; - width: 100%; - height: 100%; -} - -.book.with-summary .book-summary { - left: 0; -} - -.book-summary { - position: absolute; - top: 0; - left: -300px; - bottom: 0; - z-index: 1; - overflow-y: auto; - width: 300px; - color: #364149; - background: #fafafa; - border-right: 1px solid rgba(0,0,0,.07); - -webkit-transition: left 250ms ease; - -moz-transition: left 250ms ease; - -o-transition: left 250ms ease; - transition: left 250ms ease; -} - -.book-body { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - overflow-y: auto; - color: #333; - background: #fff; - -webkit-transition: left 250ms ease; - -moz-transition: left 250ms ease; - -o-transition: left 250ms ease; - transition: left 250ms ease; -} - -.book-body .body-inner { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - overflow-y: auto; - padding-top: 10px; -} - -.book-header { - overflow: visible; - height: 50px; - z-index: 2; - font-size: .85em; - color: #7e888b; - background: 0 0; -} - -.book-header a.header-menu{ - font-size: 18px; - color: #555555; - padding: 10px; - text-decoration: none; -} - -.book-header a.header-menu:hover{ - text-decoration: none; - color: #5cb85c; -} - -.page-wrapper { - position: relative; - outline: 0; -} - -.book .book-body .page-wrapper .page-inner { - position: relative; - left: 0px; - transition: 300ms ease left; -} - -.page-inner { - position: relative; - max-width: 900px; - margin: 0 auto; - padding: 20px 15px 40px 15px; -} - -@media (min-width: 600px){ - .book.with-summary .book-body { - left: 300px; - } -} - -@media (max-width: 600px){ - .book-summary { - width: calc(100% - 60px); - bottom: 0; - left: -100%; - } - .book.with-summary .book-body { - -webkit-transform: translate(calc(100% - 60px),0); - -moz-transform: translate(calc(100% - 60px),0); - -ms-transform: translate(calc(100% - 60px),0); - -o-transform: translate(calc(100% - 60px),0); - transform: translate(calc(100% - 60px),0); - } -} - -@media (max-width: 1240px){ - .book-body { - -webkit-transition: -webkit-transform 250ms ease; - -moz-transition: -moz-transform 250ms ease; - -o-transition: -o-transform 250ms ease; - transition: transform 250ms ease; - padding-bottom: 20px; - } -} - -@media (max-width: 1240px){ - .book-body .body-inner { - position: static; - min-height: calc(100% - 50px); - } -} - -.navbar{ - background: #5cb85c; - color: #FFF; -} - -.navbar a{ - color: #FFF; -} -.navbar-brand{ - font-weight: 600; -} - -@media (min-width: 768px){ - .navbar { - border-radius: 0; - } -} - -.catalog .panel{ - margin-bottom: 0; - border-radius: 0; - border: none; - box-shadow: none; - -webkit-box-shadow: none; -} - -.catalog .catalog-title { - border-bottom: 1px solid #EAEAEA; - padding: 1rem 1.25rem; - background: rgba(0, 0, 0, .03); - cursor: pointer; - color: #333; - font-weight: 600; - font-size: 16px; -} - -.catalog-item{ - padding: 8px 15px; - margin-left: 15px; - color: #888; - border-bottom: solid #EEE 1px; - display: block; -} - -.action-item h2 a{ - color: #5cb85c; -} - -a:hover{ - color: #449d44; -} - -.search-box{ - position: relative; - margin: 10px; -} - -.navbar{ - margin-bottom: 0; -} - -.main-content{ - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - margin-top: 20px; -} - -.text-bold{ - font-weight: bold; -} - -/**third part*/ - -.algolia-autocomplete { - width: 100%; -} -.algolia-autocomplete .aa-input, .algolia-autocomplete .aa-hint { - width: 100%; -} -.algolia-autocomplete .aa-hint { - color: #888; -} -.algolia-autocomplete .aa-dropdown-menu { - width: 100%; - background-color: #fff; - border: 1px solid #EEE; - border-top: none; -} -.algolia-autocomplete .aa-dropdown-menu .aa-suggestion { - cursor: pointer; - padding: 5px 4px; -} -.algolia-autocomplete .aa-dropdown-menu .aa-suggestion.aa-cursor { - background-color: #449d44; - color: #FFF; -} -.algolia-autocomplete .aa-dropdown-menu .aa-suggestion em { - font-weight: bold; - font-style: normal; -} - - -/* Doxy pretty-printing styles. Used with prettify.js. */ - -pre .str, code .str { color: #fec243; } /* string - eggyolk gold */ -pre .kwd, code .kwd { color: #8470FF; } /* keyword - light slate blue */ -pre .com, code .com { color: #32cd32; font-style: italic; } /* comment - green */ -pre .typ, code .typ { color: #6ecbcc; } /* type - turq green */ -pre .lit, code .lit { color: #d06; } /* literal - cherry red */ -pre .pun, code .pun { color: #8B8970; } /* punctuation - lemon chiffon4 */ -pre .pln, code .pln { color: #f0f0f0; } /* plaintext - white */ -pre .tag, code .tag { color: #9c9cff; } /* html/xml tag (bluey) */ -pre .htm, code .htm { color: #dda0dd; } /* html tag light purply*/ -pre .xsl, code .xsl { color: #d0a0d0; } /* xslt tag light purply*/ -pre .atn, code .atn { color: #46eeee; font-weight: normal;} /* html/xml attribute name - lt turquoise */ -pre .atv, code .atv { color: #EEB4B4; } /* html/xml attribute value - rosy brown2 */ -pre .dec, code .dec { color: #3387CC; } /* decimal - blue */ - -a { - text-decoration: none; -} - -pre.prettyprint, code.prettyprint { - font-family:'Droid Sans Mono','CPMono_v07 Bold','Droid Sans'; - font-weight: bold; - font-size: 11pt; - background-color: #0f0f0f; - -moz-border-radius: 8px; - -webkit-border-radius: 8px; - -o-border-radius: 8px; - -ms-border-radius: 8px; - -khtml-border-radius: 8px; - border-radius: 8px; -} /* background is black (well, just a tad less dark ) */ - -pre.prettyprint { - padding: 1em; - white-space: pre-wrap; -} - -pre.prettyprint a, code.prettyprint a { - text-decoration:none; -} -/* Specify class=linenums on a pre to get line numbering; line numbers themselves are the same color as punctuation */ -ol.linenums { margin-top: 0; margin-bottom: 0; color: #8B8970; } /* IE indents via margin-left */ -li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8 { list-style-type: none } -/* Alternate shading for lines */ -li.L1,li.L3,li.L5,li.L7,li.L9 { } - -/* print is mostly unchanged from default at present */ -@media print { - pre.prettyprint, code.prettyprint { background-color: #fff; } - pre .str, code .str { color: #088; } - pre .kwd, code .kwd { color: #006; font-weight: bold; } - pre .com, code .com { color: #oc3; font-style: italic; } - pre .typ, code .typ { color: #404; font-weight: bold; } - pre .lit, code .lit { color: #044; } - pre .pun, code .pun { color: #440; } - pre .pln, code .pln { color: #000; } - pre .tag, code .tag { color: #b66ff7; font-weight: bold; } - pre .htm, code .htm { color: #606; font-weight: bold; } - pre .xsl, code .xsl { color: #606; font-weight: bold; } - pre .atn, code .atn { color: #c71585; font-weight: normal; } - pre .atv, code .atv { color: #088; font-weight: normal; } -} diff --git a/src/main/java/com/dsideal/base/LoginPerson/Model/LoginPersonModel.java b/src/main/java/com/dsideal/base/LoginPerson/Model/LoginPersonModel.java index 7118eaab..301bf631 100644 --- a/src/main/java/com/dsideal/base/LoginPerson/Model/LoginPersonModel.java +++ b/src/main/java/com/dsideal/base/LoginPerson/Model/LoginPersonModel.java @@ -343,18 +343,13 @@ public class LoginPersonModel { CookieUtil.set(response, "person_id", loginMap.get("person_id").toString(), false, true); CookieUtil.set(response, "bureau_id", loginMap.get("bureau_id").toString(), false, true); CookieUtil.set(response, "token", token, false, true); - //添加返回的Token JWT - String jwtToken = JwtUtil.generateToken(Integer.parseInt(loginMap.get("identity_id").toString()), loginMap.get("person_id").toString(), loginMap.get("bureau_id").toString()); resultJson.put("success", true); resultJson.put("identity_id", loginMap.get("identity_id").toString()); resultJson.put("person_id", loginMap.get("person_id").toString()); resultJson.put("bureau_id", loginMap.get("bureau_id").toString()); resultJson.put("person_name", loginMap.get("person_name").toString()); - resultJson.put("jwt", jwtToken); //将此人员的权限信息写入Pika,如果后面的要求登录互踢,可以用来处理互踢 //处理逻辑就是:检查此jwt是不是在Pika中存在,存在就是系统派发出去,并且是最后一次用户在此平台登录的TOKEN - //如果不存在,就表示此token已过期,踢出即可。 - RedisKit.set("jwt_" + platform + "_" + loginMap.get("person_id").toString(), jwtToken); //根据人员id,获取所有单位信息 Record r = bm.getBureauInfoByPersonId(loginMap.get("person_id").toString()); if (r != null) resultJson.put("bureau_name", r.getStr("bureau_name")); diff --git a/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java b/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java index 313092c9..b5969955 100644 --- a/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java +++ b/src/main/java/com/dsideal/base/Menu/Controller/MenuController.java @@ -6,7 +6,6 @@ import com.dsideal.base.Base.Model.BaseModel; import com.dsideal.base.Interceptor.*; import com.dsideal.base.Util.CommonUtil; import com.dsideal.base.Menu.Model.MenuModel; -import com.dsideal.base.Util.JwtUtil; import com.dsideal.base.Util.RetKit; import com.dsideal.base.fay.tree.domain.MenuBean; import com.dsideal.base.fay.tree.service.IFayTreeNode; @@ -232,28 +231,4 @@ public class MenuController extends Controller { renderJson(kv); } - /** - * 功能:获取人员可以看到的菜单 - */ - @Before({GET.class}) - public void getPersonMenu() { - //当前登录的人员是谁? - String token = getRequest().getHeader("Authorization"); - if (token == null) { - renderJson(RetKit.renderFail("请先登录!")); - return; - } - Claims claims = JwtUtil.getClaims(token); - String person_id = claims.get("person_id").toString(); - - //可见菜单 - List recordList = model.selectMenuByPersonId(person_id); - Set menuIdSet = new HashSet<>(); - for (Record record : recordList) { - menuIdSet.add(record.getInt("menu_id")); - } - //需要根据所有可见菜单,递归处理,生成树形菜单 - List menuList = model.fetchMenu(1, menuIdSet); - renderJson(RetKit.renderSuccess(JSONUtil.parseArray(menuList))); - } } \ No newline at end of file diff --git a/src/main/java/com/dsideal/base/Util/JwtUtil.java b/src/main/java/com/dsideal/base/Util/JwtUtil.java deleted file mode 100644 index 2255993b..00000000 --- a/src/main/java/com/dsideal/base/Util/JwtUtil.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.dsideal.base.Util; - -import cn.hutool.core.date.DateTime; -import com.dsideal.base.BaseApplication; -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; - -import java.nio.charset.StandardCharsets; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -public class JwtUtil { - public static final String AUTHORIZATION_STARTER = "Bearer "; - public static final String SECRET = BaseApplication.PropKit.get("SECRET"); - - /** - * 功能:黄海开发的生成JWT函数 - * - * @param identity_id 身份ID - * @param person_id 人员ID - * @param bureau_id 机构ID - * @return JWT签名 - */ - public static String generateToken(int identity_id, String person_id, String bureau_id) { - // 获取当前日期和时间 - Date now = new Date(); - // 格式化日期 - Map claims = new HashMap<>(); - claims.put("create_time", now.toString()); - claims.put("identity_id", identity_id); - claims.put("person_id", person_id); - claims.put("bureau_id", bureau_id); - return AUTHORIZATION_STARTER + Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS256, SECRET).compact(); - } - - public static Claims getClaims(String token) { - if (token.contains(AUTHORIZATION_STARTER)) { - token = token.replace(AUTHORIZATION_STARTER, ""); - } - Claims claims; - try { - claims = Jwts.parser() - .setSigningKey(SECRET) - .parseClaimsJws(token) - .getBody(); - } catch (Exception e) { - try { - claims = Jwts.parser() - .setSigningKey(SECRET.getBytes(StandardCharsets.UTF_8)) - .parseClaimsJws(token) - .getBody(); - } catch (Exception err) { - claims = null; - } - } - return claims; - } - - public static void main(String[] args) { - //GwApplication gw = new GwApplication(); - String token = generateToken(4, "0b64e31e-a85e-43eb-ba5f-3088d986a8da", "3f7f4c90-645a-4fb9-9902-447846cf1dcc"); - /** - 结论: - 1、JWT的里面有三个关键信息,一个是identity_id,另一个是person_id,还有一个bureau_id - */ - Claims claims = getClaims(token); - System.out.println(claims.get("identity_id")); - System.out.println(claims.get("person_id")); - System.out.println(claims.get("bureau_id")); - } -}