开源商城项目 MallService-SSM (SpringSpringMVCMybatisMySQLVueNuxt) 前后端分离
Posted wanluN1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源商城项目 MallService-SSM (SpringSpringMVCMybatisMySQLVueNuxt) 前后端分离相关的知识,希望对你有一定的参考价值。
MallService-SSM
在线商城后端服务
Github »
项目简介
项目开始是为完成大学课程作业,项目也定会存在许多的问题。
我们欢迎大家能够指正。 欢迎Fork、 PullRequest🎉
项目目录结构
├─src
├─main
│ ├─java
│ │ └─site
│ │ └─linkway
│ │ ├─core
│ │ │ ├─controller(控制器)
│ │ │ ├─entity (实体类)
│ │ │ │ ├─bo (business object 业务对象)
│ │ │ │ ├─po (persistant object 持久对象)
│ │ │ │ └─vo (value object值对象)
│ │ │ ├─filter (拦截器)
│ │ │ ├─mapper (mapper类)
│ │ │ └─service (服务类)
│ │ └─utils (常用工具类)
│ ├─resources
│ │ ├─mapper(mapper 相关xml文件)
│ │ ├─mybean (自定义bean)
│ │ ├─applicationContext.xml (Spring bean 入口)
│ │ ├─database.properties (数据库信息配置)
│ │ ├─log4j.properties (Log4j配置)
│ │ ├─mybatis-config.xml (mybatis配置)
│ │ ├─spring-mvc.xml (控制层配置)
│ │ ├─spring-mybatis.xml (spring mybatis整合配置)
│ │ ├─spring-service.xml (服务层配置)
│ │ └─sql (数据库初始化SQL)
│ └─webapp (前端项目)
│ └─WEB-INF
相关技术
Spring、SpringMVC、Mybatis 、mysql
Docker 部署
docker run -it -p 1234:8080 \\
-e CATALINA_OPTS="-Djdbc.url=jdbc:mysql://__DB_SERVER__:3306/__DB_NAME__ -Djdbc.username=__USERNAME__ -Djdbc.password=__PASSWORD__" \\
--name mallservice \\
gaowanlu/mallservice
其中,1234
为监听端口号,__DB_SERVER__
/ __DB_NAME__
/ __USERNAME__
/ __PASSWORD__
为数据库连接配置。
版本
version | date | changed content |
---|---|---|
联系我们
Email heizuboriyo@gmail.com
Address 桂林电子科技大学
MallService API 文档
(最新版本/草稿见此处)
返回 JSON 规范
操作成功时:
"result": true,
// ...其它信息...
操作失败时:
"result": false,
"message": "(错误消息)"
请求参数约定
- 给出参数则使用
application/x-www-form-urlencoded
- 输入请求体为请求数据类型
application/json
- 带有上传文件的请求
multipart/form-data
身份安全
登录
POST /api/identitySecurity/login
- 参数
id, password
(id 暂时仅支持用户邮箱) - 注 返回带有
isAdmin:boolean
字段
退出登录
POST /api/identitySecurity/logout
注册账号
POST /api/identitySecurity/register
- 参数
password, emailCode
发送验证码
POST /api/identitySecurity/sendEmailCode
- 参数
email
修改密码
POST /api/identitySecurity/changePassword
- 参数
newPassword, emailCode
个人信息
获得个人信息
GET /api/user/myData
- 返回格式 PersonalData
更新性别或者昵称
PUT /api/user/myData
- 参数
sex, name
更新头像
PUT /api/user/avatar
- 表单文件属性
"file": file
购物车
添加购物车条项
POST /api/user/cart
- 参数
goodId, num
删除购物车条项
DELETE /api/user/cart
- 参数
cartId
获得购物车全部条项
GET /api/user/cart
- 返回格式 CartList
购物车条项更新
注:更新num字段
PUT /api/user/cart
- 请求格式 CartItem
购物车覆盖
PUT /api/user/cart/cover
收货地址
获得全部存储在平台的收货地址
GET /api/user/addresses
- 返回格式 AddressList
删除地址
DELETE /api/user/addresses
- 参数
addressId
- 返回格式 AddressList
添加地址
POST /api/user/addresses
- 参数
phone, name, address
收货地址更新
PUT /api/user/addresses
- 参数
addressId, phone, name, address
图片分发
获得指定图片
GET /api/img?imgId=
商品浏览
商品推荐列表(暂为随机检索出20个)
GET /api/commodity/recommendation
- 返回格式 CommodityTipList
浏览商品
POST /api/commodity/detail
- 参数
goodId:string
- 返回格式 Commodity
商品类型列表
GET /api/commodity/typeList
- 无参数 暂不页 总量有限
- 返回格式 CommodityTypeList
商品评论
现存问题
- 没有买过的东西也可以评论
- 一个商品可以有多个同一个用户的一级评论
- 暂时只是简单的实现了评论的功能、能像一个小小的社交功能
根据商品id获得评论列表
POST /api/comment/fList
- 参数
goodId:string,pageSize:number,pageNow:number
- 返回格式 CommentList
根据父评论id请求子评论列表
POST /api/comment/sList
- 参数
fCommentId:string,pageSize:number,pageNow:number
- 返回格式 CommentList
根据商品id添加父评论
POST /api/comment/add/f
- 参数
content:string,goodId:string,rate:number(1~5)
- 返回格式
result:boolean,message:(fCommentId)
- 注:利用message将新的父评论id捎带 如需要改就改
根据父评论id增加子评论
POST /api/comment/add/s
- 参数
content:string,fCommentId:string
- 返回格式
result:boolean,message:(sCommentId)
删除父评论
DELETE /api/comment/delete/f
- 参数
fCommentId:string
删除子评论
DELETE /api/comment/delete/s
- 参数
sCommentId:string
订单-用户
增加新订单
POST /api/user/order
- 请求格式 PostOrder
查看已有订单详情
POST /order/detail
- 请求参数
orderId
- 返回格式 OrderItem
更新订单状态
POST /api/user/order/update
- 请求参数
orderId,status
- 参数详情 status in (‘已签收’,‘退款中’)
获得用户订单列表
GET /api/user/order
- 返回格式 OrderList
搜索
商品搜索
POST /api/search/commodity
-
请求格式 PostSearch
-
注:可进行组合查询,当字符串为
''
,数字为0
时则代表只是用此限制
用户管理
充值 (提供ID与金额)
POST /api/admin/recharge
注:提供用户邮箱与金额进行余额增减(主要为了生产模拟)
参数 email:string,amount:number
数据类型
返回
PersonalData
/*个人信息*/
interface PersonalData
userId: string;
name: string;
sex: string;
profilePhotoURL: string;
money: number;
email: string;
CartItem
/*购物车条项*/
interface CartItem
cartId: string;
goodId: string;
userId: string;
num: number;
price:number;
name:string;
profile:string;
stock:number;
soldSum:number;
goodType:string;
goodTypeId:number;
imgsURL:string[] //商品相关图片
CartList
/*购物车列表*/
interface CartList
result: boolean;
carts: CartItem[];
Address
/*收货地址*/
interface Address
addressId: string;
userId: string;
phone: string;
address: string;
name: string;
AddressList
/*收货地址列表*/
interface AddressList
result:boolean;
addresses:Address[];
Commodity
/*商品*/
interface Commodity
goodType:string;
goodTypeId:number;
name:string;
profile:string;
price:number;
goodId:string;
stock:number;
soldSum:number;
onSale:number;//0 or 1
imgsURL:string[];
detailsImg:string;//商品详情图片URL
CommodityTipList
/*商品推荐列表*/
interface CommodityTipList
result:boolean;
commodities:Commodity[]
CommentList
/*评论列表*/
interface CommentList
result:boolean;
comments:Comment[];//评论列表
pageNow:number;//现在所在页号
pageSize:number;//每页得的大小
pageCount:number;//总共页数
Comment
/*评论*/
interface Comment
commentId:string;//评论id
content:string;//评论文字内容
userId:string;//用户id
userName:string;//用户昵称
avatarURL:string;//用户头像URL
time:string;//评论发布时间
rate:number;//(注:子评论没有rate,但此字段返回至客户端)
childCount:number;//此条评论子评论数量
OrderItem
/*订单项*/
interface OrderItem
orderGoods:OrderItemGood[];//订单商品
order:Order;
OrderItemGood
/*订单商品*/
interface OrderItemGood
num:number;
goodId:string;
price:double;
name:string;
profile:string;//商品描述
imgsURL:string[];
Order
/*订单*/
interface Order
orderId:string;
userId:string;
status:string;//'待付款','待发货','已发货','已签收','退款中'
phone:string;
time:string;//format YYYY-MM-DD HH:MM:SS
address:string;
name:string;
logisticsNumber:string;
logisticsName:string;
priceCount:double;
OrderList
/*订单列表*/
interface OrderList
orderItems:OrderItem[];
pageNow:number;
pageSize:number;
pageCount:number;
CommoditySearchResult
/*商品搜索结果*/
interface CommoditySearchResult
commodities:Commodity[];
pageCount:number; //总页数
pageNow:number;//现在所在页号
pageSize:number;//每页得的大小
pageCount:number;//总共页数
CommodityTypeList
/*商品类型列表*/
interface CommodityTypeList
types:CommodityType[];
/*商品类型*/
interface CommodityType
goodTypeId:number;
name:string;
请求
PostOrder
/*提交订单*/
interface PostOrder
goods:OrderGoodItem[];
addressId:string;
OrderGoodItem
/*提交订单商品项*/
interface OrderGoodItem
goodId:string;
num:number;
PostSearch
/*提交搜索
注意事项:number:0 string:'' 则代表不使用此属性
*/
interface PostSearch
keyword:string;//商品名称关键词
searchType:string;//类型名称
price:MinMax;//价格区间
pageNow:number;//现在页码1~n
pageSize:number;//每页大小
goodId:string;//商品id
interface MinMax
min:number;//最小
max:number;//最大
PostCommodityType
interface PostCommodityType
goodTypeId:number;
name:string;
operator:number;//0 更新操作 1 插入操作
PostCart
interface PostCart
goodId:string;
num:number;
管理端
商品管理
商品搜索以及获取列表
- 请见商品搜索模块
获取类型列表
请见商品浏览模块
更新类型列表
- 请求格式 PostCommodityType
注:会改变原来此类别的商品的类别 - 返回格式
当新增时,利用message:string
捎带新的goodtypeId,注意要parseInt()
新增商品
格式 multipart/form-data
price:价格 number
name:名称 string
profile:简介 string
stock:库存量 number
goodTypeId:商品类型号 number (可能需要多个、暂为其指定一个类型)
onSale:是否进行上架 number(0|1)
file:string[] 已经上传的图片的imgId数组序列 可为空
detailsImg:File 可为空
更新商品属性
POST /api/admin/commodity/update
goodId:商品号 string
price:价格 number
name:名称 string
profile:简介 string
stock:库存量 number
goodTypeId:商品类型号 number (可能需要多个、暂为其指定一个类型)
onSale:是否进行上架 number(0|1)
商品图片删除
POST /api/admin/commodity/img/delete
参数 imgId:string
追加商品图片
POST /api/admin/commodity/img/add
参数 goodId:string,file:File[]
订单
获取订单列表(订单搜索)
POST /api/admin/order/search
- 提交格式
/*订单搜索、string为'' 时代表不适用此属性*/
interface PostOrderSearch
orderId:string;//订单号
email:string;//订单所属者email
status:string;//订单状态
time:DateMinMax;//订单产生时间区间
pageSize:number;//每页多少个 1~20
pageNow:number;//现在所在页码 1~
/*想要其不适用则放开区间例如2001-12-21 ~ 未来时间*/
interface DateMinMax
min:Date;
max:Date;//Date format pattern = "YYYY-MM-DD HH:MM:SS"
-
返回格式
发货
POST /api/admin/order/ship
修改物流信息同时更改发货状态
参数 orderId:string,logisticsNumber:string,logisticsName:string
同意退款
POST /api/admin/order/refund
由退款中状态改为已结束、并将订单金额退还至用户(可能还会存在商品库存量问题)
参数 orderId:string
更新商品详情图片
POST /api/admin/commodity/detailsImg
参数 goodId:string,detailsImg:File
图片上传
POST /api/admin/img/upload
- 参数
file:File[]
- 返回格式
"result": true,
"imgId": [
"d76647d277ea4073acc8ebca0aa69040",
"d0a37861bc6d4eb6827ea6df7fb52ef0"
],
"imgURL": [
"/api/img?imgId=d76647d277ea4073acc8ebca0aa69040",
"/api/img?imgId=d0a37861bc6d4eb6827ea6df7fb52ef0"
]
以上是关于开源商城项目 MallService-SSM (SpringSpringMVCMybatisMySQLVueNuxt) 前后端分离的主要内容,如果未能解决你的问题,请参考以下文章
微信小程序商城开源项目,Weixin-App-Shop 1.0 版本正式发布!!!