基于javaweb+mysql的ssm水果商城系统(java+ssm+jsp+echarts+bootstrap+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM水果商城系统(java+ssm+jsp+echarts+bootstrap+mysql)
项目介绍
本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,类目管理,用户管理,商品管理,订单管理,发货管理,提交发货,公告管理,留言管理,日志查看等功能。
用户角色包含以下功能: 用户登录,用户首页,查看公告,提交留言,查看商品详情,加入购物车,商品结算等功能。
环境需要
1.运行环境:最好是java jdk 1.8 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:是;
技术栈
- 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jquery+bootstrap+echarts
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中db.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/fruitshop 登录 用户账号/密码: user/123456 管理员账号/密码:admin/admin
resultMap.put("result", pageBean);
} else {
// String search1 = "";
// search1 += ("%" + search + "%");
Map<String, Object> map = new HashMap<String, Object>();
map.put("start",start);
map.put("size",size);
map.put("typeDr",typeDr);
map.put("search",search);
List<Goods> lists = goodsService.findByPageSearchDr(map);
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("typeDr",typeDr);
map1.put("search",search);
// List<Goods> list = goodsService.selectSearchCountDr(map1);
map.put("search",search);
List<Goods> lists = goodsService.findByPageSearch(map);
// List<Goods> list = goodsService.selectSearchCount(search1);
int count = goodsService.selectSearchCount(search);
if (count <= 0) {
resultMap.put("status", 1);
resultMap.put("message", "没有数据");
resultMap.put("result", null);
} else {
int totalCount = count;
double tc = totalCount;
map.put("message", "添加成功");
} else {
map.put("status", 1);
map.put("message", "添加失败");
} catch (IOException e) {
e.printStackTrace();
return map;
/**
* 分页查询上架或下架商品列表信息
*/
@RequestMapping("/goodsTypeList")
@ResponseBody
public Map<String, Object> goodsTypeList(int currentPage, String search, int typeDr) {
int result = orderService.cancelOrder(id);
if (result == 1) {
Ordergoods or = orderService.selectGoodsId(id);
String goodscar_id = or.getGoodscarid();
int info = goodsCarService.updateGoodscarDr(goodscar_id);
if (info == 1) {
HttpSession session = request.getSession();
String uname = (String) session.getAttribute("username");
User u = userService.findUserByUsername(uname);
List<Ordergoods> orders = new ArrayList<Ordergoods>();
List<Ordergoods> gcs = orderService.selectOrderByuserId(u.getId());
for (Ordergoods gs : gcs) {
session.setAttribute("address",App.ADDRESS);
map.put("status", 0);
map.put("message", "添加地址成功");
return map;
/**
* 全部的订单列表
*/
@RequestMapping("/ordersList")
@ResponseBody
public Map<String, Object> ordersList(HttpServletRequest request){
Map<String, Object> map = new HashMap<String, Object>();
HttpSession session = request.getSession();
session.setAttribute("address",App.ADDRESS);
map.put("status", 0);
map.put("message", "添加地址成功");
return map;
/**
* 全部的订单列表
*/
@RequestMapping("/ordersList")
@ResponseBody
public Map<String, Object> ordersList(HttpServletRequest request){
Map<String, Object> map = new HashMap<String, Object>();
map.put("message", "注册成功");
return map;
/**
* 用户登录
* checked 为1 代表记住用户名,为0 代表忘记用户名
*/
@RequestMapping("/userLogin")
@ResponseBody
public Map<String, Object> doLogin(String username, String pwd, String checkcode, int checked, HttpServletRequest request) {
Map<String, Object> map = new HashMap<String, Object>();
HttpSession session = request.getSession();
resultMap.put("result", null);
} else {
int totalCount = count;
double tc = totalCount;
int totalPage = (int) Math.ceil(tc / pageSize);
pageBean.setCurrentage(currentPage);
pageBean.setPageSize(pageSize);
pageBean.setTotalCount(totalCount);
pageBean.setTotalPage(totalPage);
pageBean.setLists(lists);
resultMap.put("status", 0);
* 商品编辑
*/
@RequestMapping("/goodsUpdate")
@ResponseBody
public Map<String, Object> goodsUpdate(String id, String price, String count) {
Map<String, Object> map = new HashMap<String, Object>();
double price_double = Double.parseDouble(price);
double count_double = Double.parseDouble(count);
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("id",id);
//获取文件名
String pname = file.getOriginalFilename();
//获取文件格式
String type = pname.substring(pname.lastIndexOf("."));
//重命名
String photo_name = App.getUid() + type;
//将图片存到指定的位置
//windows系统配置图片路径
file.transferTo(new File("D:\\project\\fresh\\GoodsPhoto", photo_name));
//mac系统配置图片路径
//file.transferTo(new File("/Users/hanmeng/Desktop/java源码/Springboot生鲜水果商城/源码/GoodsPhoto", photo_name));
//将图片信息存入商品对象
goods.setPhoto(photo_name);
resultMap.put("status", 1);
resultMap.put("message", "没有数据");
resultMap.put("result", null);
} else {
int totalCount = count;
double tc = totalCount;
int totalPage = (int) Math.ceil(tc / pageSize);
pageBean.setCurrentage(currentPage);
pageBean.setPageSize(pageSize);
pageBean.setTotalCount(totalCount);
pageBean.setTotalPage(totalPage);
pageBean.setLists(lists);
resultMap.put("status", 0);
*/
@RequestMapping("/userLogin")
@ResponseBody
public Map<String, Object> doLogin(String username, String pwd, String checkcode, int checked, HttpServletRequest request) {
Map<String, Object> map = new HashMap<String, Object>();
HttpSession session = request.getSession();
String checkcode_server = (String) session.getAttribute("CHECKCODE");
session.removeAttribute("CHECKCODE");//为了保证验证码只能使用一次
User u = userService.findUserByUsername(username);
if (u == null || u.getDr() == 1) {
map.put("status", 1);
map.put("message", "登录失败,请检查信息是否正确");
if (orders.size() > 0) {
session.setAttribute("orders", orders);
if (checked == 1) {
App.USERNAME = username;
} else if (checked == 0) {
App.USERNAME = null;
map.put("status", 0);
map.put("message", "登录成功");
} else {
map.put("status", 1);
map.put("message", "登录失败,请检查信息是否正确");
return map;
resultMap.put("status", 1);
resultMap.put("message", "没有数据");
resultMap.put("result", null);
} else {
int totalCount = count;
double tc = totalCount;
int totalPage = (int) Math.ceil(tc / pageSize);
pageBean.setCurrentage(currentPage);
pageBean.setPageSize(pageSize);
pageBean.setTotalCount(totalCount);
pageBean.setTotalPage(totalPage);
pageBean.setLists(lists);
resultMap.put("status", 0);
Map<String, Object> map = new HashMap<String, Object>();
HttpSession session = request.getSession();
String checkcode_server = (String) session.getAttribute("CHECKCODE");
session.removeAttribute("CHECKCODE");//为了保证验证码只能使用一次
User u = userService.findUserByUsername(username);
if (u != null && checkcode.equalsIgnoreCase(checkcode_server) && email.equals(u.getEmail()) && u.getDr() == 1) {
User user = new User(username, password);
int result = userService.updatePassword(user);
if (result == 1) {
map.put("status", 0);
map.put("message", "修改成功");
} else {
Map<String, Object> map = new HashMap<String, Object>();
map.put("start",start);
map.put("size",size);
map.put("typeDr",typeDr);
map.put("search",search);
List<Goods> lists = goodsService.findByPageSearchDr(map);
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("typeDr",typeDr);
map1.put("search",search);
// List<Goods> list = goodsService.selectSearchCountDr(map1);
int count = goodsService.selectSearchCountDr(map1);
if (count <= 0) {
resultMap.put("status", 1);
if (goodslist.size() <= 0) {
map.put("status", 1);
map.put("message", "暂无上架商品");
map.put("result", null);
} else {
map.put("status", 0);
map.put("message", "正在加载,请稍后");
map.put("result", goodslist);
return map;
/**