系统使用技术:SSM

前端技术:bootstrap、css、js等

开发工具:idea

数据库:mysql5.7

项目介绍:

该系统适合选择框架为SSM,基础中等或以下,做二手商城系统,要求页面美观度高的。主要功能包括:前端用户注册后,可以登陆进行商品查看、购买,能够关注商品、发布商品等。后端包括:用户管理、商品管理、订单管理、留言管理、钱包管理、公告管理。满足二手商城的基本要求。

下面我们来看看功能。

系统首页:

分类查看

查看某个分类的商品

商品详情

查看某一个商品信息

个人中心

查看个人信息及商品等

发布商品

可以发布商品

我的订单

查看个人的订单

商品管理

对商品进行操作

订单管理

对订单进行操作

留言管理

对留言进行操作

公告管理

对公告行操作

代码

首页信息展示及操作控制层:

@Controller
@RequestMapping(value = "/goods")
public class GoodsController {@Autowiredprivate GoodsService goodsService;@Autowiredprivate ImageService imageService;@Autowiredprivate CatelogService catelogService;@Autowiredprivate UserService userService;@Resourceprivate PurseService purseService;@Autowiredprivate GonggaoService gonggaoService;/*** 首页显示商品,每一类商品查询6件,根据最新上架排序 key的命名为catelogGoods1、catelogGoods2....** @return* @throws Exception*/@RequestMapping(value = "/homeGoods")public ModelAndView homeGoods() throws Exception {ModelAndView modelAndView = new ModelAndView();// 商品种类数量int catelogSize = 4;// 每个种类显示商品数量int goodsSize = 10;List<Goods> goodsList = null;List<GoodsExtend> goodsAndImage = null;/* 获取最新发布列表 */goodsList = goodsService.getGoodsOrderByDate(goodsSize);goodsAndImage = new ArrayList<GoodsExtend>();for (int j = 0; j < goodsList.size(); j++) {// 将用户信息和image信息封装到GoodsExtend类中,传给前台GoodsExtend goodsExtend = new GoodsExtend();Goods goods = goodsList.get(j);List<Image> images = imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(images);goodsAndImage.add(j, goodsExtend);}String key0 = "catelog" + "Goods";modelAndView.addObject(key0, goodsAndImage);/* 获取公告 */List<Gonggao> gonggaoList = gonggaoService.getGonggaoList();modelAndView.addObject("gonggaoList", gonggaoList);/* 获取其他列表物品信息 */for (int i = 1; i <= catelogSize; i++) {goodsList = goodsService.getGoodsByCatelogOrderByDate(i, goodsSize);goodsAndImage = new ArrayList<GoodsExtend>();for (int j = 0; j < goodsList.size(); j++) {// 将用户信息和image信息封装到GoodsExtend类中,传给前台GoodsExtend goodsExtend = new GoodsExtend();Goods goods = goodsList.get(j);List<Image> images = imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(images);goodsAndImage.add(j, goodsExtend);}String key = "catelog" + "Goods" + i;modelAndView.addObject(key, goodsAndImage);}modelAndView.setViewName("goods/homeGoods");return modelAndView;}/*** 搜索商品* * @param str          //ajax传值* @return* @throws Exception*/@RequestMapping(value = "/search")public ModelAndView searchGoods(@RequestParam(value = "str", required = false) String str) throws Exception {List<Goods> goodsList = goodsService.searchGoods(str, str);List<GoodsExtend> goodsExtendList = new ArrayList<GoodsExtend>();for (int i = 0; i < goodsList.size(); i++) {GoodsExtend goodsExtend = new GoodsExtend();Goods goods = goodsList.get(i);List<Image> imageList = imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(imageList);goodsExtendList.add(i, goodsExtend);}ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("goodsExtendList", goodsExtendList);modelAndView.addObject("search", str);modelAndView.setViewName("/goods/searchGoods");return modelAndView;}/*** 查询该类商品* * @param id*            要求该参数不为空* @return* @throws Exception*/@RequestMapping(value = "/catelog")public ModelAndView homeGoods(HttpServletRequest request, @RequestParam(value = "str", required = false) String str)throws Exception {ModelAndView modelAndView = new ModelAndView();// 每个种类显示商品数量int goodsSize = 12;List<Goods> goodsList = null;List<GoodsExtend> goodsAndImage = null;/* 获取最新发布列表 */goodsList = goodsService.getGoodsByStr(goodsSize, str, str);goodsAndImage = new ArrayList<GoodsExtend>();for (int j = 0; j < goodsList.size(); j++) {// 将用户信息和image信息封装到GoodsExtend类中,传给前台GoodsExtend goodsExtend = new GoodsExtend();Goods goods = goodsList.get(j);List<Image> images = imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(images);goodsAndImage.add(j, goodsExtend);}modelAndView.addObject("goodsExtendList", goodsAndImage);modelAndView.addObject("search", str);modelAndView.setViewName("/goods/catelogGoods");return modelAndView;}/*** 查询该类商品* * @param id*            要求该参数不为空* @return* @throws Exception*/@RequestMapping(value = "/catelog/{id}")public ModelAndView catelogGoods(HttpServletRequest request, @PathVariable("id") Integer id,@RequestParam(value = "str", required = false) String str) throws Exception {List<Goods> goodsList = goodsService.getGoodsByCatelog(id, str, str);Catelog catelog = catelogService.selectByPrimaryKey(id);List<GoodsExtend> goodsExtendList = new ArrayList<GoodsExtend>();for (int i = 0; i < goodsList.size(); i++) {GoodsExtend goodsExtend = new GoodsExtend();Goods goods = goodsList.get(i);List<Image> imageList = imageService.getImagesByGoodsPrimaryKey(goods.getId());goodsExtend.setGoods(goods);goodsExtend.setImages(imageList);goodsExtendList.add(i, goodsExtend);}ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("goodsExtendList", goodsExtendList);modelAndView.addObject("catelog", catelog);modelAndView.addObject("search", str);modelAndView.setViewName("/goods/catelogGoods");return modelAndView;}/*** 根据商品id查询该商品详细信息* * @param id* @return* @throws Exception*/@RequestMapping(value = "/goodsId/{id}")public ModelAndView getGoodsById(HttpServletRequest request, @PathVariable("id") Integer id,@RequestParam(value = "str", required = false) String str) throws Exception {Goods goods = goodsService.getGoodsByPrimaryKey(id);User seller = userService.selectByPrimaryKey(goods.getUserId());Catelog catelog = catelogService.selectByPrimaryKey(goods.getCatelogId());GoodsExtend goodsExtend = new GoodsExtend();List<Image> imageList = imageService.getImagesByGoodsPrimaryKey(id);CommentExtend CommentExtend=goodsService.selectCommentsByGoodsId(id);goodsExtend.setGoods(goods);goodsExtend.setImages(imageList);ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("CommentExtend",CommentExtend);modelAndView.addObject("goodsExtend", goodsExtend);modelAndView.addObject("seller", seller);modelAndView.addObject("search", str);modelAndView.addObject("catelog", catelog);modelAndView.setViewName("/goods/detailGoods");return modelAndView;}/*** 发布评论* @return */@RequestMapping(value = "/addComments",method=RequestMethod.POST)public void deleteFocus(HttpServletRequest request,Comments comments) {User cur_user = (User)request.getSession().getAttribute("cur_user");comments.setUser(cur_user);SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");Date createAt =new Date();comments.setCreateAt(sdf.format(createAt));goodsService.addComments(comments);}/*** 修改商品信息** @return* @throws Exception*/@RequestMapping(value = "/editGoods/{id}")public ModelAndView editGoods(HttpServletRequest request,@PathVariable("id") Integer id) throws Exception {User cur_user = (User) request.getSession().getAttribute("cur_user");Goods goods = goodsService.getGoodsByPrimaryKey(id);List<Image> imageList = imageService.getImagesByGoodsPrimaryKey(id);GoodsExtend goodsExtend = new GoodsExtend();goodsExtend.setGoods(goods);goodsExtend.setImages(imageList);ModelAndView modelAndView = new ModelAndView();Integer userId = cur_user.getId();Purse myPurse = purseService.getPurseByUserId(userId);modelAndView.addObject("myPurse", myPurse);// 将商品信息添加到modelmodelAndView.addObject("goodsExtend", goodsExtend);modelAndView.setViewName("/goods/editGoods");return modelAndView;}/*** 提交商品更改信息** @return* @throws Exception*/@RequestMapping(value = "/editGoodsSubmit")public String editGoodsSubmit(HttpServletRequest request, Goods goods) throws Exception {User cur_user = (User) request.getSession().getAttribute("cur_user");goods.setUserId(cur_user.getId());String polish_time = DateUtil.getNowDay();goods.setPolishTime(polish_time);goods.setStatus(1);goodsService.updateGoodsByPrimaryKeyWithBLOBs(goods.getId(), goods);return "redirect:/user/allGoods";}/*** 商品下架** @return* @throws Exception*/@RequestMapping(value = "/offGoods")public ModelAndView offGoods() throws Exception {return null;}/*** 用户删除商品** @return* @throws Exception*/@RequestMapping(value = "/deleteGoods/{id}")public String deleteGoods(HttpServletRequest request, @PathVariable("id") Integer id) throws Exception {Goods goods = goodsService.getGoodsByPrimaryKey(id);// 删除商品后,catlog的number-1,user表的goods_num-1,image删除,更新session的值User cur_user = (User) request.getSession().getAttribute("cur_user");goods.setUserId(cur_user.getId());int number = cur_user.getGoodsNum();Integer calelog_id = goods.getCatelogId();Catelog catelog = catelogService.selectByPrimaryKey(calelog_id);catelogService.updateCatelogNum(calelog_id, catelog.getNumber() - 1);userService.updateGoodsNum(cur_user.getId(), number - 1);cur_user.setGoodsNum(number - 1);request.getSession().setAttribute("cur_user", cur_user);// 修改session值//imageService.deleteImagesByGoodsPrimaryKey(id);goodsService.deleteGoodsByPrimaryKey(id);return "redirect:/user/allGoods";}/*** 发布商品** @return* @throws Exception*/@RequestMapping(value = "/publishGoods")public ModelAndView publishGoods(HttpServletRequest request) {// 可以校验用户是否登录User cur_user = (User) request.getSession().getAttribute("cur_user");// if (cur_user == null) {// return "/goods/homeGoods";// } else {Integer userId = cur_user.getId();Purse myPurse = purseService.getPurseByUserId(userId);ModelAndView mv = new ModelAndView();mv.addObject("myPurse", myPurse);mv.setViewName("/goods/pubGoods");return mv;}/*** 提交发布的商品信息** @return* @throws Exception*/@RequestMapping(value = "/publishGoodsSubmit")public String publishGoodsSubmit(HttpServletRequest request, Image ima, Goods goods, MultipartFile image)throws Exception {// 查询出当前用户cur_user对象,便于使用idUser cur_user = (User) request.getSession().getAttribute("cur_user");goods.setUserId(cur_user.getId());goodsService.addGood(goods, 10);// 在goods表中插入物品// 返回插入的该物品的idint goodsId = goods.getId();ima.setGoodsId(goodsId);imageService.insert(ima);// 在image表中插入商品图片// 发布商品后,catlog的number+1,user表的goods_num+1,更新session的值int number = cur_user.getGoodsNum();Integer calelog_id = goods.getCatelogId();Catelog catelog = catelogService.selectByPrimaryKey(calelog_id);catelogService.updateCatelogNum(calelog_id, catelog.getNumber() + 1);userService.updateGoodsNum(cur_user.getId(), number + 1);cur_user.setGoodsNum(number + 1);request.getSession().setAttribute("cur_user", cur_user);// 修改session值return "redirect:/user/allGoods";}/*** 上传物品* * @param session* @param myfile* @return* @throws IllegalStateException* @throws IOException*/@ResponseBody@RequestMapping(value = "/uploadFile")public Map<String, Object> uploadFile(HttpSession session, MultipartFile myfile)throws IllegalStateException, IOException {// 原始名称String oldFileName = myfile.getOriginalFilename(); // 获取上传文件的原名// 存储图片的物理路径String file_path = session.getServletContext().getRealPath("upload");// System.out.println("file_path:"+file_path);// 上传图片if (myfile != null && oldFileName != null && oldFileName.length() > 0) {// 新的图片名称String newFileName = UUID.randomUUID() + oldFileName.substring(oldFileName.lastIndexOf("."));// 新图片File newFile = new File(file_path + "/" + newFileName);// 将内存中的数据写入磁盘myfile.transferTo(newFile);// 将新图片名称返回到前端Map<String, Object> map = new HashMap<String, Object>();map.put("success", "成功啦");map.put("imgUrl", newFileName);return map;} else {Map<String, Object> map = new HashMap<String, Object>();map.put("error", "图片不合法");return map;}}/*** 根据商品id查询该商品详细信息* * @param id* @return* @throws Exception*/@RequestMapping(value = "/buyId/{id}")public ModelAndView getGoodsdetailById(HttpServletRequest request, @PathVariable("id") Integer id)throws Exception {Goods goods = goodsService.getGoodsByPrimaryKey(id);GoodsExtend goodsExtend = new GoodsExtend();List<Image> imageList = imageService.getImagesByGoodsPrimaryKey(id);goodsExtend.setGoods(goods);goodsExtend.setImages(imageList);User cur_user = (User)request.getSession().getAttribute("cur_user");Integer userId = cur_user.getId();Purse myPurse=purseService.getPurseByUserId(userId);ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("goodsExtend", goodsExtend);modelAndView.addObject("myPurse",myPurse);modelAndView.setViewName("/user/pay");return modelAndView;}}

数据库配置信息:

<!-- 加载数据库参数 --><context:property-placeholder location="classpath:conf/jdbc.properties"/><context:component-scan base-package="com.ldu.service.impl"/><bean id = "dataSource" class = "com.alibaba.druid.pool.DruidDataSource" destroy-method = "close"><!-- 数据库基本信息配置 --><property name = "url" value = "${druid.url}" /><property name = "username" value = "${druid.username}" /><property name = "password" value = "${druid.password}" /><property name = "driverClassName" value = "${druid.driverClassName}" /><property name = "filters" value = "${druid.filters}" /><!-- 最大并发连接数 --><property name = "maxActive" value = "${druid.maxActive}" /><!-- 初始化连接数量 --><property name = "initialSize" value = "${druid.initialSize}" /><!-- 配置获取连接等待超时的时间 --><property name = "maxWait" value = "${druid.maxWait}" /><!-- 最小空闲连接数 --><property name = "minIdle" value = "${druid.minIdle}" /><!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 --><property name = "timeBetweenEvictionRunsMillis" value ="${druid.timeBetweenEvictionRunsMillis}" /><!-- 配置一个连接在池中最小生存的时间,单位是毫秒 --><property name = "minEvictableIdleTimeMillis" value ="${druid.minEvictableIdleTimeMillis}" /><property name = "validationQuery" value = "${druid.validationQuery}" /><property name = "testWhileIdle" value = "${druid.testWhileIdle}" /><property name = "testOnBorrow" value = "${druid.testOnBorrow}" /><property name = "testOnReturn" value = "${druid.testOnReturn}" /><property name = "maxOpenPreparedStatements" value ="${druid.maxOpenPreparedStatements}" />

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,而且也与当前的热点话题关联,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,比较适合毕业设计和课程设计的相关应用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

基于SSM的闲猫二手商城相关推荐

  1. java项目-第90期基于ssm的嘟嘟二手书商城系统

    源码获取:本博客首页"资源"专栏下载! java项目-第90期基于ssm的嘟嘟二手书商城系统 1.项目简述 该项目是二手书城商城系统,包含普通用户和管理员两个角色.普通用户可以购买 ...

  2. 基于Springboot+Vue的校园二手商城系统

    介绍 毕设:基于Springboot的校园二手交易商城的设计与实现 软件架构 Springboot+vue.js+MySQL 部署系统必备 JDK(1.8版本,并配置系统环境变量) MySQL(5.7 ...

  3. 基于ssm框架的校园二手交易平台

    基于ssm框架的校园二手交易平台 idea eclispe运行 数据库mysql tomcat8.5 jdk1.8 主要功能 包括前后台 用户注册登陆 发布闲置 擦亮 下架 上架 编辑个人信息 收货地 ...

  4. 基于ssm的流浪猫狗救助网站(包含数据库、完美运行、可远程调试)

    文章目录 前言 一.开发环境 二.前台主要模块展示 1.主页面 2.流浪猫狗知识 3.领养中心 4.团队活动 5.团队展示 6.登陆注册 三.后台主要模块展示 1.用户管理 2.流浪猫狗信息管理 3. ...

  5. 基于SSM的零食小食品商城(零食商城源码)

    项目类型:Java EE项目(SSM框架) 项目名称:基于SSM的零食小食品商城(snack) 论文作者:辣条学长撰写 当前版本:V1.0.0版本 难度等级:✩✩✩ 复杂程度:✩✩✩ 用户类型:两个角 ...

  6. 基于SSM+MySQL+Bootstrap的在线购物商城系统

    登陆注册 注册 添加商品 登陆 订单 添加商品 留言列表 首页 添加购物车 购物清单 购物车 修改密码 技术描述 开发工具: Idea/Eclipse 数据库: mysql Jar包仓库:普通jar包 ...

  7. javaweb基于SSM开发网上电子购物商城系统+论文+PPT 课程设计 毕业设计源码

    基于SSM开发网上电子购物商城系统+论文+PPT:(毕业设计/课程设计) 开发工具: MyEclipse(eclipse/idea)+Jdk+Tomcat+MySQL数据库 演示视频: 基于SSM开发 ...

  8. 基于SSM框架的体育用品商城购物系统

    基于SSM框架的体育用品商城购物系统 本系统是基于SSM框架的体育用品商城购物系统,本系统后端使用ssm框架,数据库使用mysql,前端使用bootstrap,JQuery框架,页面使用JSP 用户可 ...

  9. 基于SSM+SpringBoot《校园二手交易平台项目》实战开发教程(附论文及源码)-毕业设计

    文章目录 1.项目简介 2.技术选型 3.项目资料 4.项目部分截图 1.项目简介 毕业设计基于SSM+SpringBoot校园二手交易平台项目 源码在课程附件中进行下载,地址:https://dow ...

  10. idea中ssm集成freemark_基于SSM框架的迷你天猫商城

    作者:TMall来源:https://gitee.com/project_team/Tmall_demo 迷你天猫商城 迷你天猫商城是一个基于SSM框架的综合性B2C电商平台,需求设计主要参考天猫商城 ...

最新文章

  1. java下拉框选择_java中下拉框选项内容
  2. 百度浏览器支持html5,百度手机浏览器完美驾驭HTML5
  3. Netiler 开发规范
  4. OpenCV添加中文(五)
  5. AMD桌面处理器Roadmap也已泄露
  6. [概率论]如何通俗地理解“最大似然估计法”?
  7. redis设置密码和其它服务器连接
  8. javascript Date
  9. An unknown error occurred.
  10. listview拖动优化问题
  11. Exchange 2013 创建发送连接器
  12. centos 安装 LAMP
  13. ※C++随笔※=☆C++基础☆=※№→C++中 #include与#include
  14. 孟云飞 :一代通才 自成家数——赵之谦的艺术人生
  15. 克隆PDB数据库操作
  16. 华为丁耘突发疾病去世
  17. 金士顿DT100 G3 PS2251-07海力士U盘量产修复成功教程
  18. LD、CD、VCD、SVCD、DVD、DVCD、HDCD
  19. 深度学习中的正则化方法
  20. 【uni-app】uni-app实现聊天页面功能——功能篇(下)

热门文章

  1. 部署中遇到的问题(四)
  2. 实习笔记 6: 测试技巧,json序列化对象
  3. 简单瀑布流-jquery实现
  4. 国外大牛开发者创造出Siri第三方服务器
  5. apache和IIS共存,服务器对外统一使用80端口
  6. 拓端tecdat|R语言代写岭回归ridge regression分析租房价格报告
  7. 织梦支持php版本,DedeCMS不支持PHP5.3、5.4及以上版本后台500错误白屏的解决方法...
  8. 深度学习之神经网络(一)
  9. Dijkstra算法,起点到当前点的最短距离及路径 C++实现
  10. Servlet教程第0~3讲笔记