睿乐购电商课程设计
项目说明使用工具框架与技术前端说明项目说明数据库设计项目构建springboot 配置项目启动类
项目说明
该系列博客为2020年6月16日-2020年7月3日的软件工程课设二级项目源码地址
使用工具
vscodeideamysqlmavengit
框架与技术
springbootmybatisfastjsonswagger2admin
前端说明
前端是网上找到一个模板进行修改的前端框架技术:bootstrap,jquery本项目未使用视图模板,数据交互是通过ajax进行的
项目说明
数据库设计
数据库设计未使用可视化界面创建,同时在vscode直接写sql完成的导入数据库使用的mysql命令 source
DROP DATABASE IF EXISTS `db_es
`;
CREATE DATABASE IF NOT EXISTS `db_es
`;
USE db_es
;
CREATE TABLE IF NOT EXISTS `user`
(
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username
` varchar(50) NOT NULL COMMENT '用户名',
`password
` char(65) NOT NULL COMMENT '密码' ,
`phone
` char(11) NOT NULL COMMENT '联系电话',
`email
` varchar(100) NOT NULL COMMENT '电子邮箱地址',
`role
` char(1) NOT NULL DEFAULT 'U' COMMENT '角色 U表示普通用户,A表示管理员,M表示会员',
`question
` varchar(255) NOT NULL COMMENT '密保问题',
`answer
` varchar(255) NOT NULL COMMENT '密码答案',
`token
` char(33) DEFAULT '' COMMENT 'token值,用来保存用户的登录信息',
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间',
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间',
PRIMARY KEY (`id
`),
UNIQUE KEY `username
` (`username
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
INSERT INTO user VALUES(1,'admin','aa5849d91bd8a38b32376fb4b83ec04567e92d2266aeec12efa5de3499cd49a7','12345678911','1255@qq.com','A','哪个学校的','ysu','',NOW(),NOW());
INSERT INTO user VALUES(2,'张三1号','8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92','12345678910','123456@qq.com','U','哪个学校的','ysu','',NOW(),NOW());
CREATE TABLE IF NOT EXISTS `category
`
(
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '类别id',
`parent_id
` int(11) NOT NULL COMMENT '父类别id',
`name
` varchar(50) NOT NULL COMMENT '类别名称',
`statue
` char NOT NULL DEFAULT '1' COMMENT '状态 1表示可用,0表示不可用',
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间',
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间' ,
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
CREATE TABLE IF NOT EXISTS `goods
`
(
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id',
`category_id
` int(11) NOT NULL COMMENT '类别id',
`name
` varchar(255) NOT NULL COMMENT '商品名称',
`subtitle
` varchar(255) NULL COMMENT '副标题',
`main_image
` varchar(255) NOT NULL COMMENT '主图地址',
`sub_image
` varchar(255) DEFAULT NULL COMMENT '子图地址' ,
`detail
` varchar(255) NOT NULL DEFAULT '该商品没有详细介绍' COMMENT '商品详情',
`price
` decimal(20,2) NOT NULL COMMENT '商品价格' ,
`stock
` int(11) NOT NULL DEFAULT '0' COMMENT '库存量',
`our_ratings
` int NOT NULL DEFAULT 10 COMMENT '推荐指数',
`postion
` char(5) NOT NULL DEFAULT 'E' COMMENT '商品推荐位置 L表示轮播图 N表示新品 B表示畅销品 R表示推荐产品 P 表示促销品 F 特色产品 E其他',
`status` char(1) NOT NULL DEFAULT 'S' COMMENT '商品状态 S表示在售 W表示下架 D表示删除' ,
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间',
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间',
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
CREATE TABLE IF NOT EXISTS`shoppingCart
`
(
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '购物车id',
`user_id
` int(11) NOT NULL COMMENT '购物车所属的用户id' ,
`product_id
` int(11) NOT NULL COMMENT '购物车的商品id',
`product_name
` varchar(255) NOT NULL COMMENT '购物车的商品名称',
`product_price
` decimal(20,2) NOT NULL COMMENT '购物车的商品价格',
`image
` varchar(255) NOT NULL COMMENT '购物车的商品图片地址',
`quantity
` int(11) NOT NULL DEFAULT '1' COMMENT '购买数量' ,
`checked
` char(1) NOT NULL DEFAULT '0' COMMENT '是否被选中 0表示未选中(表示在购物车),1表示选中(表示已加入订单)',
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间' ,
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间' ,
PRIMARY KEY (`id
`),
KEY `user_id
` (`user_id
`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
INSERT INTO `shoppingCart
` VALUES(null,2,1,'戴尔(DELL)G5 英特尔酷睿i7电竞游戏本笔记本电脑',8299.00,'assets/images/product/product-13.jpg',1,'0',NOW(),NOW());
CREATE TABLE IF NOT EXISTS `orders
`
(
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单id',
`order_no
` char(32) NOT NULL COMMENT '订单编号: 系统的当前时间(Long)+用户id' ,
`user_id
` int(11) NOT NULL COMMENT '用户id',
`shipping_id
` int(11) NOT NULL COMMENT '收获地址id' ,
`payment
` decimal(20,2) NOT NULL COMMENT '实际付款金额',
`payment_type
` char(1) NOT NULL DEFAULT '0' COMMENT '付款类型 0表示货到付款 1表示支付宝 2表示微信',
`postage
` decimal(20,2) NOT NULL DEFAULT 0 COMMENT '邮费' ,
`status` char(1) NOT NULL DEFAULT '0' COMMENT '当前订单状态 0表示未付款 1表示已取消 2表示已付款 3表示已发货 4表示交易成功 5 表示交易关闭',
`payment_time
` datetime DEFAULT NULL COMMENT '付款时间',
`send_time
` datetime DEFAULT NULL COMMENT '发货时间',
`end_time
` datetime DEFAULT NULL COMMENT '结束时间' ,
`close_time
` datetime DEFAULT NULL COMMENT '关闭时间',
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间',
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间',
PRIMARY KEY (`id
`),
KEY `order_no
` (`order_no
`) USING BTREE,
KEY `user_id
` (`order_no
`,`user_id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
CREATE TABLE IF NOT EXISTS `orderDetail
`
(
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单明细表id',
`order_no
` char(32) NOT NULL COMMENT '订单编号: 系统的当前时间(Long)+用户id',
`user_id
` int(11) NOT NULL COMMENT '用户id',
`product_id
` int(11) NOT NULL COMMENT '商品id' ,
`product_name
` varchar(255) NOT NULL COMMENT '商品名称' ,
`product_image
` varchar(255) NOT NULL COMMENT '商品图片地址',
`current_unit_price
` decimal(20,2) NOT NULL COMMENT '下单时的商品的价格',
`quantity
` int(11) NOT NULL DEFAULT 1 COMMENT '购买数量',
`total_price
` decimal(20,2) NOT NULL DEFAULT 0 COMMENT '购买该商品的总价格',
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间' ,
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间' ,
PRIMARY KEY (`id
`),
KEY `order_no
` (`order_no
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
CREATE TABLE IF NOT EXISTS `address
` (
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '收获地址表id',
`user_id
` int(11) NOT NULL COMMENT '属于哪个用户的id' ,
`receiver_name
` varchar(255) NOT NULL COMMENT '用户名',
`receiver_phone
` char(11) NOT NULL COMMENT '用户的手机号' ,
`receiver_province
` varchar(30) NOT NULL COMMENT '收获地址的省份' ,
`receiver_city
` varchar(30) NOT NULL COMMENT '收获地址的市',
`receiver_district
` varchar(30) NOT NULL COMMENT '收获地址的区县' ,
`receiver_address
` varchar(255) NOT NULL COMMENT '收获的详细地址',
`receiver_zip
` char(6) NOT NULL COMMENT '邮编',
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间' ,
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间' ,
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
INSERT INTO `address
` VALUES(1,2,'张三1号','12345678910','河北省','秦皇岛市','海港区','燕山大学西校区','066000',NOW(),NOW());
INSERT INTO `address
` VALUES(2,2,'张三1号','12345678910','河北省','秦皇岛市','海港区','燕山大学东校区','066000',NOW(),NOW());
CREATE TABLE IF NOT EXISTS `pay
` (
`id
` int(11) NOT NULL AUTO_INCREMENT COMMENT '支付表id',
`user_id
` int(11) NOT NULL COMMENT '用户的id',
`order_no
` char(32) NOT NULL COMMENT '支付的订单号' ,
`pay_platform
` char(1) NOT NULL DEFAULT '0' COMMENT '付款类型 0表示货到付款 1表示支付宝 2表示微信',
`platform_number
` char(32) NOT NULL COMMENT '支付的流水号 yyyymmddhhmmss+用户id',
`platform_status
` char(1) NOT NULL DEFAULT '0' COMMENT '支付状态 0表示支付成功 1表示支付不成功',
`create_time
` datetime DEFAULT NOW() COMMENT '创建时间' ,
`update_time
` datetime DEFAULT NOW() COMMENT '更新时间' ,
PRIMARY KEY (`id
`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
;
项目构建
使用spring boot官网或者使用idea创建pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0
</modelVersion>
<parent>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-parent
</artifactId>
<version>2.1.15.RELEASE
</version>
<relativePath/>
</parent>
<groupId>com.ysu
</groupId>
<artifactId>shop
</artifactId>
<version>0.0.1-SNAPSHOT
</version>
<name>shop
</name>
<description>睿乐购商城
</description>
<properties>
<java.version>1.8
</java.version>
</properties>
<dependencies>
<dependency>
<groupId>com.alibaba
</groupId>
<artifactId>druid-spring-boot-starter
</artifactId>
<version>1.1.10
</version>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot
</groupId>
<artifactId>mybatis-spring-boot-starter
</artifactId>
<version>2.1.3
</version>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-devtools
</artifactId>
<scope>runtime
</scope>
<optional>true
</optional>
</dependency>
<dependency>
<groupId>mysql
</groupId>
<artifactId>mysql-connector-java
</artifactId>
<scope>runtime
</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-starter-test
</artifactId>
<scope>test
</scope>
</dependency>
<dependency>
<groupId>com.alibaba
</groupId>
<artifactId>fastjson
</artifactId>
<version>1.2.56
</version>
</dependency>
<dependency>
<groupId>io.springfox
</groupId>
<artifactId>springfox-swagger2
</artifactId>
<version>2.9.2
</version>
</dependency>
<dependency>
<groupId>io.springfox
</groupId>
<artifactId>springfox-swagger-ui
</artifactId>
<version>2.9.2
</version>
</dependency>
<dependency>
<groupId>de.codecentric
</groupId>
<artifactId>spring-boot-admin-starter-client
</artifactId>
<version>2.1.1
</version>
</dependency>
<dependency>
<groupId>com.alipay.sdk
</groupId>
<artifactId>alipay-sdk-java
</artifactId>
<version>3.0.0
</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot
</groupId>
<artifactId>spring-boot-maven-plugin
</artifactId>
<configuration>
<fork>true
</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>
springboot 配置
server:
port: 8082
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: 654321
url: jdbc
:mysql
://localhost
:3306/db_es
?useSSL=false
&serverTimezone=Asia/Shanghai
boot:
admin:
client:
url:
- http
://localhost
:8084
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: ALWAYS
logging:
level:
com.ysu.shop.mapper: DEBUG
com.ysu.shop.controller: DEBUG
项目启动类
package com
.ysu
.shop
;
import org
.mybatis
.spring
.annotation
.MapperScan
;
import org
.springframework
.boot
.Banner
;
import org
.springframework
.boot
.SpringApplication
;
import org
.springframework
.boot
.autoconfigure
.SpringBootApplication
;
import org
.springframework
.transaction
.annotation
.EnableTransactionManagement
;
@SpringBootApplication
@MapperScan("com.ysu.shop.mapper")
@EnableTransactionManagement
public class ShopApplication {
public static void main(String
[] args
) {
SpringApplication application
= new SpringApplication(ShopApplication
.class);
application
.setBannerMode(Banner
.Mode
.OFF
);
application
.run(args
);
}
}