zoukankan      html  css  js  c++  java
  • 050医疗项目-模块五:权限设置-第三方系统的接入

    我们先演示要实现的功能:

    单击:

    我们看着有三个子模块:

    点击模块管理:

    在模块管理中,我们可以设置一共有几个模块,每个模块里面有哪些具体的操作等。

    角色管理:

    给角色分配权限。

    好,我们接下来看具体的实现:

    我们先把第三方系统引入到工程中:

    import工程。

    然后修改sysconfig,和sysmanager系统中的/WEB-INF/proxool.xml文件

    接着

    然后重启Tomcat.

    然后修改代码:

    我们增加下面连个Action层:其实我们的第三方系统的实现原理就是我们从自己的项目中的Acion进入然后进入到第三方系统中:

     我们看一下SysConfigAcion.java:

    package yycg.base.action;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import yycg.base.pojo.vo.ActiveUser;
    import yycg.base.process.context.Config;
    import yycg.util.ResourcesUtil;
    import yycg.util.Vcom_3DES;
    
    @Controller 
    @RequestMapping("/sysconfig")
    public class SysConfigAction {
        
        //生成加密串
        private String buildString(String userid,String pwd)throws Exception{
            //从配置文件获取密钥
            String key= ResourcesUtil.getValue(Config.SYSCONFIG, "deskey");
        
            //待加密串
            String oldstring = userid + "#" + pwd + "#" + System.currentTimeMillis();
            System.out.println("原始串="+oldstring);
            //进行3des加密,1表示加密,key:密钥
            Vcom_3DES tempDesEn = new Vcom_3DES(1, oldstring,
                    key);
            //加密后的串
            String strTemp = tempDesEn.Vcom3DESChiper();
            return strTemp;
        }
    
        //sysmanagerurl_modulelist=http://localhost:8080/sysmanager/module/show.do?loginkeyString=
        /**
         * 模块操作管理
         */
        @RequestMapping("/modulelist")
        public String modulelist(HttpServletRequest request)throws Exception{
            HttpSession session = request.getSession();
            
            ActiveUser activeUser = (ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY);
            String userid = activeUser.getUserid();
            
            //生成加密串
            String strTemp=buildString(userid,"test");
    
            //组织接口址
            //从配置文件获取接口址
            //获取模块管理的接口址
            String module_url = ResourcesUtil.getValue(Config.SYSCONFIG, "sysmanagerurl_modulelist");
            
            //将加密后的串追加到接口址后
            String url  = module_url+strTemp;
            return View.redirect(url);//转到第三方系统
        }
        
        //角色管理sysmanagerurl_rolelist=http://localhost:8080/sysmanager/role/show.do?loginkeyString=
        /**
         * 角色管理
         */
        @RequestMapping("/rolelist")
        public String rolelist(HttpServletRequest request)throws Exception{
            HttpSession session = request.getSession();
            
            ActiveUser activeUser = (ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY);
            String userid = activeUser.getUserid();
            //生成加密串
            String strTemp=buildString(userid,"test");
    
            //组织接口址
            //从配置文件获取接口址
            //获取模块管理的接口址
            String rolelist_url = ResourcesUtil.getValue(Config.SYSCONFIG, "sysmanagerurl_rolelist");
            
            //将加密后的串追加到接口址后
            String url  = rolelist_url+strTemp;
            return View.redirect(url);//转到第三方系统
        }
        
        //系统参数配置sysconfigurl_basicinfo=http://localhost:8080/sysconfig/admin/findBasicinfoList.action?loginkeyString=
        /**
         * 系统参数配置
         */
        @RequestMapping("/basicinfo")
        public String basicinfo(HttpServletRequest request)throws Exception{
            HttpSession session = request.getSession();
            
            ActiveUser activeUser = (ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY);
            String userid = activeUser.getUserid();
            //生成加密串
            String strTemp=buildString(userid,"test");
    
            //组织接口址
            //从配置文件获取接口址
            //获取模块管理的接口址
            String basicinfo_url = ResourcesUtil.getValue(Config.SYSCONFIG, "sysconfigurl_basicinfo");
            
            //将加密后的串追加到接口址后
            String url  = basicinfo_url+strTemp;
            return View.redirect(url);//转到第三方系统
        }
    }

     我们在看一下:View.java:

    package yycg.base.action;
    
    import yycg.base.process.context.Config;
    
    /**
     * controller视图处理公用方法类
     * 
     * @author mrt
     * 
     */
    public class View {
    
        /**
         * 通用的成功jsp页面文件名
         */
        public static final String SUCCESS = "success";
        /**
         * 通用的失败jsp页面文件名
         */
        public static final String ERROR = "error";
    
        /**
         * 返回base模块jsp路径方法,其它模块可照此添加
         * 
         * @param page
         *            jsp文件名
         * @return
         */
        public static String toBase(String page) {
            return Config.PAGE_PATH_BASE + page;
        }
        
        /**
         * 返回业务模块jsp路径方法,其它模块可照此添加
         * 
         * @param page
         *            jsp文件名
         * @return
         */
        public static String toBusiness(String page) {
            return Config.PAGE_PATH_BUSINESS + page;
        }
    
        /**
         * action返回成功页面方法
         * 
         * @return
         */
        public static String toSuccess() {
            return Config.PAGE_PATH_BASE + SUCCESS;
        }
    
        /**
         * action返回操作失败页面方法
         * 
         * @return
         */
        public static String toError() {
            return Config.PAGE_PATH_BASE + ERROR;
        }
        
            
        /**
         * action以redirect方式重定向到自定义url
         * 
         * @param url
         * @return
         */
        public static String redirect(String url) {
            return "redirect:" + url;
        }
    
        /**
         * action以forward方式定向到自定义页面
         * 
         * @param url
         * @return
         */
        public static String forward(String url) {
            return "forward:" + url;
        }
    
        
    
    }

    最后我们看一下,页面怎么写。

    我们知道我们的左侧菜单都是在meanu.json里面的写的,这次也是一样:

    menu.json如下:

    
                     {"icon" : "icon-sys","menuid" : "1","menuname" : "第三方系统","url" : "","menus" : [
                     {"icon" : "icon-log","menuid" : "1_1","menuname" : "模块管理","url" : "/yycgproject/sysconfig/modulelist.action"
                     },
                     {"icon" : "icon-log","menuid" : "1_1","menuname" : "角色管理","url" : "/yycgproject/sysconfig/rolelist.action"
                     },
                     {"icon" : "icon-log","menuid" : "1_1","menuname" : "系统参数管理","url" : "/yycgproject/sysconfig/basicinfo.action"
                     }
                     ] 
                   },
                   
                 

    这样子我们就实现了上面的功能了。因为这两个第三方空间都是从源系统中拷贝出来的,所有都编辑好了,不需要我们去编辑。

    下面的文章要实现的功能是:根据用户显示不同的菜单。用户不用,显示的菜单不同。

  • 相关阅读:
    c语言宏
    vim的跨文件复制粘贴
    c语言文件包含
    CSS Modules 解决 react 项目 css 样式互相影响的问题
    react 执行 yarn build 页面无法显示
    create-react-app 引入 antd 及 解决 antd 样式无法显示的bug
    yarn 和 npm 的区别
    create-react-app项目添加less配置
    react 项目实战(十)引入AntDesign组件库
    react 项目实战(九)登录与身份认证
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/6195263.html
Copyright © 2011-2022 走看看