基于javaweb+mysql的ssm农产品特产商城系统(java+ssm+jsp+jquery+mysql)

基于javaweb+mysql的ssm农产品特产商城系统(java+ssm+jsp+jquery+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的SSM农产品特产商城系统(java+ssm+jsp+jquery+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.是否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

  1. 将项目中db.properties配置文件中的数据库配置改为自己的配置;

  2. 运行项目,在浏览器中输入http://localhost:8080/ssm_yunnanncp_shop/ 登录;

用户账号/密码: user/123456

管理员账号/密码:admin/admin


@Controller
@RequestMapping("/orderDetail")
public class OrderDetailController extends BaseController {
	
	
	/**
	 * 依赖注入 start dao/service/===
	 */
	@Autowired
	private OrderDetailService orderDetailService;
	
	// --------------------------------------- 华丽分割线 ------------------------------
	
	/*********************************查询列表【不分页】***********************************************/
	
	/**
	 * 【不分页 => 查询列表 => 无条件】
	* @Title: listAll 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listAll")
	public String listAll(OrderDetail orderDetail, Model model, HttpServletRequest request, HttpServletResponse response){
		List<OrderDetail> listAll = orderDetailService.listAll();
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listAll")
	public String listAll(ItemCategory itemCategory, Model model, HttpServletRequest request, HttpServletResponse response){
		List<ItemCategory> listAll = itemCategoryService.listAll();
		model.addAttribute("list", listAll);
		return "itemCategory/itemCategory";
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByEntity 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByEntity")
	public String listByEntity(ItemCategory itemCategory, Model model, HttpServletRequest request, HttpServletResponse response){
		List<ItemCategory> listAll = itemCategoryService.listAllByEntity(itemCategory);
		model.addAttribute("list", listAll);
		return "itemCategory/itemCategory";
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByMap 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByMap")
	public String listByMap(ItemCategory itemCategory, Model model, HttpServletRequest request, HttpServletResponse response){
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
	        if(!isEmpty(itemCategory.getName())){
	        	params.put("name", itemCategory.getName());
			}
	        if(!isEmpty(itemCategory.getPid())){
	        	params.put("pid", itemCategory.getPid());
			}
	        if(!isEmpty(itemCategory.getIsDelete())){
	/**
	 * 删除通过主键
	 * @return
	 */
	@RequestMapping(value = "/delete")
	public String delete(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
		///1.通过主键删除
		commentService.deleteById(id);
		/*以下是多种删除方式*/
//		//2.通过实体条件删除
//		commentService.deleteByEntity(comment);
//		//3.通过参数删除
//     //通过map查询
//		Map<String,Object> params = new HashMap<String,Object>();
//		
//        if(!isEmpty(comment.getUserId())){
//        	params.put("userId", comment.getUserId());
//		}
//       
//        if(!isEmpty(comment.getItemId())){
//        	params.put("itemId", comment.getItemId());
//		}
//       
//        if(!isEmpty(comment.getContent())){
//        	params.put("content", comment.getContent());
//		}
//       
//        if(!isEmpty(comment.getAddTime())){
//        	params.put("addTime", comment.getAddTime());
//		}
//       
//		commentService.deleteByMap(params);
//		//4.状态删除
//		Comment load = commentService.getById(comment.getId())
//		load.setIsDelete(1);
//		commentService.update(load);
		//5.状态删除
		//Comment load = commentService.load(id);
		//load.setIsDelete(1);
		//commentService.update(load);
		return "redirect:/comment/findBySql.action";
	}
	
	// --------------------------------------- 华丽分割线 ------------------------------
	// --------------------------------------- 【下面是ajax操作的方法。】 ------------------------------

	/*********************************查询列表【不分页】***********************************************/
	
	/**
	 * 【不分页 => 查询列表 => 无条件】
	* @Title: listAll 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
//		}
//       
//        if(!isEmpty(item.getUrl2())){
//        	params.put("url2", item.getUrl2());
//		}
//       
//        if(!isEmpty(item.getUrl3())){
//        	params.put("url3", item.getUrl3());
//		}
//       
//        if(!isEmpty(item.getUrl4())){
//        	params.put("url4", item.getUrl4());
//		}
//       
//        if(!isEmpty(item.getUrl5())){
//        	params.put("url5", item.getUrl5());
//		}
//       
//        if(!isEmpty(item.getMs())){
//        	params.put("ms", item.getMs());
//		}
//       
//        if(!isEmpty(item.getPam1())){
//        	params.put("pam1", item.getPam1());
//		}
//       
//        if(!isEmpty(item.getPam2())){
//        	params.put("pam2", item.getPam2());
//		}
//       
//        if(!isEmpty(item.getPam3())){
//        	params.put("pam3", item.getPam3());
//		}
//       
//        if(!isEmpty(item.getType())){
//        	params.put("type", item.getType());
//		}
//       
//        if(!isEmpty(item.getIsDelete())){
//        	params.put("isDelete", item.getIsDelete());
//		}
//       
//		itemService.deleteByMap(params);
//		//4.状态删除
//		Item load = itemService.getById(item.getId())
//		load.setIsDelete(1);
//		itemService.updateById(load);
		//5.状态删除
		//Item load = itemService.load(id);
		//load.setIsDelete(1);
		//itemService.updateById(load);
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByEntity 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByEntity")
	public String listByEntity(Message message, Model model, HttpServletRequest request, HttpServletResponse response){
		List<Message> listAll = messageService.listAllByEntity(message);
		model.addAttribute("list", listAll);
		return "message/message";
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByMap 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByMap")
	public String listByMap(Message message, Model model, HttpServletRequest request, HttpServletResponse response){
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
	        if(!isEmpty(message.getName())){
	        	params.put("name", message.getName());
			}
	        if(!isEmpty(message.getPhone())){
	        	params.put("phone", message.getPhone());
			}
	        if(!isEmpty(message.getContent())){
	        	params.put("content", message.getContent());
			}
	    List<Message> listAll = messageService.listByMap(params);
		model.addAttribute("list", listAll);
		return "message/message";
	}
	
	
	/*********************************查询列表【分页】***********************************************/
	
	
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByMapJson",  method = RequestMethod.POST)
	@ResponseBody
	public String findByMapJson(Address address,HttpServletRequest request, HttpServletResponse response) {
		//通过map查询
		Map<String,Object> params = new HashMap<String,Object>();
        if(!isEmpty(address.getName())){
        	params.put("name", address.getName());
		}
        if(!isEmpty(address.getPhone())){
        	params.put("phone", address.getPhone());
		}
        if(!isEmpty(address.getArea())){
        	params.put("area", address.getArea());
		}
        if(!isEmpty(address.getBm())){
        	params.put("bm", address.getBm());
		}
        if(!isEmpty(address.getIsUse())){
        	params.put("isUse", address.getIsUse());
		}
		//分页查询
		Pager<Address> pagers = addressService.findByMap(params);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("pagers", pagers);
		jsonObject.put("obj", address);
		return jsonObject.toString();
	}
	
	
	/**
	 * ajax 添加
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exAddJson", method = RequestMethod.POST)
	@ResponseBody
	public String exAddJson(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		addressService.insert(address);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "添加成功");
		return jsonObject.toString();
	}
	

@Controller
@RequestMapping("/item")
public class ItemController extends BaseController {
	@Autowired
	private ScService scService;
	
	/**
	 * 依赖注入 start dao/service/===
	 */
	@Autowired
	private ItemService itemService;
	
	@Autowired
	private ItemCategoryService itemCategoryService;
	
	
	// --------------------------------------- 华丽分割线 ------------------------------
	
	        	params.put("name", address.getName());
			}
	        if(!isEmpty(address.getPhone())){
	        	params.put("phone", address.getPhone());
			}
	        if(!isEmpty(address.getArea())){
	        	params.put("area", address.getArea());
			}
	        if(!isEmpty(address.getBm())){
	        	params.put("bm", address.getBm());
			}
	        if(!isEmpty(address.getIsUse())){
	        	params.put("isUse", address.getIsUse());
			}
	    List<Address> listAll = addressService.listByMap(params);
		model.addAttribute("list", listAll);
		return "address/address";
	}
	
	
	/*********************************查询列表【分页】***********************************************/
	
	
	
	/**
	 * 分页查询 返回list对象(通过对象)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findByObj")
	public String findByObj(Address address, Model model, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		Pager<Address> pagers = addressService.findByEntity(address);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", address);
		return "address/address";
	}
	
	/**
	 * 分页查询 返回list对象(通过对By Sql)
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value = "/findBySql")
	 * @param files
	 * @param id
	 * @return
	 */
    @RequestMapping(value = "/saveFiles")
    public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
		for(int i = 0;i<files.length;i++){
	      	System.out.println("fileName---------->" + files[i].getOriginalFilename());
		  if(!files[i].isEmpty()){
            int pre = (int) System.currentTimeMillis();
	     	try {
			//拿到输出流,同时重命名上传的文件
			 String filePath = request.getRealPath("/upload");
			 File f=new File(filePath);
			 if(!f.exists()){
				f.mkdirs();
			 }
		     String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
		     File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
			  if(!file.exists()){
				  file.createNewFile();
			 }
			  files[i].transferTo(file);
		     } catch (Exception e) {
				e.printStackTrace();
				System.out.println("上传出错");
			 }
		  }
		}
	  return "";
	}
 // --------------------------------------- 华丽分割线 ------------------------------
	
	
}

	
	/**
	 * springMvc多文件上传
	 * @param files
	 * @param id
	 * @return
	 */
    @RequestMapping(value = "/saveFiles")
    public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
		for(int i = 0;i<files.length;i++){
	      	System.out.println("fileName---------->" + files[i].getOriginalFilename());
		  if(!files[i].isEmpty()){
            int pre = (int) System.currentTimeMillis();
	     	try {
			//拿到输出流,同时重命名上传的文件
			 String filePath = request.getRealPath("/upload");
			 File f=new File(filePath);
			 if(!f.exists()){
				f.mkdirs();
			 }
		     String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
		     File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
			  if(!file.exists()){
				  file.createNewFile();
			 }
			  files[i].transferTo(file);
		     } catch (Exception e) {
				e.printStackTrace();
				System.out.println("上传出错");
			 }
		  }
		}
	  return "";
	}
 // --------------------------------------- 华丽分割线 ------------------------------
	
	
}
		//分页查询
		Pager<Item> pagers = itemService.findByMap(params);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("pagers", pagers);
		jsonObject.put("obj", item);
		return jsonObject.toString();
	}
	
	
	/**
	 * ajax 添加
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exAddJson", method = RequestMethod.POST)
	@ResponseBody
	public String exAddJson(Item item, Model model, HttpServletRequest request, HttpServletResponse response) {
		itemService.insert(item);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "添加成功");
		return jsonObject.toString();
	}
	

	/**
	 * ajax 修改
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exUpdate.json", method = RequestMethod.POST)
	@ResponseBody
	public String exUpdateJson(Item item, Model model, HttpServletRequest request, HttpServletResponse response) {
		//1.通过实体类修改,可以多传修改条件
		itemService.updateById(item);
		//2.通过主键id修改
		//itemService.updateById(item);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "修改成功");
		return jsonObject.toString();
	}

	/**
	 * ajax 删除
	 * @return
	 */
	@RequestMapping(value = "/delete.json", method = RequestMethod.POST)
        	params.put("userName", manage.getUserName());
		}
        if(!isEmpty(manage.getPassWord())){
        	params.put("passWord", manage.getPassWord());
		}
        if(!isEmpty(manage.getRealName())){
        	params.put("realName", manage.getRealName());
		}
		//分页查询
		Pager<Manage> pagers = manageService.findByMap(params);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("pagers", pagers);
		jsonObject.put("obj", manage);
		return jsonObject.toString();
	}
	
	
	/**
	 * ajax 添加
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exAddJson", method = RequestMethod.POST)
	@ResponseBody
	public String exAddJson(Manage manage, Model model, HttpServletRequest request, HttpServletResponse response) {
		manageService.insert(manage);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "添加成功");
		return jsonObject.toString();
	}
	

	/**
	 * ajax 修改
	 * @param 
	 * @return
	 */
	@RequestMapping(value = "/exUpdate.json", method = RequestMethod.POST)
	@ResponseBody
	public String exUpdateJson(Manage manage, Model model, HttpServletRequest request, HttpServletResponse response) {
		//1.通过实体类修改,可以多传修改条件
		manageService.updateById(manage);
		//2.通过主键id修改
		//manageService.updateById(manage);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "修改成功");
		return jsonObject.toString();
	}

//       
//        if(!isEmpty(manage.getRealName())){
//        	params.put("realName", manage.getRealName());
//		}
//       
//		manageService.deleteByMap(params);
//		//4.状态删除
//		Manage load = manageService.getById(manage.getId())
//		load.setIsDelete(1);
//		manageService.update(load);
		//5.状态删除
		//Manage load = manageService.load(id);
		//load.setIsDelete(1);
		//manageService.update(load);
		return "redirect:/manage/findBySql.action";
	}
	
	// --------------------------------------- 华丽分割线 ------------------------------
	// --------------------------------------- 【下面是ajax操作的方法。】 ------------------------------

	/*********************************查询列表【不分页】***********************************************/
	
	/**
	 * 【不分页 => 查询列表 => 无条件】
	* @Title: listAll 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listAllJson", method = RequestMethod.POST)
	@ResponseBody
	public String listAllJson(Manage manage, HttpServletRequest request, HttpServletResponse response){
		List<Manage> listAll = manageService.listAll();
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("list", listAll);
		jsonObject.put("obj", manage);
		return jsonObject.toString();
	}
	
	/**
	 *  【不分页=》查询列表=>有条件】
	* @Title: listByEntity 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param @return 设定文件 
	* @return String 返回类型 
	* @throws
	 */
	@RequestMapping(value = "/listByEntityJson", method = RequestMethod.POST)
	@ResponseBody
	public String listByEntityJson(Manage manage,  HttpServletRequest request, HttpServletResponse response){
		//load.setIsDelete(1);
		//itemService.updateById(load);
		JSONObject jsonObject = new JSONObject();
		jsonObject.put("message", "删除成功");
		return jsonObject.toString();
	}
	/**
	 * 单文件上传
	 * @param file
	 * @param request
	 * @param model
	 * @return
	 */
    @RequestMapping(value = "/saveFile")  
    public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model) {  
  
        System.out.println("开始");  
        String path = request.getSession().getServletContext().getRealPath("/upload");  
        String fileName = file.getOriginalFilename();  
        System.out.println(path);  
        File targetFile = new File(path, fileName);  
        if(!targetFile.exists()){  
            targetFile.mkdirs();  
        }  
        //保存  
        try {  
            file.transferTo(targetFile);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
  
        return "";  
    }  
	
	
	/**
	 * springMvc多文件上传
	 * @param files
	 * @param id
	 * @return
	 */
    @RequestMapping(value = "/saveFiles")
    public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
		for(int i = 0;i<files.length;i++){
	 * @param response
	 * @return
	 */
	@RequestMapping("/tuichu")
	public String tuichu( HttpServletRequest request, HttpServletResponse response){
		HttpSession session = request.getSession();
		session.invalidate();
		return "login/login";
	}

	@RequestMapping("/uTui")
	public String uTui( HttpServletRequest request, HttpServletResponse response){
		HttpSession session = request.getSession();
		session.invalidate();
		return "redirect:/login/uLogin.action";
	}

	@RequestMapping("/head")
	private String head(){
		return "inc/head";
	}
	
	@RequestMapping("/left")
	private String left(){
		return "inc/left";
	}
	
	@RequestMapping("/main")
	private String main(HttpServletRequest request){
		Object attribute = request.getSession().getAttribute("userId");
		if (attribute == null){
			return "redirect:/login/uLogin.action";
		}
		Integer userId = Integer.valueOf(attribute.toString());
		User load = userService.load(userId);
		request.setAttribute("user", load);
		return "login/main";
	}

	@RequestMapping("/info")
	private String info(HttpServletRequest request){
		Object attribute = request.getSession().getAttribute("userId");
		Integer userId = Integer.valueOf(attribute.toString());
		User load = userService.load(userId);
		request.setAttribute("user", load);
		return "login/info";
	}
}

			  files[i].transferTo(file);
		     } catch (Exception e) {
				e.printStackTrace();
				System.out.println("上传出错");
			 }
		  }
		}
	  return "";
	}
 // --------------------------------------- 华丽分割线 ------------------------------
	
	
}

@Controller
@RequestMapping("/itemCategory")
public class ItemCategoryController extends BaseController {
	
	
	/**
		Pager<ItemCategory> pagers = itemCategoryService.findBySqlRerturnEntity(sql);
		model.addAttribute("pagers", pagers);
		//存储查询条件
		model.addAttribute("obj", itemCategory);
		return "itemCategory/itemCategory";
	}
	
	
	@RequestMapping(value = "/tj")
	public String tj(ItemCategory itemCategory, Model model, HttpServletRequest request, HttpServletResponse response) {
		//分页查询
		String sql = "SELECT * FROM item_category WHERE isDelete = 0 and pid is null";
        sql += " ORDER BY ID DESC ";
		List<ItemCategory> list = itemCategoryService.listBySqlReturnEntity(sql); 

		List<Map<String,Object>> maps = new ArrayList<Map<String,Object>>();
		
		
		
		List<TjDto> res = new ArrayList<TjDto>();
		
		if (!CollectionUtils.isEmpty(list)){
			
			for (ItemCategory c : list){
				TjDto td = new TjDto();
				int tot = 0;
				List<Item> listBySqlReturnEntity = itemService.listBySqlReturnEntity("SELECT * FROM item WHERE 1=1 and isDelete =0 and category_id_one="+c.getId());
				
				if (!CollectionUtils.isEmpty(listBySqlReturnEntity)){
					
					for (Item i : listBySqlReturnEntity){
						tot+= i.getGmNum();
					}
				}
				Map<String,Object> map = new HashMap<String,Object>();
				map.put("name", c.getName());
				map.put("value", tot);
				maps.add(map);
			}
			
		}
		
		//存储查询条件
		model.addAttribute("maps", maps);
		return "itemCategory/tj";

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值