SAAS云平台搭建札记: (一)浅论SAAS多租户自助云服务平台的产品、服务和订单

article/2025/9/22 17:38:33

    最近在做一个多租户的云SAAS软件自助服务平台,途中遇到很多问题,我会将一些心得、体会逐渐分享出来,和大家一起探讨。这是本系列的第一篇文章。

    大家知道,要做一个全自助服务的SAAS云平台是比较复杂的,稍微有些漏洞,就会被不法分子钻漏洞,牵涉到一些金钱上的纠纷。因此,一开始的设计就比较重要了。说到云自助服务平台,可能和网上购物、在线商城有些类似,但里面提供的是相关服务,还是有些区别的,我在这里先讲几个概念:

  • 产品:产品即服务,即是提供给用户的服务。产品有单价,有些产品是基础产品,用户购买正式产品必须免费提供的,产品可以提供给用户进行试用。
  • 模块:产品包括很多模块,有些模块是必然会提供给用户的,比如 操作人员管理、操作日志 等,还有些模块是可选的,用户针对自己的情况进行购买,类似增值服务,比如移动端、企业主页等。另外还有些一次性的服务,比如系统数据对接硬件设备购买等;
  • 服务:用户所能享受到的服务,有一定的使用期限;
  • 订单:用户根据所拥有的 服务 所下的订单(而不是产品哦,为什么?);
  • 购物车:在用户订单生成前先把产品放在购物车里,购物车有很多类别,有的购物车是对目前服务进行的延期,有些是把试用的产品转为正式,有些是对现有服务模块的增删,牵涉到追加购买等。购物车操作频繁、需要做非常多的校验,要和已经购买的服务做无缝的对接,这也是云SAAS产品和普通电商很大不同的地方。到了订单阶段,就相对比较简单了,生成订单后将购物车清空、可以生成多张订单,支付的时候再做一遍校验。

     总体的概念流程是 服务->产品->购物车->订单->服务

    上一张购物车验证规则的流程图

 

    一些类(还没有全部完成):

    对实体类的操作大都采用工厂方式:

    购物车类代码:

    public class UserCart{public string UserId { get; set; }/// <summary>/// 设置域名/// </summary>public string ServiceIndentify { get; set; }public OrderType OrderType { get; set; }public IList<UserCartProduct> UserCartProducts { get; set; }public float TotalPrice{get{if (OrderType == OrderType.Experience){return 0;}else{return UserCartProducts.Sum(p => p.Price);}}}public virtual IList<UserCartProduct> UserCartProduct { get; set; }}public class UserCartProduct{public string ProductId { get; set; }public int ProductBasePrice { get; set; }public Period Period { get; set; }public DateTime StartDate { get; set; }public DateTime EndDate { get; set; }public IList<string> UserCartProductBasicModules { get; set; }public IList<UserCartAddtionalModule> UserCartProductAddtionalModules { get; set; }public IList<UserCartAddtionalService> UserCartAddtionalServices { get; set; }public IList<UserCartOption> UserCartOptions { get; set; }public float Price{get{return ProductBasePrice+ UserCartProductAddtionalModules.Sum(m => m.UintPrice.GetPriceByPeriod(Period))+ UserCartAddtionalServices.Sum(m => m.UintPrice.GetPriceByPeriod(new Period(PeriodType.Times, m.Quantity)))+ UserCartOptions.Sum(m => m.UintPrice.GetPriceByPeriod(Period));}}public virtual UserCart UserCart { get; set; }}public class ModuleBase{public string ModuleId { get; set; }public PeriodPrice UintPrice { get; set; }}public class UserCartAddtionalModule: ModuleBase{}public class UserCartAddtionalService : ModuleBase{public int Quantity { get; set; }}public class UserCartOption: ModuleBase{public string CheckId { get; set; }public string OriginCheckedId { get; set; }public PeriodPrice OriginPeriodPrice { get; set; }}

    其他类类似。

    大家对这块有什么好的意见和建议,希望能够提出来。

 

   SAAS云平台搭建札记系列文章:

   SAAS云平台搭建札记: (一)浅论SAAS多租户自助云服务平台的产品、服务和订单

   SAAS云平台搭建札记: (二)Linux Unbutu下.Net Core整套运行环境的搭建


http://chatgpt.dhexx.cn/article/IqvuUv2S.shtml

相关文章

SaaS云平台多租户数据库方案,完美兼顾共享、独占模式

构建SaaS云平台多租户架构&#xff0c;首要的问题要解决数据如何存储的问题&#xff0c;业界基本上已经形成共识&#xff0c;无非是以下三种方案&#xff1a; 1、共享数据库&#xff0c;共享表 在表中增加TenantId多租户的数据字段&#xff0c;以区分不同租户的数据。这种做法…

多租户saas云平台框架---weiit

今天谈下云平台下的多租户架构&#xff0c;不论是在公有云还是私有云平台&#xff0c;是设计一个面向最终组织或用户的 SaaS 应用还是面向业务系统的 PaaS 平台&#xff0c;多租户都是前期架构设计的一个关键内容&#xff0c;因此有必要对里面的一些核心要点进一步说明。 多租…

SaaS是什么,目前主流的国内SAAS平台提供商有哪些?

SaaS是什么&#xff0c;目前主流的国内SAAS平台提供商有哪些&#xff1f;SaaS这个概念近两年可谓说是十分火热&#xff0c;尤其是后疫情时代。 但还是有很多人对SaaS这个名词云里雾里&#xff0c;被碎片化的信息裹挟&#xff0c;并没有真正意义上理解SaaS的概念。 这篇就综合…

移动端mousedown不生效 类型“TouchEvent”上不存在属性“clientX”

移动端只有如下四个操作 mousedown相当于touchstart 然后两个方法里面的对象也不一样&#xff0c;mouse的是MouseEvent&#xff0c;touch的是TouchEvent。 MouseEvent里面的clientX对应TouchEvent里面的changedTouches[0].clientX&#xff0c;所以做个判断&#xff0c;适配下…

WPF开发经验-WPF的TextBox控件的MouseDown事件不响应的解决方法

一 问题的发现 最近项目有个需求&#xff0c;大概是&#xff0c;当点击某个TextBox时&#xff0c;先执行一些业务上的逻辑处理。 于是按以往思维&#xff0c;将TextBox的MouseDown事件关联事件处理方法&#xff0c;将业务处理写在方法里。 调试发现&#xff0c;点击TextBox时&a…

原生js事件 mousedown,mouseup,mousemove结合实现元素拖拽

拖拽要注意 解决鼠标焦点丢失问题 鼠标移动过快&#xff0c;会导致鼠标移出盒子&#xff0c;出现盒子和鼠标不同步&#xff0c;且在盒子外鼠标抬起&#xff0c;发现鼠标再次划入盒子&#xff0c;不点击鼠标盒子也仍然还会拖拽。 IE/火狐 把盒子和鼠标绑在一起 调用元素的 se…

mousedown、mousemove、mouseup实现一个可拖拽的div

可拖拽的div 前言&#xff1a;前端开发当中不单单是简单的页面布局&#xff0c;很多的事件也应用在其中&#xff0c;比如一个窗口实现在整个页面的拖动的需求。 明确步骤 &#xff08;1&#xff09;对div设置position&#xff1a;absolute&#xff1b;属性并设置top&#xff1a…

WPF中Button中的MouseDown和MouseUp不触发问题解决方法

按照WPF的帮助说明&#xff0c;某些控件的路由事件被内部处理了&#xff0c;已经被标记为Handled&#xff0c;自行定义的事件处理代码便不再起作用了&#xff0c;有时候会很郁闷&#xff01; 不过WPF提供了必要的方法。1&#xff09;使用相应的Preview事件。须注意隧道类型的事…

Three.js mousedown不触发

想点击3D物体触发事件&#xff0c;然后进行旋转操作之后再抬起的时候也会触发click事件&#xff0c;因此想在鼠标按下的时候记录一下鼠标位置&#xff0c;click触发的时候判断位置是否相等再触发事件。 但是试了好久mousedown事件怎么都不触发&#xff0c;最后发现是和OrbitCon…

Web服务器性能压力测试工具

webbench webbench是Linux下的一个网站压力测试工具&#xff0c;最多可以模拟3万个并发连接去测试网站的负载能力。 下载地址可以到google搜&#xff0c;我这里给出一个 下载地址&#xff1a;http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz 安装非常简单 #tar zxv…

web压力測试-Web Bench

1.web bench下载。地址&#xff1a;http://home.tiscali.cz/~cz210552/webbench.html 2.wen bench安装&#xff1a; [rootweb111 tmp]#tar -zxvf webbench-1.5.tar.gz [rootweb111 tmp]# cd webbench-1.5 [rootvstar111 webbench-1.5]# ll total 28 lrwxrwxrwx 1 1001 root …

电脑网页压力测试软件,网站压力测试工具

网站压力测试软件可以测试不同上网方式、不同地区、访问Web不同页面、在不同并发访问密度情况下的客户端响应时间、流量和流速&#xff0c;实现极高的服务器测试&#xff0c;数据精准。网站压力测试软件适用于所有windows平台&#xff0c;操作简单&#xff0c;新手也能快速上手…

十个免费的 Web 压力测试工具

本文列举了是十个免费工具&#xff0c;可以用来进行Web的负载/压力测试的。这样你就可以知道你的服务器以及你的WEB应用能够扛得住多少的并发量&#xff0c;以及网站性能。 0. Grinder – Grinder是一个开源的JVM负载测试框架&#xff0c;它通过很多负载注射器来为分布式测试提…

介绍几款Web服务器性能压力测试工具

原文转自&#xff1a;http://www.qixing318.com/article/introduce-a-few-web-server-performance-pressure-testing-tools.html 目录结构 一、http_load 程序非常小&#xff0c;解压后也不到100K http_load以并行复用的方式运行&#xff0c;用以测试web服务器的吞吐量与负载。…

web服务器压力测试工具---ab

文章目录 写在前面1、吞吐率&#xff08;Requests per second&#xff09;2、并发连接数&#xff08;The number of concurrent connections&#xff09;3、并发用户数&#xff08;The number of concurrent users&#xff0c;Concurrency Level&#xff09;4、用户平均请求等待…

WEB压力测试

互联网的普及&#xff0c;宽带的流行&#xff0c;使得越来越多的 个人和单位都架设了自己的网站。而充当网站的 服务器 的大多是普通的PC或者低档 服 务器 &#xff0c; 这样访问者人数一多或者遭受DDos攻击&#xff0c;很容易造成瘫痪。因此我们需要网站在真正发布前对其进…

10个免费的web压力测试工具

转自&#xff1a;http://apps.hi.baidu.com/share/detail/53794908 当一套程序写完或者一台服务器配置完成后&#xff0c;相必很多朋友会像我一样&#xff0c;非常想知道它到底能够承受多大的负载压力&#xff0c;那在本文中&#xff0c;就给大家介绍十个免费的可以用来进行Web…

Web网页性能压测工具 ApacheBench 和 WebBench

转载: Web网页性能压测工具 ApacheBench 和 WebBench &#xff08;米扑博客&#xff09; 1. ApacheBench ab 压测工具安装 ab是针对apache的性能测试工具&#xff0c;可以只安装ab工具&#xff0c;支持 http 和 https 网页。 Ubuntu安装&#xff1a;sudo apt-get -y install…

网站压力测试工具webbench

webbench最多可以模拟3 万个 并发连接 去测试网站的负载能力&#xff0c;个人感觉要比Apache自带的ab压力测试工具好&#xff0c;安装使用也特别方便。 1、适用系统&#xff1a;Linux 2、编译安装&#xff1a; 引用 wget http://blog.s135.com/soft/linux/webbench/webbench-1.…

web压力测试-Web Bench

1.web bench下载&#xff0c;地址&#xff1a;http://home.tiscali.cz/~cz210552/webbench.html 2.wen bench安装&#xff1a; [rootweb111 tmp]#tar -zxvf webbench-1.5.tar.gz [rootweb111 tmp]# cd webbench-1.5 [rootvstar111 webbench-1.5]# ll total 28 lrwxrwxrwx…