# djserver **Repository Path**: fastiot/djserver ## Basic Information - **Project Name**: djserver - **Description**: 大疆无人机项目后端服务器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-04-07 - **Last Updated**: 2023-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # djserver #### 介绍 大疆无人机项目后端服务器 #### 使用说明 1. 打开命令提示符界面 2. 切换到当前项目目录下 3. 输入node app.js,运行服务器 4. 在浏览器输入服务器的IP地址和端口号即可使用 #### 数据库设计 ##### 1.1. 数据库概述 数据库名:dj_database; 适用数据库环境:MySQL ##### 1.2. 数据表清单 | **表名** | **描述** | **所属模块** | | -------------- | -------------------------------------------------- | ------------ | | xz_user | 用户表,记载注册后的客户信息 | 用户模块 | | category | 无人机种类表,记载所有的无人机种类 | 产品模块 | | product_list | 无人机产品表,记载所有无人机产品的信息关联到种类表 | 产品模块 | | index_carousel | 首页轮播图标,产品展示列表,关联到无人机产品表 | 产品模块 | | index_product | 首页展示产品表,关联到产品表 | 产品模块 | | | | | ##### 1.3. 数据表定义 ###### 1.3.1. 用户信息表(user) | **字段名称** | **类型** | **备注** | **字段描述** | | ------------ | ----------- | ---------------------------- | ------------------------------------------ | | uid | INT | PRIMARY KEY AUTO_INCREMENT | 用户的ID,为用户的唯一标识,由系统自动生成 | | upwd | VARCHAR(20) | NOT NULL | 密码 | | phone | VARCHAR(20) | NOT NULL UNIQUE | 手机号码 | ###### 1.3.2. 商品类别表 (category) | **字段名称** | **类型** | **备注** | **字段描述** | | ------------ | ----------- | -------------------------- | ------------ | | cid | INT | PRIMARY KEY AUTO_INCREMENT | 类别id | | ctitle | VARCHAR(36) | | #类别名称 | ###### 1.3.3. 无人机产品表 (product_list) | **字段名称** | **类型** | **备注** | **字段描述** | | ------------ | ------------ | -------------------------- | ---------------- | | id | INT | PRIMARY KEY AUTO_INCREMENT | 产品表id | | pid | INT | NOT NULL | 外键,所属类别id | | pname | VARCHAR(20) | NOT NULL | 产品名称 | | price | VARCHAR(10) | NOT NULL | 产品价格 | | pimg | VARCHAR(128) | NOT NULL | 无人机图片路径 | | | | | | ###### 1.3.4. 首页轮播图表 (index_carousel) | **字段名称** | **类型** | **备注** | **字段描述** | | ------------ | ------------ | -------------------------- | ------------ | | lid | INT | PRIMARY KEY AUTO_INCREMENT | 首页轮播图id | | img | VARCHAR(128) | NOT NULL | 图片路径 | | title | VARCHAR(64), | NOT NULL | 图片描述 | ###### 1.3.5. 首页栏目表 (index_product) | **字段名称** | **类型** | **备注** | **字段描述** | | ---------------- | ------------ | ------------------------------------- | -------------- | | id | INT | PRIMARY KEY AUTO_INCREMENT NOT NULL | 首页栏目表id | | title | VARCHAR(64) | NOT NULL | 商品标题 | | details | VARCHAR(64), | NOT NULL | 详细描述 | | pic | VARCHAR(128) | NOT NULL | 图片路径 | | recommend | TINYINT | NOT NULL | 首页推荐 | | innovation_story | TINYINT | NOT NULL | 创新故事 | | different_fields | TINYINT | NOT NULL | 不同领域的产品 | #### 后台API列表 ##### 一、无人机产品模块 ###### 1.1、产品列表 接口地址:/pro/list 请求方式:GET 请求示例:/pro/list? kw=dj 请求参数说明: | 名称 | 必填 | 类型 | 说明 | | ---- | ---- | ------ | ---------------------- | | kw | 是 | string | 商品名称中的查询关键字 | 返回格式:JSON 返回数据格式——object,示例: ```json { "code": 200, "message": “ok”, "data": [ { "id": 1, "price":"4788", "pic": "product-1.png" }, ...... { "id": 25, "pid":2006, "price":"2299, "pic": "product-25.png" }, ] } ``` ###### 1.2、产品详情 接口地址:/pro/details 请求方式:GET 请求示例:/pro/details?pid=2 请求参数说明: | 名称 | 必填 | 类型 | 说明 | | ---- | ---- | ---- | ----------------- | | pid | 是 | int | 商品编号,默认为1 | 返回格式:JSON 如果指定编号不存在,返回空对象 { };否则返回形式如下JSON object: ```json { "code": 200, "message": “ok”, ... } ``` ###### 1.3、首页轮播图数据 接口地址:/pro/index_carousel 请求方式:GET 接口示例:/pro/index_carousel 返回数据格式—— JSON object,属性: | 名称 | 类型 | 说明 | | ------------- | ----- | -------- | | carouselItems | array | 轮播广告 | JSON返回示例: ```json { "code": 200, "message": “ok”, "carouselItems": [ { "lid": 1, "img": "banner_1.png", "title": " banner_1.png ", }, ... } ``` ###### 1.4、首页三个栏目数据 接口地址:/pro/index_list 请求方式:GET 接口示例:/pro/index_list 返回数据格式—— JSON object,属性: | 名称 | 类型 | 说明 | | ---------------- | ----- | -------------- | | recommendedItems | array | 首页推荐 | | innovationItems | array | 创新故事 | | different_fields | array | 不同领域的产品 | JSON返回示例: ```json { "code": 200, "message": “ok”, "recommendedItems": [ { "id": 1, "pic": "pic1.jpg", "title": " DJI Air 2s ", "details": " 一有尽有 ", }, ... ], " innovationItems ": [ { "id": 5, "pic": "pi5.jpg", "title": "2021年文化遗产数字化贴近摄影测量大赛", "details": "一起来守护文化遗产", }, ... ], " different_fields ": [ { "id": 7, "pic": "pic7.jpg", "title": " 专业影像 ", "details": " 天地一体的专业拍摄解决方案 ", }, ... ] } ``` ###### 1.5、产品类别数据 接口地址:/pro/category 请求方式:GET 接口示例:/pro/category 返回数据格式—— JSON object,属性: | 名称 | 类型 | 说明 | | -------- | ----- | -------------- | | category | array | 无人机产品类别 | JSON返回示例: ```json { "code": 200, "message": “ok”, "category": [ { "cid": 1, "ctitle": "DJI Mavic 系列", }, ... } ``` ##### 二、用户模块 ###### 2.1、用户注册 接口地址:/user/register 请求方式:POST 请求示例:/user/register 请求参数说明: | 名称 | 必填 | 类型 | 说明 | | ------ | ---- | ------ | -------- | | uphone | 是 | string | 电话号码 | | upwd | 是 | string | 密码 | | repwd | 是 | string | 确认密码 | 返回数据格式—— JSON object,属性: | 名称 | 类型 | 说明 | | ------- | ------ | ------------------------------------------------------------ | | code | int | 返回码 200-注册成功 401-手机号已存在 402-输入不能为空 403-手机号格式错误 404-确认密码与密码不一致 | | message | string | 原因说明 | JSON返回示例 { "code":200, "msg":"注册成功" } ###### 2.2、用户登录 接口地址:/user/login 请求方式:GET 请求示例:/user/login 请求参数说明: | 名称 | 必填 | 类型 | 说明 | | ------ | ---- | ------ | ------ | | uphone | 是 | string | 用户名 | | upwd | 是 | string | 密码 | 返回数据格式——JSON object,属性: | 名称 | 类型 | 说明 | | ------- | ------ | --------------------------------------------- | | code | int | 返回码 200-登录成功 201-电话号码或密码错误 | | message | string | 原因说明 | JSON返回示例 { "code":200, "message":"登录成功" } #### 功能描述 ​ 1.用户模块 ​ (1)用户登录和用户注册功能:用户通过输入手机号和密码来进行登录或注册,未登录的用户只能浏览页面。 ​ 2.产品展示模块 ​ (1)产品分类功能:用户通过导航栏的分类可以查看不同类别的无人机产品。 ​ (2)产品搜索功能:用户通过导航栏的搜索框可以搜索相关的产品。 ​ (3)产品首页展示功能:产品的首页展示通过轮播图,推荐产品,创新故事,以后不同领域的大疆产品等栏目来展示无人机的各种各样的风采。 ​ (4)产品详情页展示功能:用户通过点击首页的推荐无人机可以进入无人机的详情页了解更多的无人机信息。 ​ (5)线下门店展示功能:点击导航栏的线下门店选项,即可进入线下门店地图功能,可以显示用户定位的周边的门店。 ​ 3.产品购买模块:用户通过产品购买页面点击相应产品的数量加减,添加清单,最后点击下单。 #### 职责划分 ​ | 组员姓名/日期 | 2022年7月9日 | 2022年7月11日 | 2022年7月16日 | 2022年7月19日 | | :------------ | ------------------ | ------------------------ | ------------------------- | ------------------------ | | 彭双柠(组长) | 确定选题、需求分析 | 设计数据库,编写文档 | 编写产品模块接口 | 整合各个模块 | | 潘晓璇 | 确定选题、需求分析 | 设计数据库、插入数据 | 编写用户模块接口 | 整合各个模块 | | 王春阳 | 确定选题、需求分析 | 制作页头页尾静态页面 | 把静态页面誊写到vue脚手架 | 完善样式 | | 沈文 | 确定选题、需求分析 | 制作产品下单静态页面 | 把静态网页誊写到vue脚手架 | 制作无人机产品的详情页 | | 袁浩楠 | 确定选题、需求分析 | 制作首页产品展示静态页面 | 把静态网页誊写到vue脚手架 | 制作首页投稿活动的详情页 | | 杜明 | 确定选题、需求分析 | 制作登录和注册页面 | 把静态网页誊写到脚手架 | 制作线下门店和404页面 | | 雍镇荣 | 确定选题、需求分析 | git仓库使用方法 | —— | —— | #### 重难点分析 ​ 1.数据库设计:因为数据库只讲了3天的SQL语言,虽然我们组大部分同学都是计算机专业毕业,但是毕竟我们都没有任何的项目开发经验,所以在前期的数据库设计,有点手足无措,因为时间有点紧张,所以也没有过多的去纠结,设计了一个比较简单的数据库结构。 ​ 2.网页页面:我们的选题是大疆无人机,项目参考的是他们的官网,一确定了选题,我们就开始了需求分析,但是越分析越感觉不对劲,原网站实在是有太多的要素,网页的特效也特高级,我们就想挑一个点来写,都觉得东西太多了,完成不了,后面分析了两天,也问过很多同学,简化了我们的需求。 ​ 3.项目上线:全组都是第一次接触这个功能,无从下手,另外加上项目完成的时间已经比较晚了,无法在规定时间内实现。 #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)