当前位置: 首页 > news >正文

基于jsp,ssm物流快递管理系统

开发工具:eclipse,jdk1.8

服务器:tomcat7.0

数据库:mysql5.7

技术: spring+springMVC+mybaits+EasyUI

项目包括用户前台和管理后台两部分,功能介绍如下: 

一、用户(前台)功能:

用户进入物流快递管理系统后,可以进行在线下单,下单完成后,可以查询订单状态;接着,用户可以浏览相关物流快递的新闻资讯;用户可以浏览网站提供的业务范围;最后,用户如果需要投诉或者反馈信息,可以给网站在线留言。

在线下单:用户可以在线下单,填写发货人、收货人和货物相关信息即可。

查询订单:用户下单后,可以输入订单号,查询物流快递订单的状态。

浏览新闻:用户可以在网站上,浏览相关物流快递的最新资讯。

浏览业务:用户可以浏览网站上的业务介绍,了解业务范围,明确自己的物流快递需求。

在线留言:用户可以给网站在线留言,填写相关信息即可。

二、管理员(后台)功能:

管理员首先登录系统,可以进行菜单管理、角色管理、用户管理、订单管理、新闻管理、留言管理、查看日志。

菜单管理:管理员可以增、删、改和查菜单信息。

角色管理:对角色信息进行管理,可以增、删、改和查角色信息。

用户管理:对用户信息进行管理,可以添加、修改、查询和删除用户信息。

订单管理:对订单信息进行管理,可以添加、修改、查询和删除订单信息。

新闻管理:对新闻进行管理,可以添加、修改、查询和删除新闻资讯。

留言管理:对留言信息进行管理,可以修改和删除留言信息。

查看日志:可以查看系统的详细日志信息。

文档截图:

前台用户截图:

后台管理员截图: 

package com.ischoolbar.programmer.controller.admin;import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;import com.ischoolbar.programmer.entity.admin.News;
import com.ischoolbar.programmer.page.admin.Page;
import com.ischoolbar.programmer.service.admin.NewsCategoryService;
import com.ischoolbar.programmer.service.admin.NewsService;/*** 新闻控制器* @author llq**/
@RequestMapping("/admin/news")
@Controller
public class NewsController {@Autowiredprivate NewsCategoryService newsCategoryService;@Autowiredprivate NewsService newsService;/*** 新闻列表页面* @param model* @return*/@RequestMapping(value="/list",method=RequestMethod.GET)public ModelAndView list(ModelAndView model){model.addObject("newsCategoryList", newsCategoryService.findAll());model.setViewName("news/list");return model;}/*** 新闻添加页面* @param model* @return*/@RequestMapping(value="/add",method=RequestMethod.GET)public ModelAndView add(ModelAndView model){model.addObject("newsCategoryList", newsCategoryService.findAll());model.setViewName("news/add");return model;}/*** 新闻添加* @param news* @return*/@RequestMapping(value="/add",method=RequestMethod.POST)@ResponseBodypublic Map<String,String> add(News news){Map<String,String> ret = new HashMap<String, String>();if(news == null){ret.put("type", "error");ret.put("msg", "请填写正确的信息!");return ret;}if(StringUtils.isEmpty(news.getTitle())){ret.put("type", "error");ret.put("msg", "新闻标题不能为空!");return ret;}if(news.getCategoryId() == null){ret.put("type", "error");ret.put("msg", "请选择新闻分类!");return ret;}if(StringUtils.isEmpty(news.getAbstrs())){ret.put("type", "error");ret.put("msg", "新闻摘要不能为空!");return ret;}if(StringUtils.isEmpty(news.getTags())){ret.put("type", "error");ret.put("msg", "新闻标签不能为空!");return ret;}if(StringUtils.isEmpty(news.getPhoto())){ret.put("type", "error");ret.put("msg", "新闻封面图片必须上传!");return ret;}if(StringUtils.isEmpty(news.getAuthor())){ret.put("type", "error");ret.put("msg", "新闻作者不能为空!");return ret;}if(StringUtils.isEmpty(news.getContent())){ret.put("type", "error");ret.put("msg", "新闻内容不能为空!");return ret;}news.setCreateTime(new Date());if(newsService.add(news) <= 0){ret.put("type", "error");ret.put("msg", "添加失败,请联系管理员!");return ret;}ret.put("type", "success");ret.put("msg", "添加成功!");return ret;}/*** 新闻编辑页面* @param model* @return*/@RequestMapping(value="/edit",method=RequestMethod.GET)public ModelAndView edit(ModelAndView model,Long id){model.addObject("newsCategoryList", newsCategoryService.findAll());model.addObject("news", newsService.find(id));model.setViewName("news/edit");return model;}/*** 新闻信息编辑* @param newsCategory* @return*/@RequestMapping(value="/edit",method=RequestMethod.POST)@ResponseBodypublic Map<String,String> edit(News news){Map<String,String> ret = new HashMap<String, String>();if(news == null){ret.put("type", "error");ret.put("msg", "请填写正确的信息!");return ret;}if(StringUtils.isEmpty(news.getTitle())){ret.put("type", "error");ret.put("msg", "新闻标题不能为空!");return ret;}if(news.getCategoryId() == null){ret.put("type", "error");ret.put("msg", "请选择新闻分类!");return ret;}if(StringUtils.isEmpty(news.getAbstrs())){ret.put("type", "error");ret.put("msg", "新闻摘要不能为空!");return ret;}if(StringUtils.isEmpty(news.getTags())){ret.put("type", "error");ret.put("msg", "新闻标签不能为空!");return ret;}if(StringUtils.isEmpty(news.getPhoto())){ret.put("type", "error");ret.put("msg", "新闻封面图片必须上传!");return ret;}if(StringUtils.isEmpty(news.getAuthor())){ret.put("type", "error");ret.put("msg", "新闻作者不能为空!");return ret;}if(StringUtils.isEmpty(news.getContent())){ret.put("type", "error");ret.put("msg", "新闻内容不能为空!");return ret;}if(newsService.edit(news) <= 0){ret.put("type", "error");ret.put("msg", "修改失败,请联系管理员!");return ret;}ret.put("type", "success");ret.put("msg", "修改成功!");return ret;}/*** 删除新闻* @param id* @return*/@RequestMapping(value="/delete",method=RequestMethod.POST)@ResponseBodypublic Map<String,String> delete(Long id){Map<String,String> ret = new HashMap<String, String>();if(id == null){ret.put("type", "error");ret.put("msg", "请选择要删除的信息!");return ret;}try{if(newsService.delete(id) <= 0){ret.put("type", "error");ret.put("msg", "删除失败,请联系管理员!");return ret;}}catch(Exception e){ret.put("type", "error");ret.put("msg", "该新闻下有评论信息,不可删除!");return ret;}ret.put("type", "success");ret.put("msg", "删除成功!");return ret;}/*** 分页模糊搜索查询列表* @param name* @param page* @return*/@RequestMapping(value="/list",method=RequestMethod.POST)@ResponseBodypublic Map<String,Object> getList(@RequestParam(name="title",required=false,defaultValue="") String title,@RequestParam(name="author",required=false,defaultValue="") String author,@RequestParam(name="categoryId",required=false) Long categoryId,Page page){Map<String,Object> ret = new HashMap<String, Object>();Map<String,Object> queryMap = new HashMap<String, Object>();queryMap.put("title", title);queryMap.put("author", author);if(categoryId != null && categoryId.longValue() != -1){queryMap.put("categoryId", categoryId);}queryMap.put("offset", page.getOffset());queryMap.put("pageSize", page.getRows());ret.put("rows", newsService.findList(queryMap));ret.put("total", newsService.getTotal(queryMap));return ret;}/*** 上传图片* @param photo* @param request* @return*/@RequestMapping(value="/upload_photo",method=RequestMethod.POST)@ResponseBodypublic Map<String, String> uploadPhoto(MultipartFile photo,HttpServletRequest request){Map<String, String> ret = new HashMap<String, String>();if(photo == null){ret.put("type", "error");ret.put("msg", "选择要上传的文件!");return ret;}if(photo.getSize() > 1024*1024*1024){ret.put("type", "error");ret.put("msg", "文件大小不能超过10M!");return ret;}//获取文件后缀String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".")+1,photo.getOriginalFilename().length());if(!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())){ret.put("type", "error");ret.put("msg", "请选择jpg,jpeg,gif,png格式的图片!");return ret;}String savePath = request.getServletContext().getRealPath("/") + "/resources/upload/";File savePathFile = new File(savePath);if(!savePathFile.exists()){//若不存在改目录,则创建目录savePathFile.mkdir();}String filename = new Date().getTime()+"."+suffix;try {//将文件保存至指定目录photo.transferTo(new File(savePath+filename));}catch (Exception e) {// TODO Auto-generated catch blockret.put("type", "error");ret.put("msg", "保存文件异常!");e.printStackTrace();return ret;}ret.put("type", "success");ret.put("msg", "用户上传图片成功!");ret.put("filepath",request.getServletContext().getContextPath() + "/resources/upload/" + filename );return ret;}
}

http://www.lryc.cn/news/213996.html

相关文章:

  • 陪诊系统|挂号陪护搭建二开陪诊师入驻就医小程序
  • 恒驰服务 | 华为云数据使能专家服务offering之大数据建设
  • 轻量级狂雨小说cms系统源码 v1.5.2 基于ThinkPHP5.1+MySQL
  • Leetcode刷题详解——Pow(x, n)
  • 计算机毕业设计选题推荐-校园失物招领微信小程序/安卓APP-项目实战
  • 人工智能基础_机器学习011_梯度下降概念_梯度下降步骤_函数与导函数求解最优解---人工智能工作笔记0051
  • 开放式耳机能保护听力吗,开放式耳机跟骨传导耳机哪个更好?
  • 【Qt之QLocale】使用
  • 维修服务预约小程序的效果如何
  • 前端架构体系调研整理汇总
  • DrawerLayout的点击事件会穿透到底部,如何拦截?
  • 在Spring boot中 使用JWT和过滤器实现登录认证
  • 天堂2如何对版本里面的内容进行修改
  • 代码随想录Day33 LeetCode T62不同路径 LeetCode T63 不同路径II
  • 【计算机网络】分层模型和应用协议
  • Python框架之Flask入门和视图
  • streamWriter.WriteLine
  • 一键添加色彩变幻效果,视频剪辑从未如此简单!
  • Linux的简介和环境搭建
  • 你看现在的程序员,是怎么解bug的
  • CSS3背景样式
  • JAVA同城服务同城圈子真人躲猫猫系统的玩法流程
  • C++继承——圆形和圆柱体
  • 致远OA wpsAssistServlet任意文件上传漏洞复现 [附POC]
  • Java规则引擎2.1.8版本新增功能说明
  • 系列四十、请谈一下Spring中事务的传播行为
  • kubectl详解
  • QT通过url下载http地址下的文件(文件夹)
  • 测试实施运维必备知识点
  • RTSP/Onvif安防视频平台EasyNVR接入EasyNVS,出现Login error报错的解决方法