基于Java农产品商城系统设计与实现(源码+部署文档)

博主介绍: ✌至今服务客户已经1000+、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌
🍅 文末获取源码联系 🍅
👇🏻 精彩专栏 推荐订阅 👇🏻 不然下次找不到

Java项目精品实战专区icon-default.png?t=N7T8https://blog.csdn.net/java18343246781/category_12537229.htmlJava各种开发工具资源包网站icon-default.png?t=N7T8http://62.234.13.119:9000/html/visitor/softwareResourceList.html

软件安装+项目部署专区icon-default.png?t=N7T8https://blog.csdn.net/java18343246781/category_12539864.htmlv


系列文章目录

前言

一、运行环境

二、代码示例

三、系统展示


前言

1) 系统登录页面:输入用户名、密码登录系统。
2) 商城首页:展示所有商品,可按照分类进行筛选。
3) 商品详情:展示商品标题、价格、详情。可以收藏商品和加入购物车。
4) 购物车:可查看加入购物车的所有商品,点击勾选可进行下单。支持快速增加减少商品数量。
5) 个人中心:可查看个人的基本信息。
6) 我的订单:可查看历史所有订单信息。可按照状态来查询。
7) 商品收藏:用户可以收藏商品。可以在个人中心商品收藏页面查看。
8) 修改密码:支持用户修改密码。
9) 系统公告:用户可查看管理员发布的公告信息。
10) 系统留言:用户可以对系统留言。
11) 后台首页:对销售的商品进行统计分析。
12) 类目管理:可维护商品类目。支持新增、查询、删除、修改。
13) 用户管理:可查看系统所有用户。
14) 商品管理:可以查询所有商品、支持商品新增、修改、下架。支持图片上传。
15) 订单管理:可以查询用户下单的订单记录,支持查看所购买的商品。同时可发货。
16) 公告管理:系统管理员可以发布公告。
17) 留言管理:可以查看用户留言信息。

一、运行环境

1) jdk 1.8
2) mysql 5.7
3) tomcat 8.5
4) idea

二、代码示例

代码如下(示例):

import com.github.pagehelper.Page;
import com.javapandeng.base.BaseController;
import com.javapandeng.po.Item;
import com.javapandeng.po.ItemCategory;
import com.javapandeng.service.ItemCategoryService;
import com.javapandeng.service.ItemService;
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;/*** 分页查询商品列表*/@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("/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("/exAdd")public String exAdd(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {itemCommon(item, files, request);item.setGmNum(0);item.setIsDelete(0);item.setScNum(0);itemService.insert(item);return "redirect:/item/findBySql.action";}/*** 修改商品入口*/@RequestMapping("/update")public String update(Integer id,Model model){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("/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";}/*** 新增和更新的公共方法*/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("/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);model.addAttribute("obj",obj);return "item/view";}
}

三、系统展示

系统登录页面:输入用户名、密码登录系统。

商城首页:展示所有商品,可按照分类进行筛选。

商品详情:展示商品标题、价格、详情。可以收藏商品和加入购物车。

购物车:可查看加入购物车的所有商品,点击勾选可进行下单。支持快速增加减少商品数量。

个人中心:可查看个人的基本信息。

我的订单:可查看历史所有订单信息。可按照状态来查询。

商品收藏:用户可以收藏商品。可以在个人中心商品收藏页面查看。

修改密码:支持用户修改密码。

系统公告:用户可查看管理员发布的公告信息。

系统留言:用户可以对系统留言。

后台首页:对销售的商品进行统计分析。

类目管理:可维护商品类目。支持新增、查询、删除、修改。

用户管理:可查看系统所有用户。

商品管理:可以查询所有商品、支持商品新增、修改、下架。支持图片上传。

订单管理:可以查询用户下单的订单记录,支持查看所购买的商品。同时可发货。

公告管理:系统管理员可以发布公告。

留言管理:可以查看用户留言信息。

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

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

相关文章

Dataway工具(一个接口竟然可以如此简单的配置出来无需开发任何一行代码,也不需要做任何 Mapping 实体映射绑定。)

基于 DataQL 服务聚合能力&#xff0c;为应用提供的一个接口配置工具&#xff0c;使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布&#xff0c;一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共…

生产问题-Java服务CPU飙升100%问题

情况回顾 最近运维同学反馈有微服务CPU飙升100%&#xff0c;根据dump的日志文件排查出问题所在&#xff0c;在这里给大家做简单的分享&#xff0c;希望给大家工作上可以带来帮助。 核心伪代码分析 SneakyThrows//包装成 RuntimeException &#xff0c;骗过编译器&#xff0c…

navigator.mediaDevices.getUserMedia获取本地音频/麦克权限并提示用户

navigator.mediaDevices.getUserMedia获取本地音频/麦克权限并提示用户 效果获取权限NotFoundErrorNotAllowedError 代码 效果 获取权限 NotFoundError NotAllowedError 代码 // 调用 captureLocalMedia()// 方法 function captureLocalMedia() {console.warn(Requesting lo…

jmeter二次开发函数-生成身份证号

代码参考这个 java 随机生成身份证代码 Java的身份证号码工具类 pom文件添加 <dependency><groupId>org.apache.jmeter</groupId><artifactId>ApacheJMeter_core</artifactId><version>5.4.1</version></dependency><d…

盒子模型...

一&#xff0c;盒子模型 1.1网页布局的本质 1先准备好相关的网页元素&#xff0c;网页元素基本都是盒子BOX。 2利用CSS设置好盒子样式&#xff0c;然后摆放到相应位置。 3往盒子里面装内容。 1.2盒子模型 CSS盒子模型本质是一个盒子&#xff0c;封装周围的HTML元素&#xff…

电路设计(14)——奥运纪念日显示装置的proteus仿真

1.设计要求 北京奥运于2008年8月8日开幕&#xff0c;假设倒计时还剩69天&#xff0c;请你&#xff0c;制作一个电子作品&#xff0c;用以显示上述意思 采用三个数码管&#xff0c;其中一个数码管反复显示2008 8.8&#xff1b;该数码管下方并排放置另两个数码管&#xff0c;这二…

大数据调用链监控平台技术原理

一、AOP技术总结 二、监控逻辑动态织入原理 三、JVM动态织入流程 四、调用链监控平台技术简要总结 &#xff08;一&#xff09;、单服务的无感知自动日志埋点 jvm层面的字节码织入埋点&#xff0c;javaagent方式启动。 &#xff08;二&#xff09;、多服务调用链串联 trace…

hbuiderX打包为apk后无法停止录音的解决方案

同一个APP在hbuilder和hbuilderX打包&#xff0c;出现没有麦克风权限 - DCloud问答 第一步&#xff1a; 在manifest.json的“模块权限配置”中勾选以下权限&#xff1a; <uses-permission android:name"android.permission.MODIFY_AUDIO_SETTINGS" /> <use…

oracle 启动命令以及ORA-01033问题处理、删除归档日志

1 启动数据库:startup 2 关闭数据库&#xff1a;Shutdown immediate 3 查看监听状态&#xff1a;lsnrctl status 4 启动监听&#xff1a;lsnrctl start 5 停止监听&#xff1a;lsnrctl stop 常见问题 1、在服务器重启后会出现&#xff0c;Oracle ORA-01033: ORAC…

找不到concrt140.dll无法继续执行程序的多种解决方法

concrt140.dll文件的丢失可能会对Windows操作系统产生一系列显著的影响。作为系统运行过程中不可或缺的一部分&#xff0c;concrt140.dll是Microsoft Visual C Redistributable Package中包含的重要动态链接库文件&#xff0c;它为应用程序提供了关键的并发运行时支持。一旦该文…

SPSS绘图:直方图的绘制

直方图&#xff08;Histogram&#xff09;又称质量分布图&#xff0c;是一种以组距为底边、以频率为高度的一系列连接起来的直方型矩形图&#xff0c;由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型&#xff0c;纵轴表示分布情况。通过绘制直方…

VSCode如何让先前打开的文件不被自动关闭,一直保持在标签栏里(关闭预览模式)

第一次接触VSCode-Huawei IDE编辑器&#xff0c;每次打开一个新的代码文件&#xff0c;旧的代码文件都会被自动关闭&#xff08;现在才知道是因为文件默认是以预览模式打开展示的&#xff09;。 那么如何才能让先前打开的文件一直保持在标签栏里呢&#xff1f; 我们需要去设置…