当前位置: 首页 > news >正文

湖南建设部网站微信小程序定制公司

湖南建设部网站,微信小程序定制公司,秦皇岛中兵建设集团网站,黄骅贴吧在线咱们继续来编写孢子记账的简易权限#xff0c;这篇文章中我们将编写角色可访问接口的管理API#xff0c;同样我不会把完整的代码全都列出来#xff0c;只会列出部分代码#xff0c;其余代码我希望大家能自己手动编写#xff0c;然后对比项目代码。废话不多说#xff0c;开…咱们继续来编写孢子记账的简易权限这篇文章中我们将编写角色可访问接口的管理API同样我不会把完整的代码全都列出来只会列出部分代码其余代码我希望大家能自己手动编写然后对比项目代码。废话不多说开讲。 一、需求 角色可访问接口的需求很简单也就是简单的增删改查。 编号功能描述1新增一个角色可绑定多个接口但一个角色不能绑定同一个接口多次2删除系统角色可访问的URL不可删除3修改一个角色不能绑定同一个接口多次4查询可根据角色名、接口地址进行模糊查询实现分页功能5查询根据角色可访问接口Id查询单个数据 二、编写代码 2.1 编写数据库映射类并迁移数据库 新增SysRoleUrl类代码如下using SporeAccounting.BaseModels; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema;namespace SporeAccounting.Models; /// summary /// 角色可访问的URL /// /summary [Table(name: SysRoleUrl)] public class SysRoleUrl : BaseModel {/// summary/// 角色Id/// /summary[Column(TypeName nvarchar(36))][Required][ForeignKey(FK_SysRoleUrl_SysRole)]public string RoleId { get; set; }/// summary/// 接口路径/// /summary[Column(TypeName nvarchar(36))][Required][ForeignKey(FK_SysRoleUrl_SysUrl)]public string UrlId { get; set; }/// summary/// 导航属性/// /summarypublic SysRole Role { get; set; }/// summary/// 导航属性/// /summarypublic SysUrl Url { get; set; } }在数据库链接上下文类SporeAccountingDBContext1中增加SysRoleUrl /// summary /// 接口URL表 /// /summary public DbSetSysUrl SysUrls { get; set; }在SysRole类中增加SysRoleUrl的导航属性/// summary /// SysRoleUrl导航属性 /// /summary public ICollectionSysRoleUrl RoleUrls { get; set; }迁移数据库迁移后的数据库如下图 2.2 编写业务逻辑 我们以删除为例来看一下角色可访问接口如何编写。 新建服务接口ISysRoleUrlServer及其实现类SysRoleUrlImp在接口及其实现类中增加Delete方法//ISysRoleUrlServer /// summary /// 删除角色可访问的URL /// /summary /// param nameroleId/param /// param nameurlId/param void Delete(string roleId, string urlId);//SysRoleUrlImp /// summary /// 删除角色可访问的URL /// /summary /// param nameroleId/param /// param nameurlId/param public void Delete(string roleId, string urlId) {try{SysRoleUrl roleUrl _dbContext.SysRoleUrls.FirstOrDefault(x x.RoleId roleId x.UrlId urlId);if (roleUrl ! null){_dbContext.SysRoleUrls.Remove(roleUrl);_dbContext.SaveChanges();}}catch (Exception e){throw;} }新建SysRoleUrlController 并实现Delete方法using AutoMapper; using Microsoft.AspNetCore.Mvc; using SporeAccounting.BaseModels; using SporeAccounting.BaseModels.ViewModel.Response; using SporeAccounting.Models; using SporeAccounting.Models.ViewModels; using SporeAccounting.Server.Interface; using System.Net;namespace SporeAccounting.Controllers {/// summary/// 角色可访问URL/// /summary[Route(api/[controller])][ApiController]public class SysRoleUrlController : ControllerBase{private readonly ISysRoleUrlServer _sysRoleUrlServer;private readonly IMapper _mapper;public SysRoleUrlController(ISysRoleUrlServer sysRoleUrlServer,IMapper mapper){_sysRoleUrlServer sysRoleUrlServer;_mapper mapper;}/// summary/// 删除角色可访问的URL/// /summary/// param nameroleId/param/// param nameurlId/param/// returns/returns[HttpDelete][Route(Delete/{roleId}/{urlId})]public ActionResultResponseDatabool Delete([FromRoute] string roleId, [FromRoute] string urlId){try{bool isExist _sysRoleUrlServer.IsExist(roleId, urlId);if (!isExist){return Ok(new ResponseDatabool(HttpStatusCode.NotFound, $角色{roleId}不存在URL{urlId}, false));}bool isDelete _sysRoleUrlServer.IsDelete(roleId, urlId);if (!isDelete){return Ok(new ResponseDatabool(HttpStatusCode.Conflict, $角色{roleId}不允许删除URL{urlId}, false));}_sysRoleUrlServer.Delete(roleId, urlId);return Ok(new ResponseDatabool(HttpStatusCode.OK, data: true));}catch (Exception e){return Ok(new ResponseDatabool(HttpStatusCode.InternalServerError, 服务器异常, false));}}} }在上述代码中我们在执行删除操作时需要判断角色可访问接口是否存在以及角色可访问接口是否可以删除因此需要在接口及其实现类中增加IsExist和IsDelete方法//ISysRoleUrlServer /// summary /// 角色可访问的URL是否存在 /// /summary /// param nameroleId/param /// param nameurlId/param /// returns/returns bool IsExist(string roleId, string urlId);/// summary /// 是否可以删除 /// /summary /// param nameroleId/param /// param nameurlId/param /// returns/returns bool IsDelete(string roleId, string urlId);//SysRoleUrlImp /// summary /// 角色可访问的URL是否存在 /// /summary /// param nameroleId/param /// param nameurl/param /// returns/returns public bool IsExist(string roleId, string urlId) {try{return _dbContext.SysRoleUrls.Any(x x.RoleId roleId x.UrlId urlId);}catch (Exception e){throw;} }/// summary /// 是否可以删除 /// /summary /// param nameroleId/param /// param nameurlId/param /// returns/returns public bool IsDelete(string roleId, string urlId) {try{return _dbContext.SysRoleUrls.Any(x x.RoleId roleId x.UrlId urlId x.CanDelete);}catch (Exception e){throw;} }三、总结 这篇文章主要讲解了角色可访问接口管理的编写代码和逻辑也很简单因此没有详细讲解。角色可访问接口管理的剩余需求我希望大家一起来编写出来。
http://www.pierceye.com/news/59447/

相关文章:

  • cms管理手机网站做外包的网站有哪些问题
  • 如何替别人建网站挣钱html怎么做网页动态背景
  • wap网站还有能打开的吗新增病例最新消息
  • 做那种网站受欢迎江苏城乡建设网站
  • 大连开发区做网站wordpress 图片显示插件下载
  • 凌源市建设局网站惠州手工活外发加工网
  • 做网编去网站还是工作室好seo是什么服
  • 别人给公司做的网站字体侵权无锡论坛网本地网站
  • 建一个购物网站需要多少钱空间破解网站
  • 网站建设公司 信科便宜做网站的公司都有哪些业务
  • 网站怎么制作成二维码东莞找工作最新招聘信息
  • 建网站要会什么美术学院网站建设
  • 旅游网站的设计与制作html企业网站建设要
  • 网站建设后台管理流程wordpress 2.7.1下载
  • 临清建设局网站展厅装修设计公司有
  • 南京网站建设企业网站搭建中企动力第一
  • 国内高端品牌网站建设北京市建网站
  • 做网站用什么语言制作最安全?息壤服务器网站打不开
  • 怎么做 社区网站中企动力公司待遇怎么样
  • 企业网站流量直接进网站的浏览器
  • 宁夏做网站建设公司单位申请免费网站
  • 简述网站开发流程 旅游360全景网站制作
  • 教育培训机构微网站模板树莓派打开wordpress
  • 网站备案 域名备案一个ip做几个网站
  • 手机优化大师下载安装seo外包怎么收费
  • 网站 cms 免费淘宝客没网站怎么做
  • 简述建立一个网站模板步骤平面设计公司工作室
  • 松阳网站建设关键词优化排名怎么做
  • 网站备案需要建设好网站吗金华专业网站制作
  • 自己做返利网站十堰seo源头厂家