校园二手交易商城

目的意义

随着人们生活水平的普遍提高,学生各种消耗品升级换代更新加快,面临着大量物品的处置问题。课本,电脑、自行车、等都成为了较为普遍的闲置交易物品处理对象。在这样的背景下,大学校园闲置物品交易平台也应运而生。基于IDEA+Mysql+Springboot+DataGrip的搭配,开发出一套功能齐全、界面优美、使用便捷的校园二手交易系统。

主要功能模块概述

(管理员默认入口 localhost/admin,默认两个管理员:猫儿、猫给这儿,管理员账号密码:admin 123456)
(1)登录、注册、重置密码模块
登录可以账号进行登录
注册的时候会判断账号是否以及存在会判断账号的格式
重置密码时会验证账号格式,判断是否存在该用户
(2)商品模块
发布商品
修改商品
商品详情界面
首页界面
商品列表界面
商品搜索界面
(3)评论模块
查看商品下所有评论及回复
评论回复以及对应删除操作
(4)个人中心
修改个人信息
修改密码
个人对商品的操作
(5)售出记录模块
用户设置商品为售出状态时存入售出记录
用户分页查看所有的售出记录
用户删除售出记录
(6)后台操作功能
管理员登录
查看用户列表
管理员审核商品
管理员分页展示各类商品信息
(聊天,评论等等功能)

关键技术

(1)Dao数据库技术用于对MySQL数据库的访问
(2)LayUI分页技术用于系统页面的分页展览
(3)加盐加密技术用于对密码的安全性处理
(4)拦截器技术用于对页面的定向处理
(5)Mybatis+Springboot框架的使用

实现与测试

(1)首页

(2)后台管理员登录

(3)显示商品信息

主要代码如下:

@AllArgsConstructor//全参构造
@NoArgsConstructor//无参构造
@Data
@Accessors(chain = true)//链式写法
public class Commimages implements Serializable {private static final long serialVersionUID = 1L;/**图片id*/private String id;/**商品id*/private String commid;/**图片*/private String image;/**发布时间*/private Date createtime;/**图片状态*/private Integer imagestatus;
}

(4)添加商品

主要代码如下:
@AllArgsConstructor//全参构造
@NoArgsConstructor//无参构造

@Data
@Accessors(chain = true)//链式写法
public class Commodity implements Serializable {private static final long serialVersionUID = 1L;/**商品id*/private String commid;/**商品名*/private String commname;/**商品描述*/private String commdesc;/**视频*/private String videourl;/**原价*/private BigDecimal orimoney;/**售价*/private BigDecimal thinkmoney;/**商品所在学校*/private String school;/**发布时间*/private Date createtime;/**修改时间*/private Date updatetime;/**结束时间*/private Date endtime;/** 0违规 1正常 2删除  3待审核*/private Integer commstatus;/**常用选项:自提,可小刀,不议价等选项*/private String common;/**常用类别字段*/private String common2;/**商品其他图集合 */private List<String> otherimg;/**浏览量*/private Integer rednumber;/**商品类别*/private String category;/**简介图*/private String image;/**用户id */private String userid;
}

(5)查询商品

主要代码如下:在这里插入代码片
/** 搜索商品,前端传入当前页数(nowPaging)、搜索的商品名(commname)*/
@GetMapping("/product/search/{nowPaging}/{commname}")
@ResponseBody
public ResultVo searchCommodity(@PathVariable("nowPaging") Integer page, @PathVariable("commname") String commname){List<Commodity> commodityList = commodityService.queryCommodityByName((page - 1) * 20, 20, commname);if(!StringUtils.isEmpty(commodityList)){//如果有对应商品for (Commodity commodity : commodityList) {/**查询商品对应的其它图片*/List<String> imagesList = commimagesService.LookGoodImages(commodity.getCommid());commodity.setOtherimg(imagesList); }return new ResultVo(true,StatusCode.OK,"查询成功",commodityList);}else{return new ResultVo(true,StatusCode.ERROR,"没有相关商品"); }}

(6)修改删除商品


主要代码如下:/** 修改商品
1、修改商品信息
2、修改商品的其他图的状态
3、插入商品的其他图*/
@PostMapping("/changegoods/rel")
@ResponseBody
public String changegoods(@RequestBody Commodity commodity, HttpSession session){String userid = (String) session.getAttribute("userid");commodity.setUpdatetime(new Date()).setCommstatus(3);commodity.setCommon(commodity.getCommon()+"、"+commodity.getCommon2());//常用选项拼接commodityService.ChangeCommodity(commodity);commimagesService.DelGoodImages(commodity.getCommid());List<Commimages> commimagesList=new ArrayList<>();for (String list:commodity.getOtherimg()) {commimagesList.add(new Commimages().setId(KeyUtil.genUniqueKey()).setCommid(commodity.getCommid()).setImage(list));}commimagesService.InsertGoodImages(commimagesList);/**发出待审核系统通知*/Notices notices = new Notices().setId(KeyUtil.genUniqueKey()).setUserid(userid).setTpname("商品审核").setWhys("您的商品 <a href=/product-detail/"+commodity.getCommid()+" style=\"color:#08bf91\" target=\"_blank\" >"+commodity.getCommname()+"</a> 进入待审核队列,请您耐心等待。");noticesService.insertNotices(notices);return "0";}

(7)验证码登录

主要代码如下:
public class ValidateCode {private int width = 160; // 图片的宽度。private int height = 60;// 图片的高度。private int codeCount = 4;// 验证码字符个数private int lineCount = 100; // 验证码干扰线数public static String code = null;  // 验证码  private BufferedImage buffImg = null; // 验证码图片Bufferprivate char[] codeSequence = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'};public ValidateCode() {this.createCode(); }public ValidateCode(int width, int height) {this.width = width;this.height = height;this.createCode();}public ValidateCode(int width, int height, int codeCount, int lineCount) {this.width = width;this.height = height;this.codeCount = codeCount;this.lineCount = lineCount;this.createCode();}public void createCode() {int x = 0, fontHeight = 0, codeY = 0;int red = 0, green = 0, blue = 0;x = width / (codeCount + 2);//每个字符的宽度fontHeight = height - 2;//字体的高度codeY = height - 4;        buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);// 图像bufferGraphics2D g = buffImg.createGraphics();Random random = new Random(); // 生成随机数g.setColor(Color.WHITE);// 将图像填充为白色g.fillRect(0, 0, width, height);ImgFontByte imgFont = new ImgFontByte();// 创建字体Font font = imgFont.getFont(fontHeight);g.setFont(font);for (int i = 0; i < lineCount; i++) {int xs = random.nextInt(width);int ys = random.nextInt(height);int xe = xs + random.nextInt(width / 8);int ye = ys + random.nextInt(height / 8);red = random.nextInt(255);green = random.nextInt(255);blue = random.nextInt(255);g.setColor(new Color(red, green, blue));g.drawLine(xs, ys, xe, ye); }// randomCode记录随机产生的验证码StringBuffer randomCode = new StringBuffer();// 随机产生codeCount个字符的验证码。for (int i = 0; i < codeCount; i++) {String strRand = String.valueOf(codeSequence[random.nextInt(codeSequence.length)]);// 产生随机的颜色值,让输出的每个字符的颜色值都将不同。red = random.nextInt(255);green = random.nextInt(255);blue = random.nextInt(255);g.setColor(new Color(red, green, blue));g.drawString(strRand, (i + 1) * x, codeY);// 将产生的四个随机数组合在一起。randomCode.append(strRand);  }// 将四位数字的验证码保存到Session中。code = randomCode.toString();}public void write(String path) throws IOException {OutputStream sos = new FileOutputStream(path);
this.write(sos); }public void write(OutputStream sos) throws IOException {ImageIO.write(buffImg, "png", sos);sos.close();}public BufferedImage getBuffImg() {return buffImg;}public static String getCode() {return code; }}

源代码链接:https://pan.baidu.com/s/1RL0l2jmvo8bp3rLOsrCiPw
提取码:CXJK

基于springboot的校园二手交易商城相关推荐

  1. 基于Springboot开发实现二手交易商城

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  2. 基于PHP的校园二手交易网站的设计与开发--毕设

    基于PHP的校园二手交易网站的设计与实现 摘  要 近几年来通过计算机以及网络技术的快速发展,全世界网络应用的使用越来越广泛. 在这些网络应用中,Web给人的更加新颖的感觉.在web中,网上购物应用的 ...

  3. 基于SpringBoot的校园二手交易系统

    基于SpringBoot的校园二手交易系统 校园二手交易系统 项目简介 技术选型 数据库设计 代码结构 界面设计 用户前台 管理员后台 代码获取 校园二手交易系统 项目简介 本项目为校园二手交易系统, ...

  4. 校园二手交易商城系统小程序-JAVA【数据库设计、源码、开题报告】

    第一章 绪 论 1.1选题背景 互联网是人类的基本需求,特别是在现代社会,个人压力增大,社会运作节奏高,随着互联网的快速发展,用户的需求也越来越高,用户也将越来越多依靠互联网而不是自己获取信息,使得各 ...

  5. 基于springboot的校园二手交易系统-JAVA【数据库设计、论文、源码、开题报告】

    功能介绍 管理员:首页.管理员管理.员工管理.客户管理.潜在客户管理.销售管理.业务管理.项目管理等 代理:首页.个人中心.商品信息管理.仓库信息管理.采购进货管理.采购退货管理.销售出货管理.销售退 ...

  6. 基于springboot的校园二手交易系统-JAVA【毕业设计、论文、源码、开题报告】

    功能介绍 管理员:首页.管理员管理.员工管理.客户管理.潜在客户管理.销售管理.业务管理.项目管理等 代理:首页.个人中心.商品信息管理.仓库信息管理.采购进货管理.采购退货管理.销售出货管理.销售退 ...

  7. 基于springboot的校园二手网站

    博主主页:猫头鹰源码 博主简介:Java领域优质创作者.CSDN博客专家.公司架构师.全网粉丝5万+.专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等).简历模 ...

  8. 基于mysql的校园二手平台_基于java的校园二手交易网站mysql

    每年毕业生离校时都会丢弃或转赠大量学习生活用品,这些物品往往得不到很好的处理,校园二手网站就是提供了这样的一个网上购物平台.本文主要介绍了该平台的方案论证.总体设计等实现过程,详细论述了设计思想.数据 ...

  9. 基于JAVA的校园二手交易网站的设计与实现参考【数据库设计、源码、开题报告】

    摘要 网络技术发展迅猛,日新月异.现代生活的人们也越来越离不开网络.电子商务也成为了当今社会的热点,人们都享受足不出户的购物体验.电子商务不仅方便快捷,能让我们买到很多我们在当地实体店买不到的商品,也 ...

最新文章

  1. symbol(s) not found for architexture i386 报错
  2. Java.io包中常用的类
  3. flex java red5_使用 Flex 和Java servlets 将文件上传到 RED5 服务器的步骤
  4. Git分支操作与远程仓库的使用
  5. 2003服务器远程桌面连不上解决办法
  6. 百度女程序员半夜打的回家,被的哥嘲讽:加班到一点收入还不如我,图啥?
  7. 认识和学习orchestrator之基本使用篇
  8. python自学笔记_Python 自学笔记
  9. matlab端到端仿真中基站功率,基于matlab的cdma通信系统分析及仿真
  10. Android项目目录结构中各个文件夹的作用
  11. 牛客多校第六场 G Is Today Friday? 蔡勒公式/排列
  12. 基于基本面因子的量化交易模型解析
  13. Android 蓝牙AVRCP 专题(2)-----黑名单
  14. html旋转木马 代码,JavaScript实现旋转木马轮播图
  15. error C251: illegal octal digit 错误提示
  16. iPad/iPhone等设备访问Windows共享文件方法
  17. CentOS8下Mosquitto安装使用指南
  18. 前端屏幕尺寸和分辨率_屏幕尺寸、分辨率、倍率到底是什么鬼
  19. 会计学 - 会计账户与复式记账
  20. 使用ThreeJs从零开始构建3D智能仓库——第一章(一切的基础)

热门文章

  1. php中select from,关于php:SELECT * FROM MySQLi
  2. Linux下安装软件的几种方法
  3. 贴片陶瓷电容的NPO、C0G、X7R、X5R、Y5V、Z5U区别
  4. 一篇入门电容的选择和使用
  5. Lingo学习笔记(一)——语法入门
  6. mac 时间机器备份到windows共享文件遇到的问题及解决记录
  7. 为了更好的实践与应用-机器人与ROS教学与培训
  8. Note++ 常用功能高级用法
  9. 部落战争手游源码( 服务端+客户端+资源+开发文档)
  10. Mybatis Plus ${ew.sqlSegment} 与 ${ew.customSqlSegment}的使用区别