源码获取:俺的博客首页 "资源" 里下载!
项目介绍
本项目分为前后台,前台为普通用户角色,后台为管理员角色;
管理员角色包含以下功能:
管理员登录,类目管理,用户管理,农产品管理,订单管理,公告管理,留言管理,查看日志等功能。
用户角色包含以下功能:
查看首页,用户登录,查看商品详情,查看我的收藏,查看我的购物车,查看我的订单,提交留言,修改个人信息,修改密码等功能。
环境需要
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.是否Maven项目: 是;
6.数据库:MySql 5.7/8.0等版本均可;
技术栈
1. 后端:Spring+springmvc+mybatis
2. 前端:JSP+css+javascript+jQuery
使用说明
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat
3. 将项目中db.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ssm_yunnanncp_shop/ 登录;
用户账号/密码: user/123456
管理员账号/密码:admin/admin
购物车管理控制层:
@ControllerpublicclasscartController {
@Autowiredprivate ProductService productService;
// 添加到购物车@RequestMapping("/addCart")public String addCart(HttpServletRequest request,@RequestParamint pid,@RequestParamint count ,Model model){
Productproduct= productService.finbProductByPid(pid);
// 存进一个购物项CartItemcartItem=newCartItem();
cartItem.setCount(count);
cartItem.setProduct(product);
cartItem.setSubtotle(count*product.getShopPrice());
// 存进购物车
Cart cart=getCart(request);
cart.addCart(cartItem);
return"cart";
}
// 查看我的购物车@RequestMapping("/myCart")public String myCart(HttpServletRequest request,Model model){
UserloginUser= (User) request.getSession().getAttribute("loginUser");
if (loginUser == null) {
model.addAttribute("message","您还没有登录!");
return"msg";
}
return"cart";
}
// 清空购物车@RequestMapping("/clearCart")public String clearCart(HttpServletRequest request){
Cart cart=getCart(request);
cart.clearCart();
return"redirect:myCart.action";
}
// 删除某个购物项@RequestMapping("/delProFromCart")public String delProFromCart(@RequestParamint pid,HttpServletRequest request){
Cart cart=getCart(request);
cart.delProFromCart(pid);
return"redirect:myCart.action";
}
public Cart getCart(HttpServletRequest request) {
Cartcart= (Cart) request.getSession().getAttribute("cart");
if (cart == null) {
cart = newCart();
request.getSession().setAttribute("cart", cart);
}
return cart;
}
}
订单管理控制层:
@ControllerpublicclassorderController {
@Autowiredprivate OrderService orderService;
@RequestMapping("/toOrder")public String toOrder(HttpServletRequest request,Model model)throws Exception {
Ordersorders=newOrders();
Cartcart= (Cart) request.getSession().getAttribute("cart");
UserloginUser= (User) request.getSession().getAttribute("loginUser");
if(loginUser==null){
model.addAttribute("message", "对不起您还没有登录");
return"msg";
}
// 0表示没有付款、1表示已付款即将发货 2表示确认收货 3表示交易成功
orders.setState(0);
orders.setOrderTime(newDate());
orders.setUid(loginUser.getUid());
orders.setMoney(cart.getTotale());
orderService.toOrder(orders);
Map<Integer, CartItem> cartItems = cart.getCartItem();
for (Entry<Integer, CartItem> entry : cartItems.entrySet()) {
CartItemcartItem= entry.getValue();
Orderitemorderitem=newOrderitem();
orderitem.setProduct(cartItem.getProduct());
orderitem.setCount(cartItem.getCount());
orderitem.setPid(cartItem.getProduct().getPid());
orderitem.setSubtotal(cartItem.getSubtotle());
orderitem.setOid(orders.getOid());
orders.getOiList().add(orderitem);
orderService.toOrderItem(orderitem);
}
cart.clearCart();
request.getSession().setAttribute("orders", orders);
return"order";
}
// 为定单付款@RequestMapping("/payOrder")public String payOrder(Orders orders,@RequestParam String receiveInfo,@RequestParam String phoNum,@RequestParam String accepter)throws Exception {
orders.setReceiveinfo(receiveInfo);
orders.setPhonum(phoNum);
orders.setAccepter(accepter);
orderService.payOrder(orders);
return"redirect:myOrder.action?page=1";
}
//payOrderAganin@RequestMapping("/payOrderAganin")public String payOrderAganin(@RequestParamint oid,HttpServletRequest request){
OrdersnoPayOrder= orderService.findOrderByOid(oid);
request.getSession().setAttribute("orders", noPayOrder);
return"order";
}
// 查询myOrder@RequestMapping("/myOrder")public String myOrder(@RequestParamint page, Model model,
HttpServletRequest request)throws Exception {
UserloginUser= (User) request.getSession().getAttribute("loginUser");
PageBean<Orders> pageBean = orderService.findOrderByUidAndPage(page,loginUser.getUid());
model.addAttribute("pageBean", pageBean);
return"orderList";
}
// 确认收货@RequestMapping("/updateState")public String updateState(@RequestParamint oid )throws Exception {
orderService.updateOrderStatus(oid, 3);
return"redirect:myOrder.action?page=1";
}
}
管理员管理控制层:
@ControllerpublicclassAdminController {
@Autowiredprivate UserService userService;
@Autowiredpublic CategoryService categoryService;
@Autowiredpublic CategorySecondService categorySecondService;
@Autowiredpublic ProductService productService;
@Autowiredprivate OrderService orderService;
@Autowiredprivate MessageService messageService;
@RequestMapping("/admin/admin_findAll")public String admin_findAll(Model model, HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
List<User> userList = userService.admin_findAll();
model.addAttribute("userList", userList);
return"admin/user/list";
}
@RequestMapping("/admin/adminCategory_findAll")public String adminCategory_findAll(Model model, HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
List<Category> categoryList = categoryService.adminbFindCategory();
/*for (Category category : categoryList) {
System.out.println(category.getCname());
}*/
model.addAttribute("categoryList", categoryList);
return"admin/category/list";
}
@RequestMapping("/admin/adminCategory_add")public String adminCategory_add(Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
// List<Category> categoryList = categoryService.adminbFindCategory();// model.addAttribute("categoryList", categoryList);return"admin/category/add";
}
@RequestMapping("/admin/adminCategory_save")public String adminCategory_save(@RequestParam String cname,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
CategoryaddCategory=newCategory();
addCategory.setCname(cname);
categoryService.addCategory(addCategory);
return"redirect:/admin/adminCategory_findAll.action";
}
@RequestMapping("/admin/adminCategory_edit")public String adminCategory_delete(@RequestParamint cid, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
CategoryexistCategory= categoryService.findCategory(cid);
model.addAttribute("existCategory", existCategory);
return"admin/category/edit";
}
@RequestMapping("/admin/adminCategory_update")public String adminCategory_update(@RequestParamint cid,
@RequestParam String cname,HttpServletRequest request) {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
Categorycategory=newCategory();
category.setCid(cid);
category.setCname(cname);
categoryService.adminCategory_update(category);
return"redirect:/admin/adminCategory_findAll.action";
}
@RequestMapping("/admin/adminCategory_delete")public String adminCategory_delete(@RequestParamint cid,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
categorySecondService.adminCategorySecond_deleteByCid(cid);
categoryService.deleteCategoryByCid(cid);
return"redirect:/admin/adminCategory_findAll.action";
}
// admin 的二级分类的管理@RequestMapping("/admin/adminCategorySecond_findAllByPage")public String adminCategorySecond_findAllByPage(@RequestParamint page,Model model,HttpServletRequest request) {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
PageBean<Categorysecond> csPageBean = categorySecondService
.adminCategorySecond_findAllByPage(page);
/*List<Categorysecond> list = csPageBean.getList();
for (Categorysecond categorysecond : list) {
System.out.println(categorysecond.getCsname());
}*/
model.addAttribute("csPageBean", csPageBean);
return"admin/categorysecond/list";
}
@RequestMapping("admin/adminCategorySecond_addPage")public String adminCategorySecond_addPage(Model model,HttpServletRequest request)throws Exception{
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
List<Category> categoryList = categoryService.adminbFindCategory();
model.addAttribute("categoryList", categoryList);
return"admin/categorysecond/add";
}
@RequestMapping("admin/adminCategorySecond_save")public String adminCategorySecond_save(@RequestParam String csname,@RequestParamint cid,HttpServletRequest request)throws Exception{
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
Categorysecondcategorysecond=newCategorysecond();
categorysecond.setCsname(csname);
categorysecond.setCid(cid);
categorySecondService.adminCategorySecond_save(categorysecond);
return"redirect:/admin/adminCategorySecond_findAllByPage.action?page=1";
}
@RequestMapping("admin/adminCategorySecond_edit")public String adminCategorySecond_edit(@RequestParamint csid,Model model,HttpServletRequest request)throws Exception{
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
CategorysecondfindByCsid= categorySecondService.findByCsid(csid);
model.addAttribute("findByCsid", findByCsid);
return"admin/categorysecond/edit";
}
@RequestMapping("admin/adminCategorySecond_update")public String adminCategorySecond_update(@RequestParam String csname,@RequestParamint csid,HttpServletRequest request){
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
Categorysecondcategorysecond=newCategorysecond();
categorysecond.setCsname(csname);
categorysecond.setCsid(csid);
categorySecondService.adminCategorySecond_update(categorysecond);
return"redirect:/admin/adminCategorySecond_findAllByPage.action?page=1";
}
@RequestMapping("admin/adminCategorySecond_delete")public String adminCategorySecond_delete(@RequestParamint csid,HttpServletRequest request)throws Exception{
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
categorySecondService.adminCategorySecond_delete(csid);
return"redirect:/admin/adminCategorySecond_findAllByPage.action?page=1";
}
//admin的商品管理@RequestMapping("/admin/adminProduct_findAllByPage")public String adminProduct_findAllByPage(@RequestParamint page, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
PageBean<Product> allProPageBean = productService.findAllProduct(page);
model.addAttribute("allProPageBean", allProPageBean);
return"admin/product/list";
}
@RequestMapping("/admin/adminProduct_addPage")public String adminProduct_addPage(Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
//查询出所有的二级分类
List<Categorysecond> cslist = categorySecondService.findAll();
/*for (Categorysecond categorysecond : cslist) {
System.out.println(categorysecond.getCsname());
}*/
model.addAttribute("cslist", cslist);
return"admin/product/add";
}
@RequestMapping("/admin/adminProduct_save")public String adminProduct_save(Product product,HttpServletRequest request,MultipartFile file)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
product.setPdate(newDate());
// 上传图片if (file != null) {
Stringpath= request.getServletContext().getRealPath(
"/products");
StringuploadFileName= file.getOriginalFilename();
StringfileName= UUIDUtiils.getUUID()+uploadFileName;
FilediskFile=newFile(path + "//" + fileName);
file.transferTo(diskFile);
product.setImage("products/" + fileName);
}
System.out.println(product.getImage());
productService.adminProduct_save(product);
return"redirect:/admin/adminProduct_findAllByPage.action?page=1";
}
@RequestMapping("admin/adminProduct_deletecs")public String adminProduct_deletecs(@RequestParamint pid,HttpServletRequest request)throws Exception{
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
productService.adminProduct_deletecs(pid);
return"redirect:/admin/adminProduct_findAllByPage.action?page=1";
}
/**
* 编辑商品
*
* @param pid
* @param model
* @param request
* @return
* @throws Exception
*/@RequestMapping("admin/adminProduct_edit")public String adminProduct_edit(@RequestParamint pid,Model model,HttpServletRequest request)throws Exception{
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
Productproduct= productService.finbProductByPid(pid);
model.addAttribute("findByPid", product);
//查询出所有的二级分类
List<Categorysecond> cslist = categorySecondService.findAll();
model.addAttribute("cslist", cslist);
return"admin/product/edit";
}
@RequestMapping("/admin/adminProduct_update")public String adminProduct_update(Product product,HttpServletRequest request,MultipartFile file)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
product.setPdate(newDate());
// 上传图片if (file != null) {
Stringpath= request.getServletContext().getRealPath(
"/products");
StringuploadFileName= file.getOriginalFilename();
StringfileName= UUIDUtiils.getUUID()+uploadFileName;
FilediskFile=newFile(path + "//" + fileName);
file.transferTo(diskFile);
product.setImage("products/" + fileName);
}
productService.adminProduct_update(product);
return"redirect:/admin/adminProduct_findAllByPage.action?page=1";
}
/** 订单管理模块 **/@RequestMapping("/admin/adminOrder_findAllByPage")public String adminOrder_findAllByPage(@RequestParamint page, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
PageBean<Orders> allProPageBean = orderService.findAllOrderByStateAndPage(page);
model.addAttribute("pageBean", allProPageBean);
return"admin/order/list";
}
//adminOrder_findByState@RequestMapping("/admin/adminOrder_findByState")public String adminOrder_findByState(@RequestParamint page,@RequestParamint state, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
PageBean<Orders> allProPageBean = orderService.findAllOrderByStateAndPage(state,page);
model.addAttribute("pageBean", allProPageBean);
return"admin/order/list";
}
//订单详情//adminOrder_findOrderItem@RequestMapping("/admin/adminOrder_findOrderItem")public String adminOrder_findOrderItem(@RequestParamint oid, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
OrdersorderItems= orderService.findOrderByOid(oid);
model.addAttribute("orderItems", orderItems);
return"admin/order/list";
}
//更新订单状态@RequestMapping("/admin/adminOrder_updateState")public String adminOrder_updateState(@RequestParamint oid, @RequestParamint status, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
orderService.updateOrderStatus(oid, status);
return"redirect:/admin/adminOrder_findAllByPage.action?page=1";
}
//后台留言管理 @RequestMapping("/admin/adminMessage_findAllByPage")public String adminMessage_findAllByPage(@RequestParamint page, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
PageBean<Message> pageBean = messageService.findAllMessageByPage(page);
model.addAttribute("pageBean", pageBean);
return"admin/message/list";
}
@RequestMapping("/admin/adminMessage_delete")public String adminOrder_updateState(@RequestParamint messageid, Model model,HttpServletRequest request)throws Exception {
AdminuseradminuserLogin= (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return"admin/index";
}
messageService.deleteMessage(messageid);
return"redirect:/admin/adminMessage_findAllByPage.action?page=1";
}
}