电商项目9:新增商品

news2024/11/26 22:33:31

电商项目9:新增商品

  • 1、前端
    • 1.1、修复前端组件通信问题
    • 1.2、引入其他前端代码
    • 1.3、会员等级列表
    • 1.4、当前分类关联的所有品牌
  • 2、后端
    • 2.1、会员系统搭建(注册与发现)
    • 2.2、当前分类关联的所有品牌
    • 2.3、获取分类下所有分组&关联属性

1、前端

1.1、修复前端组件通信问题

在这里插入图片描述
这是组件通信没有引入依赖

npm i pubsub-js

在main.js中引入

import PubSub from 'pubsub-js'

然后挂载全局就可以使用了
在这里插入图片描述

解决了这个问题

1.2、引入其他前端代码

在这里插入图片描述

1.3、会员等级列表

在这里插入图片描述
前端是写好了。需要后端写完接口

1.4、当前分类关联的所有品牌

在这里插入图片描述
后端未编写接口

2、后端

2.1、会员系统搭建(注册与发现)

application.yml

  application:
    name: gulimall-member

修改数据库连接地址和注册到注册中心的实例名称

网关修改路由地址:

 - id: member_route
            #负载均衡到member服务
   uri: lb://gulimall-member
   predicates:
       - Path=/api/member/**
              #网关重写
   filters:
       - RewritePath=/api/(?<segment>.*),/$\{segment}

启动项目
就可以查询了
在这里插入图片描述

会员等级初始化sql语句

INSERT INTO `ums_member_level` VALUES (1, '普通会员', 0, 0, 299.0000, 10, 0, 0, 1, '初级会员');
INSERT INTO `ums_member_level` VALUES (2, '铜牌会员', 3000, 0, 279.0000, 30, 0, 1, 1, '铜牌会员');
INSERT INTO `ums_member_level` VALUES (3, '银牌会员', 5000, 0, 229.0000, 50, 0, 1, 1, '银牌会员');

在这里插入图片描述

2.2、当前分类关联的所有品牌

在这里插入图片描述
CategoryBrandRelationController

/**
     * 获取分类关联的品牌
     */
    @GetMapping("/brands/list")
    public R getBrandsList(@RequestParam("catId") Long catId){
        List<BrandVo> brandVoList = categoryBrandRelationService.getBrandsList(catId);
        List<BrandEntity> collect = brandVoList.stream().map(item -> {
            BrandEntity brandEntity = new BrandEntity();
            brandEntity.setBrandId(item.getBrandId());
            brandEntity.setName(item.getBrandName());
            return brandEntity;
        }).collect(Collectors.toList());
        return R.ok().put("data",collect);
    }

CategoryBrandRelationService

List<BrandVo> getBrandsList(Long catId);

CategoryBrandRelationServiceImpl

 @Override
    public List<BrandVo> getBrandsList(Long catId) {
        List<CategoryBrandRelationEntity> catelog = relationDao.selectList(new QueryWrapper<CategoryBrandRelationEntity>().eq("catelog_id", catId));
        List<BrandVo> collect = catelog.stream().map(item -> {
            BrandVo brandVo = new BrandVo();
            Long brandId = item.getBrandId();
            // 根据brandId查询商品信息
            BrandEntity brandEntity = brandDao.selectById(brandId);
            if (brandEntity == null) {
                brandVo.setBrandId(item.getBrandId());
                return brandVo;
            }
            brandVo.setBrandId(brandId);
            brandVo.setBrandName(brandEntity.getName());
            return brandVo;
        }).collect(Collectors.toList());
        return collect;
    }

在这里插入图片描述

2.3、获取分类下所有分组&关联属性

在这里插入图片描述
在这里插入图片描述

AttrGroupController

/**
     * 获取分类下所有分组&关联属性
     *
     * @param catelogId catelogId
     * @return R
     */
    // /product/attrgroup/{catelogId}/withattr
    @GetMapping("/{catelogId}/withattr")
    public R getAttrGroupAndAttr(@PathVariable Long catelogId){
        List<AttrGroupAndAttrVo> attrGroupAndAttrVos = attrGroupService.getAttrGroupAndAttr(catelogId);
        return R.ok().put("data",attrGroupAndAttrVos);
    }

AttrGroupService

List<AttrGroupAndAttrVo> getAttrGroupAndAttr(Long catelogId);

AttrGroupServiceImpl

 @Override
    public List<AttrGroupAndAttrVo> getAttrGroupAndAttr(Long catelogId) {
        // 1、查出当前分类下的所有属性分组
        List<AttrGroupEntity> groupEntities = this.baseMapper.selectList(new QueryWrapper<AttrGroupEntity>().eq("catelog_id", catelogId));
        // 2、查出每个属性分组的所有属性
        List<AttrGroupAndAttrVo> collect = groupEntities.stream().map(item -> {
            AttrGroupAndAttrVo attrGroupAndAttrVo = new AttrGroupAndAttrVo();
            BeanUtils.copyProperties(item,attrGroupAndAttrVo);
            Long attrGroupId = item.getAttrGroupId();
            List<AttrEntity> attrEntities = attrService.getRelationByAttrGroupId(attrGroupId);
            attrGroupAndAttrVo.setAttrs(attrEntities);
            return attrGroupAndAttrVo;
        }).collect(Collectors.toList());
        return collect;
    }

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/551531.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网上书店管理系统

系列文章 任务46 网上书店管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试添加新的图书购买信息显示所有图书购买信息按购买编号查找图…

软件测试—Selenium01

软件测试—Selenium01 &#x1f50e;自动化测试自动化测试的定义自动化测试的分类 &#x1f50e;SeleniumSelenium 是什么Selenium 的特点Selenium 的原理Selenium Java 的环境搭建Selenium 中常用的 APIBy.cssSelector()By.xpath()By.cssSelector() 与 By.xpath() 的比较 &am…

C++编译和链接

目录 一、源代码的组织 ①头文件&#xff08;*.h&#xff09; ②源文件&#xff08;*.cpp&#xff09; ③主程序&#xff08;main函数所在的程序&#xff09; ④从源代码到可执行文件&#xff0c;编译的过程有三大步骤&#xff1a; 1&#xff09;编译预处理 2&#xff09…

Python学习笔记——《吴恩达Machine Learning》线性回归例程

文章目录 案例背景线性回归&#xff08;Loss Regression&#xff09;梯度下降法&#xff08;批量梯度下降算法——batch gradient descent&#xff09;计算成本函数和梯度下降使用线性回归拟合训练数据模型预测 梯度下降效果可视化完整版demo 案例背景 详情参照吴恩达机器学习…

Linux/Windows安装Maven

一、Linux部署Maven 注意&#xff1a;必须先安装jdk&#xff0c;maven与jdk&#xff08;java -version&#xff09;版本会有对应关系 版本对应&#xff08;必看&#xff01;&#xff09;&#xff1a;http://maven.apache.org/docs/history.html 官方tar包下载地址&#xff1a;h…

因为一个Bug,差点损失了100w

大家好&#xff0c;我是洋子 最近在做单接口的性能测试比较多&#xff0c;在压测过程发现了一个比较有意思的问题&#xff0c;拿出来和大家分享一下 背景是这样的&#xff0c;最近在搞线上的抽奖活动&#xff0c;压测的对象是一个抽奖接口&#xff0c;主要的逻辑见程序的流程…

Spring ioc容器

Spring ioc容器 导入 spring 容器包 使用 ioc 容器之前&#xff0c;需要先导入 Spring 的包 在 spring maven中下载 spring maven 网址:Maven Repository: spring (mvnrepository.com) 搜索 spring 找到 Spring Web MVC点击 spring-webmvc 进入 选择一个版本号点击&#x…

Ocean Optics USB2000光谱仪无法在Win10系统运行

1、问题描述 USB2000型光谱仪&#xff0c;由于生产年代过于久远&#xff0c;虽然能被Win10系统识别&#xff0c;但是驱动程序安装完成后依然报错&#xff0c; 提示&#xff1a;该设备无法启动。&#xff08;代码 10&#xff09; 请求USB BOS 描述符失败。 运行SpectraSuite软件…

ETLCloud社区版与Kettle对比分析

ETLCloud社区版本与Kettle社区版本都有什么优势和劣势? Pentaho Data Integration&#xff08;PDI&#xff09;&#xff0c;也称为Kettle&#xff0c;是一款开源的数据集成工具,国内有很多企业都选择kettle作为数据清洗工具。以下是kettle的主要特点和优势&#xff1a; 广泛的…

python 绘制箱型图一些技巧

引言 本篇是之前有一个需求&#xff0c;需要用python来画箱型图&#xff0c;但要求很多&#xff0c;所以我也不断再版&#xff0c;今天突然想起来这个东西可以总结一下&#xff0c;正好马上得思考下一步做啥了&#xff0c;有足够的空闲时间&#xff0c;所以准备把一些基础概念…

【笔试强训day48】顺时针打印矩阵、左右最值最大差

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: 笔试强训专栏 笔试强训 目录 文章目录 一、选择题 1.1 10.1.0.1/17的广播地址是&#xff08; &#xff09; 1.2 网络地址172.16.22.38/28 请写出此地址的子网ID以及广播地址&#xff0c;此地址所处子网…

[2019“好贷杯“风控能力挑战赛一等奖] 基于神经网络算法的A股市场多因子选股的研究

本论文为 “2019年中国高校风险管理与控制能力挑战赛” 实际参赛作品&#xff0c;获得一等奖。 本论文体现了较好的数学建模思想和写作&#xff0c;所以将论文和完整代码进行了开源&#xff0c;方便与大家交流。

NetSuite SuiteTax之中国影响

这篇是还账。3个月前林师傅给的一个题目&#xff0c;陆陆续续的学习&#xff0c;一直没有弄完&#xff0c;直到今朝。 SuiteTax是2018年GA的一个重大功能&#xff0c;是NetSuite面向国际市场的一个标志动作。它将过去以美国为中心的税务功能&#xff0c;转向为国际市场服务。只…

xhs-xs webmsxyw分析

近期又更新了&#xff0c;先是改了x-s生成&#xff0c;然后又加上了a1校验。 后面可能会全参校验&#xff0c;比如再加上gid、deviceId、profileData、x-s-common、smidV2之类。 估计以后不能写xhs了&#xff0c;大家且看且珍惜吧。之前相关的文章都被下架了 危&#xff01;…

C语言扫雷小游戏

扫雷小游戏 一&#xff0c;扫雷游戏的理解和整体思路1. 扫雷游戏的玩法2.写扫雷小游戏的整体思路 二&#xff0c;函数功能的实现模块1.宏定义2.打印菜单3.初始化雷盘4.打印雷盘5.布置雷6.玩家排雷6.1 显示该坐标有几个雷的函数6.2雷盘展开函数的实现 三.最终扫雷游戏的的实现1.…

AI绘画Stable Diffusion安装、使用教程 整合包下载

安装Stable Diffusion webui 效果图&#xff1a; 1.准备工作 在下载 AI 绘画工具前&#xff0c;电脑上需要提前下载一些运行的环境 1.下载python、git 首先本地机器最好是英伟达的 N 卡&#xff0c;并且至少需要 4GB 显存才能在本地运行&#xff0c;当然&#xff0c;A 卡也是…

微服务开发系列——第一篇:项目搭建(保姆级教程)

总概 A、技术栈 开发语言&#xff1a;Java 1.8数据库&#xff1a;MySQL、Redis、MongoDB、Elasticsearch微服务框架&#xff1a;Spring Cloud Alibaba微服务网关&#xff1a;Spring Cloud Gateway服务注册和配置中心&#xff1a;Nacos分布式事务&#xff1a;Seata链路追踪框架…

【CH32】| 00——开发环境搭建 | 软件安装 | 资料及工具下载

系列文章目录 TODO 文章目录 1. 简介2. 下载软件3. 安装4. 资料及工具下载4.1 芯片数据手册/参考手册4.2 评估(开发)板原理图/demo4.3 烧录软件4.3.1 isp串口一键下载4.3.2 WCH-LINK Utility烧录 4.4 WCH LINK相关资料/驱动安装4.4.1 WCH LINK相关资料4.4.2 WCH LINK驱动安装 5…

摆摊卖网红气球怎么样?

本章主要介绍一下最近网红气球&#xff1a; 最近看到很多摆摊的抖音视频&#xff0c;都在说卖气球很好&#xff0c;成本低&#xff0c;收益高&#xff0c;所以调研了一下&#xff0c;网红气球分好几种&#xff1a; a,飘空气球&#xff1b; b.手持网红气球 c.青蛙 首先介绍飘空…

初始python

初始python 缘由 ​ 对于python&#xff0c;相比大家并不陌生&#xff0c;Python是一种高级的、解释性编程语言&#xff0c;它具有简洁的语法和强大的内置函数&#xff0c;适用于广泛的应用领域&#xff0c;例如运维,Web开发&#xff0c;数据科学&#xff0c;人工智能等。Pyt…