Java项目:04 好物分享管理系统

作者主页:舒克日记

简介:Java领域优质创作者、Java项目、学习资料、技术互助

文中获取源码

项目介绍

好物分享平台
项目是单体ssm好物分享平台,包括用户平台及后台管理系统,

前台系统包含首页门户、好物推荐、好物搜索、好物展示、好物评价、好物分享、个人中心等模块。

后台管理系统包含好物管理、品类管理、会员管理、设置等模块。

管理员要做的是审核发布文章,对违规用户和违规文章处以删除操作,并且维护平台的正常运行

环境要求

1.运行环境:最好是java jdk1.8,我们在这个平台上运行的。其他版本理论上也可以。

2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;

3.tomcat环境:Tomcat7.x,8.X,9.x版本均可

4.硬件环境:windows7/8/10 4G内存以上;或者Mac OS;

5.是否Maven项目:是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven.项目

6.数据库:MySql5.7/8.0等版本均可;

技术栈

后台框架:ssm、MyBatis

数据库:MySQL

环境:JDK8、TOMCAT、IDEA

使用说明

1.使用Navicati或者其它工具,在mysql中创建对应sq文件名称的数据库,并导入项目的sql文件;

2.使用IDEA/Eclipse/MyEclipse导入项目,修改配置,运行项目;

3.将项目中config-propertiesi配置文件中的数据库配置改为自己的配置,然后运行;

运行指导

idea导入源码空间站顶目教程说明(Vindows版)-ssm篇:

http://mtw.so/5MHvZq

源码地址:http://codegym.top。

运行截图

项目文档

在这里插入图片描述

前端页面

QQ截图20240113121022

QQ截图20240113121104

QQ截图20240113121120

QQ截图20240113121138

QQ截图20240113121233

QQ截图20240113121246

管理员端

QQ截图20240113121306

QQ截图20240113121320

QQ截图20240113121334

QQ截图20240113121344

代码

ItemCategoryController

package com.javapandeng.controller;import com.javapandeng.base.BaseController;
import com.javapandeng.po.ItemCategory;
import com.javapandeng.service.ItemCategoryService;
import com.javapandeng.utils.Pager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;/*** 类目c层*/
@Controller
@RequestMapping("/itemCategory")
public class ItemCategoryController extends BaseController {@Autowiredprivate ItemCategoryService itemCategoryService;/*** 分页查询类目列表*/@RequestMapping("/findBySql")public String findBySql(Model model,ItemCategory itemCategory){String sql = "select * from item_category where isDelete = 0 and pid is null order by id";Pager<ItemCategory> pagers = itemCategoryService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",itemCategory);return "itemCategory/itemCategory";}/*** 转向到新增一级类目页面*/@RequestMapping(value = "/add")public String add(){return "itemCategory/add";}/*** 新增一级类目保存功能*/@RequestMapping("/exAdd")public String exAdd(ItemCategory itemCategory){itemCategory.setIsDelete(0);itemCategoryService.insert(itemCategory);return "redirect:/itemCategory/findBySql.action";}/*** 转向到修改一级类目页面*/@RequestMapping(value = "/update")public String update(Integer id,Model model){ItemCategory obj = itemCategoryService.load(id);model.addAttribute("obj",obj);return "itemCategory/update";}/*** 修改一级类目*/@RequestMapping("/exUpdate")public String exUpdate(ItemCategory itemCategory){itemCategoryService.updateById(itemCategory);return "redirect:/itemCategory/findBySql.action";}/*** 删除类目*/@RequestMapping("/delete")public String delete(Integer id){//删除本身ItemCategory load = itemCategoryService.load(id);load.setIsDelete(1);itemCategoryService.updateById(load);//将下级也删除String sql = "update item_category set isDelete=1 where pid="+id;itemCategoryService.updateBysql(sql);return "redirect:/itemCategory/findBySql.action";}/*** 查看二级类目*/@RequestMapping("/findBySql2")public String findBySql2(ItemCategory itemCategory,Model model){String sql = "select * from item_category where isDelete=0 and pid="+itemCategory.getPid()+" order by id";Pager<ItemCategory> pagers = itemCategoryService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",itemCategory);return "itemCategory/itemCategory2";}/*** 转向到新增二级类目页面*/@RequestMapping(value = "/add2")public String add2(int pid,Model model){model.addAttribute("pid",pid);return "itemCategory/add2";}/*** 新增二级类目保存功能*/@RequestMapping("/exAdd2")public String exAdd2(ItemCategory itemCategory){itemCategory.setIsDelete(0);itemCategoryService.insert(itemCategory);return "redirect:/itemCategory/findBySql2.action?pid="+itemCategory.getPid();}/*** 转向到修改二级类目页面*/@RequestMapping(value = "/update2")public String update2(Integer id,Model model){ItemCategory obj = itemCategoryService.load(id);model.addAttribute("obj",obj);return "itemCategory/update2";}/*** 修改二级类目*/@RequestMapping("/exUpdate2")public String exUpdate2(ItemCategory itemCategory){itemCategoryService.updateById(itemCategory);return "redirect:/itemCategory/findBySql2.action?pid="+itemCategory.getPid();}/*** 删除二级类目*/@RequestMapping("/delete2")public String delete2(Integer id,Integer pid){//删除本身ItemCategory load = itemCategoryService.load(id);load.setIsDelete(1);itemCategoryService.updateById(load);return "redirect:/itemCategory/findBySql2.action?pid="+pid;}
}

ItemController

package com.javapandeng.controller;import com.github.pagehelper.Page;
import com.javapandeng.base.BaseController;
import com.javapandeng.po.Item;
import com.javapandeng.po.ItemCategory;
import com.javapandeng.po.User;
import com.javapandeng.service.ItemCategoryService;
import com.javapandeng.service.ItemService;
import com.javapandeng.service.UserService;
import com.javapandeng.utils.Consts;
import com.javapandeng.utils.Pager;
import com.javapandeng.utils.SystemContext;
import com.javapandeng.utils.UUIDUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.commons.CommonsMultipartFile;import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.List;@Controller
@RequestMapping("/item")
public class ItemController extends BaseController {@Autowiredprivate ItemService itemService;@Autowiredprivate ItemCategoryService itemCategoryService;@Autowiredprivate UserService userService;/*** 分页查询好物列表*/@RequestMapping("/findBySql")public String findBySql(Model model, Item item){String sql = "select * from item where isDelete = 0 ";if(!isEmpty(item.getName())){sql += " and name like '%" + item.getName() + "%' ";}sql += " order by id desc";Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",item);return "item/item";}/*** 个人分页查询好物列表*/@RequestMapping("/findBySqlSelf")public String findBySqlSelf(Model model, Item item, HttpServletRequest request){Object attribute = request.getSession().getAttribute(Consts.USERID);if(attribute==null){return "redirect:/login/uLogin";}Integer userId = Integer.valueOf(attribute.toString());String sql = "select * from item where isDelete = 0 ";if (userId!=null){sql +="and type="+userId;}if(!isEmpty(item.getName())){sql += " and name like '%" + item.getName() + "%' ";}sql += " order by id desc";Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",item);return "user/itemList";}/*** 添加好物入口*/@RequestMapping("/add")public String add(Model model){String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);model.addAttribute("types",listBySqlReturnEntity);return "item/add";}/*** 添加好物入口*/@RequestMapping("/addItem")public String addItem(Model model){String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);model.addAttribute("types",listBySqlReturnEntity);return "user/addItem";}/*** 管理员执行添加好物*/@RequestMapping("/exAdd")public String exAdd(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {item.setPam1("admin");item.setType(1);itemCommon(item, files, request);item.setGmNum(0);item.setIsDelete(0);item.setScNum(0);itemService.insert(item);return "redirect:/item/findBySql.action";}/*** 用户执行添加好物*/@RequestMapping("/exUerAdd")public String exUerAdd(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {Object attribute = request.getSession().getAttribute(Consts.USERID);if(attribute!=null){Integer userId = Integer.valueOf(attribute.toString());User obj = userService.load(userId);item.setPam1(obj.getUserName());item.setType(obj.getId());}itemCommon(item, files, request);item.setGmNum(0);item.setIsDelete(0);item.setScNum(0);itemService.insert(item);return "redirect:/item/findBySqlSelf.action";}/*** 管理员修改好物入口*/@RequestMapping("/update")public String update(Integer id,Model model, HttpServletRequest request){Item obj = itemService.load(id);String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);model.addAttribute("types",listBySqlReturnEntity);model.addAttribute("obj",obj);return "item/update";}/*** 用户修改好物入口*/@RequestMapping("/userUpdate")public String userUpdate(Integer id,Model model, HttpServletRequest request){Item obj = itemService.load(id);String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);model.addAttribute("types",listBySqlReturnEntity);model.addAttribute("obj",obj);return "user/updateItem";}/*** 管理员执行修改好物*/@RequestMapping("/exUpdate")public String exUpdate(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {itemCommon(item, files, request);itemService.updateById(item);return "redirect:/item/findBySql.action";}/*** 用户执行修改好物*/@RequestMapping("/exUserUpdate")public String exUserUpdate(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {itemCommon(item, files, request);itemService.updateById(item);return "redirect:/item/findBySqlSelf.action";}/*** 新增和更新的公共方法*/private void itemCommon(Item item, @RequestParam("file") CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {if(files.length>0) {for (int s = 0; s < files.length; s++) {String n = UUIDUtils.create();String path = SystemContext.getRealPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename();File newFile = new File(path);//通过CommonsMultipartFile的方法直接写文件files[s].transferTo(newFile);if (s == 0) {item.setUrl1(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 1) {item.setUrl2(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 2) {item.setUrl3(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 3) {item.setUrl4(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 4) {item.setUrl5(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}}}ItemCategory byId = itemCategoryService.getById(item.getCategoryIdTwo());item.setCategoryIdOne(byId.getPid());}/*** 管理员好物下架*/@RequestMapping("/delete")public String update(Integer id){Item obj = itemService.load(id);obj.setIsDelete(1);itemService.updateById(obj);return "redirect:/item/findBySql.action";}@RequestMapping("/deleteUser")public String deleteUser(Integer id){Item obj = itemService.load(id);obj.setIsDelete(1);itemService.updateById(obj);return "redirect:/item/findBySqlSelf.action";}/*** 按关键字或者二级分类查询*/@RequestMapping("/shoplist")public String shoplist(Item item,String condition,Model model){String sql = "select * from item where isDelete=0";if(!isEmpty(item.getCategoryIdTwo())){sql +=" and category_id_two = " +item.getCategoryIdTwo();}if(!isEmpty(condition)){sql += " and name like '%" + condition +"%' ";model.addAttribute("condition",condition);}if(!isEmpty(item.getPrice())){sql += " order by (price+0) desc";}if(!isEmpty(item.getGmNum())){sql += " order by gmNum desc";}if(isEmpty(item.getPrice())&&isEmpty(item.getGmNum())){sql += " order by id desc";}Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",item);return "item/shoplist";}@RequestMapping("/view")public String view(Integer id,Model model){Item obj = itemService.load(id);//增加浏览量Integer gmNum = obj.getGmNum();gmNum++;obj.setGmNum(gmNum);itemService.updateById(obj);model.addAttribute("obj",obj);return "item/view";}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/345558.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BikeDNA(七)外在分析:OSM 与参考数据的比较1

BikeDNA&#xff08;七&#xff09;外在分析&#xff1a;OSM 与参考数据的比较1 该笔记本将提供的参考自行车基础设施数据集与同一区域的 OSM 数据进行所谓的外部质量评估进行比较。 为了运行这部分分析&#xff0c;必须有一个参考数据集可用于比较。 该分析基于将参考数据集…

Oracle篇—实例中和name相关参数的区别和作用

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

如何将jpg图片大小压缩?这个方法建议收藏

如何将jpg图片大小压缩&#xff1f;平时在分享jpg图片的时候&#xff0c;如果遇到图片过大无法使用的情况&#xff0c;可以试试本文分享的这个方法&#xff0c;通过图片在线处理工具压缩jpg文件大小&#xff0c;还不会操作的小伙伴也不用担心&#xff0c;下面小编会详细介绍jpg…

2024-01-09 Android.mk 根据c文件名插入特定的宏定义,我这里用于定义log LOG_TAG 标签

一、在Android的构建系统中&#xff0c;使用Android.mk构建脚本可以根据特定需求来定义宏。如果你想根据C文件的名称来插入特定的宏定义&#xff0c;可以使用条件语句检查文件名&#xff0c;并相应地设置宏。 在Android的构建系统中&#xff0c;使用Android.mk构建脚本可以根据…

C/S架构,集成三维影像后处理功能,自主版权的一套医院PACS系统源码

一、PACS简介 PACS&#xff08;PictureArchivingandCommunicationsSystem&#xff09;即图像存储与传输系统&#xff0c;是应用于医院的数字医疗设备如CT、MR&#xff08;磁共振&#xff09;、US&#xff08;超声成像&#xff09;、X光机、DSA&#xff08;数字减影&#xff09…

【C语言期末】基于VS2022的学生成绩管理系统(2)

诚接计算机专业编程任务(C语言、C、Python、Java、HTML、JavaScript、Vue等)10/15R&#xff0c;如有需要请私信我&#xff0c;或者加我的企鹅号&#xff1a;1404293476 本文资源&#xff1a;https://download.csdn.net/download/weixin_47040861/88737450 1.题目要求 设计题目…

探索设计模式的魅力:简单工厂模式

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;其主要目的是用于创建对象的实例。这种模式通过封装创建对象的代码来降低客户代码与具体类之间的耦合度。简单工厂不是GoF&#xff08;四人帮&#xff09;设计模式之一&#xff0c…

Java合并两个有序链表

思路&#xff1a; 创建一个临时的节点&#xff0c;命名傀儡节点&#xff0c;可以理解成临时的头节点&#xff0c;newHead&#xff0c;list1和list2的两两元素比较&#xff0c;小的连接newHead&#xff08;升序&#xff09;newHead的路径&#xff08;蓝色&#xff09;就是连接后…

第8章-第4节-Java中字节流的缓冲流

1、缓冲流&#xff1a;属于高级IO流&#xff0c;并不能直接读写数据&#xff0c;需要依赖于基础流。缓冲流的目的是为了提高文件的读写效率&#xff1f;那么是如何提高文件的读写效率的呢&#xff1f; 在内存中设置一个缓冲区&#xff0c;缓冲区的默认大小是8192字节&#xff…

VScode全局搜索屏蔽、显示屏蔽指定文件类型及文件夹

1.键盘上按快捷键“ crtl 逗号 ”启动设置界面 crtl ,设置界面显示如下&#xff1a; 2.搜索屏蔽 2.1.输入 search.exclude search.exclude 设置界面显示如下&#xff1a; 2.2. 点击下图红色箭头“Add Pattern”&#xff0c;添加想要屏蔽的文件类型或文件夹 **/*.git *…

python + selenium 初步实现数据驱动

如果在进行自动化测试的时候将测试数据写在代码中&#xff0c;若测试数据有变&#xff0c;不利于数据的修改和维护。但可以尝试通过将测试数据放到excel文档中来实现测试数据的管理。 示例&#xff1a;本次涉及的项目使用的12306 selenium 重构------三层架构 excel文件数据如…

Java项目:03 基于Springboot的销售培训考评管理系统

项目介绍 企业的销售要进行培训&#xff0c;由技术人员进行辅导并考评检测培训效果&#xff0c;所以有了这个小系统。实现了系统的登录验证、请求拦截验证、基础模块&#xff08;用户管理、角色管理、销售管理&#xff09;、业务模块&#xff08;评分管理、评分结果&#xff0…