在SqlSugar的开发框架中增加对低代码EAV模型(实体-属性-值)的WebAPI实现支持

我在前面随笔中介绍了在SqlSugar的开发框架中实现EAV模型(实体-属性-值)的处理,这个EAV模型实现的目的是支持弹性化的数据库设计,可以自由扩展数据库表字段和数据的查询和存储,实现的思路是在常规关系数据库中存储实体-属性-值的信息,而在非关系型数据库MongoDB数据库中存储自由字段的数据表集合,之前我们实现了在Winform界面端中对本地数据库和MongoDB数据库的处理操作,本篇随笔基于SqlSugar的开发框架的Web API实现过程,介绍对低代码EAV模型(实体-属性-值)的WebAPI实现支持。

1、SqlSugar开发框架的设计思路

SqlSugar的开发框架本身主要是基于常规关系型数据库设计的框架,支持多种数据库类型的接入,如SqlServer、MySQL、Oracle、PostgreSQL、SQLite等数据库,非关系型数据库的MongoDB数据库也可以作为扩展整合到开发框架里面。

 SqlSugar的开发框架本身设计是支持多终端的接入的,支持Winform、WPF、Vue3+ElementPlus、H5的APP应用等多终端的接入的,而Winform、WPF由于运行在客户端的,因此可以自由切换基于本地数据库还是Web API的服务接入,界面呈现效果一致。

 对于数据的访问,我们设计开关变量模式来自由切换本地数据库模式或Web API的访问方式。如下所示。

  

2、EAV模型的设计思路

 EAV模型(实体-属性-值)的处理,主要是用来解决动态定义业务表和数据存储和查询的解决方案,我们可以通过动态定义表和字段信息的方式,实现低代码甚至零代码的设计方案。

对于业务表,我们在系统中利用界面动态定义信息即可。如下面是产品信息表的定义界面,定义表和字段的相关信息即可。

然后通过配置菜单入口,给出了一个常规的数据录入管理界面,如下所示。

上面的字段录入,支持文本、数值、字典选择、单选框、复选框、日期、系统表选择(包括用户、角色、机构、定义表)、附件列表等内容的录入,基本覆盖了常规的需求,特殊需求进行一定的定制化处理即可。

而对于有些业务的主从表处理,如订单和订单明细,也可以通过配置的方式实现界面的自动处理。

动态化的数据,查询是其中一个难题,EAV模型(实体-属性-值)他的数据是根据不同的类型进行定义的,不会把所有的内容放在字符型的里面存储,因此保留了字段的原生类型,写入到MongoDB的非关系型数据库中,可以很好的支持各种复杂的查询处理。

 由于我们的表字段是动态化构建的,因此查询字段就也就需要动态化了,我们把查询字段通过列表选择的方式,条件根据不同的数据类型,创建不同的输入控件来实现查询处理。

 或者

通过下拉列表的方式选择不同的字段进行查询,如果是数值型或者日期,我们可以根据不同类型来创建输入控件组,来实现区间数值或者日期的输入。

 有时候,为了方便,还提供了一个自定义条件查询的处理功能,可以自由组合多个条件进行数据的查询过滤。

我们参考了magento的eav模型设计图,对不同数据类型的内容进行了独立的存储。

 由于实体类型(表定义)、实体字段属性、实体记录、字段复制映射关系、属性操作日志、删除日志等表联合构成了一个完整的裸条,如下所示。

如果我们MongoDB的数据记录移除了,还可以根据关系表的记录和属性值信息,进行MongoDB数据的同步记录处理,这样就可以还原MongoDB的数据记录了,如下所示。 

 

3、基于WebAPI的支持实现

在SqlSugar开发框架中,我们是以接口来串起来整个应用的架构的,并且我们通过泛型基类的封装和集成,极大的减少常规代码的编写。

我们只需要在基类函数里面定义好相关的标准处理:如增、删、改、查、分页、导入、导出、排序等通用接口,以及针对不同业务模块,提供一个接口的扩展和实现即可,如下设计图所示。

一个良好的产品,可能往往需要支持多种数据库的接入,根据实际业务的需要进行调整,有时候可能需要2到3种数据库的支持。

SQLSugar的表和字段信息,都是通过特性描述的方式定义的,它们在不同的数据库是通用的,而我们要做的就是在启动的时候,加载不同的数据库连接字符串,进行初始化即可

而对应Web API的代理调用类,那么为了极大的重用常规的接口处理,我们需要类似的继承关系。

对于BS的前端和移动端,我们根据框架后端的接口进行前端JS端的类的封装处理,引入了ES6类的概念实现业务基类接口的统一封装,简化代码。

这样不管对于终端的调用(Vue3的TS客户端、WInform端、WPF端、Python前端后端)都是以一定的基类抽象的方式,尽可能的封装相同逻辑接口的实现,通过泛型类的引入,可以非常弹性化接口的实现处理。

我们根据接口的定义,分别实现WebAPI的控制器实现部分,以及ApiCaller的客户端调用的封装处理部分,如下所示。

Web API的部分如下所示。

 Web API部分的路由是Restful的格式命名,然后根据实际的接口定义参数入口即可,如果是复杂实体对象的传递,一般用POST方式。

Web API的ApiCaller调用封装类,主要就是调用基类实现数据的调用和解析处理即可。如对于字段属性的ApiCaller的接口调用封装,如下所示。

主要就是根据Web API的路由名称和参数,以及请求方式的处理即可。

由于Winform或者WPF的调用是基于接口的处理方式,它实际的调用是根据开关变量的参数配置进行选择的。

复制代码
            //根据条件获取分页记录或者全部记录
            var result = await BLLFactory<IAttributeService>.Instance.MongoGetList(pageDto);
            var dataTable = result.Items;
            if (pageDto.IsPaging)
            {
                this.pager1.PagerInfo.RecordCount = result.TotalCount;//记录总行数
            }
复制代码

因此在Winform端或者WPF端,我们开发代码的时候,不用管它来自哪里,都是统一的模型调用处理。

以上就是我们SqlSugar开发框架的多接入方式、多端接入的实现思路,以及EAV实体属性值模式实现数据的弹性化定义以及查询、存储的处理。

原创作者: wuhuacong 转载于: https://www.cnblogs.com/wuhuacong/p/18842471
内容概要:本文介绍了一个基于冠豪猪优化算法(CPO)的无人机三维路径规划项目,利用Python实现了在复杂三维环境中为无人机规划安全、高效、低能耗飞行路径的完整解决方案。项目涵盖空间环境建模、无人机动力学约束、路径编码、多目标代价函数设计以及CPO算法的核心实现。通过体素网格建模、动态障碍物处理、路径平滑技术和多约束融合机制,系统能够在高维、密集障碍环境下快速搜索出满足飞行可行性、安全性与能效最优的路径,并支持在线重规划以适应动态环境变化。文中还提供了关键模块的代码示例,包括环境建模、路径评估和CPO优化流程。; 适合人群:具备一定Python编程基础和优化算法基础知识,从事无人机、智能机器人、路径规划或智能优化算法研究的相关科研人员与工程技术人员,尤其适合研究生及有一定工作经验的研发工程师。; 使用场景及目标:①应用于复杂三维环境下的无人机自主导航与避障;②研究智能优化算法(如CPO)在路径规划中的实际部署与性能优化;③实现多目标(路径最短、能耗最低、安全性最高)耦合条件下的工程化路径求解;④构建可扩展的智能无人系统决策框架。; 阅读建议:建议结合文中模型架构与代码示例进行实践运行,重点关注目标函数设计、CPO算法改进策略与约束处理机制,宜在仿真环境中测试不同场景以深入理解算法行为与系统鲁棒性。
在科技快速演进的时代背景下,移动终端性能持续提升,用户对移动应用的功能需求日益增长。增强现实、虚拟现实、机器人导航、自动驾驶辅助、手势识别、物体检测与距离测量等前沿技术正成为研究与应用的热点。作为支撑这些技术的核心,双目视觉系统通过模仿人类双眼的成像机制,同步获取两路图像数据,并借助图像处理与立体匹配算法提取场景深度信息,进而生成点云并实现三维重建。这一技术体系对提高移动终端的智能化程度及优化人机交互体验具有关键作用。 双目视觉系统需对同步采集的两路视频流进行严格的时间同步与空间校正,确保图像在时空维度上精确对齐,这是后续深度计算与立体匹配的基础。立体匹配旨在建立两幅图像中对应特征点的关联,通常依赖复杂且高效的计算算法以满足实时处理的要求。点云生成则是将匹配后的特征点转换为三维空间坐标集合,以表征物体的立体结构;其质量直接取决于图像处理效率与匹配算法的精度。三维重建基于点云数据,运用计算机图形学方法构建物体或场景的三维模型,该技术在增强现实与虚拟现实等领域尤为重要,能够为用户创造高度沉浸的交互环境。 双目视觉技术已广泛应用于多个领域:在增强现实与虚拟现实中,它可提升场景的真实感与沉浸感;在机器人导航与自动驾驶辅助系统中,能实时感知环境并完成距离测量,为路径规划与决策提供依据;在手势识别与物体检测方面,可精准捕捉用户动作与物体位置,推动人机交互设计与智能识别系统的发展。此外,结合深度计算与点云技术,双目系统在精确距离测量方面展现出显著潜力,能为多样化的应用场景提供可靠数据支持。 综上所述,双目视觉技术在图像处理、深度计算、立体匹配、点云生成及三维重建等环节均扮演着不可或缺的角色。其应用跨越多个科技前沿领域,不仅推动了移动设备智能化的发展,也为丰富交互体验提供了坚实的技术基础。随着相关算法的持续优化与硬件性能的不断提升,未来双目视觉技术有望在各类智能系统中实现更广泛、更深层次的应用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
本软件提供多种基于张量理论的流动诱导纤维取向计算功能,涵盖Jeffrey模型、Folgar-Tucker模型及各向异性旋转扩散系列(如Phelps-Tucker五参数模型、iARD、pARD、MRD与Wang双参数模型)以及慢速动力学方法(包括SRF、RSC与RPR)。针对四阶方向张量,支持三维空间中的线性、二次、混合、正交各向异性、自然及IBOF闭合近似;在平面取向分析中,则提供Bingham分布、自然近似、椭圆半径法、正交各向异性D型与非正交F型等多种闭合方案。 软件可计算平面或三维条件下的完整方向分布函数,适用于瞬态或稳态过程,并整合了Jeffery、Folgar-Tucker与ARD等基础取向动力学模型。同时支持基于Phelps-Tucker理论的纤维长度分布演化模拟。 在线弹性刚度预测方面,集成了平均场模型体系,包括Halpin-Tsai公式、稀释Eshelby解、Mori-Tanaka方法及Lielens双夹杂模型,适用于单向或分布型纤维取向情况。所有刚度模型均可导出对应的热应力张量与热膨胀张量。 此外,软件具备经典层压板理论分析能力,可处理随厚度变化的纤维取向对复合材料板刚度的影响。在分布函数重构方面,提供Jeffery解析解、Bingham分布、椭圆半径法及四阶最大熵函数等多种方法用于平面取向分布的重建。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值