# 一帆海购网购物平台(nodejs版)
**Repository Path**: e4glet/yifanshopsys
## Basic Information
- **Project Name**: 一帆海购网购物平台(nodejs版)
- **Description**: 使用nodejs开发的电子商品平台
- **Primary Language**: NodeJS
- **License**: AFL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 7
- **Forks**: 2
- **Created**: 2017-11-27
- **Last Updated**: 2023-08-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 一帆海购网购物平台(nodejs版)
### 作者:eaglet liyaohua8468@gmail.com
### 天津市工业大学 计算机科学与软件学院 天津市大学软件学院
### 提示
本系统涉及内容已经发表过论文,本作者拥有著作权,请勿抄袭,谢谢。
只要不抄袭发表相关学术论文,欢迎借鉴与学习。
#### 目录
- 目录结构介绍
- 环境要求
- 初始化环境
- 开发框架
- 如何运行
#### 一、简介
本项目是使用nodejs开发的一套电子商务平台,主要用于2017年电子商务专业学生的教学工作,教授学生如何使用大前端技术nodejs设计开发电子商务网站。该实训项目系统荣获2017年天津市大学软件学院优秀实训项目三等奖。
#### 二、目录基本结构介绍
–bin 项目的底层核心,路由配置文件
-conf 配置目录(数据库连接信息和数据库工具模块)
-Controller 控制器目录
-DAL 数据层目录
-Model 对象模型
–node_modules 项目中依赖的包
–public 公共资源放的目录
–routes 学名 路由,里面放着一些路由文件
-util 封装的组件目录
–views 放着就是页面文件了
-server 模拟人工智能客服功能目录
–app.js 项目的入口文件。当然你也可以改成其他的名字。
–package.json 项目版本信息文件
-yifanshop.sql mysql导出文件
#### 三、环境要求
- nodejs 6.0以上版本
- 系统环境:windows/linux/Mac OS
- 开发工具:Sublime Text
- 数据库: MySql 5.6以上版本
#### 四、开发框架
本项目开发框架参考[https://gitee.com/e4glet/nodejs_http_framework](https://gitee.com/e4glet/nodejs_http_framework)
在此基础上进行了扩展与完善。
#### 五、存储过程
1. addOrder
```c
BEGIN
#创建订单存储过程
#定义接收数据的变量
DECLARE order_id int;
-- 初始化计数器为0
declare i int default 0;
declare count int default 0;
declare myrow int default 0;
-- 第一步添加订单数据并返回ID作为关系表的数据字段
insert INTO shop_order(order_code,customer_Id,address_Id,order_total)VALUES(unix_timestamp(NOW()),customer_Id,address_Id,order_total);
-- 将添加的订单ID赋值给变量
set order_id = (select @@IDENTITY);
-- select @@IDENTITY as orderid;
-- 添加订单附加信息表
INSERT INTO shop_orderinfo(order_Id,pay_type,check_invoices,message,express_fee,address_city,address_details,address_code,customer_name,customer_code,mobilephone,telphone)
SELECT order_id,pay_type,check_invoices,message,express_fee,address_city,address_details,address_code,customer_name,customer_code,mobilephone,telphone FROM shop_address WHERE shop_address.address_Id=address_Id and shop_address.customer_Id=customer_Id;
-- VALUES(order_id,pay_type,check_invoices,message,express_fee);
-- 循环插入订单ID与购买商品ID、数量关系数据
set count=1+(length(pdIdList) - length(replace(pdIdList,splitflg,'')));
while i3 ORDER BY so.order_time DESC;
END
```
4. moveGoodsFromCartToCollect
```c
BEGIN
#Routine body goes here...
-- 初始化计数器为0
declare i int default 0;
declare count int default 0;
DECLARE num int;
set count=1+(length(pdIdList) - length(replace(pdIdList,splitflg,'')));
while i0 THEN
-- 对应删除购物车里的产品数据
DELETE FROM shop_cart where customer_Id=customer_Id and product_Id=reverse(substring_index(reverse(substring_index(pdIdList,splitflg,i)),splitflg,1));
ELSE
-- 将对应产品id的商品移入收藏
insert into shop_collect(customer_Id,product_Id)values(customer_Id,reverse(substring_index(reverse(substring_index(pdIdList,splitflg,i)),splitflg,1)));
-- 对应删除购物车里的产品数据
DELETE FROM shop_cart where customer_Id=customer_Id and product_Id=reverse(substring_index(reverse(substring_index(pdIdList,splitflg,i)),splitflg,1));
END IF;
-- DELETE FROM shop_cart where customer_Id=2 and product_Id=9;
end while;
END
```
5. updateAddressDefault
```c
BEGIN
-- 默认取消当前用户所有的收货地址默认
UPDATE shop_address set isDefault=0 WHERE customer_Id=customer_Id;
-- 然后修改默认字段为提交的收货地址ID
UPDATE shop_address set isDefault=1 where customer_Id=customer_Id and address_Id=address_Id;
END
```
#### 如何运行

效果展示

## 小结
这个电子商务平台只是教学项目,具备基本的业务结构和功能,只适合参考学习,不适用于商业。
如果你有更好改进建议,欢迎指正。
邮箱:liyaohua8468@gmail.com