自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

键上艺术家

Show me the code, change the world.

  • 博客(71)
  • 收藏
  • 关注

原创 【Lilishop商城】No4-7.业务逻辑的代码开发,涉及到:商品模块

商品模块是商城系统的核心,不是简单的增删改查,毕竟会涉及到很多的业务表,所以看起来简单但是业务还是比较复杂的,每一个接口(可以理解为一个业务操作)都可能涉及到很多业务操作。之前在 No3详细设计里面已经分析过数据结构设计和接口了,接下来就从接口方面先分析,一定要结合着数据结构~我们只分析重点接口,相似的就放一起记录了~

2023-01-13 17:03:42 3869 4

原创 【Lilishop商城】No4-6.业务逻辑的代码开发,涉及到:接口入参、出参开发逻辑,及POJO的各种总结

在前面的 No4 里面没有讲过这个,是因为前面重点是登录逻辑,比较散,所以就放到这一篇单独记录接口入参出参,后面的商品模块会用到。【有遗漏的,后面随时修改记录~~~】接口基本就是四种:增、删、改、查。我们也从这四种分析。

2023-01-09 18:08:46 1718 2

原创 【Lilishop商城】No4-5.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-根据第三方用户标识进行登录(例如:unionID、openid),主要用于移动APP端

根据标题名就可以知道,第三种方式对于后端来说是比较简单的,和第一种方式:微信小程序登录接口开发很像,获取用户授权的信息是交给前端的,后端只用负责拿到用户唯一标识,然后进行后面的业务操作~这种方式对应的shop的前端是用 uniapp 开发的,所以在前端使用的uni.login 方式,调起第三方客户端,用户授权后会拿到用户唯一标识,然后前端再调用平台后端请求接口来实现后续的业务~~前端主实现的页面:/lilishop-uniapp-master/pages/passport/login.vue

2022-12-30 18:19:39 791 2

原创 【Lilishop商城】No4-4.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-web端第三方授权联合登录接口开发

​web端第三方授权联合登录模块是参照JustAuth是一个第三方授权登录的工具类库JustAuth的,shop项目参照这个工具类库搭建了自己的联合登录工具,并没有完全参照和搭建,是有区别的,但对于目前的是用来说足够了,对我来说也是一种学习呀~~~所以我们把业务逻辑了解清楚后,再剖析代码逻辑~~~开始前先说明,web联合登录里面涉及到的第三方登录的逻辑,大多是一致的,是使用的OAuth2.0 的Authorization code 授权模式【此模式大多是结合普通服务器端应用使用(web端

2022-12-28 20:48:06 946

原创 【Lilishop商城】No4-3.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-微信小程序登录接口开发

​微信小程序登录就一个接口,需要传参:临时登录凭证code、手机号码的对称解密的目标密文encryptedData、手机号码的对称解密算法初始向量iv、微信头像、微信用户昵称。header 里面传递uuidheader的uuid:此次用户登录的uuid,用来防止多次调用接口导致多次调用第三方接口。前端需要根据后端的返回值来判断是否更新 uuid。 临时登录凭证code:用来获取用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识UnionID(若当前小程序已绑定到微信

2022-12-27 17:01:53 847

原创 【Lilishop商城】No4-2.业务逻辑的代码开发,涉及到:会员B端第三方登录的开发-平台注册会员接口开发

​在No2-2.确定软件架构搭建 里的 A5.安全框架(springsecurity) 文章中,我们已经了解了账号授权及认证的开发架构了。账号登录成功后,会接收到后端返回的 Token 数据,包括 accesstoken 和 refreshtoken ;账号携带 accesstoken 访问后端接口,会先被 filter 拦截到 accesstoken 拿到帐号信息,判断是有权限,进而执行接口。所以此处的会员登录模块只涉及到上方的 1. ,最终都一定会拿到 Token ~

2022-12-26 22:18:24 1393

原创 【Lilishop商城】No4-1.业务逻辑的代码开发,涉及到:会员B端第三方登录使用及后端接口(微信、QQ等)

说白了就是拿到第三方平台里面用户的信息(一定会有一个用户唯一标识),然后将这个信息与我们shop平台的用户进行绑定,这样就能通过第三方登录shop平台了。所以重点就是要知道怎样从第三方拿到的授权用户信息。在了解前我们先整理都需要哪些第三方登录方式,然后根据需要的登录方式去了解实际的使用~

2022-12-24 17:53:49 1692

原创 【Lilishop商城】No3-11.模块详细设计,促销模块(优惠券、满减、秒杀、积分)的详细设计

开始前先说一下,促销的各类管理上不是特别的难理解,只要理解各个表结构和页面需要的接口就行,重点在于促销活动的业务service类底层都是实现自一个接口,因为所有的促销都是有相似的通用逻辑(例如,增加促销、修改促销、初始化等等)。

2022-12-20 21:23:36 2465 5

原创 【Lilishop商城】No3-9.模块详细设计,订单模块-3(售后)的详细设计

订单发货后,买方B端可以选择确定收货或者申请售后,售后就是退货/退款。

2022-12-13 22:04:21 1006

原创 【Lilishop商城】No3-8.模块详细设计,订单模块-2(订单)的详细设计

我们这里就先只说订单的逻辑,把退货/退款流程与订单区分开。说明一下这里提到的订单不是交易单,不是子订单,是根据店铺生成的订单。三端在订单模块操作的都是订单,是根据店铺生成的订单,而在收银台进行结算支付的时候就是针对交易单支付的~

2022-12-13 18:30:44 1532

原创 【Lilishop商城】No3-7.模块详细设计,订单模块-1(购物车、收银台)的详细设计

先说一下业务逻辑,从浏览商品sku到生成订单,有1.在浏览商品sku时立即购买;2.加入购物车,在购物车里面购买;第一种方式也能变相理解为加入购物车再购买。在shop项目里面是将这两种方式添加到了购物车接口里面,并且通过类型区分,如果是立即购买就走立即购买的逻辑,如果是购物车购买就走购物车购买的逻辑;随着上方的业务逻辑,当在B端购物车每添加一个商品SKU就会更新一下购物车列表,并存在redis缓存里面(不同类型的分开来缓存)。其中也会有一些别的逻辑,例如计算已勾选商品sku的总金额、计算优惠券等等。

2022-12-13 13:08:01 2205 2

原创 【Lilishop商城】No3-6.模块详细设计,商品模块-2(商品及强关联附属 商品sku、批发、图册等等)的详细设计

首先商品信息是需要单独页面进行管理的,而商品里面信息,例如图册、批发信息、SKU信息,这些都是跟着商品存在的,删除商品后这些也都会删除,并且他们也不会有单独配置的页面~和商品分类、品牌等是不一样的。所以只有商品有单独操作页面,而他的附属信息在新增、编辑页面进行编辑~所以是没有单独的controller接口的~只是在业务层进行操作的。

2022-12-12 18:30:00 1078

原创 【Lilishop商城】No3-5.模块详细设计,商品模块-1(商品分类、品牌管理、规格管理、参数、计量单位、店铺分类)的详细设计

商品信息的管理主要在店铺S端,商品关联的附属信息例如商品分类等是由运营M端和店铺S端共同管理的,买方B端主要是查看、下单会用到,所以本篇不包含B端的查看接口,买方B端前台的接口回单开一篇文章说明的。【但是购物车、下单这些会跟随地订单一起说明的~】开始前先说一下这几个模块之间的关联:1.规格和商品分类里面的参数,虽然跟商品分类强关联,但是由于跟商品是弱关联(规格直接转化成json保存到goods_sku里面,参数转化成json保存到goods里面),所以他们的修改不影响分类和商品;计量单位也是,直接保

2022-12-10 17:58:37 2389 2

原创 【Lilishop商城】No3-4.模块详细设计,店铺店员(店铺店员、店铺部门、店铺角色)的详细设计

店铺会绑定一个会员做店主,店铺可以通过手机号码选择多个会员做店员,但是会员在S端只能作为一位店主或者一位店员,也就是只能属于一个店铺。li_member 会员表里面会存储当前会员开通的店铺信息;li_clerk 店员表里面会存储店铺添加的会员;且店员在这张表里面一定是唯一的;li_store 店铺表里面会存储店主的会员信息;这样存储在使用上会更方便;因为会员与店铺之间的绑定不会轻易改变

2022-12-10 11:42:02 1070

原创 【Lilishop商城】No3-3.模块详细设计,会员信息(会员基本信息)、店铺设置(店铺信息、配送模板)的详细设计

运营M端可以查看所有会员信息,也可以新增会员账号。同时还可以查看会员的订单、积分等信息,方便运营。这些小的模块的查看接口可不是在这里哦,所以就放到对应模块开发时说明了,例如积分就都放到积分模块说明。注意哦,下面强调一下业务逻辑,在某些业务操作,例如新增用户时,不仅会创建用户信息,还会给该用进行一些额外的操作,比如增加注册积分、初始化钱包、增加注册活动优惠券等等,这些逻辑的实现如果直接放到业务代码中耦合度会增加的!所以shop项目中是使用了 Spring事件发布与监听,当用户增加完成就发布后面的事件~而事

2022-12-09 21:08:43 1608

原创 【Lilishop商城】No3-2.模块详细设计,系统设置(系统配置、行政区划、物流公司、滑块验证码图片、敏感词过滤)的详细设计

系统配置属于整个项目的配置,可以说是贯穿整个项目无论哪一端,通常来说,是由运营端M进行管理,即增查改删,而店铺端S、买方端B是查看使用。所以很多模块从页面显式出来的操作都是简单的增查改删,但是他们大多也包含隐藏的逻辑,例如商品发布时的敏感词过滤是借助于敏感词操作的,店铺端的物流公司是借助于M端的物流公司操作的。

2022-12-08 18:50:24 1982 2

原创 【Lilishop商城】No3-2.模块详细设计,运营用户模块的详细设计

shop系统里面的运营用户模块就是和大多系统一样,无非就是用户-菜单-部门-角色,用户的权限由角色确定,而角色来关联菜单(菜单即表示权限)。接下就从三个方面来详细设计,先分析业务逻辑,然后将业务操作拆解为具体调用接口,然后可以再分析一下具体的业务类(业务类也可以放到编码阶段分析,我们现在的详细设计就只包括接口和设计逻辑,不包含业务类),同时要记得结合各个端来分析~

2022-12-06 18:11:06 1427

原创 【Lilishop商城】No3-1.模块详细设计,按照需求设计划分开发模块

之前在 NO2-1数据结构里面已经将数据库表结构进行了分析与划分,数据底层已经准备好了,现在就根据业务进行开发模块的划分。

2022-12-06 12:49:40 1477

原创 【Lilishop商城】No2-7.确定软件架构搭建六(本篇包括延时任务,会用到rocketmq、redis)

我们来说一下shop里面实现的延时模块,逻辑是有点复杂的,用到了redis+rocketmq,redis主要是存储延时任务,rocketmp主要是用来监听任务并执行的。如果项目规模中不使用到消息中间件,也可以不用rocketmq。rocketmp在该项目中一部分功能是降低耦合、提高1.框架中是将同一类延时任务放到了同一个队列里面,等待执行,所以队列监听工厂类是获取的任务列表~所以本质上还是拿到一批任务进行执行。2.框架中的队列监听工厂类是每秒轮询,不断获取在当秒执行的任务列表,然后开启异步线程执行;

2022-12-05 20:00:00 1658

原创 【Lilishop商城】No2-6.确定软件架构搭建五(本篇包括定时任务xxl-job)

重点就是两个概念:调度模块(调度中心)、执行模块(执行器);调度模块重点就是负责管理调度信息的,有可视化平台,可以添加定时任务去执行,本身不含业务信息。执行模块就是需要开发人员集成xxl-job模块,开发执行器业务即可。

2022-11-29 21:57:27 1718

原创 【Lilishop商城】No2-5.确定软件架构搭建四(本篇包括消息中间件RocketMQ)

​RocketMQ有核心四大组件 NameServer(名称服务器)、Broker(费服务器)、 Producer、Consumer;有几个概念:消息(Message)、主题(Topic)、标签(Tag)、队列(Queue)、生产者组(producerGroup)、消费者组(consumerGroup);可以理解为:我们想要处理的数据就是消息,每个消息属于且只能属于一个主题,但是可以属于多个标签,一个主题中可以包含多个队列,队列里面存储消息。

2022-11-28 22:09:20 2167

原创 【Lilishop商城】No2-4.确定软件架构搭建三(本篇包括ES检索)

系统使用的是spring整合的es ,spring-data-elasticsearch,用的版本是Elasticsearch7.x的,这个版本较7.x之前使用上有些改动,虽然我没有用过之前的,但是为了防止使用混淆,还是了解了一下。其中有一点要清楚的是spring-data-elasticsearch封装操作ES有两种方式,最终都是使用es本身的RestHighLevelClient进行的操作~

2022-11-26 17:33:21 3427

原创 【Lilishop商城】No2-3.确定软件架构搭建二(本篇包括接口规范、日志处理)

全篇只介绍重点架构逻辑,具体编写看源代码就行,读起来也不复杂~谨慎:源代码中有一些注释是错误的,有的注释意思完全相反,有的注释对不上号,我在阅读过程中就顺手更新了,并且在我不会的地方添加了新的注释,所以在读源代码过程中一定要谨慎啊!

2022-11-25 19:01:28 2168 2

原创 【Lilishop商城】No2-2.确定软件架构搭建一(本篇包括MVC框架、持久框架、缓存、认证工具、安全框架等)

上一篇已经看了项目的开发架构,都需要哪些技术,都按照哪些规范,都哪些模块涉及哪些架构。现在就先将需要的技术框架和工具搭建一下,方便后续开发。先搭建基础的,后续有需要的会再进行添加的~全篇只介绍重点架构逻辑,具体编写看源代码就行,读起来也不复杂~

2022-11-24 22:16:22 3855

原创 【Lilishop商城】No2-1.确定项目结构和数据结构(用户、商品、订单、促销等模块)

首先先看一下项目的开发架构,都需要哪些技术,都按照哪些规范,都哪些模块涉及哪些架构。然后看一下数据库间的关联,确定数据结构。

2022-11-23 10:24:04 4641 4

原创 【Lilishop商城】No1-1.业务了解+划分各模块逻辑

结合着系统提供的三个演示系统和使用文档,抽时间把三个端的业务功能了解了一下,lilishop整个项目分为:运营后台、店铺后台、买方平台,各个平台的业务逻辑大多相关联。

2022-11-21 17:07:24 7842 3

原创 【Lilishop商城】记录一下B2B2C商城系统学习笔记~

做了也有几个小项目了,想提升一下自己,现在学一下新的商城项目,增强一下经验!选择这个项目是因为,这个项目有文档(虽然挺全,重点是有使用文档,就相当于有了需求设计;同时还有架构文档、开发文档),而且里面包含的业务也比较宽泛,秒杀、会员券等都有,而且是全端代码开源开放,属于前后端分离项目。总的来说,对于学习商城系统还是很适合练手的。

2022-11-15 12:12:11 7408 9

原创 No9.【spring-cloud-alibaba】添加字典业务,这一模块就是纯业务

终于结束从零搭建springcloud的部分了,目前也仅仅是学习了最最基本的逻辑,同时包含了开发系统的一些基本的逻辑。接下来就按照 pig 文档将其余基本的内容再熟悉一下,看一遍和写一遍真的不一样呐~~~那接下来就一小模块一小模块的学习啦,加油吧少年!本文及以后的文章还是基于前面的No6系列文章开发的,可以看之前文章顶部的内容总结,简单了解详情~

2022-11-11 12:41:20 931

原创 No8.【spring-cloud-alibaba】基于OAuth2,新增加手机号验证码登录模式(不包含发短信,还没找到合适的短信发送平台)

终于结束从零搭建springcloud的部分了,目前也仅仅是学习了最最基本的逻辑,同时包含了开发系统的一些基本的逻辑。接下来就按照 pig 文档将其余基本的内容再熟悉一下,看一遍和写一遍真的不一样呐~~~那接下来就一小模块一小模块的学习啦,加油吧少年!本文及以后的文章还是基于前面的No6系列文章开发的,可以看之前文章顶部的内容总结,简单了解详情~

2022-11-10 14:45:12 1450 1

原创 No7.【spring-cloud-alibaba】用户登录密码加密、密码登录模式添加验证码校验

终于结束从零搭建springcloud的部分了,目前也仅仅是学习了最最基本的逻辑,同时包含了开发系统的一些基本的逻辑。接下来就按照 pig 文档将其余基本的内容再熟悉一下,看一遍和写一遍真的不一样呐~~~那接下来就一小模块一小模块的学习啦,加油吧少年!本文及以后的文章还是基于前面的No6系列文章开发的,可以看之前文章顶部的内容总结,简单了解详情~

2022-11-09 10:31:01 1781

原创 No6-6.从零搭建spring-cloud-alibaba微服务框架,添加用户鉴权逻辑,动态数据权限(使用AOP实现)等(六,no6-6)

之前只零碎的学习过spring-cloud-alibaba,并没有全面了解过,这次学习pig框架时,想着可以根据这个项目学习一下,练练手,于是断断续续的用了几天时间搭建了一下基础框架。目前就先重点记录一下遇到的问题吧,毕竟流程也不是特别复杂,就是有的东西没遇到过了解的也不深~由于微服务包括认证这里内容太多,所以分了好几篇~文章包括:1.将服务系统注册到nacos注册中心;2.通过nacos实现配置动态更新;3.添加fegin服务,实现服务之间调用;

2022-11-05 12:28:14 921

原创 No6-5.从零搭建spring-cloud-alibaba微服务框架,添加用户鉴权逻辑,操作权限等(五,no6-5)

之前只零碎的学习过spring-cloud-alibaba,并没有全面了解过,这次学习pig框架时,想着可以根据这个项目学习一下,练练手,于是断断续续的用了几天时间搭建了一下基础框架。目前就先重点记录一下遇到的问题吧,毕竟流程也不是特别复杂,就是有的东西没遇到过了解的也不深~由于微服务包括认证这里内容太多,所以分了好几篇~文章包括:1.将服务系统注册到nacos注册中心;2.通过nacos实现配置动态更新;3.添加fegin服务,实现服务之间调用;

2022-11-02 15:12:42 523

原创 No6-4.从零搭建spring-cloud-alibaba微服务框架,解决微服务间的不鉴权调用等(四,no6-4)

之前只零碎的学习过spring-cloud-alibaba,并没有全面了解过,这次学习pig框架时,想着可以根据这个项目学习一下,练练手,于是断断续续的用了几天时间搭建了一下基础框架。目前就先重点记录一下遇到的问题吧,毕竟流程也不是特别复杂,就是有的东西没遇到过了解的也不深~由于微服务包括认证这里内容太多,所以分了好几篇~文章包括:1.将服务系统注册到nacos注册中心;2.通过nacos实现配置动态更新;3.添加fegin服务,实现服务之间调用;

2022-10-31 14:01:16 826

原创 【pig-cloud项目】关于从RequestMappingHandlerMapping的RequestMappingInfo里面getPatterns()报错问题。是路径匹配规则的锅!

当我按照 pig 项目的逻辑,手写到微服务内部调用不鉴权逻辑的时候,运行程序发现报错了,一看是PermitAllUrlProperties里面获取路径的错误,我不理解为啥报错,通过打断点发现自己的项目里面请求路径条件确实是 null ,但是请求路径条件有两个!于是我开始想,pig项目里面一定配置了啥是我不知道的,所以才导致这个原因,毕竟我俩依赖的包都是一样的呀;而pig 项目设置了使用ant_path_matcher模式,而我用的是默认的!通配符可以在中间,如:abc/**/xyz。

2022-10-29 17:08:30 869

原创 No6-3.从零搭建spring-cloud-alibaba微服务框架,实现资源端用户认证与授权等(三,no6-3)

之前只零碎的学习过spring-cloud-alibaba,并没有全面了解过,这次学习pig框架时,想着可以根据这个项目学习一下,练练手,于是断断续续的用了几天时间搭建了一下基础框架。目前就先重点记录一下遇到的问题吧,毕竟流程也不是特别复杂,就是有的东西没遇到过了解的也不深~由于微服务包括认证这里内容太多,所以分了好几篇~文章包括:1.将服务系统注册到nacos注册中心;2.通过nacos实现配置动态更新;3.添加fegin服务,实现服务之间调用;

2022-10-28 15:47:16 1455

原创 【pig-cloud项目】关于@Inner和@PreAuthorize的理解,以及微服务内外部间的调用认证鉴权理解

学习pig-cloud项目时遇到了微服务内外部间的调用认证鉴权理解这个问题,总理解不了文档中的文字,然后看过源码,并用代码测试后,理解并总结一下,怕自己忘记,脑子不够用~ (ಥ﹏ಥ)

2022-10-27 15:26:48 4353

原创 No6.从零搭建spring-cloud-alibaba微服务框架,实现数据库调用、用户认证与授权等(二,no6-2)

使用oauth2的方式实现密码模式的用户授权认证,暂时只校验是否身份认证,不进行权限设置。就是相当于用户通过密码模式获取到token ,测试时只需要测试这个接口即可。主要步骤有:1.导入oauth2依赖的包;2.在pig-common-secuity中添加获取用户信息的UserDetailsService自定义类,同时需要添加UserDetails的实现类;然后在pig-upms-biz中添加fegin接口,以及其相关的mybatis业务类;

2022-10-27 08:58:51 1573 1

原创 No6.从零搭建spring-cloud-alibaba微服务框架,实现fegin、gateway、springevent等(一)

之前只零碎的学习过spring-cloud-alibaba,并没有全面了解过,这次学习pig框架时,想着可以根据这个项目学习一下,练练手,于是断断续续的用了几天时间搭建了一下基础框架。目前就先重点记录一下遇到的问题吧,毕竟流程也不是特别复杂,就是有的东西没遇到过了解的也不深~

2022-10-20 21:07:10 1473

原创 No5.由内存存储改为数据库存储和redis存储(主要是授权服务端的用户信息、客户端信息、客户授权信息;资源端是没有存储的,每次解析token拿到用户信息)

前几篇的写的授权端和资源端中,里面的用户登录信息、客户端信息、客户授权信息的存储一直是使用的Spring提供的基于内存的存储,也就是,这种存储方式是不会持久化信息的,是每次重启系统都会重新加载我们写好的信息。现在将用户登录信息、客户端信息的存储改为持久化的MySQL数据库,将客户授权信息的存储修改为Redis。我们使用mybatisplus操作mysql数据库,使用springboot的redis来操作Redis。

2022-10-11 16:43:05 950

原创 No4.搭建基本的授权码模式请求token(一):实现授权服务端的授权码模式操作

我们要做的是:一个第三方登录端,一个前后端分离的客户端;第三方登录端就相当于提供授权的开放平台,客户端就相当于使用开放平台的第三方应用;(只做前后端分离的后端部分)前几篇文章我们只是使用OAuth2的密码模式,实现了一个微服务环境(还不算真正的微服务,就是实现不同服务之间的调用而已)下的sso单点登录,现在是要将这个sso单点登录系统作为一个开放平台,去开放授权码认证模式,让其他第三方应用可以通过它授权使用。

2022-10-08 17:32:53 2482 8

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除