權(quán)限優(yōu)化
1.關(guān)鍵點
- 菜單新增了一個字段type 01菜單 02按鈕 03頁簽(因為代碼只處理了二級菜單的緣故,這里的頁簽都掛到一級目錄下)
- 在sl_menu中按鈕直接掛到菜單頁面下面
- sl_role_menu 表新增了一個buttonPermission 字段,該字段記錄了所有該菜單下面的按鈕的別名
- 關(guān)聯(lián)權(quán)限的時候做了點修改,按鈕會展示到后面的可選菜單里面,按鈕用"[ ]"括起來。關(guān)聯(lián)好的權(quán)限按鈕不會在sl_role_menu 插入一條新的數(shù)據(jù),只是會修改buttonPermission ,在后面追加按鈕的別名
- 修該了SimpleAuthorizingRealm類里面的doGetAuthorizationInfo方法,該方法在以前permission里面保存了1111(曾刪改查)的前提下,新增了buttonPermission里面的所有權(quán)限
- 按鈕刪除的時候,會找到所有關(guān)聯(lián)該按鈕的sl_role_menu數(shù)據(jù),然后刪除掉buttonPermission 里面該按鈕的別名
- menucontroller里面有兩方法,updateAllMenu ,addAllMenu 這兩方法第一個是批處理新增了按鈕沒有新增頁簽的所有權(quán)限配置,addAllMenu是批處理,新增了頁簽和頁簽里面的按鈕的所有權(quán)限配置。上線正常后,下個版本可以刪掉這兩方法。
2.過濾的寫法
<#promise hasPromise="PermissionTest:hasTest">
<div class="ui teal button js-checkAuthBtn" onclick="test();">
<i class="edit icon"></i>測試
</div>
</#promise>
<div class=" ui segment teal" id="jsPermission">
<div class="ui teal button js-checkAuthBtn" data-promise="PermissionTest:hasTest" onclick="approval();" >
<i class="edit icon"></i>測試
</div>
</div>
<script>
promise.filterPromise($("#jsPermission"));//調(diào)用filterPromise函數(shù)傳入需要過濾的按鈕的最小公共div
</script>
@At("/test")
@POST
@RequiresPermissions("PermissionTest:hasTest")
public NutMap test(){
NutMap result = new NutMap();
result.setv("ok",true);
result.setv("msg","測試成功");
return result;
}
流程配置
1.設(shè)計說明
- 為了盡量不修改以前的流程配置套路,這里的流程配置通過了一張中間表FlowConfigureRelation 去關(guān)聯(lián)以前的FlowControlTmpl 和當(dāng)前的流程Id,然后再通過一個FlowConfigure把所有FlowConfigureRelation 包含起來組成一個流程
- FlowConfigure流程主類,包含了編碼和名稱,以及產(chǎn)品id和渠道id,已經(jīng)關(guān)鍵的FlowConfigureType這個枚舉包含了借款申請流程,費用免除流程等等
- FlowConfigureRelation 關(guān)聯(lián)FlowControlTmpl 和FlowConfigure里面的id,把兩者關(guān)聯(lián)起來,關(guān)鍵的字段枚舉類型FlowControlType包含了業(yè)務(wù)審批,財務(wù)申請,高管申請,風(fēng)控審批等
- FlowControlTmpl 下面關(guān)聯(lián)FlowControlItem (老流程就是這么走的)
- 修改和新增流程都會走update方法,修改或新增前都會判斷下該流程是否啟動,啟動不允許修改。通過判斷是否有id來判斷是新還是修改,循環(huán)的最后都有統(tǒng)一的刪除方法removeDeletedBaseModel,刪除當(dāng)前對象存在,數(shù)據(jù)庫里面不存在的方法,這個方法提取到了baseService類中,所有只要繼承了該類的service都會有此方法。
- 啟動工作流調(diào)用start方法,生成關(guān)聯(lián)了產(chǎn)品的工作流xml格式數(shù)據(jù)插入到數(shù)據(jù)庫中。
- 停止產(chǎn)品stop則刪除這些數(shù)據(jù)
PDF模板
- PdfUtil支持兩種模板,一種是字符串格式模板,格式中可以定義各種樣式,一種是真正的模板。
- 兩種方式都是通過對象的反射然后去匹配定義的變量名(變量名稱與對象中的屬性名稱一樣即可匹配然后填充值)
- 專門正對table表格做了一套字符串格式解析的不同產(chǎn)品類型模板工具PdfTableUtil,該工具主要生成table表格。里面可以實現(xiàn)多級對象和集合的嵌套。
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。