基于SSM实现水果商城批发平台

简介: 本系统主要为种值水果和农户和水果经销商搭建一个B2B的电子商务平台,系统共包含三个角色:农户、经销商和管理员。1.农户角色功能前台首页、用户注册登录、新闻公告、查看水果详情、收藏、留言、个人中心、我的收藏、意见反馈、发布水果、我的销售等功能。2.经销商角色功能前台首页、用户注册登录、新闻公告、查看水果详情、收藏、留言、个人中心、我的收藏、意见反馈、在线购买、下单结算、查看我的订单等功能。3.管理员后台功能用户管理、管理员管理、网站内容管理、水果类型管理、水果信息管理、采购订单管理、用户评价管理、意见反馈管理、留言交流管理等

作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

文末获取源码

一,项目简介

项目编号:BS-SC-029

本系统主要为种值水果和农户和水果经销商搭建一个B2B的电子商务平台,系统共包含三个角色:农户、经销商和管理员。

1.农户角色功能

前台首页、用户注册登录、新闻公告、查看水果详情、收藏、留言、个人中心、我的收藏、意见反馈、发布水果、我的销售等功能。

2.经销商角色功能

前台首页、用户注册登录、新闻公告、查看水果详情、收藏、留言、个人中心、我的收藏、意见反馈、在线购买、下单结算、查看我的订单等功能。

3.管理员后台功能

用户管理、管理员管理、网站内容管理、水果类型管理、水果信息管理、采购订单管理、用户评价管理、意见反馈管理、留言交流管理等

二,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

后台开发技术:SSM框架

前台开发技术:H-UI框架

三,系统展示

用户注册

image.gif编辑

用户登陆

image.gif编辑

系统首页

image.gif编辑

新闻公告

image.gif编辑

商品展示

image.gif编辑

全文检索

image.gif编辑

在线留言

image.gif编辑

添加购物车

image.gif编辑

image.gif编辑

经销商个人中心

image.gif编辑

农户个人中心

image.gif编辑

后台管理功能模块

image.gif编辑

四,核心代码展示

package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.Admin;
import com.service.AdminService;
import com.util.PageHelper;
import com.util.VeDate;
//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/admin" , produces = "text/plain;charset=utf-8")
public class AdminController extends BaseController {
  // 注入Service 由于标签的存在 所以不需要getter setter
  @Autowired
  private AdminService adminService;
  // 管理员准备
  @RequestMapping("index.action")
  public String index() {
    return "admin/index";
  }
  // 管理员登录 1 验证用户名是否存在 2 验证密码是否正确
  @RequestMapping("login.action")
  public String login() {
    String username = this.getRequest().getParameter("username");
    String password = this.getRequest().getParameter("password");
    Admin adminEntity = new Admin();
    adminEntity.setUsername(username);
    List<Admin> adminlist = this.adminService.getAdminByCond(adminEntity);
    if (adminlist.size() == 0) {
      this.getRequest().setAttribute("message", "用户名不存在");
      return "redirect:/admin/index.action";
    } else {
      Admin admin = adminlist.get(0);
      if (password.equals(admin.getPassword())) {
        this.getSession().setAttribute("adminid", admin.getAdminid());
        this.getSession().setAttribute("adminname", admin.getUsername());
        this.getSession().setAttribute("realname", admin.getRealname());
      } else {
        this.getRequest().setAttribute("message", "密码错误");
        return "redirect:/admin/index.action";
      }
    }
    return "admin/main";
  }
// 管理员准备修改密码
  @RequestMapping("prePwd.action")
  public String prePwd() {
    return "admin/editpwd";
  }
  // 修改密码
  @RequestMapping("editpwd.action")
  public String editpwd() {
    String adminid = (String) this.getSession().getAttribute("adminid");
    String password = this.getRequest().getParameter("password");
    String repassword = this.getRequest().getParameter("repassword");
    Admin admin = this.adminService.getAdminById(adminid);
    if (password.equals(admin.getPassword())) {
      admin.setPassword(repassword);
      this.adminService.updateAdmin(admin);
    } else {
      this.getRequest().setAttribute("message", "旧密码错误");
    }
    return "redirect:/admin/prePwd.action";
  }
  // 管理员退出登录
  @RequestMapping("exit.action")
  public String exit() {
    this.getSession().removeAttribute("adminid");
    this.getSession().removeAttribute("adminname");
    this.getSession().removeAttribute("realname");
    return "redirect:/admin/index.action";
  }
  // 准备添加数据
  @RequestMapping("createAdmin.action")
  public String createAdmin() {
    return "admin/addadmin";
  }
  // 添加数据
  @RequestMapping("addAdmin.action")
  public String addAdmin(Admin admin) {
    admin.setAddtime(VeDate.getStringDateShort());
    this.adminService.insertAdmin(admin);
    return "redirect:/admin/createAdmin.action";
  }
  // 通过主键删除数据
  @RequestMapping("deleteAdmin.action")
  public String deleteAdmin(String id) {
    this.adminService.deleteAdmin(id);
    return "redirect:/admin/getAllAdmin.action";
  }
  // 批量删除数据
  @RequestMapping("deleteAdminByIds.action")
  public String deleteAdminByIds() {
    String[] ids = this.getRequest().getParameterValues("adminid");
    for (String adminid : ids) {
      this.adminService.deleteAdmin(adminid);
    }
    return "redirect:/admin/getAllAdmin.action";
  }
  // 更新数据
  @RequestMapping("updateAdmin.action")
  public String updateAdmin(Admin admin) {
    this.adminService.updateAdmin(admin);
    return "redirect:/admin/getAllAdmin.action";
  }
  // 显示全部数据
  @RequestMapping("getAllAdmin.action")
  public String getAllAdmin(String number) {
    List<Admin> adminList = this.adminService.getAllAdmin();
    PageHelper.getPage(adminList, "admin", null, null, 10, number, this.getRequest(), null);
    return "admin/listadmin";
  }
  // 按条件查询数据 (模糊查询)
  @RequestMapping("queryAdminByCond.action")
  public String queryAdminByCond(String cond, String name, String number) {
    Admin admin = new Admin();
    if(cond != null){
      if ("username".equals(cond)) {
        admin.setUsername(name);
      }
      if ("password".equals(cond)) {
        admin.setPassword(name);
      }
      if ("realname".equals(cond)) {
        admin.setRealname(name);
      }
      if ("contact".equals(cond)) {
        admin.setContact(name);
      }
      if ("addtime".equals(cond)) {
        admin.setAddtime(name);
      }
    }
    List<String> nameList = new ArrayList<String>();
    List<String> valueList = new ArrayList<String>();
    nameList.add(cond);
    valueList.add(name);
    PageHelper.getPage(this.adminService.getAdminByLike(admin), "admin", nameList, valueList, 10, number, this.getRequest(), "query");
    name = null;
    cond = null;
    return "admin/queryadmin";
  }
  // 按主键查询数据
  @RequestMapping("getAdminById.action")
  public String getAdminById(String id) {
    Admin admin = this.adminService.getAdminById(id);
    this.getRequest().setAttribute("admin", admin);
    return "admin/editadmin";
  }
}

image.gif

package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.Article;
import com.service.ArticleService;
import com.entity.Banner;
import com.service.BannerService;
import com.util.PageHelper;
import com.util.VeDate;
//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/article" , produces = "text/plain;charset=utf-8")
public class ArticleController extends BaseController {
  // 注入Service 由于标签的存在 所以不需要getter setter
  @Autowired
  private ArticleService articleService;
  @Autowired
  private BannerService bannerService;
  // 准备添加数据
  @RequestMapping("createArticle.action")
  public String createArticle() {
    List<Banner> bannerList = this.bannerService.getAllBanner();
    this.getRequest().setAttribute("bannerList", bannerList);
    return "admin/addarticle";
  }
  // 添加数据
  @RequestMapping("addArticle.action")
  public String addArticle(Article article) {
    article.setAddtime(VeDate.getStringDateShort());
    article.setHits("0");
    this.articleService.insertArticle(article);
    return "redirect:/article/createArticle.action";
  }
  // 通过主键删除数据
  @RequestMapping("deleteArticle.action")
  public String deleteArticle(String id) {
    this.articleService.deleteArticle(id);
    return "redirect:/article/getAllArticle.action";
  }
  // 批量删除数据
  @RequestMapping("deleteArticleByIds.action")
  public String deleteArticleByIds() {
    String[] ids = this.getRequest().getParameterValues("articleid");
    for (String articleid : ids) {
      this.articleService.deleteArticle(articleid);
    }
    return "redirect:/article/getAllArticle.action";
  }
  // 更新数据
  @RequestMapping("updateArticle.action")
  public String updateArticle(Article article) {
    this.articleService.updateArticle(article);
    return "redirect:/article/getAllArticle.action";
  }
  // 显示全部数据
  @RequestMapping("getAllArticle.action")
  public String getAllArticle(String number) {
    List<Article> articleList = this.articleService.getAllArticle();
    PageHelper.getPage(articleList, "article", null, null, 10, number, this.getRequest(), null);
    return "admin/listarticle";
  }
  // 按条件查询数据 (模糊查询)
  @RequestMapping("queryArticleByCond.action")
  public String queryArticleByCond(String cond, String name, String number) {
    Article article = new Article();
    if(cond != null){
      if ("title".equals(cond)) {
        article.setTitle(name);
      }
      if ("bannerid".equals(cond)) {
        article.setBannerid(name);
      }
      if ("image".equals(cond)) {
        article.setImage(name);
      }
      if ("contents".equals(cond)) {
        article.setContents(name);
      }
      if ("addtime".equals(cond)) {
        article.setAddtime(name);
      }
      if ("hits".equals(cond)) {
        article.setHits(name);
      }
    }
    List<String> nameList = new ArrayList<String>();
    List<String> valueList = new ArrayList<String>();
    nameList.add(cond);
    valueList.add(name);
    PageHelper.getPage(this.articleService.getArticleByLike(article), "article", nameList, valueList, 10, number, this.getRequest(), "query");
    name = null;
    cond = null;
    return "admin/queryarticle";
  }
  // 按主键查询数据
  @RequestMapping("getArticleById.action")
  public String getArticleById(String id) {
    Article article = this.articleService.getArticleById(id);
    this.getRequest().setAttribute("article", article);
    List<Banner> bannerList = this.bannerService.getAllBanner();
    this.getRequest().setAttribute("bannerList", bannerList);
    return "admin/editarticle";
  }
}

image.gif

package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.Banner;
import com.service.BannerService;
import com.util.PageHelper;
import com.util.VeDate;
//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/banner" , produces = "text/plain;charset=utf-8")
public class BannerController extends BaseController {
  // 注入Service 由于标签的存在 所以不需要getter setter
  @Autowired
  private BannerService bannerService;
  // 准备添加数据
  @RequestMapping("createBanner.action")
  public String createBanner() {
    return "admin/addbanner";
  }
  // 添加数据
  @RequestMapping("addBanner.action")
  public String addBanner(Banner banner) {
    banner.setAddtime(VeDate.getStringDateShort());
    this.bannerService.insertBanner(banner);
    return "redirect:/banner/createBanner.action";
  }
  // 通过主键删除数据
  @RequestMapping("deleteBanner.action")
  public String deleteBanner(String id) {
    this.bannerService.deleteBanner(id);
    return "redirect:/banner/getAllBanner.action";
  }
  // 批量删除数据
  @RequestMapping("deleteBannerByIds.action")
  public String deleteBannerByIds() {
    String[] ids = this.getRequest().getParameterValues("bannerid");
    for (String bannerid : ids) {
      this.bannerService.deleteBanner(bannerid);
    }
    return "redirect:/banner/getAllBanner.action";
  }
  // 更新数据
  @RequestMapping("updateBanner.action")
  public String updateBanner(Banner banner) {
    this.bannerService.updateBanner(banner);
    return "redirect:/banner/getAllBanner.action";
  }
  // 显示全部数据
  @RequestMapping("getAllBanner.action")
  public String getAllBanner(String number) {
    List<Banner> bannerList = this.bannerService.getAllBanner();
    PageHelper.getPage(bannerList, "banner", null, null, 10, number, this.getRequest(), null);
    return "admin/listbanner";
  }
  // 按条件查询数据 (模糊查询)
  @RequestMapping("queryBannerByCond.action")
  public String queryBannerByCond(String cond, String name, String number) {
    Banner banner = new Banner();
    if(cond != null){
      if ("bannername".equals(cond)) {
        banner.setBannername(name);
      }
      if ("addtime".equals(cond)) {
        banner.setAddtime(name);
      }
      if ("memo".equals(cond)) {
        banner.setMemo(name);
      }
    }
    List<String> nameList = new ArrayList<String>();
    List<String> valueList = new ArrayList<String>();
    nameList.add(cond);
    valueList.add(name);
    PageHelper.getPage(this.bannerService.getBannerByLike(banner), "banner", nameList, valueList, 10, number, this.getRequest(), "query");
    name = null;
    cond = null;
    return "admin/querybanner";
  }
  // 按主键查询数据
  @RequestMapping("getBannerById.action")
  public String getBannerById(String id) {
    Banner banner = this.bannerService.getBannerById(id);
    this.getRequest().setAttribute("banner", banner);
    return "admin/editbanner";
  }
}

image.gif

package com.controller;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.entity.Complains;
import com.service.ComplainsService;
import com.entity.Users;
import com.service.UsersService;
import com.util.PageHelper;
//定义为控制器
@Controller
// 设置路径
@RequestMapping(value = "/complains" , produces = "text/plain;charset=utf-8")
public class ComplainsController extends BaseController {
  // 注入Service 由于标签的存在 所以不需要getter setter
  @Autowired
  private ComplainsService complainsService;
  @Autowired
  private UsersService usersService;
  // 准备添加数据
  @RequestMapping("createComplains.action")
  public String createComplains() {
    List<Users> usersList = this.usersService.getAllUsers();
    this.getRequest().setAttribute("usersList", usersList);
    return "admin/addcomplains";
  }
  // 添加数据
  @RequestMapping("addComplains.action")
  public String addComplains(Complains complains) {
    this.complainsService.insertComplains(complains);
    return "redirect:/complains/createComplains.action";
  }
  // 通过主键删除数据
  @RequestMapping("deleteComplains.action")
  public String deleteComplains(String id) {
    this.complainsService.deleteComplains(id);
    return "redirect:/complains/getAllComplains.action";
  }
  // 批量删除数据
  @RequestMapping("deleteComplainsByIds.action")
  public String deleteComplainsByIds() {
    String[] ids = this.getRequest().getParameterValues("complainsid");
    for (String complainsid : ids) {
      this.complainsService.deleteComplains(complainsid);
    }
    return "redirect:/complains/getAllComplains.action";
  }
  // 更新数据
  @RequestMapping("updateComplains.action")
  public String updateComplains(Complains complains) {
    this.complainsService.updateComplains(complains);
    return "redirect:/complains/getAllComplains.action";
  }
  // 更新状态
  @RequestMapping("status.action")
  public String status(String id) {
    String status = "";
    Complains complains = this.complainsService.getComplainsById(id);
    if (status.equals(complains.getStatus())) {
      status = "";
    }
    complains.setStatus(status);
    this.complainsService.updateComplains(complains);
    return "redirect:/complains/getAllComplains.action";
  }
  // 显示全部数据
  @RequestMapping("getAllComplains.action")
  public String getAllComplains(String number) {
    List<Complains> complainsList = this.complainsService.getAllComplains();
    PageHelper.getPage(complainsList, "complains", null, null, 10, number, this.getRequest(), null);
    return "admin/listcomplains";
  }
  // 按条件查询数据 (模糊查询)
  @RequestMapping("queryComplainsByCond.action")
  public String queryComplainsByCond(String cond, String name, String number) {
    Complains complains = new Complains();
    if(cond != null){
      if ("usersid".equals(cond)) {
        complains.setUsersid(name);
      }
      if ("title".equals(cond)) {
        complains.setTitle(name);
      }
      if ("contents".equals(cond)) {
        complains.setContents(name);
      }
      if ("addtime".equals(cond)) {
        complains.setAddtime(name);
      }
      if ("status".equals(cond)) {
        complains.setStatus(name);
      }
      if ("reps".equals(cond)) {
        complains.setReps(name);
      }
    }
    List<String> nameList = new ArrayList<String>();
    List<String> valueList = new ArrayList<String>();
    nameList.add(cond);
    valueList.add(name);
    PageHelper.getPage(this.complainsService.getComplainsByLike(complains), "complains", nameList, valueList, 10, number, this.getRequest(), "query");
    name = null;
    cond = null;
    return "admin/querycomplains";
  }
  // 按主键查询数据
  @RequestMapping("getComplainsById.action")
  public String getComplainsById(String id) {
    Complains complains = this.complainsService.getComplainsById(id);
    this.getRequest().setAttribute("complains", complains);
    List<Users> usersList = this.usersService.getAllUsers();
    this.getRequest().setAttribute("usersList", usersList);
    return "admin/editcomplains";
  }
}

image.gif

五,项目总结

  本系统功能主要是针对农户、经销商买卖双方进行业务对接,平台管理员负责基础数据的管理,是一个B2B的商城平台,功能比较完整,页面简洁大方,适合做毕业设计使用。

相关文章
|
3月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
2月前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
377 37
|
2月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
34 0
|
3月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
4月前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
66 0
|
4月前
|
Java 关系型数据库 MySQL
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(1)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
61 0
|
5月前
|
前端开发 Java
基于SSM框架的手机商城项目
基于SSM框架的手机商城项目
55 0
|
5月前
|
搜索推荐 JavaScript Java
计算机Java项目|基于SSM的个性化商铺系统
计算机Java项目|基于SSM的个性化商铺系统
|
2月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
5月前
|
前端开发 JavaScript Java
计算机Java项目|SSM智能仓储系统
计算机Java项目|SSM智能仓储系统