商家权限及其菜单资源管理设计

在商家的菜单体系中,我们设计了一个三级菜单,分别为分类、模块和资源。其中,分类菜单是顶级菜单,表示一个微服务应用;模块菜单是一个二级菜单,表示一个应用功能(实体)的主页;资源菜单是三级菜单,表示一个实体的增删改查中某一个具体的操作的权限。

在平台管理后台中,必须对这些菜单进行统一管理。下面就对各个菜单的管理及其设计分别加以说明。

分类菜单管理设计

分类菜单是一个顶级菜单,它所连接的是一个Web微服务应用,如库存管理、订单管理等,所以顶级菜单只在SSO首页中进行展示。

在分类菜单中管理包括增删改查等操作内容,下面以分类菜单查询的设计为例进行说明。首先使用控制器设计MerchantKindController,通过调用商家服务KindRestService取得分类菜单数据;然后将查询结果转换为视图输出,即返回 show.html的视图设计,实现代码如下所示:

@Controller@RequestMapping("/merchantkind")public class MerchantKindController {private static Logger logger =LoggerFactory.getLogger (MerchantKindController.class);@Autowiredprivate KindRestService kindRestService;CRequestMapping(value="/{id} ")public String show(ModelMap model, @PathVariable Long id) {String json = kindRestService.findById(id);model.addAttribute ("kind",new Gson ().fromJson(json, KindQo.class));return "merchantkind/show";}}

在show.html 的视图设计中,通过对话框的方式显示了show.html 的页面内容。其中,页面设计部分的实现代码如下所示:

分类信息

名称链接服务日期

返回

完成设计后的显示效果如图11-3所示。

图11-3所显示的内容是一个“订单系统”的分类菜单的查询信息,其中“链接服务”使用的是订单微服务应用的实例名称。当操作者打开使用微服务名称作为顶级菜单的链接时,将通过服务名称找到相应的链接地址再进行访问。

模块菜单管理设计

模块菜单是商家管理后台的一个二级菜单,它表示一个应用中的一个业务类型。例如,在顶级菜单“订单系统”中可以包含“订单管理”和“订单报表”等模块菜单。

在模块菜单中包括菜单的增删改查等操作内容,下面以新建模块菜单的设计为例进行说明。

如下所示是一个新建模块菜单的控制器MerchantModelController 的设计:

@Controller@RequestMapping ("/merchantmodel")public class MerchantModelController {private static Logger logger =LoggerFactory.getLogger (MerchantModelController.class);@Autowiredprivate KindRestService kindRestService;@Autowiredprivate ModelRestService modelRestService;@RequestMapping( "/new")public String create (ModelMap model,HttpServletRequest request){String json = kindRestService.findList();List kindQos = new Gson() .fromJson(json,newTypeToken>() {-getType());//缓存模块列表request.getSession().setAttribute ("kinds",kindQos);model. addAttribute("kinds", kindQ0s);return "merchantmodel/new";}@RequestMapping(value="/save", method = RequestMethod.POST)@ResponseBodypublic String save (Mode1Qo modelQo,HttpServletRequest request) throwsException {//通过模块工D指定关联对象String kid = request.getParameter ( "kid");//获取模块列表List kindQos =(List)request.getsession().getAttribute("kinds");for(KindQo kindQo : kindQos){if (kindQo.getId() .compareTo (new Long (kid)) == 0){modelQ0. setKind(kindQo);break;}}String ret = modelRestService.create (modelQ0);logger.info("新增=”+ret);return ret;}}

需要注意的是,这里使用了查询对象ModelQo来获取表单的参数。这与使用实体对象来获

取参数略有不同,即使用查询对象不能得到所天联的对家,所以垃里史n组相对负,而不基示模块所关联的分类对象的ID,然后从我们在会话中保存的对象列表中取得相关对象,而不是

使用kid这样的参数直接取得所关联的分类对象。

在相关页面的视图设计上,也必须要有与之对应的设计。如下所示是一个新建模块菜单的视图new.html的设计:

名称*URL日期分类

20?#strings.substring (kind.name,0,20)+'...' :kind.name } ">*
确定返回

其中,在模块菜单所关联的分类使用的select控件中,使用了kid这个参数来取得分类对象的ID。

在完成设计后,模块菜单管理的显示效果如图11-4所示。

在图11-4中,URL是进入订单管理主页的一个链接地址,菜单所关联的上级菜单为“订单系统”。从这个设计中可以看出,二级的链接地址是一个应用的主页。

资源菜单管理设计

资源菜单是商家管理后台的一个三级菜单,如对于模块菜单“订单管理”来说,它可以含有“订单修改”和“订单删除”等子菜单。资源菜单是最小的权限管理单元,在权限管理设计中它是角色所关联的访问对象。

在资源菜单中包括增删改查等操作内容,下面以资源编辑的设计为例进行说明。

资源编辑控制器 MerchantResourceController的设计部分的代码如下所示:

@Controller@RequestMapping("/merchantresource")public class MerchantResourceController{private static Logger logger =LoggerFactory.getLogger (MerchantResourceController.class);@Autowiredprivate ResourceRestService resourceRestService;@Autowiredprivate ModelRestService modelRestService;@RequestMapping ("/index")public string index (ModelMap model,Principal user) throws Exception"model .addAttribute( "user",user);return "merchantresource/index";@RequestMapping("/edit/{id} ")public String edit(@PathVariable Long id,ModelMap model, HttpServletRequestrequest) {String json = resourceRestService.findById(id);ResourceQo resourceQo = new Gson().fromJson(json,ResourceQo.classString models - modelRestService.findList();List modelQoList = new Gson().fromJson(models,newTypeToken>() {].getType();//缓存模块列表request.getSession().setAttribute ("models",modelQoList);model .addAttribute( "models",modelQoList);model.addAttribute("resource", resourceQ0);return "merchantresource/edit";}@RequestMapping (method = RequestMethod. POST, value="/update")@ResponseBodypublic String update(ResourceQo resourceQo,HttpServletRequest requestthrows Exception{//通过模块ID指定关联对象String mid - request.getParameter ( "mid");//获取模块列表List modelQos = (List)request.getSession() .getAttribute ( "models");for(ModelQo modelQ0 : modelQos){if (modelQo.getId().compareTo(new Long (mid)) ==0){resourceQo .setModel (modelQ0);break;}}String ret = resourceRestService.update(resourceQ0);logger.info(”修改="+ret);return ret;}}

在进行资源编辑之前,首先取出模块列表,并使用这个模块列表在页面中设计一个下拉框。然后在资源编辑时从这个下拉框中选择一个模块设置它的上级菜单。最后在数据保存时,通过模块D取出相应的对象进行保存。

其对应的页面视图edit.html的设计如下所示:

资源信息

名称*模块

*

URL日期

确定返回<

这里对于模块下拉列表使用了mid的方式进行引用。完成设计后,资源管理的显示效果如图11-5所示。

从图11-5中可以看出,三级菜单是在一个应用中对某一个实体进行增删改查时的一项操作权限,URL是一个执行订单修改的链接地址。在链接地址后面增加的几个符号“/**”是为了方便权限的检查,也可以省略不用,而所关联的模块菜单“订单管理”就是订单修改的上级菜单。

本文给大家讲解的内容是平台管理后台与商家菜单资源管理:商家权限及其菜单资源管理设计

  1. 下篇文章给大家讲解的是平台管理后台与商家菜单资源管理:商家角色管理设计;
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!

html 后台参数attribute_平台管理后台与商家菜单资源管理:商家权限及其菜单资源管理设计...相关推荐

  1. 公众号管理系统 html,微信公众号平台管理后台.html

     微信公众号平台管理后台 $axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent ...

  2. web端业务数据管理平台+Axure运营数据管理平台+月度数据统计分析+年度排行榜数据统计页面分析+运营大数据统计管理后台+用户信息管理+Axure通用web端高保真交互业务数据管理平台

    作品介绍:原型内容包含:web端业务数据管理平台+Axure运营数据管理平台+月度数据统计分析+年度排行榜数据统计页面分析+运营大数据统计管理后台+用户信息管理+Axure通用web端高保真交互业务数 ...

  3. Flask异步渲染管理后台局部页面

    想法 / One simple idea 最近在折腾研究Python Web开发,入坑了Flask,用习惯Python了发现用它干啥都是~真香! 试着写了个考试管理的后台,以前做web开发的套路,管理 ...

  4. 在线教育平台系统后台功能开发

    如今许多网校平台开始网络直播在线教育培训,你是不是也想着开发一个这样的平台呢,大家跟着我来看一下,这个在线教育系统首页功能开发到底是怎样开发呢. 在这里先给大家唠叨一下这个开发流程,当客户在某处找到们 ...

  5. 如何用AngularJS构建管理后台

    前言 一般来说,一个管理后台的构建的基本流程是:(1)选择一个开发语言->(2)选择一种数据库->(3)选择一个开发轮子(framework)->(4)在轮子上搭建前端框架-> ...

  6. Django管理后台

    目录 第一种注册model的方法 认识后台管理页面 第二种注册model的方法 ModelAdmin的常用属性 利用actions丰富动作工具栏 利用list_display修改显示列 利用searc ...

  7. Linux基础——后台工作和程序管理

    后台工作和程序管理 后台工作和程序是什么? 父程序和子程序 后台工作 后台运行--& 丢到后台暂停--Ctrl+z 观察当前后台工作--jobs 将后台工作转为前台运行--fg 让后台工作运行 ...

  8. 智慧楼宇管理后台、运维配置、设备台账、设备管理、维保统计、巡检统计、维修工单、报修统计、电子巡更、智能楼宇运营、运营后台、智慧社区、楼宇设备监控管理端、智能社区管理系统、楼宇运维管理系统

    Axure智慧楼宇管理运营端.工单管理/报修管理/维保管理/楼宇运维管理系统/巡检管理/能源管理/智慧社区运营端/智能楼宇设备监控管理端/智能社区管理系统运营 Axure智慧楼宇管理运营端演示及下载地 ...

  9. 智慧楼宇管理后台、运维配置、设备台账、设备管理、维保统计、巡检统计、维修工单、报修统计、电子巡更、智能楼宇运营、运营后台、智慧社区、楼宇设备监控管理端、智能社区管理系统、楼宇运维管理系统、rp原型

    Axure智慧楼宇管理运营端.工单管理/报修管理/维保管理/楼宇运维管理系统/巡检管理/能源管理/智慧社区运营端/智能楼宇设备监控管理端/智能社区管理系统运营 Axure智慧楼宇管理运营端演示及下载地 ...

最新文章

  1. 使用Android Studio打Andorid apk包的流程
  2. jquery清空div内容_jQuery常用功能
  3. 如何从机器学习数据中获取更多收益 1
  4. Python time sleep()方法
  5. 10个让人很舒服的沟通技巧
  6. ccd视觉定位教程_CCD视觉检测机有哪些作用?
  7. c 本地html解析,使用selenium解析本地HTML文件方法
  8. java中jsp怎么传递参数_急!Java问题,Java如何获得jsp传递的参数??
  9. 使用webpack5模块联邦
  10. Zilliqa Scilla入门
  11. 塔尔寺景点门票销售管理系统
  12. uniapp报错:Browserslist: caniuse-lite is outdated. Please run next command `npm update`
  13. 金蝶标准版7.0计算机快捷,掌握金蝶KIS基本的技巧,快速操作金蝶软件!
  14. 游戏开发学习路线图(2023最新版)建议收藏
  15. 基于C语言实现的多种可视化排序算法演示程序
  16. mongo-go-driver 踩坑心得 server selection error
  17. 2016年8月14日 星期日 --出埃及记 Exodus 16:15
  18. 标签平滑深度学习:Google Brain解释了为什么标签平滑有用以及什么时候使用它(SOTA tips)​...
  19. 计算机组织与体系结构_计算机体系结构中的内存组织
  20. 如何下载并应用pyinstaller(python+cmd)

热门文章

  1. 写一个会导致死锁的线程
  2. Android ViewPager嵌套ViewPager滑动冲突处理方法
  3. 前端开发我为什么选择cordova
  4. 程序员之网络安全系列(三):数据加密之对称加密算法
  5. 国外设计师眼中的原型工具Mockplus
  6. Web前端开发人员和设计师必读文章推荐【系列九】
  7. 简单谈一点linux内核中套接字的bind机制--数据结构以及端口确定
  8. 从强制卸载Office到强制安装WPS
  9. [Cracking the Coding Interview] 4.4 Check Balanced
  10. 从编程小白到全栈开发:基于框架开发服务端