谷粒商城踩坑之路!
爱吃小香葱
你的技术好强
展开
-
谷粒商城P173~P192【检索服务】
doing原创 2021-09-23 03:00:27 · 741 阅读 · 0 评论 -
谷粒商城P173【商城业务】【检索服务】~搭建页面环境
为search项目引入thymeleaf依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> .原创 2021-09-20 18:20:23 · 462 阅读 · 0 评论 -
缓存一致性与SpringCache
<dependency> <groupId>org.springframework.b oot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency>@Cachable默认的配置:@EnableConfigurationProperties(CacheProperties.class)@Configur...原创 2021-09-20 15:53:54 · 379 阅读 · 0 评论 -
Redisson分布式锁
读写锁信号量闭锁缓存一致性原创 2021-09-20 01:59:05 · 56 阅读 · 0 评论 -
redis高并发下缓存失效问题以及一个简单实现分布式锁的方法
缓存穿透缓存雪崩缓存击穿加锁解决缓存击穿单体应用,本地锁锁的时序问题应该避免前一个线程释放锁后还没将结果放进缓存其他线程就拿到锁并进行查库,保证数据库查到 @Override public Map<String, List<Catelog2Vo>> getCatalogJson() { //给缓存中放json字符串,拿出的字符串还能逆转成能用的对象类型【序列化和反序列化】 //加入缓存逻辑,缓存中存的是json原创 2021-09-19 21:49:07 · 183 阅读 · 0 评论 -
谷粒商城P152使用缓存优化三级分类业务
@Override public Map<String, List<Catelog2Vo>> getCatalogJson() { //给缓存中放json字符串,拿出的字符串还能逆转成能用的对象类型【序列化和反序列化】 //加入缓存逻辑,缓存中存的是json字符串 //json跨语言跨平台 ValueOperations<String, String> ops = redisTempla...原创 2021-09-19 18:42:55 · 174 阅读 · 0 评论 -
谷粒商城P151 整合redis
1.引入redis依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>配置redis使用springboot自动配置好的StringRedisTemplate...原创 2021-09-19 17:36:33 · 143 阅读 · 0 评论 -
谷粒商场P150优化三级分类获取
改进 @Override public Map<String, List<Catelog2Vo>> getCatalogJson() { //将数据库的多次查询变为一次 List<CategoryEntity> selectList = baseMapper.selectList(null); // 查询所有一级分类 List<CategoryEntity> level1 =原创 2021-09-19 15:56:05 · 109 阅读 · 0 评论 -
谷粒商城P139~140 nginx配置反向代理、动静分离
首先明白nginx的作用反向代理、负载均衡改本机host文件,把域名和nginx服务器的ip地址对应起来,这样我们访问这个域名,浏览器就会向nginx服务器发起请求,我的nginx装在本机的docker里,所以host设置如下:nginx配置文件nginx.confgmall.conf...原创 2021-09-19 14:01:13 · 790 阅读 · 0 评论 -
谷粒商城P136整合thymleaf渲染二级三级分类数据
在商品服务中引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>把静态资源拉进项目资源文件夹首页效果:新建一个包叫做web,里面放用于页面跳原创 2021-09-19 13:11:55 · 824 阅读 · 0 评论 -
谷粒商城~商品上架
controller2.to3.Serviceimpl @Override public void up(Long spuId) { //1.查出当前spuid对应的所有sku信息、品牌的名字 List<SkuInfoEntity> skus = skuInfoService.getSkusBySpuId(spuId); //组装需要的数据 //查出当前sku的所有可以被用来检索的规格属性 ..原创 2021-09-18 16:51:00 · 100 阅读 · 0 评论 -
谷粒商城P128【商品上架】~上架功能分析及sku在es中的存储模型分析
点击上架按钮就把商品的有用信息保存在es中用于检索。哪些是游泳的呢?以京东为例用品牌来检索用分类来检索用价格检索、用销量检索用规格属性检索(规格属性是通过搜索出来的所有的sku动态计算出来的,保证点哪个属性下面都有对应的商品)用商品标题检索这样存在es中的信息大概是这些:{ "mappings": { "properties": { "skuId": { "type": "long" }, "spuId": {.原创 2021-09-17 23:36:28 · 292 阅读 · 0 评论 -
P125 springboot整合elasticsearch并测试索引操作
由于springboot之前规定了elasticsearch的版本,所以我们需要声明我们需要的版本配置类测试再测,ok原创 2021-09-15 19:43:40 · 80 阅读 · 0 评论 -
ElasticSearch检索QueryDSL
querymatchmatch_phare原创 2021-09-15 02:40:23 · 113 阅读 · 0 评论 -
Elasticsearch基本命令
_catRESTful索引文档(保存数据)PUT POST区别:POST可以不带id,会有默认id查询文档乐观锁更新文档三种方式:POST\PUT\POST带_update三种方式都能更新,只有第三种,如果要更新的数据和原来的一模一样,则不做任何操作。前两种则会叠加版本号对于大并发更新,不带 update; 对于大并发查询偶尔更新,带 update;对比更新,重新计算分配规则。删除文档、索引(没有删除类型的操作)删除文档删除索引批量操作..原创 2021-09-15 00:29:13 · 82 阅读 · 0 评论 -
谷粒商城P101 分布式基础篇总结
原创 2021-09-14 17:18:59 · 68 阅读 · 0 评论 -
谷粒商城P100【商品系统】-> 【商品维护】->【spu管理】~规格
点规格,404,前端改一下:/src/router/index.js 在mainRoutes->children【】里面加上:{ path: ‘/product-attrupdate’, component: _import(‘modules/product/attrupdate’), name: ‘attr-update’, meta: { title: ‘规格维护’, isTab: true } }...原创 2021-09-14 17:03:58 · 1238 阅读 · 6 评论 -
谷粒商城P99【库存系统】~采购完成
@Transactional @Override public void done(PurchaseDoneVo doneVo) { //1.改变采购项的状态 Boolean flag = true; List<PurchaseItemDoneVo> items = doneVo.getItems(); List<PurchaseDetailEntity> updates = new A...原创 2021-09-14 16:16:14 · 224 阅读 · 0 评论 -
谷粒商城P98【库存系统】~ 领取采购单
使用postman模拟采购人员手机app原创 2021-09-14 02:47:51 · 142 阅读 · 0 评论 -
谷粒商城P97【库存系统】->【采购单维护】~ 合并采购单
1.查询未领取的采购单2.合并采购单原创 2021-09-14 01:31:38 · 238 阅读 · 0 评论 -
谷粒商城P96【库存系统】~ 查询sku库存、创建采购需求
修改queryPage方法原创 2021-09-13 23:11:54 · 133 阅读 · 0 评论 -
谷粒商城P95【库存系统】~ 整合ware服务 获取仓库列表
把ware服务配置到注册中心配置网关路由编写获取仓库列表接口修改queryPage方法添加检索功能原创 2021-09-13 22:49:50 · 134 阅读 · 0 评论 -
谷粒商城P94【商品系统】-> 【商品维护】->【商品管理】~ SKU检索
这样进行测试 发现打开【商品管理】页面查不出任何数据了,对后端代码进行修改,修改查询条件上一集的SPU检索肯定也存在这种问题同时修改上一集中对SPU的检索条件测试发现报错,第一次报错:这个catelogId明显不是数据库里的字段,数据库里的字段都是把大写字母改成小写并且前面加_而且看那条报错的查询语句,明显也不对改过来 测试 nice...原创 2021-09-13 20:56:13 · 190 阅读 · 0 评论 -
谷粒商城P93【商品系统】-> 【商品维护】->【SPU管理】~ SPU检索
比原来的检索多了一些检索条件上图黄字不对 应该是位于ServiceImpl.class中baseMapper中是selectPage方法后端需要对日期数据格式化再返回给前端这样配置一下就可以将后端返回的所有jason数据中的日期进行格式化了测试:...原创 2021-09-13 19:46:19 · 217 阅读 · 0 评论 -
谷粒商城P91~92【商品系统】-> 【商品维护】->【发布商品】~ 保存商品信息功能调试修改
设置批量启动原创 2021-09-13 15:57:40 · 375 阅读 · 0 评论 -
谷粒商城P90【商品系统】-> 【商品维护】->【发布商品】~ 调用远程服务保存优惠等信息
保证远程调用的双方都在注册中心里调用者新建一个feign包里面放xxFeignService接口调用者在Application类上面标注@EnableFeignClients(basePackages = “xyz.guawaz.gmall.product.feign”)注解,basePackages属性是2.新建的包的路径@Autowired注入2.创建的服务接口微服务之间相互调用、传输数据,我们把数据封装成一个对象,转为json进行传递。这里封装的对象就是TO。在common项目里叫一个to.原创 2021-09-13 14:39:44 · 210 阅读 · 0 评论 -
谷粒商城P89【商品系统】-> 【商品维护】->【发布商品】~ 保存sku基本信息
@Transactional @Override public void saveSpuInfo(SpuSaveVo vo) { //1.保存spu基本信息 pms_spu_info //2.保存spu的描述图片 pms_spu_info_desc //3.保存spu的图片集 pms_spu_images //4.保存spu的规格参数 pms_product_attr_value //5.保存spu的积...原创 2021-09-13 03:11:01 · 103 阅读 · 0 评论 -
谷粒商城P88【商品系统】-> 【商品维护】->【发布商品】~ 保存spu基本信息
@Transactional @Override public void saveSpuInfo(SpuSaveVo vo) { //1.保存spu基本信息 pms_spu_info //2.保存spu的描述图片 pms_spu_info_desc //3.保存spu的图片集 pms_spu_images //4.保存spu的规格参数 pms_product_attr_value //5.保存spu的积...原创 2021-09-13 02:11:27 · 114 阅读 · 0 评论 -
谷粒商城P87【商品系统】-> 【商品维护】->【发布商品】~商品新增业务流程分析
把生成的vo稍作修改所有的double都改成BigDecimal数据库中的id字段都是Long类型的,所有vo中的id属性也要改成Long把get()和set()方法都删掉 使用Lombok的@Data注解修改完之后对照接口手册进行编码//1.保存spu基本信息 pms_spu_info//2.保存spu的描述图片 pms_spu_info_desc//3.保存spu的图片集 pms_spu_images//4.保存spu的规格参数 pms_product_attr_valu..原创 2021-09-13 00:39:32 · 141 阅读 · 1 评论 -
谷粒商城P86【商品系统】-> 【商品维护】->【发布商品】~ 商品新增vo抽取
原创 2021-09-12 23:17:13 · 310 阅读 · 0 评论 -
谷粒商城P85【商品系统】-> 【商品维护】->【发布商品】~ 获取三级分类下所有属性分组及其关联的属性
点击下一步会发送一个请求:vo:@Datapublic class AttrGroupWithAttrsVo { /** * 分组id */ private Long attrGroupId; /** * 组名 */ private String attrGroupName; /** * 排序 */ private Integer sort; /** * 描述 .原创 2021-09-12 18:55:37 · 448 阅读 · 0 评论 -
谷粒商城P84【商品系统】-> 【商品维护】->【发布商品】~ 获取分类关联的品牌接口
又是上来先报个错!TypeError: Cannot read property ‘publish‘ of undefined“报错问题解决搞定之后正常了可以安心对照接口文档写后端了不推荐service直接返回一个vo,有可能别的方法需要service返回整个Entity,所以我们就让service返回Entity,然后再controller里面把entity封装为前端需要的vo// 我们调用品牌的service来获取brandEntity//我们一般调用别的业务逻辑,就原创 2021-09-12 17:56:51 · 695 阅读 · 2 评论 -
谷粒商城P83 【商品系统】-> 【商品维护】->【发布商品】~ (【用户系统】->【会员等级】)
上来先来一个报错:报错原因:少PubSub相关依赖。解决~现在报的错是后端接口报错:需要对会员服务的这个接口编码首先要把会员服务注册进nacos注册中心(配置注册中心地址、应用名称、开启服务发现)然后在网关服务中为会员服务配置路由地址然后启动服务即可由于逆向工程已经将接口生成好了,把老师提供的前端代码导入前端工程测试会员服务可以使用了...原创 2021-09-12 16:27:30 · 449 阅读 · 0 评论 -
谷粒商城P82【平台属性】->【属性分组】新增分组与属性关联
对照接口文档编码测试:先增加一个规格参数(基本属)点击确定,不显示刚刚新增的那个规格参数,后端报了一个空指针异常,原因是在查找所有的规格参数时,有一个去获得属性分组名字的操作:而我们刚刚新增的那个规格参数它是没有分组的即我们往pms_attr_attrgroup_relation表里存了一个attr_group_id是null的记录,然后再这里又去取导致取了个null出来,导致了空指针异常。解决办法,首先这里不要取attr_group_id是null的其次往里存的时候如果规格参数没有分组.原创 2021-09-12 15:04:56 · 206 阅读 · 0 评论 -
谷粒商城P81【平台属性】->【属性分组】查询所有可以与当前分组关联的属性
1.上集编写的代码可以删除 关联属性,但是当前属性分组没有属性时,点这个关联,后端会报错, 解决,代码修改:对照接口编写 /** * 获取当前分组没有关联的所有属性 * //当前分组只能关联自己所属分类里面的属性 * //当前分组只能关联别的分组没有引用的属性 * * @param params * @param attrgroupId * @return */ @Override public Pa原创 2021-09-12 13:24:45 · 244 阅读 · 0 评论 -
谷粒商城P80【平台属性】->【属性分组】 查询分组关联的所有属性、删除关联
/** * 根据分组id查找关联的所有属性 * @param attrgroupId * @return */ @Override public List<AttrEntity> getRelationAttr(Long attrgroupId) { List<AttrAttrgroupRelationEntity> attrgroupRelationEntityList = ...原创 2021-09-12 01:22:37 · 175 阅读 · 0 评论 -
谷粒商城P79【平台属性】->【销售属性】查询、新增、删除、修改 (与基本属性公用接口,引入常量)
由于销售属性和基本属性(规格参数)都是存在pms_attr表里的,所以获取销售属性的方法可以借用之前写好的获取基本属性的方法:@Override public PageUtils queryBaseAttrPage(Map<String, Object> params, Long catelogId, String attrType) { QueryWrapper<AttrEntity> queryWrapper = //attrType是"ba.原创 2021-09-11 23:50:49 · 366 阅读 · 0 评论 -
谷粒商城P78【平台属性】->【规格参数】修改属性(先查询属性详情,再修改)
接口文档: @Override public AttrRespVo getAttrInfo(Long attrId) { AttrRespVo attrRespVo = new AttrRespVo(); AttrEntity attrEntity = this.getById(attrId); BeanUtils.copyProperties(attrEntity,attrRespVo);// attrRespVo.set原创 2021-09-11 19:40:04 · 281 阅读 · 0 评论 -
谷粒商城P77【平台属性】->【规格参数】列表
// GET /product/attr/base/list/{catelogId} @GetMapping("/base/list/{catelogId}") public R baseAttrList(@RequestParam Map<String,Object> params, @PathVariable("catelogId") Long catelogId ){ PageUtils pa.原创 2021-09-11 17:28:28 · 439 阅读 · 5 评论 -
谷粒商城P76为【平台属性】->【属性分组】页面的 -查询全部- 按钮增加模糊查询的功能;【平台属性】->【规格参数】新增规格参数,引入vo包
为【平台属性】->【属性分组】页面的 -查询全部- 按钮增加模糊查询的功能【平台属性】->【属性分组】 为每个分组关联属性要关联属性首先要录入一些属性,先编写【平台属性】->【规格参数】页面新增规格参数:保存成功是调用了逆向生成的接口,只修改了pms_attr这张表跟属性分组没有关联起来,也就是没修改pms_attr_attrgroup_relation这张表所以我们需要重写这个保存方法~而且前端发来的数据多了一个字段:attrGroupId想想我.原创 2021-09-11 15:16:07 · 303 阅读 · 0 评论