基于javaweb的宠物商城带后台管理系统(java+ssm+jsp+jquery+ajax+mysql)
基于javaweb的宠物商城带后台管理系统(java+ssm+jsp+jquery+ajax+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的宠物商城带后台管理系统(java+SSM+JSP+jQuery+Ajax+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+jQuery+Ajax
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/ 登录 用户账号/密码: user/123456 管理员账号/密码:admin/admin
购物车Controller:
/**
- 购物车Controller
*/
@Controller
@RequestMapping(“/system/cart”)
public class CartController extends BaseController
private String prefix = “system/cart”;
@Autowired
private ICartService cartService;
@RequiresPermissions(“system:cart:view”)
@GetMapping()
public String cart()
return prefix + “/cart”;
/**
- 查询购物车列表
*/
@RequiresPermissions(“system:cart:list”)
@PostMapping(“/list”)
@ResponseBody
public TableDataInfo list(Cart cart)
Long userId = ShiroUtils.getSysUser().getUserId();
cart.setUserId(userId);
startPage();
List list = cartService.selectCartList(cart);
return getDataTable(list);
/**
- 导出购物车列表
*/
@RequiresPermissions(“system:cart:export”)
@Log(title = “购物车”, businessType = BusinessType.EXPORT)
@PostMapping(“/export”)
@ResponseBody
public AjaxResult export(Cart cart)
List list = cartService.selectCartList(cart);
ExcelUtil util = new ExcelUtil(Cart.class);
return util.exportExcel(list, “cart”);
/**
- 新增购物车
*/
@GetMapping(“/add”)
public String add()
return prefix + “/add”;
/**
- 新增保存购物车
*/
@RequiresPermissions(“system:cart:add”)
@Log(title = “购物车”, businessType = BusinessType.INSERT)
@PostMapping(“/add”)
@ResponseBody
public AjaxResult addSave(Cart cart)
return toAjax(cartService.insertCart(cart));
/**
- 新增保存购物车
*/
@Log(title = “购物车”, businessType = BusinessType.INSERT)
@GetMapping(“/addcart/{productId}”)
@ResponseBody
public AjaxResult addcart(@PathVariable(“productId”) Long productId,Cart cart)
Long userId = ShiroUtils.getSysUser().getUserId();
cart.setProductId(productId);
cart.setUserId(userId);
cartService.insertCart(cart);
return AjaxResult.success(“加入购物车成功!”);
/**
- 修改购物车
*/
@GetMapping(“/edit/{cartId}”)
public String edit(@PathVariable(“cartId”) Long cartId, ModelMap mmap)
Cart cart = cartService.selectCartById(cartId);
mmap.put(“cart”, cart);
return prefix + “/edit”;
/**
- 修改保存购物车
*/
@RequiresPermissions(“system:cart:edit”)
@Log(title = “购物车”, businessType = BusinessType.UPDATE)
@PostMapping(“/edit”)
@ResponseBody
public AjaxResult editSave(Cart cart)
return toAjax(cartService.updateCart(cart));
/**
- 删除购物车
*/
@RequiresPermissions(“system:cart:remove”)
@Log(title = “购物车”, businessType = BusinessType.DELETE)
@PostMapping( “/remove”)
@ResponseBody
public AjaxResult remove(String ids)
return toAjax(cartService.deleteCartByIds(ids));
订单管理Controller:
/**
- 订单管理Controller
*/
@Controller
@RequestMapping(“/system/order”)
public class OrderController extends BaseController
private String prefix = “system/order”;
@Autowired
private IOrderService orderService;
@Autowired
private IRoleService roleService;
@Autowired
private IProductService productService;
@Autowired
private IUserService userService;
@Autowired
private ICartService cartService;
@RequiresPermissions(“system:order:view”)
@GetMapping()
public String order(ModelMap mmap)
User user = ShiroUtils.getSysUser();
String roleString = roleService.selectRoleKeys(user.getUserId()).toString();
if(roleString.contains(“admin”)){
mmap.put(“loginRole”, “admin”);
}else if(roleString.contains(“seller”)){
mmap.put(“loginRole”, “seller”);
}else{
mmap.put(“loginRole”, “buyer”);
return prefix + “/order”;
/**
- 查询订单管理列表
*/
@RequiresPermissions(“system:order:list”)
@PostMapping(“/list”)
@ResponseBody
public TableDataInfo list(Order order)
User user = ShiroUtils.getSysUser();
String roleString = roleService.selectRoleKeys(user.getUserId()).toString();
startPage();
List list;
if(roleString.contains(“admin”)){
list = orderService.selectOrderList(order);
}else if(roleString.contains(“seller”)){
list = orderService.selectOrderBySellerId(user.getUserId());
List queryList = new ArrayList();
if(StringUtils.isNotEmpty(order.getOrderStatus())){
for(int i = 0 ; i < list.size();i++){
if(list.get(i).getOrderStatus().equals(order.getOrderStatus())){
queryList.add(list.get(i));
list = queryList;
}else{
order.setUserId(user.getUserId());
list = orderService.selectOrderList(order);
return getDataTable(list);
/**
- 导出订单管理列表
*/
@RequiresPermissions(“system:order:export”)
@Log(title = “订单管理”, businessType = BusinessType.EXPORT)
@PostMapping(“/export”)
@ResponseBody
public AjaxResult export(Order order)
List list = orderService.selectOrderList(order);
ExcelUtil util = new ExcelUtil(Order.class);
return util.exportExcel(list, “order”);
/**
- 新增订单管理
*/
@GetMapping(“/add”)
public String add()
return prefix + “/add”;
/**
- 新增保存订单管理
*/
@RequiresPermissions(“system:order:add”)
@Log(title = “订单管理”, businessType = BusinessType.INSERT)
@PostMapping(“/add”)
@ResponseBody
public AjaxResult addSave(Order order)
return toAjax(orderService.insertOrder(order));
/**
- 前台创建订单
*/
@Log(title = “订单管理”, businessType = BusinessType.INSERT)
@PostMapping(“/create”)
@ResponseBody
public AjaxResult create(Order order)
// 先判断用户积分是否充足
User user = userService.selectUserById(ShiroUtils.getSysUser().getUserId());
// 订单为待支付的状态
order.setOrderStatus(“0”);
order.setUserId(user.getUserId());
order.setOrderTime(new Date());
order.setPayWay(“0”);
orderService.insertOrder(order);
// 删除购物车数据
Cart cart = new Cart();
cart.setUserId(order.getUserId());
cart.setProductId(order.getProductId());
List carts = cartService.selectCartList(cart);
for(Cart item : carts){
cartService.deleteCartById(item.getCartId());
return AjaxResult.success(order.getOrderId());
/**
- 前台创建订单
*/
@Log(title = “订单管理”, businessType = BusinessType.INSERT)
@GetMapping(“/createorder/{productId}”)
public String createorder(@PathVariable(“productId”) Long productId , ModelMap mmap)
Product product = productService.selectProductById(productId);
mmap.put(“productId”, productId);
mmap.put(“orderPrice”, product.getProductPrice());
return “front/createorder”;
/**
- 修改订单管理
*/
@GetMapping(“/edit/{orderId}”)
public String edit(@PathVariable(“orderId”) Long orderId, ModelMap mmap)
Order order = orderService.selectOrderById(orderId);
mmap.put(“order”, order);
return prefix + “/edit”;
/**
- 修改订单管理
*/
@GetMapping(“/pay/{orderId}”)
public String pay(@PathVariable(“orderId”) Long orderId, ModelMap mmap)
Order order = orderService.selectOrderById(orderId);
mmap.put(“order”, order);
return prefix + “/pay”;
@GetMapping(“/comment/{orderId}”)
public String comment(@PathVariable(“orderId”) Long orderId, ModelMap mmap)
Order order = orderService.selectOrderById(orderId);
mmap.put(“order”, order);
return prefix + “/comment”;
/**
- 修改保存订单管理
*/
@Log(title = “订单管理”, businessType = BusinessType.UPDATE)
@PostMapping(“/comment”)
@ResponseBody
public AjaxResult commentSave(Order order)
Order saveOrder = orderService.selectOrderById(order.getOrderId());
saveOrder.setOrderComment(order.getOrderComment());
saveOrder.setOrderCommentTime(new Date());
saveOrder.setOrderStatus(“5”);
saveOrder.setCommentUrl(order.getCommentUrl());
return toAjax(orderService.updateOrder(saveOrder));
@GetMapping(“/payOrder/{orderId}”)
@ResponseBody
public AjaxResult payOrder(@PathVariable(“orderId”) Long orderId, ModelMap mmap)
Order order = orderService.selectOrderById(orderId);
order.setOrderStatus(“1”);
return toAjax(orderService.updateOrder(order));
@PostMapping(“/payOrder”)
@ResponseBody
public AjaxResult payOrder(Order order, ModelMap mmap)
order.setOrderStatus(“1”);
return toAjax(orderService.updateOrder(order));
@GetMapping(“/confirmStatus/{orderId}”)
@ResponseBody
public AjaxResult confirmStatus(@PathVariable(“orderId”) Long orderId, ModelMap mmap)
Order order = orderService.selectOrderById(orderId);
order.setOrderStatus(“2”);
return toAjax(orderService.updateOrder(order));
@GetMapping(“/sendStatus/{orderId}”)
@ResponseBody
public AjaxResult sendStatus(@PathVariable(“orderId”) Long orderId, ModelMap mmap)
Order order = orderService.selectOrderById(orderId);
order.setOrderStatus(“3”);
return toAjax(orderService.updateOrder(order));
@GetMapping(“/receiveStatus/{orderId}”)
@ResponseBody
public AjaxResult receiveStatus(@PathVariable(“orderId”) Long orderId, ModelMap mmap)
Order order = orderService.selectOrderById(orderId);
order.setOrderStatus(“4”);
return toAjax(orderService.updateOrder(order));
/**
- 修改保存订单管理
*/
@RequiresPermissions(“system:order:edit”)
@Log(title = “订单管理”, businessType = BusinessType.UPDATE)
@PostMapping(“/edit”)
@ResponseBody
public AjaxResult editSave(Order order)
return toAjax(orderService.updateOrder(order));
/**
- 删除订单管理
*/
@RequiresPermissions(“system:order:remove”)
@Log(title = “订单管理”, businessType = BusinessType.DELETE)
@PostMapping( “/remove”)
@ResponseBody
public AjaxResult remove(String ids)
return toAjax(orderService.deleteOrderByIds(ids));
用户信息管理控制层:
/**
- 用户信息
*/
@Controller
@RequestMapping(“/system/user”)
public class UserController extends BaseController
private String prefix = “system/user”;
@Autowired
private IUserService userService;
@Autowired
private IRoleService roleService;
@Autowired
private IPostService postService;
@RequiresPermissions(“system:user:view”)
@GetMapping()
public String user()
return prefix + “/user”;
@RequiresPermissions(“system:user:list”)
@PostMapping(“/list”)
@ResponseBody
public TableDataInfo list(User user)
startPage();
List list = userService.selectUserList(user);
return getDataTable(list);
@Log(title = “用户管理”, businessType = BusinessType.EXPORT)
@RequiresPermissions(“system:user:export”)
@PostMapping(“/export”)
@ResponseBody
public AjaxResult export(User user)
List list = userService.selectUserList(user);
ExcelUtil util = new ExcelUtil(User.class);
return util.exportExcel(list, “用户数据”);
@Log(title = “用户管理”, businessType = BusinessType.IMPORT)
@RequiresPermissions(“system:user:import”)
@PostMapping(“/importData”)
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
ExcelUtil util = new ExcelUtil(User.class);
List userList = util.importExcel(file.getInputStream());
String message = userService.importUser(userList, updateSupport);
return AjaxResult.success(message);
@RequiresPermissions(“system:user:view”)
@GetMapping(“/importTemplate”)
@ResponseBody
public AjaxResult importTemplate()
ExcelUtil util = new ExcelUtil(User.class);
return util.importTemplateExcel(“用户数据”);
/**
- 新增用户
*/
@GetMapping(“/add”)
public String add(ModelMap mmap)
mmap.put(“roles”, roleService.selectRoleAll());
mmap.put(“posts”, postService.selectPostAll());
return prefix + “/add”;
/**
- 新增保存用户
*/
@RequiresPermissions(“system:user:add”)
@Log(title = “用户管理”, businessType = BusinessType.INSERT)
@PostMapping(“/add”)
@ResponseBody
public AjaxResult addSave(@Validated User user)
if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(user.getLoginName())))
return error(“新增用户’” + user.getLoginName() + “'失败,登录账号已存在”);
else if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
return error(“新增用户’” + user.getLoginName() + “'失败,手机号码已存在”);
else if (UserConstants.USER_EMAIL_NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
return error(“新增用户’” + user.getLoginName() + “'失败,邮箱账号已存在”);
return toAjax(userService.insertUser(user));
/**
- 修改用户
*/
@GetMapping(“/edit/{userId}”)
public String edit(@PathVariable(“userId”) Long userId, ModelMap mmap)
mmap.put(“user”, userService.selectUserById(userId));
mmap.put(“roles”, roleService.selectRolesByUserId(userId));
mmap.put(“posts”, postService.selectPostsByUserId(userId));
return prefix + “/edit”;
/**
- 修改保存用户
*/
@RequiresPermissions(“system:user:edit”)
@Log(title = “用户管理”, businessType = BusinessType.UPDATE)
@PostMapping(“/edit”)
@ResponseBody
public AjaxResult editSave(@Validated User user)
userService.checkUserAllowed(user);
if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
return error(“修改用户’” + user.getLoginName() + “'失败,手机号码已存在”);
else if (UserConstants.USER_EMAIL_NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
return error(“修改用户’” + user.getLoginName() + “'失败,邮箱账号已存在”);
return toAjax(userService.updateUser(user));
@RequiresPermissions(“system:user:resetPwd”)
@Log(title = “重置密码”, businessType = BusinessType.UPDATE)
@GetMapping(“/resetPwd/{userId}”)
public String resetPwd(@PathVariable(“userId”) Long userId, ModelMap mmap)
mmap.put(“user”, userService.selectUserById(userId));
return prefix + “/resetPwd”;
@RequiresPermissions(“system:user:resetPwd”)
@Log(title = “重置密码”, businessType = BusinessType.UPDATE)
@PostMapping(“/resetPwd”)
@ResponseBody
public AjaxResult resetPwdSave(User user)
userService.checkUserAllowed(user);
if (userService.resetUserPwd(user) > 0)
if (ShiroUtils.getUserId() == user.getUserId())
setSysUser(userService.selectUserById(user.getUserId()));
return success();
return error();
@RequiresPermissions(“system:user:remove”)
@Log(title = “用户管理”, businessType = BusinessType.DELETE)
@PostMapping(“/remove”)
@ResponseBody
public AjaxResult remove(String ids)
try
return toAjax(userService.deleteUserByIds(ids));
catch (Exception e)
return error(e.getMessage());
/**
- 校验用户名
*/
@PostMapping(“/checkLoginNameUnique”)
@ResponseBody
public String checkLoginNameUnique(User user)
return userService.checkLoginNameUnique(user.getLoginName());
/**
- 校验手机号码
*/
@PostMapping(“/checkPhoneUnique”)
@ResponseBody
public String checkPhoneUnique(User user)
return userService.checkPhoneUnique(user);
/**
- 校验email邮箱
*/
@PostMapping(“/checkEmailUnique”)
@ResponseBody
public String checkEmailUnique(User user)
return userService.checkEmailUnique(user);
/**
- 用户状态修改
*/
@Log(title = “用户管理”, businessType = BusinessType.UPDATE)
@RequiresPermissions(“system:user:edit”)
@PostMapping(“/changeStatus”)
@ResponseBody
public AjaxResult changeStatus(User user)
userService.checkUserAllowed(user);
return toAjax(userService.changeStatus(user));
基于javaweb的宠物商城带后台管理系统(java+ssm+jsp+jquery+ajax+mysql)相关推荐
- 基于javaweb的外卖订餐管理系统(java+ssm+jsp+jquery+ajax+mysql)
基于javaweb的外卖订餐管理系统(java+ssm+jsp+jquery+ajax+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/ ...
- 基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql)
基于javaweb的自习室图书馆座位预约管理系统(java+ssm+jsp+easyui+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea ...
- 基于javaweb的业务代办帮跑腿管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
基于javaweb的业务代办帮跑腿管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclip ...
- 基于javaweb的高校教职工差旅报销管理系统(java+ssm+jsp+html+mysql)
基于javaweb的高校教职工差旅报销管理系统(java+ssm+jsp+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/my ...
- 基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql)
基于javaweb的超市进销存管理系统(java+ssm+jsp+bootstrap+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...
- 基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql)
基于javaweb的图书进销存管理系统(java+ssm+jsp+bootstrap+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...
- Java项目:洗浴中心管理系统(java+SSM+JSP+jQuery+javascript+Mysql)
源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前后台,包含普通用户与管理员两种角色: 管理员角色包含以下功能: 管理员登录,管理员信息管理,查看用户信息,新闻公告 ...
- 基于javaweb的水果生鲜超市商城管理系统(java+ssm+jsp+jquery+mysql)
基于javaweb的水果生鲜超市商城管理系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/m ...
- 基于javaweb的酒吧后台管理系统(java+ssm+jsp+html+mysql)
基于javaweb的酒吧后台管理系统(java+ssm+jsp+html+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclip ...
最新文章
- java 坦克重叠_坦克大战中坦克一直有重叠是怎么回事
- 小白入门:大型网站技术架构负载均衡技术介绍及学习资源推荐
- 五大理由从Python转到Go语言
- Android Selector 用法
- 一个简易上手的短信服务Spring Boot Starter,连傻瓜都会!
- openssl 安装好了 php如何打开,开启openssl
- Go的io/ioutil
- XAMPP 无法启动解决
- HTML5新的解析顺序,HTML5新表单新功能解析
- 有什么激励你一辈子的句子?
- Unity 中 Png转Texture2D再转Sprite
- JavaScript 必会的知识点
- bootstrap bootstraptable 固定列_初识Bootstrap
- Dynamips和Vmware完成CCVP试验(6)
- LPDDR4协议规范之 (四)命令和时序(转自https://blog.csdn.net/YJFeiii/article/details/105475327)
- C++核心准则​SL.con.1:标准库array或vector好于C数组
- Atom使用教程:Atom下载,Atom汉化教程,Atom常用插件
- undefined reference to 'function'及解决办法
- 使用云效 修改 layui 环境变量
- Kotlin Flow 冷流 StateFlow 热流 StateFlow 的应用
热门文章
- TP5将查询结果集进行排序 记录一下
- 纳米的尺度究竟有多大?
- 对称加密,单向加密,公钥加密
- cs229 斯坦福机器学习笔记(一)-- 入门与LR模型
- PMP对职业发展帮助大吗?
- 开发板搭建FTP服务器
- 六、系统软中断、tasklet、工作队列work queue的区别及使用
- 开发者中心证书报错Program License Agreement updated解决方法
- 怎么一次性将Excel表格中指定文本整行数据删除
- 放假啦,高兴...........