三、第三范式 29
4.4.1表ER图 30
4.4.2用户表设计 30
4.4.3二手物品分类表设计 30
4.4.4用户订单表设计 31
4.4.5二手物品表详情设计 31
4.4.5二手物品订单表设计 32
4.4.6数据库sql文件 32
五、参考献文 36
主要功能实现:
管理员:商品分类管理,商品管理,商品订单管理,用户管理等功能。
用户角色:查看所有商品,用户登陆注册,按照类别查看商品,发布商品,查看卖家主页,联系卖家,给商品留言,查看订单,修改查看个人资料等功能。
主要技术:
HTML+CSS+JavaScript+jsp+mysql+Spring+mybatis
系统首页:
登录模块:
登录代码实现:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
二手交易平台
商品详情:
点击购买就创建一个订单信息:
个人中心:
管理员登录:
主要代码实现:
/**
-
.
*/
package io.renren.modules.sys.controller;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import io.renren.common.utils.R;
import io.renren.modules.sys.shiro.ShiroUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
/**
-
登录相关
-
@author Mark s.com
*/
@Controller
public class SysLoginController {
@Autowired
private Producer producer;
@RequestMapping(“captcha.jpg”)
public void captcha(HttpServletResponse response)throws IOException {
response.setHeader(“Cache-Control”, “no-store, no-cache”);
response.setContentType(“image/jpeg”);
//生成文字验证码
String text = producer.createText();
//生成图片验证码
BufferedImage image = producer.createImage(text);
//保存到shiro session
ShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, “jpg”, out);
}
/**
- 登录
*/
@ResponseBody
@RequestMapping(value = “/sys/login”, method = RequestMethod.POST)
public R login(String username, String password, String captcha) {
String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);
if(!captcha.equalsIgnoreCase(kaptcha)){
return R.error(“验证码不正确”);
}
try{
Subject subject = ShiroUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password);//md5+Jiayan
subject.login(token);
}catch (UnknownAccountException e) {
return R.error(e.getMessage());
}catch (IncorrectCredentialsException e) {
return R.error(“账号或密码不正确”);
}catch (LockedAccountException e) {
return R.error(“账号已被锁定,请联系管理员”);
}catch (AuthenticationException e) {
return R.error(“账户验证失败”);
}
return R.ok();
}
/**
- 退出
*/
@RequestMapping(value = “logout”, method = RequestMethod.GET)
public String logout() {
ShiroUtils.logout();
return “redirect:login.html”;
}
}
管理员主要功能:
分类管理:
![](https://img-blog.csdnimg.cn/20210615140836895.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTcwOTEzNA==,size_16,color_FFFFFF,t_70)
商品管理:
订单管理:
用户管理;
主要表设计:
用户表:
CREATE TABLE NewTable
(
user_id
bigint(20) NOT NULL AUTO_INCREMENT ,
username
varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT ‘用户名’ ,
password
varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ‘密码’ ,
salt
varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ‘盐’ ,
email
varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ‘邮箱’ ,
mobile
varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ‘手机号’ ,
status
tinyint(4) NULL DEFAULT NULL COMMENT ‘状态 0:禁用 1:正常’ ,
create_time
datetime NULL DEFAULT NULL COMMENT ‘创建时间’ ,
PRIMARY KEY (user_id
),
UNIQUE INDEX username
(username
) USING BTREE
)
订单表:
CREATE TABLE NewTable
(
order_id
bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘订单表主键id’ ,
order_no
varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT ‘’ COMMENT ‘订单号’ ,
user_id
bigint(20) NOT NULL DEFAULT 0 COMMENT ‘用户主键id’ ,