尚硅谷电商毕设项目

项目介绍:

用户通过浏览器登录,浏览商品,添加进购物车,购买功能

后台管理员登录,对用户进行增加修改删除,商品进行增加修改删除,订单进行增加修改删除

项目亮点:

技术栈全面,使用了微服务,中间件

 

 42个功能点表示差不多42套增删改查(实际上可能会多一些,可能需要写五六十套增删改查)

数据库E-R图

 总共11个服务,1个注册中心

 用户把需求提交给网关服务,网关服务去注册中心中查找它需要调用的服务(也就是说注册中心能够帮助查找需要调用哪个服务)

数据库:

用户实体类user:

user_id,user_name,password,user_phonenumber

地址实体类address:

id,linkman(联系人),phone,address,user_id

轮播图实体类carousel:

carousel_id  轮播图id,img_path  图片地址,describes 描述,protect_id轮播图对应的商品id,priority优先级

商品表product

product_id  product_name  category_id  product_title

 类别表category   就两个字段   category_id和category_name

网关服务

将网关服务注册到nacos里面

在网关服务中需要进行配置

首先配置注册中心所在的服务器的地址

当用户访问/user/**路径的时候,就会把请求转发给user-service这个服务

 同理,当用户访问/product/**路径的时候,就会把请求转发给product-service这个服务

总共网关服务为指定什么时候访问其他十个服务

# 配置网关
spring:
  cloud:
    gateway:
      routes:
        - id: user-service
          uri: lb://user-service
          predicates:
            - Path=/user/**  # 访问user路径转发用户服务
       
        - id: product-service # 此名称随意定义
          uri: lb://product-service #使用负载均衡,调用服务名,这是服务名
          predicates:
            - Path=/product/** # 访问product相关,转发到product服务
       
        # 静态资源对应的服务
        - id: static-service
          uri: lb://static-service #静态资源处理以及oss上传服务!
          predicates:
            - Path=/public/**
        
        - id: carousel-service  # 轮播图服务
          uri: lb://carousel-service #静态资源处理以及oss上传服务!
          predicates:
            - Path=/carousel/**
            
        - id: category-service  # 类别服务
          uri: lb://category-service
          predicates:
            - Path=/category/**
            
        - id: search-service  # 类别服务
          uri: lb://search-service
          predicates:
            - Path=/search/**
            
        - id: collect-service  # 收藏服务
          uri: lb://collect-service
          predicates:
            - Path=/collect/**
            
        - id: cart-service  # 购物车服务
          uri: lb://cart-service
          predicates:
            - Path=/cart/**
             
        - id: order-service  # 订单服务
          uri: lb://order-service
          predicates:
            - Path=/order/**
            
        - id: admin-service  # 订单服务
          uri: lb://admin-service
          predicates:
            - Path=/admin/**

通用服务common:将一些通用实体类(比如商品表对应的实体类)声明到这个服务当中

请求显示访问网关服务,然后访问后台管理服务,再访问商品服务,最后访问数据库

这样后台管理服务和商品服务里都有商品实体类,就出现了冗余,我们将通用的实体类声明到通用服务中

 将多个服务(两个及两个服务以上)需要的,写到通用服务里面

除了实体类还有一些util工具类,比如Md5工具类和R工具类

用户服务:登录,注册,账号检查(数据库中是否有这个账号),地址添加,地址删除,地址展示(查看)一共六个功能

这个服务用到两张表:用户表和地址表,这两张表放在user库里面

 在bootstrap.yml配置文件中配置本服务名称和nacos的地址

spring:
  application:
    name: user-service
  cloud:
    nacos:
      server-addr: 124.221.70.206:8848
server:
  port: 3001

在application.yml配置文件中:

首先配置mysql数据库的地址

实现第一个功能:账号检查(查询数据库中是否存在这个账号)

请求url:/user/check

请求方式:post

前端发送的请求的数据类型是:json 格式是username:“要检查的账号”,比如username:“张三”

返回结果是json:

# 分析返回结果,如何根据数据库查询,返回对应的结果! 
{
  "code": "001", //001就是成功 可用的含义   004账号不可用
  //004是错误码
  "msg": "用户名不存在,可以注册"   //返回的提示语  固定的格式! 后台和前端约定的格式!
}

实现第二个功能:用户注册

请求url:user/register

请求方式:post

前端发送的请求的数据类型是:json 格式是username:“root”,password:“123456”,userPhoneNumber:“123456789”

返回结果:

{
  code: '001', 成功 / 004  失败
  msg: '注册成功'
}

往user表中插入一行数据,存密码的时候加盐处理然后再用md5加密处理

实现第三个功能;用户登录

请求url:user/login

请求方式:post

前端发送的请求的数据类型是:json 格式是username:“root”,password:“123456”,

实现第四个功能:展示地址列表功能(查询address表中user_id字段等于登录用户的user_id的所有行)

请求url:user/address/list

传入的参数是user_id,返回的是一个地址的集合,这个1用户添加过的所有地址的集合

实现第五个功能:添加地址功能(往address表中添加一行数据)

请求url:user/address/save

传入的参数是address,linkman,phone, user_id(就是登录的用户的id)

实现第六个功能:删除地址功能(往address表中删除一行数据)

请求url:user/address/remove

传入的参数是id,不是user_id,而是address表中的id字段那个id

静态资源服static 这个服务包含两个功能,静态资源存储功能和静态资源外部访问功能

将静态资源存放在这个服务里面

轮播图服务carousel    这里需要实现两个功能,轮播图展示功能和商品详情功能

/carouse/list  展示优先级前六的六张图片

商品服务 product这里需要实现的功能比较多,热门商品功能,类别商品功能,全部商品功能,单类别商品功能,商品详情功能,商品图片详情功能,商品搜索功能

(1)热门商品功能:根据传入的类别名称,查七条热门商品出来,比如你传入的类别是手机,那么就展示手机的七条热门商品

效果如下:

 url:/product/promo

 在商品服务中调用byname方法就会调用category类别服务的promo方法

 

 查询多个类别的热门商品

 (2)商品详情和商品图片详情

商品详情:product/detail

商品图片详情    /product/pictures

类别服务 category

商品服务调用类别服务,传入category_name得到category_id,然后商品服务再去product数据库中查找这个category_id的七条热门数据出来

搜索服务search:使用elasticsearch技术实现商品搜索功能,相对mysql效率更高

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本资源为网传资源,为一套比较全的电商项目,系统架构采用SOA dubbo+EasyI实现,资源过大上传乃是下载链接,如有侵权请联系/留言,不多说下面上目录: 1.01 电商系统介绍2 f% Z/ C0 z% {1 l" q+ R 2.02 电商类型介绍6 r6 J' |. a2 F, t6 y; _. v# p2 J# ` 3.03 电商系统演示介绍! D$ C$ a1 K( q, c 4.04 电商数据结构介绍 5.05 电商数据结构设计器8 q9 r1 t3 Q( A# T" ?# P0 w+ n 6.06 电商数据准备 7.07 后台管理框架搭建 8.08 spu管理跳转 9.09 分类下拉列表的加载 10.10 商品发布的业务逻辑 11.1.建表 12.2.导数据 13.3.统一环境 14.4.生成js文件0 ~* z9 y2 K/ u; k+ N8 S# l* H: V! Y 15.01 商品spu参数提交- Q( T& z* U- B, ^: q) _ 16.02 商品spu图片上传服务介绍' ], M1 {0 w- x; Z' L. y 17.03 文件上传 工具 18.04 spu信息发布功能) G' E R g0 B( \* X + N& D7 p 19.05 spu动态图片追加% N0 H) M. o8 ~+ A 20.06 spu动态图片追加 21.07 属性功能管理介绍 22.08 属性功能管理介绍 23.09 属性保存功能跳转 24.10 属性双重集合参数3 Z4 [5 |4 D, k, M- G 25.11 属性保存功能业务层代码3 E: v6 D1 y: N* t5 X& Q, | 26.12 属性能业异步内嵌页8 t- |* |7 r# @ 27.13 属性集合查询) q& ~/ W) _9 c* r+ d: D5 Z% Y 28.01 属性的双重集合查询语句 29.02 sku功能介绍! m- K+ b0 K7 U* B! o* g3 S 30.03 sku功能跳转 31.04 客户端js函数中的el表达式 32.05 异步加载spu列表数据# M& R, \7 \3 y z- w+ a% }( g" ^ 33.06 用复选框操作属性列表显示 D+ k( T; J. J" `2 u 34.07 属性参数的提交) O0 o, s0 X \! P! @0 b& H 35.08 sku的数据结构说明8 m! S+ i9 k) W4 F# ?7 U 36.09 sku添加的业务实现1 |' b G% [! w/ J* C n; N 37.10 easyui的介绍 38.11 easyui的layout初始化介绍- v- C+ z# J) e- O* I! G 39.12 easyui手风琴控件介绍1 X/ X# \' k% x2 N 40.13 tree控件 41.14 tab控件: U, |: a! S7 ?: A$ t1 ?, G 42.1.properties% C2 @ d! }9 Z& ^2 c 43.2.主键9 D3 f9 W4 J* C" B4 M 44.3. 锚点. F( v2 C8 q- I# F+ G 45.01 数据表格的用法: e: S' z. T0 @8 T( `6 L 46.02 combobox的用法; _6 }2 p3 v: O7 l* } 47.03 嵌套布局的用法% L! U! L0 ]% B 48.04 easyui同步提交后跳转问题 49.05 乱码问题! {6 |( X* i) u; w! Y' B 50.06 首页初始化 51.07 用户登录方法 k, `) e/ R( F& m5 X 52.08 通过cookie取得用户的个性化信息, J7 ?0 ]' A) \6 E7 n5 K 53.09 通过客户端cookie取得用户的个性化信息0 i7 ], O/ }# H: t6 @: j) I+ i 54.10 用户个性化信息9 b% h5 O% p; I" P7 z 55.11 任务总结 56.01 商品检索介绍 57.02 商品分类检索介绍7 J% Q6 L& r: T6 N. H8 a- E6 Y% f" d" S4 I 58.03 商品分类检索sql: Z- N/ w: k; }2 b9 E( w8 I 59.04 商品分类检索列表 60.05 商品属性检索介绍 61.06 ajax字符串数组传参 62.07 ajax字符串json传参& i' g9 \7 ^! e7 _ 63.08 表单序列化传参 64.09 动态sql的设计方法" o# D. ?# R% _1 X 65.10 动态sql的实现 66.11 任务 67.1.项目演示 68.2.resu

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值