
【商城】
文章平均质量分 93
shenzhen_zsw
这个作者很懒,什么都没留下…
展开
-
一个简单的线程工具线程工具
商城-一个简单的线程工具线程工具定义线程工具线程工具调用定义线程工具package com.leyou.utils;import java.util.concurrent.*;/** * @Feature: 线程工具 */public class ThreadUtils { private static final ExecutorService es = Execut...原创 2019-07-05 18:17:18 · 647 阅读 · 0 评论 -
商城-用户注册-数据验证功能
商城-用户注册-数据验证功能3.数据验证功能3.1.接口说明3.2.controller3.3.Service3.4.测试3.数据验证功能3.1.接口说明实现用户数据的校验,主要包括对:手机号、用户名的唯一性校验。接口路径:GET /check/{data}/{type}参数说明:参数说明是否必须数据类型默认值data要校验的数据是String无...原创 2019-06-18 11:49:36 · 411 阅读 · 0 评论 -
商城-用户注册-后台功能准备
商城-用户注册-后台功能准备2.后台功能准备2.1.接口文档2.2.数据结构2.3.基本代码2.3.1.实体类2.3.2.mapper2.3.3.Service2.3.4.controller2.后台功能准备2.1.接口文档整个用户中心的开发,我们将模拟公司内面向接口的开发。现在假设项目经理已经设计好了接口文档,详见:《用户中心接口说明.md》我们将根据文档直接编写后台功能,不关心页面...原创 2019-06-18 11:47:01 · 533 阅读 · 0 评论 -
商城-用户注册-创建用户中心
商城-用户注册-创建用户中心1.创建用户中心1.1.创建父module1.2.创建leyou-user-interface1.3.创建leyou-user-service1.4.添加网关路由1.创建用户中心用户搜索到自己心仪的商品,接下来就要去购买,但是购买必须先登录。所以接下来我们编写用户中心,实现用户的登录和注册功能。用户中心的提供的服务:用户的注册用户登录用户个人信息管理用户...原创 2019-06-18 11:31:15 · 530 阅读 · 0 评论 -
商城-RabbitMQ及消息同步-项目改造
商城-RabbitMQ及消息同步-项目改造4.项目改造4.1.思路分析4.2.商品服务发送消息4.2.1.引入依赖4.2.2.配置文件4.2.3.改造GoodsService4.3.搜索服务接收消息4.3.1.引入依赖4.3.2.添加配置4.3.3.编写监听器4.3.4.编写创建和删除索引方法4.4.静态页服务接收消息4.4.1.引入依赖4.4.2.添加配置4.4.3.编写监听器4.4.4.添加删...原创 2019-06-17 22:11:18 · 267 阅读 · 0 评论 -
商城-RabbitMQ及消息同步-Spring AMQP
商城-RabbitMQ及消息同步-Spring AMQP3.Spring AMQP3.1.简介3.2.依赖和配置3.3.监听者3.4.AmqpTemplate3.5.测试代码3.Spring AMQP3.1.简介Sprin有很多不同的项目,其中就有对AMQP的支持:Spring AMQP的页面:http://spring.io/projects/spring-amqp注意这里一段描述...原创 2019-06-17 21:59:23 · 244 阅读 · 0 评论 -
商城-RabbitMQ及消息同步-五种消息模型
商城-RabbitMQ及消息同步-五种消息模型2.五种消息模型2.1.基本消息模型2.1.1.生产者发送消息2.1.2.管理工具中查看消息2.1.3.消费者获取消息2.1.4.消息确认机制(ACK)2.1.4.1.自动ACK存在的问题2.1.4.2.演示手动ACK2.2.work消息模型2.2.1.生产者2.2.2.消费者12.2.3.消费者22.2.4.能者多劳2.3.订阅模型分类2.4.订阅模...原创 2019-06-17 21:54:43 · 1913 阅读 · 0 评论 -
商城-商品详情及静态化-页面静态化
商城-商品详情及静态化-页面静态化2.页面静态化2.1.简介2.1.1.问题分析2.1.2.什么是静态化2.1.3.如何实现静态化2.2.Thymeleaf实现静态化2.2.1.概念2.2.2.具体实现2.2.3.什么时候创建静态文件2.2.4.重启测试:2.3.nginx代理静态页面2.页面静态化2.1.简介2.1.1.问题分析现在,我们的页面是通过Thymeleaf模板引擎渲染后返回到...原创 2019-06-17 21:29:00 · 2180 阅读 · 0 评论 -
商城-商品详情及静态化-商品详情
商城-商品详情及静态化-商品详情1.商品详情1.1.Thymeleaf1.2.商品详情页服务1.2.1.创建module1.2.2.pom依赖1.2.3.编写启动类1.2.4.application.yml文件1.2.5.页面模板1.3.页面跳转1.3.1.修改页面跳转路径1.3.2.nginx反向代理1.3.3.编写跳转controller1.3.4.测试1.4.封装模型数据1.4.1.商品微服...原创 2019-06-17 21:26:40 · 526 阅读 · 0 评论 -
商城-搜索过滤-取消过滤项
商城-搜索过滤-取消过滤项6.取消过滤项6.取消过滤项我们能够看到,每个过滤项后面都有一个小叉,当点击后,应该取消对应条件的过滤。思路非常简单:给小叉绑定点击事件点击后把过滤项从search.filter中移除,页面会自动刷新,OK绑定点击事件:绑定点击事件时,把k传递过去,方便删除删除过滤项removeFilter(k){ this.search.filt...原创 2019-06-17 18:27:19 · 390 阅读 · 0 评论 -
商城-搜索过滤-页面展示选择的过滤项
商城-搜索过滤-页面展示选择的过滤项5.页面展示选择的过滤项5.1.商品分类面包屑5.1.1.提供查询分类接口5.1.2.页面展示面包屑5.2.其它过滤项5.3.隐藏已经选择的过滤项5.页面展示选择的过滤项5.1.商品分类面包屑当用户选择一个商品分类以后,我们应该在过滤模块的上方展示一个面包屑,把三级商品分类都显示出来。用户选择的商品分类就存放在search.filter中,但是里面只有...原创 2019-06-17 18:25:54 · 450 阅读 · 0 评论 -
商城-搜索过滤-过滤条件的筛选
商城-搜索过滤-过滤条件的筛选4.过滤条件的筛选4.1.保存过滤项4.1.1.定义属性4.1.2.绑定点击事件4.2.后台添加过滤条件4.2.1.拓展请求对象4.2.2.添加过滤条件4.3.页面测试4.过滤条件的筛选当我们点击页面的过滤项,要做哪些事情?把过滤条件保存在search对象中(watch监控到search变化后就会发送到后台)在页面顶部展示已选择的过滤项把商品分类展示到顶部...原创 2019-06-17 18:22:27 · 833 阅读 · 0 评论 -
商城-用户注册-发送短信功能
商城-用户注册-数据验证功能5.发送短信功能5.1.接口说明5.2.Redis5.2.1.安装5.2.2.Spring Data Redis5.2.3.RedisTemplate基本操作5.2.4.StringRedisTemplate5.2.5.测试5.3.controller5.4.service5.5.测试5.发送短信功能短信微服务已经准备好,我们就可以继续编写用户中心接口了。5.1....原创 2019-06-18 11:58:31 · 372 阅读 · 0 评论 -
商城-用户注册-注册功能
商城-用户注册-注册功能6.注册功能6.1.接口说明6.2.controller6.3.service6.4.测试6.5.服务端数据校验6.5.1.什么是Hibernate Validator6.5.2.Bean校验的注解6.5.3.给User添加校验6.5.4.在controller上进行控制6.5.5.测试6.注册功能6.1.接口说明6.2.controller/** * 注册 ...原创 2019-06-18 12:04:22 · 1007 阅读 · 0 评论 -
商城-用户注册-根据用户名和密码查询用户
商城-用户注册-根据用户名和密码查询用户7.根据用户名和密码查询用户7.1.接口说明功能说明接口路径参数说明:返回结果:7.2.controller7.3.service7.4.测试8.在注册页进行测试7.根据用户名和密码查询用户7.1.接口说明功能说明查询功能,根据参数中的用户名和密码查询指定用户接口路径GET /query参数说明:form表单格式参数说明是否...原创 2019-06-18 12:05:44 · 1656 阅读 · 0 评论 -
用docker部署FastDFS(分布式文件系统)
用docker部署FastDFS[分布式文件系统]关闭防火墙步骤1步骤2步骤3下载FastDFS文件系统的docker镜像查询镜像安装镜像使用docker镜像构建tracker容器创建tracker容器查看Tracker端口构建storage容器进行服务的配置配置fdfs_conf目录下的storage.conf重新启动storage容器查看tracker容器和storage容器的关联在docke...原创 2019-06-26 03:45:58 · 1247 阅读 · 0 评论 -
商城-下单-微信支付
商城-下单-微信支付3.微信支付3.1.介绍3.2.开发流程3.3.生成二维码3.3.1.生成预交易链接3.3.2.生成二维码3.4.付款状态查询3.4.1.页面循环查询支付状态3.4.2.付款成功页面3.微信支付3.1.介绍微信支付官方文档:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2F我们选择开发文...原创 2019-06-18 13:05:07 · 1730 阅读 · 0 评论 -
商城-下单-订单结算页
商城-购物车-订单结算页2.订单结算页2.1.页面跳转2.2.收货人信息(作业)2.3.支付方式2.4.商品列表2.4.1.购物车信息获取2.4.2.页面渲染2.5.总金额2.6.提交订单2.6.1.页面提交2.6.2.精度损失问题2.订单结算页2.1.页面跳转在购物车页面的最下方,有一个去结算按钮:当点击结算,我们应该跳转到订单结算页,即:getOrderInfo.html查看购物...原创 2019-06-18 13:02:01 · 13742 阅读 · 1 评论 -
商城-购物车-登录后购物车合并
商城-购物车-登录后购物车合并5.登录后购物车合并5.登录后购物车合并当跳转到购物车页面,查询购物车列表前,需要判断用户登录状态,如果登录:首先检查用户的LocalStorage中是否有购物车信息,如果有,则提交到后台保存,清空LocalStorage如果未登录,直接查询即可...原创 2019-06-18 12:51:28 · 1652 阅读 · 0 评论 -
商城-购物车-已登录购物车
商城-购物车-已登录购物车4.已登录购物车4.1.添加登录校验4.1.1.引入JWT相关依赖4.1.2.配置公钥4.1.3.加载公钥4.1.4.编写拦截器4.1.5.配置过滤器4.2.后台购物车设计4.3.添加商品到购物车4.3.1.页面发起请求4.3.2.编写controller4.3.3.CartService4.3.4.GoodClient4.3.5.结果4.4.查询购物车4.4.1.页面发...原创 2019-06-18 12:50:39 · 832 阅读 · 0 评论 -
商城-购物车-未登录购物车
商城-购物车-未登录购物车3.未登录购物车3.1.准备3.1.1购物车的数据结构3.1.2.web本地存储什么是web本地存储?LocalStorage的用法3.1.3.获取num3.2.添加购物车3.2.1.点击事件3.2.2.获取数量,添加购物车3.3.查询购物车3.3.1.校验用户登录3.3.2.查询购物车3.5.2.渲染到页面3.6.修改数量3.7.删除商品3.8.选中商品3.8.1.选中...原创 2019-06-18 12:46:39 · 1594 阅读 · 0 评论 -
商城-购物车-购物车功能分析
商城-购物车-搭建购物车服务2.购物车功能分析2.1.需求2.2.流程图2.购物车功能分析2.1.需求需求描述:用户可以在登录状态下将商品添加到购物车放入数据库放入redis(采用)用户可以在未登录状态下将商品添加到购物车放入localstorage用户可以使用购物车一起结算下单用户可以查询自己的购物车用户可以在购物车中修改购买商品的数量。用户可以在购物车中删...原创 2019-06-18 12:41:16 · 4821 阅读 · 0 评论 -
商城-购物车-搭建购物车服务
商城-购物车-搭建购物车服务1.搭建购物车服务1.1.创建module1.2.pom依赖1.3.配置文件1.4.启动类1.搭建购物车服务1.1.创建module1.2.pom依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...原创 2019-06-18 12:40:07 · 514 阅读 · 0 评论 -
商城-授权中心-网关的登录拦截器
商城-授权中心-网关的登录拦截器4.网关的登录拦截器4.1.引入jwt相关配置4.2.编写过滤器逻辑4.3.白名单4.网关的登录拦截器接下来,我们在Zuul编写拦截器,对用户的token进行校验,如果发现未登录,则进行拦截。4.1.引入jwt相关配置既然是登录拦截,一定是前置拦截器,我们在leyou-gateway中定义。首先在pom.xml中,引入所需要的依赖:<depende...原创 2019-06-18 12:38:04 · 1588 阅读 · 0 评论 -
商城-授权中心-首页判断登录状态
商城-授权中心-首页判断登录状态3.首页判断登录状态3.1.页面JS代码3.2.后台实现校验用户接口3.3.测试3.4.刷新token3.首页判断登录状态虽然cookie已经成功写入,但是我们首页的顶部,登录状态依然没能判断出用户信息:这里需要向后台发起请求,根据cookie获取当前用户的信息。我们先看页面实现3.1.页面JS代码页面的顶部已经被我们封装为一个独立的Vue组件,在/j...原创 2019-06-18 12:35:42 · 1043 阅读 · 0 评论 -
商城-授权中心-授权中心
商城-授权中心-授权中心2.授权中心2.1.创建授权中心2.1.1.创建父module2.1.2.通用module2.1.3.授权服务2.2.JWT工具类2.3.测试工具类2.3.编写登录授权接口2.3.1.生成公钥和私钥2.3.2.Controller2.3.3.CookieUtils2.3.3.UserClient2.3.4.Service2.3.5.项目结构2.3.6.测试2.4.登录页面2...原创 2019-06-18 12:31:06 · 1180 阅读 · 0 评论 -
商城-授权中心-无状态登录原理
商城-授权中心-无状态登录原理1.无状态登录原理1.1.什么是有状态?1.2.什么是无状态1.3.如何实现无状态1.4.JWT1.4.1.简介1.4.2.数据格式1.4.3.JWT交互流程1.4.4.非对称加密1.5.结合Zuul的鉴权流程1.5.1.没有RSA加密时1.5.2.结合RSA的鉴权1.无状态登录原理1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别...原创 2019-06-18 12:22:56 · 509 阅读 · 0 评论 -
商城-搜索过滤-生成规格参数过滤
商城-搜索过滤-生成规格参数过滤3.生成规格参数过滤3.1.谋而后动3.3.实战3.3.1.扩展返回结果3.3.2.判断是否需要聚合3.3.3.获取需要聚合的规格参数3.3.4.聚合规格参数3.3.5.解析聚合结果3.3.6.最终的完整代码3.3.7.测试结果3.4.页面渲染3.4.1.渲染规格过滤条件3.4.2.展示或收起过滤条件3.生成规格参数过滤3.1.谋而后动有四个问题需要先思考清楚...原创 2019-06-17 18:17:34 · 353 阅读 · 0 评论 -
商城-搜索过滤-生成分类和品牌过滤
商城-搜索过滤-生成分类和品牌过滤2.生成分类和品牌过滤2.1.扩展返回的结果2.2.聚合商品分类和品牌2.2.1.提供查询品牌接口2.2.2.搜索功能改造2.3.页面渲染数据2.3.1.过滤参数数据结构2.3.2.页面渲染数据2.生成分类和品牌过滤先来看分类和品牌。在我们的数据库中已经有所有的分类和品牌信息。在这个位置,是不是把所有的分类和品牌信息都展示出来呢?显然不是,用户搜索的条件会对...原创 2019-06-17 18:14:57 · 321 阅读 · 0 评论 -
商城-搜索过滤-过滤功能分析
商城-搜索过滤-过滤功能分析1.过滤功能分析1.过滤功能分析首先看下页面要实现的效果:整个过滤部分有3块:顶部的导航,已经选择的过滤条件展示:商品分类面包屑,根据用户选择的商品分类变化其它已选择过滤参数过滤条件展示,又包含3部分商品分类展示品牌展示其它规格参数展开或收起的过滤条件的按钮顶部导航要展示的内容跟用户选择的过滤条件有关。比如用户选择了某个商品...原创 2019-06-17 18:12:22 · 299 阅读 · 0 评论 -
商城-商品管理-商品修改
商城-商品管理-商品修改2.商品修改2.1.编辑按钮点击事件2.2.查询SpuDetail接口2.3.查询sku2.4.页面回显2.5.页面提交2.6.后台实现2.6.1.Controller2.6.2.Service2.6.3.mapper2.7.其它2.商品修改2.1.编辑按钮点击事件在商品详情页,每一个商品后面,都会有一个编辑按钮:点击这个按钮,就会打开一个商品编辑窗口,我们看下它...原创 2019-06-17 16:02:44 · 1894 阅读 · 0 评论 -
商城-商品管理-商品新增v2
商城-商品管理-商品新增1.商品新增1.1.弹窗事件1.2.基本数据1.2.1.商品分类1.2.2.品牌选择1.2.2.1页面1.2.2.2后台接口1.2.3.其它文本框1.3.商品描述1.3.1.什么是富文本编辑器1.3.2.Vue-Quill-Editor1.3.3.使用指南1.3.4.自定义的富文本编辑器1.3.5.效果1.4.商品规格参数改造查询规格参数接口1.5.SKU信息1.6.页面表...原创 2019-06-17 15:50:31 · 1073 阅读 · 0 评论 -
商城-商品管理-商品查询
商城-商品管理-商品查询4.商品查询4.1.效果预览4.2.从0开始4.3.页面实现4.3.1.页面基本表格4.3.2.上下架状态按钮4.4.后台提供接口4.4.1.实体类4.4.2.controller4.4.3.service4.4.4.mapper4.4.5.Category中拓展查询名称的功能4.5.测试4.商品查询4.1.效果预览接下来,我们实现商品管理的页面,先看下我们要实现的效...原创 2019-06-15 00:25:27 · 1127 阅读 · 0 评论 -
商城-商品规格管理-SPU和SKU数据结构
商城-商品规格管理-SPU和SKU数据结构3.SPU和SKU数据结构3.1.SPU表3.1.1.表结构3.1.2.spu中的规格参数3.1.2.1.specifications字段3.1.2.2.spec_template字段3.2.SKU表3.2.1.表结构3.2.2.sku中的特有规格参数3.2.2.1.indexes字段3.2.2.2.own_spec字段3.3.导入图片信息3.SPU和S...原创 2019-06-14 23:58:25 · 5586 阅读 · 2 评论 -
商城-商品规格管理-商品规格参数管理
商城-商品规格管理-商品规格参数管理2.商品规格参数管理2.1.页面实现2.1.1.整体布局2.1.2.data中定义的属性2.2.规格参数的查询2.2.1.树节点的点击事件2.2.2.后端代码2.3.增、删、改(作业)2.商品规格参数管理2.1.页面实现页面比较复杂,这里就不带着大家去实现完整页面效果了,我们一起分析一下即可。2.1.1.整体布局打开规格参数页面,看到如下内容:因为...原创 2019-06-14 23:55:40 · 3200 阅读 · 1 评论 -
商城-商品规格管理-商品规格数据结构
商城-商品规格管理-商品规格数据结构1.商品规格数据结构1.1.SPU和SKU1.2.数据库设计分析1.2.1.思考并发现问题1.2.2.分析规格参数1.2.3.SKU的特有属性1.2.4.搜索属性1.3.规格参数表1.3.1.表结构1.3.2.json结构分析1.商品规格数据结构乐优商城是一个全品类的电商网站,因此商品的种类繁多,每一件商品,其属性又有差别。为了更准确描述商品及细分差别,抽象...原创 2019-06-14 17:10:44 · 4244 阅读 · 0 评论 -
商城-修改品牌
商城-修改品牌4.修改品牌4.1.点击编辑出现弹窗4.2.回显数据4.3.商品分类回显4.3.1.后台提供接口controller4.3.2.前台查询分类并渲染4.3.3.新增窗口数据干扰4.3.4.提交表单时判断是新增还是修改4.修改品牌修改的难点在于回显。当我们点击编辑按钮,希望弹出窗口的同时,看到原来的数据:4.1.点击编辑出现弹窗这个比较简单,修改show属性为true即可实现...原创 2019-06-14 14:06:25 · 266 阅读 · 0 评论 -
商城-FastDFS
商城-FastDFS3.FastDFS3.1.什么是分布式文件系统3.2.什么是FastDFS3.3.FastDFS的架构3.3.1.架构图3.3.2.上传和下载流程3.4.安装和使用3.5.java客户端3.5.1.引入依赖3.5.2.引入配置类3.5.3.编写FastDFS属性3.5.4.测试3.5.5.改造上传逻辑3.5.6.测试3.6.页面测试上传3.FastDFS3.1.什么是分布式...原创 2019-06-14 13:56:03 · 186 阅读 · 0 评论 -
商城-实现图片上传
商城-实现图片上传2.实现图片上传2.1.搭建项目2.1.1.创建module2.1.2.依赖2.1.3.编写配置2.1.4.启动类2.2.编写上传功能2.2.1.controller2.2.2.service2.2.3.测试上传2.2.4.绕过网关2.2.4.1.Zuul的路由过滤2.2.4.2.Nginx的rewrite指令2.2.5.跨域问题2.2.6.之前上传的缺陷2.实现图片上传刚才...原创 2019-06-14 13:51:40 · 882 阅读 · 0 评论 -
商城-品牌的新增
商城-品牌的新增1.品牌的新增1.1.页面实现1.1.1.初步编写弹窗1.1.2.实现弹窗的可见和关闭1.1.3.新增品牌的表单页1.1.4.编写表单1.1.4.1.表单1.1.4.2.文本框1.1.4.3.级联下拉选框1.1.4.4.文件上传项1.1.4.5.按钮1.1.5.表单校验1.1.5.1.校验规则1.1.5.2.项目中代码1.1.6.表单提交1.2.后台实现新增1.2.1.contro...原创 2019-06-14 13:22:14 · 249 阅读 · 0 评论