交接文档

权限优化

1.关键点

  • 菜单新增了一个字段type 01菜单 02按钮 03页签(因为代码只处理了二级菜单的缘故,这里的页签都挂到一级目录下)
  • 在sl_menu中按钮直接挂到菜单页面下面
  • sl_role_menu 表新增了一个buttonPermission 字段,该字段记录了所有该菜单下面的按钮的别名
  • 关联权限的时候做了点修改,按钮会展示到后面的可选菜单里面,按钮用"[ ]"括起来。关联好的权限按钮不会在sl_role_menu 插入一条新的数据,只是会修改buttonPermission ,在后面追加按钮的别名
  • 修该了SimpleAuthorizingRealm类里面的doGetAuthorizationInfo方法,该方法在以前permission里面保存了1111(曾删改查)的前提下,新增了buttonPermission里面的所有权限
  • 按钮删除的时候,会找到所有关联该按钮的sl_role_menu数据,然后删除掉buttonPermission 里面该按钮的别名
  • menucontroller里面有两方法,updateAllMenu ,addAllMenu 这两方法第一个是批处理新增了按钮没有新增页签的所有权限配置,addAllMenu是批处理,新增了页签和页签里面的按钮的所有权限配置。上线正常后,下个版本可以删掉这两方法。

2.过滤的写法

  • 通过模板渲染
 <#promise  hasPromise="PermissionTest:hasTest">
            <div class="ui teal button js-checkAuthBtn"   onclick="test();">
                       <i class="edit icon"></i>测试
             </div>
   </#promise>
  • 通过js执行
<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"));//调用filterPromise函数传入需要过滤的按钮的最小公共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.设计说明

  • 为了尽量不修改以前的流程配置套路,这里的流程配置通过了一张中间表FlowConfigureRelation 去关联以前的FlowControlTmpl 和当前的流程Id,然后再通过一个FlowConfigure把所有FlowConfigureRelation 包含起来组成一个流程
  • FlowConfigure流程主类,包含了编码和名称,以及产品id和渠道id,已经关键的FlowConfigureType这个枚举包含了借款申请流程,费用免除流程等等
  • FlowConfigureRelation 关联FlowControlTmpl 和FlowConfigure里面的id,把两者关联起来,关键的字段枚举类型FlowControlType包含了业务审批,财务申请,高管申请,风控审批等
  • FlowControlTmpl 下面关联FlowControlItem (老流程就是这么走的)
  • 修改和新增流程都会走update方法,修改或新增前都会判断下该流程是否启动,启动不允许修改。通过判断是否有id来判断是新还是修改,循环的最后都有统一的删除方法removeDeletedBaseModel,删除当前对象存在,数据库里面不存在的方法,这个方法提取到了baseService类中,所有只要继承了该类的service都会有此方法。
  • 启动工作流调用start方法,生成关联了产品的工作流xml格式数据插入到数据库中。
  • 停止产品stop则删除这些数据

PDF模板

  • PdfUtil支持两种模板,一种是字符串格式模板,格式中可以定义各种样式,一种是真正的模板。
  • 两种方式都是通过对象的反射然后去匹配定义的变量名(变量名称与对象中的属性名称一样即可匹配然后填充值)
  • 专门正对table表格做了一套字符串格式解析的不同产品类型模板工具PdfTableUtil,该工具主要生成table表格。里面可以实现多级对象和集合的嵌套。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,763评论 0 17
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,222评论 4 61
  • 一、目标(1.22-4.22) 1.完美的伴侣:智慧,亲近佛法,善良,样貌端正,爱敬父母,与父母关系良好,内心安定...
    柔光宝宝阅读 1,430评论 0 1
  • 1. 午夜梦回 忽见恍若隔世你的脸 忽见岁月如烟染落樱万千 “你又梦见他了么?” “嗯,但梦了又忘了。” 2. 好...
    白丁小姐阅读 3,878评论 0 0
  • 中期验收时,需要由客户、设计师、工程监理、施工负责人参与,验收合格后在质量报告书上签字确认。尾期验收时,需要由客户...
    长恨悠悠阅读 4,693评论 0 1