![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
项目
各类项目
cwl_java
这个作者很懒,什么都没留下…
展开
-
SaaS-工程搭建
4 工程搭建4.1 前置知识点的说明Saas-HRM系统后端采用SpringBoot+SpringCloud+SpringMVC+SpringDataSaas-HRM系统前端采用基于nodejs的vue框架完成编写使用element-ui组件库快速开发前端界面学员应对以上前后端技术有初步的了解4.2 开发环境要求JDK1.8数据库mysql 5.7开发工具 idea 2017....原创 2019-12-27 11:46:37 · 1280 阅读 · 1 评论 -
SaaS-系统设计
3 系统设计3.1 开发方式SaaS-IHRM系统采用前后端分离的开发方式。后端给前端提供数据,前端负责HTML渲染(可以在服务器渲染,也可以在浏览器渲染)和用户交互。双方通过文档的形式规范接口内容3.2 技术架构(1) 前端技术栈以Node.js为核心的Vue.js前端技术生态架构(2) 后端技术栈SpringBoot+SpringCloud+SpringMVC+SpringD...原创 2019-12-27 10:43:52 · 1775 阅读 · 0 评论 -
SaaS-HRM 需求分析
2 SaaS-HRM 需求分析2.1 什么是SaaS-HRMSaaS-HRM是基于saas模式的人力资源管理系统。他不同于传统的人力资源软件应用,使用者只需打开浏览器即可管理上百人的薪酬、绩效、社保、入职离职。2.2 原型分析法原型分析的理念是指在获取一组基本需求之后,快速地构造出一个能够反映用户需求的初始系统原型。让用户看到未来系统的概貌,以 便判断哪些功能是符合要求的,哪些方面还需要...原创 2019-12-27 10:34:01 · 918 阅读 · 0 评论 -
SaaS-初识SaaS
1 初识SaaS1.1 云服务的三种模式1.1.1 IaaS(基础设施即服务)IaaS(Infrastructure as a Service),即基础设施即服务。 提供给消费者的服务是对所有计算基础设施的利用,包括处理CPU、内存、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、存储空间、部署...原创 2019-12-27 10:23:39 · 899 阅读 · 0 评论 -
SaaS-系统用户权限设计(组织机构管理)
第3章-SaaS系统用户权限设计1 组织机构管理1.1 需求分析1.1.1 需求分析实现企业组织结构管理,实现部门的基本CRUD操作1.1.2 数据库表设计CREATE TABLE `co_department` ( `id` varchar(40) NOT NULL,`company_id` varchar(255) NOT NULL COMMENT '企业ID',`pare...原创 2019-12-29 11:25:43 · 3893 阅读 · 0 评论 -
SaaS-HRM企业管理
4 企业管理4.1 需求分析在通用页面配置企业管理模块,完成企业的基本操作4.2 搭建环境4.2.1 新增模块(1)手动创建方式一:在src目录下创建文件夹,命名规则:module-模块名称()在文件夹下按照指定的结构配置assets,components,pages,router,store等文件(2)使用命令自动创建安装命令行工具npm install -g itheima...原创 2019-12-29 10:37:54 · 654 阅读 · 0 评论 -
SaaS-多租户SaaS平台的数据库方案(前端框架)
3 前端框架3.1 脚手架工程技术栈vue 2.5++elementUI 2.2.2vuexaxiosvue-routervue-i18n前端环境node 8.++npm 5.++3.2 启动与安装(1)解压提供的资源包(2)在命令提示符进入该目录,输入命令:cnpm install通过淘宝镜像下载安装所有的依赖,几分钟后下载完成如果没有安装淘宝镜像,请...原创 2019-12-29 10:07:26 · 3662 阅读 · 0 评论 -
SaaS-多租户SaaS平台的数据库方案(数据库设计与建模)
2 数据库设计与建模2.1 数据库设计的三范式三范式:第一范式(1NF):确保每一列的原子性(做到每列不可拆分)第二范式(2NF):在第一范式的基础上,非主字段必须依赖于主字段(一个表只做一件事)第三范式(3NF):在第二范式的基础上,消除传递依赖反三范式:反三范式是基于第三范式所调整的,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数...原创 2019-12-29 10:00:25 · 2705 阅读 · 0 评论 -
SaaS-多租户SaaS平台的数据库方案
第2章 数据库设计与前端框架1 多租户SaaS平台的数据库方案1.1 多租户是什么多租户技术(Multi-TenancyTechnology) 又称多重租赁技术:是一种软件架构技术,是实现如何在多用户环境下(此处的多用户一般是面向企业用户)共用相同的系统或程序组件,并且可确保各用户间数据的隔离性。简单讲:在一台服务器上运行单个应用实例,它为多个租户(客户)提供服务。从定义中我们可以理解:多租...原创 2019-12-27 15:29:30 · 2638 阅读 · 0 评论 -
SaaS-企业微服务-企业CRUD
5 企业微服务-企业CRUD原创 2019-12-27 14:38:26 · 566 阅读 · 0 评论 -
SaaS-分配权限
3 分配权限3.1 需求分析完成对角色权限的分配。3.2 服务端代码实现(1) 角色实体类中添加与权限的多对多关系并进行JPA配置@JsonIgnore //忽略json转化@ManyToMany@JoinTable(name="pe_role_permission", joinColumns={@JoinColumn(name="role_id",referenc...原创 2019-12-29 15:14:19 · 495 阅读 · 0 评论 -
SaaS-分配角色
2 分配角色2.1 需求分析由于使用了RBAC模型对权限进行统一管理,所以每个SAAS-HRM平台的用户都应该具有角色的信息。进而通过角色完成对权限的识别。众所周知,一个用户可以具有很多的角色,一个角色可以被分配给不同的用户。所以用户和角色之间是多对多系。2.2 服务端代码实现(1) 改造用户实体类,添加角色的id集合属性,表明一个用户具有的多个角色id在 User 用户实体类中添加与角...原创 2019-12-29 14:43:27 · 822 阅读 · 0 评论 -
SaaS-权限管理
1 权限管理1.1 需求分析完成权限(菜单,按钮(权限点),API接口)的基本操作权限与菜单,菜单与按钮,菜单与API接口都是一对一关系。为了方便操作,在SAAS-HRM系统的表设计中,采用基于共享主键的形式实现一对一关系维护,并且数据库约束,一切的关系维护需要程序员在代码中实现。1.2 后端实现1.2.1 实体类在系统微服务中创建权限,菜单,按钮(权限点),API对象的实体类(1...原创 2019-12-29 14:07:59 · 1071 阅读 · 0 评论 -
SaaS-用户管理
4 用户管理4.1 需求分析用户其实就是saas企业访问的员工,对企业员工完成基本的CRUD操作表结构如下:CREATE TABLE `bs_user` ( `id` varchar(40) NOT NULL COMMENT 'ID', `mobile` varchar(40) NOT NULL COMMENT '手机号码', `username` varchar(255) NOT ...原创 2019-12-29 13:45:18 · 1063 阅读 · 0 评论 -
SaaS-HRM中的权限设计
3 SAAS-HRM中的权限设计3.1 需求分析3.1.1 SAAS平台的基本元素SAAS平台管理员: 负责平台的日常维护和管理,包括用户日志的管理、租户账号审核、租户状态管理、租户费用的管理,要注意的是平台管理员不能对租户的具体业务进行管理企业租户: 指访问SaaS平台的用户企业,在SaaS平台中各租户之间信息是独立的。租户管理员: 为租户角色分配权限和相关系统管理、维护。租户角色...原创 2019-12-29 11:38:27 · 542 阅读 · 0 评论 -
SaaS-RBAC模型
2 RBAC模型2.1 什么是RBACRBAC(全称:Role-Based Access Control)基于角色的权限访问控制,作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。 在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,...原创 2019-12-29 11:31:52 · 620 阅读 · 0 评论 -
SaaS-HRM中的认证授权
3 SaaS-HRM中的认证授权3.1 需求分析实现基于Shiro的SaaS平台的统一权限管理。我们的SaaS-HRM系统是基于微服务构建,所以在使用Shiro鉴权的时候,就需要将认证信息保存到统一的redis服务器中完成。这样,每个微服务都可以通过指定cookie中的sessionid获取公共的认证信息。3.2 搭建环境3.2.1 导入依赖父工程导入Shiro的依赖<depen...原创 2019-12-30 11:47:21 · 700 阅读 · 0 评论 -
SaaS-基于JWT的API鉴权
3 基于JWT的API鉴权3.1 基于拦截器的token与鉴权如果我们每个方法都去写一段代码,冗余度太高,不利于维护,那如何做使我们的代码看起来更清爽呢?我们可以将这段代码放入拦截器去实现3.1.1 Spring中的拦截器Spring为我们提供了org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承...原创 2019-12-30 10:37:39 · 559 阅读 · 0 评论 -
SaaS-有状态服务和无状态服务
2 有状态服务和无状态服务2.1 什么是服务中的状态有状态和无状态服务是两种不同的服务架构,两者的不同之处在于对于服务状态的处理。服务状态是服务请求所需的数据,它可以是一个变量或者一个数据结构。无状态服务不会记录服务状态,不同请求之间也是没有任何关系;而有状态服务则反之。对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依据——两个来自相同发起者的请求在服务器端是否具备上下文关系。2...原创 2019-12-30 10:26:37 · 530 阅读 · 0 评论 -
SaaS-前端权限控制
1 前端权限控制1.1 需求分析1.1.1 需求说明基于前后端分离的开发模式中,权限控制分为前端页面可见性权限与后端API接口可访问行权限。前端的权限控制主要围绕在菜单是否可见,以及菜单中按钮是否可见两方面展开的。1.1.2 实现思路在vue工程中,菜单可以简单的理解为vue中的路由,只需要根据登录用户的权限信息动态的加载路由列表就可以动态的构造出访问菜单。登录成功后获取用户信息,包...原创 2019-12-30 09:31:46 · 1996 阅读 · 0 评论 -
SaaS-HRM中的TOKEN签发与验证
5 HRM中的TOKEN签发与验证5.1 什么是JWTJSON Web Token(JWT) 是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。在Java世界中通过JJWT实现JWT创建和验证。5.2 JWT的快速入门5.2.1 token的创建(1)创建maven工程,引入依赖<dependency> <groupId&g...原创 2019-12-29 16:53:03 · 892 阅读 · 0 评论 -
SaaS-常见的认证机制
4 常见的认证机制4.1 HTTP Basic AuthHTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使用的最简单的认证方式,只需提供用户名密码即可,但由于有把用户名密码暴露给第三方客户端的风险,在生产环境下被使用的越来越少。因此,在开发对外开放的RESTful API时,尽...原创 2019-12-29 16:12:49 · 1312 阅读 · 0 评论 -
SaaS-七牛云存储
2 七牛云存储1.1 概述七牛云对象存储服务提供高可靠、强安全、低成本、可扩展的非结构化数据的存储服务。它提供简单的 Web 服务接口,可以通过七牛开发者平台或客户端存储和检索任意数量的数据,支持 “按使用付费” 模式,可以通过调用REST API 接口和 SDK开发工具包访问,下载协议采用HTTP 和 HTTPS 协议。方便程序员聚焦业务应用,而无需关注底层存储实现技术。七牛云官网使用七...原创 2019-12-30 16:00:15 · 447 阅读 · 0 评论 -
SaaS-图片上传
1 图片上传1.1 需求分析如图所示,实现员工照片上传功能1.2 Data URL1.2.1 DataURL概述所谓DataURL是指"data"类型的Url格式,是在RFC2397中提出的,目的是对于一些“小”的数据,可以在网页中直接嵌入,而不是从外部文件载入。1.2.2 Data URL入门完整的DataURL语法:DataURL= data:mediatype;base64...原创 2019-12-30 15:38:15 · 515 阅读 · 0 评论 -
SaaS-百万数据报表读取
5 百万数据报表读取5.1 需求分析使用POI基于事件模式解析案例提供的Excel文件5.2 解决方案5.2.1 思路分析用户模式:加载并读取Excel时,是通过一次性的将所有数据加载到内存中再去解析每个单元格内容。当Excel数据量较大时,由于不同的运行环境可能会造成内存不足甚至OOM异常。事件模式:它逐行扫描文档,一边扫描一边解析。由于应用程序只是在读取数据时检查数据,因此不需要...原创 2019-12-30 15:20:54 · 416 阅读 · 0 评论 -
SaaS-百万数据报表导出
4 百万数据报表导出4.1 需求分析使用Apache POI完成百万数据量的Excel报表导出4.2 解决方案4.2.1 思路分析基于XSSFWork导出Excel报表,是通过将所有单元格对象保存到内存中,当所有的Excel单元格全部创建完成之后一次性写入到Excel并导出。当百万数据级别的Excel导出时,随着表格的不断创建,内存中对象越来越多,直至内存溢出。Apache Poi提供了...原创 2019-12-30 15:13:45 · 535 阅读 · 0 评论 -
SaaS-百万数据报表概述
3 百万数据报表概述3.1 概述我们都知道Excel可以分为早期的Excel2003版本(使用POI的HSSF对象操作)和Excel2007版本(使用POI的XSSF操作),两者对百万数据的支持如下:Excel 2003:在POI中使用HSSF对象时,excel 2003最多只允许存储65536条数据,一般用来处理较少的数据量。这时对于百万级别数据,Excel肯定容纳不了。Excel 2...原创 2019-12-30 15:08:31 · 419 阅读 · 0 评论 -
SaaS-员工管理
1 员工管理1.1 需求分析企业员工管理是人事资源管理系统中最重要的一个环节,分为对员工入职,转正,离职,调岗,员工报表导入导出等业务逻辑。需求看似复杂,实际上都是对数据库表的基本操作。1.2 数据库表概述对于员工操作而言,涉及到的数据库表如下表格说明:1.3 代码实现基本CRUD ,请参考之前的管理模块1.3.1 服务端实现(1) 创建员工微服务 ihrm_employee(...原创 2019-12-30 13:58:48 · 571 阅读 · 0 评论 -
商城项目-自定义组件用法
1.树组件的用法1.1.示例<v-tree url="/item/category/list" :isEdit="true" @handleAdd="handleAdd" @handleEdit="handleEdit" @handleDelete="handleDelete" @handleClick="h...原创 2020-01-02 14:39:11 · 526 阅读 · 0 评论 -
商城项目-从0开始品牌的查询
7.从0开始品牌的查询商品分类完成以后,自然轮到了品牌功能了。先看看我们要实现的效果:接下来,我们从0开始,实现下从前端到后端的完整开发。7.1.设计前端页面为了方便看到效果,我们新建一个MyBrand.vue(注意先停掉服务器),从0开始搭建。内容初始化一下:<template> <span> hello </span>&l...原创 2020-01-02 14:26:46 · 388 阅读 · 0 评论 -
商城项目-跨域问题
6.跨域问题跨域:浏览器对于javascript的同源策略的限制 。以下情况都属于跨域:跨域原因说明示例域名不同www.jd.com 与 www.taobao.com域名相同,端口不同www.jd.com:8080 与 www.jd.com:8081二级域名不同item.jd.com 与 miaosha.jd.com如果域名和端口都相同,但是请求路...原创 2020-01-02 14:05:40 · 396 阅读 · 0 评论 -
商城项目-项目搭建
3.项目搭建3.1.技术选型前端技术:基础的HTML、CSS、JavaScript(基于ES6标准)JQueryVue.js 2.0以及基于Vue的框架:Vuetify前端构建工具:WebPack前端安装包工具:NPMVue脚手架:Vue-cliVue路由:vue-routerajax框架:axios基于Vue的富文本框架:quill-editor后端技术:基础的S...原创 2020-01-02 09:58:23 · 635 阅读 · 0 评论 -
商城项目-商城介绍
2.商城介绍2.1.项目介绍商城是一个全品类的电商购物网站(B2C)。用户可以在线购买商品、加入购物车、下单、秒杀商品可以品论已购买商品管理员可以在后台管理商品的上下架、促销活动管理员可以监控商品销售状况客服可以在后台处理退款操作希望未来3到5年可以支持千万用户的使用2.2.系统架构2.2.1.架构图商城架构缩略图,大图请参考课前资料:2.2.2.系统架构解读整个商...原创 2020-01-02 09:40:17 · 2058 阅读 · 0 评论 -
商城项目-了解电商行业
1.了解电商行业学习电商项目,自然要先了解这个行业,所以我们首先来聊聊电商行业1.1.项目分类主要从需求方、盈利模式、技术侧重点这三个方面来看它们的不同1.1.1.传统项目各种企业里面用的管理系统(ERP、HR、OA、CRM、物流管理系统。。。。。。。)需求方:公司、企业内部盈利模式:项目本身卖钱技术侧重点:业务功能1.1.2.互联网项目门户网站、电商网站:baidu.co...原创 2020-01-02 09:37:32 · 404 阅读 · 0 评论 -
商城项目-商品新增
5.商品新增5.1.效果预览新增商品窗口:这个表单比较复杂,因为商品的信息比较多,分成了4个部分来填写:基本信息商品描述信息规格参数信息SKU信息5.2.从0开始我们刚刚在查询时,已经实现创建了MyGoodsForm.vue,并且已经在MyGoods中引入。不过目前没有写代码:<template> <v-card> my goods ...原创 2020-01-02 15:29:07 · 942 阅读 · 0 评论 -
商城项目-商品查询
4.商品查询4.1.效果预览接下来,我们实现商品管理的页面,先看下我们要实现的效果:可以看出整体是一个table,然后有新增按钮。是不是跟昨天写品牌管理很像?模板代码在分别在Goods.vue4.2.从0开始接下来,我们自己来实现一下,新建两个组件:MyGoods.vue和MyGoodsForm.vue内容先随意:<template> <v-card&g...原创 2020-01-02 15:13:52 · 550 阅读 · 0 评论 -
商城项目-SPU和SKU数据结构
3.SPU和SKU数据结构规格确定以后,就可以添加商品了,先看下数据库表3.1.SPU表3.1.1.表结构SPU表:CREATE TABLE `tb_spu` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'spu id', `title` varchar(255) NOT NULL DEFAULT '' COMMENT '标...原创 2020-01-02 15:09:40 · 2430 阅读 · 1 评论 -
商城项目-商品规格参数管理
2.商品规格参数管理2.1.页面实现页面比较复杂,这里就不带着大家去实现完整页面效果了,我们一起分析一下即可。2.1.1.整体布局打开规格参数页面,看到如下内容:因为规格是跟商品分类绑定的,因此首先会展现商品分类树,并且提示你要选择商品分类,才能看到规格参数的模板。一起了解下页面的实现:可以看出页面分成3个部分:v-card-title:标题部分,这里是提示信息,告诉用户要先...原创 2020-01-02 15:06:09 · 833 阅读 · 0 评论 -
商城项目-商品规格数据结构
1.商品规格数据结构乐优商城是一个全品类的电商网站,因此商品的种类繁多,每一件商品,其属性又有差别。为了更准确描述商品及细分差别,抽象出两个概念:SPU和SKU,了解一下:1.1.SPU和SKUSPU:Standard Product Unit (标准产品单位) ,一组具有共同属性的商品集SKU:Stock Keeping Unit(库存量单位),SPU商品集因具体特性不同而细分的每个商品...原创 2020-01-02 15:02:01 · 1207 阅读 · 0 评论 -
商城项目-分布式文件系统改造文件上传功能
3.FastDFS3.1.什么是分布式文件系统分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。通俗来讲:传统文件系统管理的文件就存储在本机。分布式文件系统管理的文件存储在很多机器,这些机器通过网络连接,要被统一管理。无论是上传或者访问文件,都需要通过管理中心来访问3.2.什么是F...原创 2020-01-02 14:55:52 · 300 阅读 · 0 评论