基于javaweb和mysql的ssm茶叶售卖商城系统(java+ssm+jsp+easyui+mysql)

私信源码获取及调试交流

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb的SSM茶叶售卖商城系统(java+ssm+jsp+easyui+mysql)

这是一个应用SSM框架的项目,前端页面整洁清晰。该系统有两个角色,一个是普通用户,另一个是管理员。

普通用户具有注册、登录、查看商品、添加购物车、添加商品收藏、下订单、商品评价、用户地址管理等等功能。

管理员具有登录、管理用户信息、管理商品信息、管理商品活动信息、管理订单信息、管理用户评论信息的等等功能。

应用技术:Jsp + SSM + EasyUi

运行环境:eclipse/IDEA + MySQL5.7 + Tomcat8.5 + JDK1.8

	 * @return
	 */
	@RequestMapping(value="/upload_photo",method=RequestMethod.POST)
	@ResponseBody
	public 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 block
			ret.put("type", "error");
			ret.put("msg", "保存文件异常!");
			e.printStackTrace();
			return ret;
		}
	private RoleService roleService;
	
	/**
	 * 用户列表页面
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/list",method=RequestMethod.GET)
	public ModelAndView list(ModelAndView model){
		Map<String, Object> queryMap = new HashMap<String, Object>();
		model.addObject("roleList", roleService.findList(queryMap));
		model.setViewName("user/list");
		return model;
	}
	
	/**
	 * 获取用户列表
	 * @param page
	 * @param username
	 * @param roleId
	 * @param sex
	 * @return
	 */
	@RequestMapping(value="/list",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, Object> getList(Page page,
			@RequestParam(name="username",required=false,defaultValue="") String username,
			@RequestParam(name="roleId",required=false) Long roleId,
			@RequestParam(name="sex",required=false) Integer sex
			){
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("username", username);
		queryMap.put("roleId", roleId);
		queryMap.put("sex", sex);
		queryMap.put("offset", page.getOffset());
		queryMap.put("pageSize", page.getRows());
		ret.put("rows", userService.findList(queryMap));
		ret.put("total", userService.getTotal(queryMap));
		return ret;
	}
	
	/**
	 * 添加用户
	 * @param user
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("offset", page.getOffset());
		queryMap.put("pageSize", page.getRows());
		queryMap.put("id", id);
		List<Orders> findList = ordersService.findAllOrders(queryMap);
		double price = 0; //计算每个订单的总价
		String item = ""; //记录每个订单对应的商品详情
		String address = ""; //送货地址
		for(Orders order : findList) {
			//获取订单所属用户
			Account account = accountService.findById(order.getAccount_Id());
			order.setAccount(account);
			//获取送货地址
			Address findByAccountId = addressService.findByAccountId(account.getId());
			address = address + findByAccountId.getProvince() + findByAccountId.getCity() + findByAccountId.getArea() + findByAccountId.getDetail();
			order.setAddress(address);
			//获取订单详情
			List<Shopping> shoppingList = shoppingService.findByIds(order.getShopping_Id());
			for(Shopping shopping : shoppingList) {
				//取出商品
				Tea tea = teaService.findByTeaId(shopping.getProductId().toString());
				//计算订单价格
				price += (tea.getNew_price() * shopping.getNum());
				//获取购买商品详情
				item = item + tea.getName() + "(" + shopping.getNum() + "个)、";
			}
			//把最后一个、去掉
			item = item.substring(0, item.length()-1);
			order.setItem(item);
			order.setPrice(price);
			
			//价格置位0,下一轮循环:新订单重新计算
			price = 0;
			//商品详情置位空字符串,,下一轮循环:获取新详情
			item = "";
			//收货地址置位空字符串,下一轮循环:获取新地址
			address = "";
		}
		ret.put("rows", findList);
		ret.put("total", ordersService.getAllTotal());
		return ret;
	}
	
	/**
	 * 删除订单操作
	 * @param ids
	 * @return
	 */
	@RequestMapping(value="/delete_orders",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, Object> deleteOrders(String ids){
		Map<String, Object> ret = new HashMap<String, Object>();
			ret.put("type", "error");
			ret.put("msg", "删除地址失败,请联系管理员!");
			return ret;
		}
		if(addressService.delete(id) <= 0) {
			ret.put("type", "error");
			ret.put("msg", "删除地址失败,请联系管理员!");
			return ret;
		}
		ret.put("type", "success");
		ret.put("msg", "删除地址成功!");
		
		return ret;
	}
	
	
	/**
	 * 用户修改密码页面
	 */
	@RequestMapping(value="/password",method=RequestMethod.GET)
	public ModelAndView password(ModelAndView model,HttpServletRequest request){
		model.addObject("teaCategoryList", teaCategoryService.findAll());
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("actionId", 1);
		model.addObject("teaListByActionId", teaService.findList(queryMap));
		
		Account account = (Account) request.getSession().getAttribute("account");
		Map<String, Object> queryMap2 = new HashMap<String, Object>();
		queryMap2.put("accountId",account.getId());
		queryMap2.put("state","未支付");
		model.addObject("cartList",shoppingService.findList(queryMap2));
		model.addObject("cartTotal",shoppingService.getTotal(queryMap2));
		
		model.setViewName("home/account/password");
		return model;
	}
	
	/**
	 * 用户收藏页面
	 */
	@Autowired
	private LogService logService;
	
	@Autowired
	private ShoppingService shoppingService;
	
	/**
	 * 前端系统登录页面
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/login",method=RequestMethod.GET)
	public ModelAndView index(ModelAndView model,HttpServletRequest request){
		Account account = (Account) request.getSession().getAttribute("account");
		if(account!=null)
		{
			Map<String, Object> queryMap = new HashMap<String, Object>();
			queryMap.put("accountId",account.getId());
			queryMap.put("state","未支付");
			model.addObject("cartTotal",shoppingService.getTotal(queryMap));
		}
	
		
		model.setViewName("home/login/index");
		return model;
	}
	
	
	/**
	 * 登录表单提交处理控制器
	 * @param user
	 * @param cpacha
	 * @return
	 */
	@RequestMapping(value="/login",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, String> loginAct(Account account,HttpServletRequest request){
		Map<String, String> ret = new HashMap<String, String>();
		if(account == null){
			ret.put("type", "error");
			ret.put("msg", "请正确填写登录信息!");
			return ret;
		}
		if(StringUtils.isEmpty(account.getUsername())){
			ret.put("type", "error");
			ret.put("msg", "请填写用户名!");
			return ret;
		}
		if(StringUtils.isEmpty(account.getPassword())){
			ret.put("type", "error");
			ret.put("msg", "请填写密码!");
			return ret;
		}
				ret.put("type", "success");
				ret.put("msg", "地址添加成功!");
				return ret;
			}
		}
		
	}
	
	/**
	 * 删除用户地址
	 * @param user
	 * @return
	 */
	@RequestMapping(value="/del_address",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, String> delete_address(String id,HttpServletRequest request){
		Map<String, String> ret = new HashMap<String, String>();
		
		if(id == null){
			ret.put("type", "error");
			ret.put("msg", "删除地址失败,请联系管理员!");
			return ret;
		}
		if(addressService.delete(id) <= 0) {
			ret.put("type", "error");
			ret.put("msg", "删除地址失败,请联系管理员!");
			return ret;
		}
		ret.put("type", "success");
		ret.put("msg", "删除地址成功!");
		
		return ret;
	}
	
	
	/**
	 * 用户修改密码页面
	 */
	@RequestMapping(value="/password",method=RequestMethod.GET)
	public ModelAndView password(ModelAndView model,HttpServletRequest request){
		model.addObject("teaCategoryList", teaCategoryService.findAll());
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("actionId", 1);
		model.addObject("teaListByActionId", teaService.findList(queryMap));
		
		Account account = (Account) request.getSession().getAttribute("account");
		Map<String, Object> queryMap2 = new HashMap<String, Object>();
		queryMap2.put("accountId",account.getId());
		queryMap2.put("state","未支付");
		model.addObject("cartList",shoppingService.findList(queryMap2));
	}
	/**
	 * 获取账户留言列表
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/comment",method=RequestMethod.GET)
	public ModelAndView comment(ModelAndView model){
		
		model.setViewName("account/comment");
		return model;
	}
	
	/**
	 * 获取评论列表
	 * @param page
	 * @param username
	 * @param roleId
	 * @param sex
	 * @return
	 */
	@RequestMapping(value="/comment",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, Object> getComment(Page page,
			@RequestParam(name="content",required=false,defaultValue="") String content
			){
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("content", content);
	
		queryMap.put("offset", page.getOffset());
		queryMap.put("pageSize", page.getRows());
		ret.put("rows", commentService.findList(queryMap));
		ret.put("total", commentService.getTotal(queryMap));
		return ret;
	}
	
	
	/**
	 * 获取用户列表
	 * @param page
	 * @param username
		if(account == null){
			ret.put("type", "error");
			ret.put("msg", "请正确填写登录信息!");
			return ret;
		}
		if(StringUtils.isEmpty(account.getUsername())){
			ret.put("type", "error");
			ret.put("msg", "请填写用户名!");
			return ret;
		}
		if(StringUtils.isEmpty(account.getPassword())){
			ret.put("type", "error");
			ret.put("msg", "请填写密码!");
			return ret;
		}
		Account findByUsername = accountService.findByUsername(account.getUsername());
		if(findByUsername == null){
			ret.put("type", "error");
			ret.put("msg", "该用户名不存在!");
			return ret;
		}
		if(!account.getPassword().equals(findByUsername.getPassword())){
			ret.put("type", "error");
			ret.put("msg", "密码错误!");
			return ret;
		}
		request.getSession().setAttribute("account", findByUsername);
		ret.put("type", "success");
		ret.put("msg", "登录成功!");
		logService.add("用户名为{"+account.getUsername()+"},角色为{普通用户}的用户登录成功!");
		return ret;
	}
}


/**
* 商品管理控制器
*
*/
@RequestMapping("/admin/product")
@Controller
public class ProductController {
	
	@Autowired
	private TeaService teaService;
	
	
	@Autowired
	private ActionService actionService;
	
	@Autowired
	private ShoppingService shoppingService;
	
			teaService.edit(findByTeaId);
		}
		if(commentService.delete(ids) <= 0){
			ret.put("type", "error");
			ret.put("msg", "评论删除失败,请联系管理员!");
			return ret;
		}
	
		ret.put("type", "success");
		ret.put("msg", "评论删除成功!");
		return ret;
	}
	
	/**
	 * 批量删除账户
	 * @param ids
	 * @return
	 */
	@RequestMapping(value="/delete",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, String> delete(String ids){
		Map<String, String> ret = new HashMap<String, String>();
		if(StringUtils.isEmpty(ids)){
			ret.put("type", "error");
			ret.put("msg", "选择要删除的数据!");
			return ret;
		}
		if(ids.contains(",")){
			ids = ids.substring(0,ids.length()-1);
		}
		String[] split = ids.split(",");
		for(String str : split) {
			// 删除与账户有关的评论信息
			commentService.deleteByAccountId(Long.valueOf(str));
			shoppingService.deleteByAccountId(Long.valueOf(str));
			ordersService.deleteByAccountId(Long.valueOf(str));
			view_LogService.deleteByAccountId(Long.valueOf(str));
			addressService.deleteByAccountId(Long.valueOf(str));
			collectService.deleteByAccountId(Long.valueOf(str));
		}
		
		if(accountService.delete(ids) == 0){
		return ret;
	}
	
	
	/**
	 * 上传图片
	 * @param photo
	 * @param request
	 * @return
	 */
	@RequestMapping(value="/upload_photo",method=RequestMethod.POST)
	@ResponseBody
	public 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 block
			ret.put("type", "error");
			ret.put("msg", "保存文件异常!");
			e.printStackTrace();
			return ret;
		}
		ret.put("type", "success");
		ret.put("msg", "照片上传成功!");
			Map<String,Object> queryMap = new HashMap<String, Object>();
			queryMap.put("productId", t.getId());
			List<Shopping> findList = shoppingService.findList(queryMap);
			shoppingService.deleteByProductId(t.getId());
			for(Shopping shopping : findList) {
				Map<String,Object> queryMap2 = new HashMap<String, Object>();
				queryMap2.put("accountId", shopping.getAccountId());
				List<Orders> findList2 = ordersService.findList(queryMap2);
				for(Orders orders : findList2) {
					String shoppingIds = orders.getShopping_Id();
					String[] split = shoppingIds.split(",");
					for(String str : split) {
						if(str.equals(shopping.getId())) {
							ordersService.delete(orders.getId());
						}
					}
				}
			}
			// 删除与商品有关的访问记录内容
			viewLogService.deleteByProductId(t.getId());
			// 删除与商品有关的评论内容
			commentService.deleteByProductId(t.getId());
			// 删除与商品有关的收藏内容
			collectService.deleteByProductId(t.getId());
		}
		
		if(teaService.delete(ids) <= 0){
			ret.put("type", "error");
			ret.put("msg", "商品删除失败,请联系管理员!");
			return ret;
		}
		
		ret.put("type", "success");
		ret.put("msg", "商品删除成功!");
		return ret;
	}
	
	
	/**
	 * 上传图片
	 * @param photo
	 * @param request
	 * @return
	 */
	@RequestMapping(value="/upload_photo",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, String> uploadPhoto(MultipartFile photo,HttpServletRequest request){
		Map<String, String> ret = new HashMap<String, String>();
		if(photo == null){
			ret.put("msg", "请填写用户名!");
			return ret;
		}
		if(StringUtils.isEmpty(account.getPassword())){
			ret.put("type", "error");
			ret.put("msg", "请填写密码!");
			return ret;
		}
		Account findByUsername = accountService.findByUsername(account.getUsername());
		if(findByUsername == null){
			ret.put("type", "error");
			ret.put("msg", "该用户名不存在!");
			return ret;
		}
		if(!account.getPassword().equals(findByUsername.getPassword())){
			ret.put("type", "error");
			ret.put("msg", "密码错误!");
			return ret;
		}
		request.getSession().setAttribute("account", findByUsername);
		ret.put("type", "success");
		ret.put("msg", "登录成功!");
		logService.add("用户名为{"+account.getUsername()+"},角色为{普通用户}的用户登录成功!");
		return ret;
	}
}

/**
 * 前端系统操作类控制器
			return ret;
		}
		if(StringUtils.isEmpty(account.getPassword())){
			ret.put("type", "error");
			ret.put("msg", "请填写密码!");
			return ret;
		}
		if(StringUtils.isEmpty(account.getRealname())){
			ret.put("type", "error");
			ret.put("msg", "请填写真实姓名!");
			return ret;
		}
		if(account.getPhone() == null){
			ret.put("type", "error");
			ret.put("msg", "请填写电话号码!");
			return ret;
		}
		if(isExist(account.getUsername(), 0l)){
			ret.put("type", "error");
			ret.put("msg", "该用户名已经存在,请重新输入!");
			return ret;
		}
		if(accountService.add(account) <= 0){
			ret.put("type", "error");
			ret.put("msg", "账户添加失败,请联系管理员!");
			return ret;
		}
		ret.put("type", "success");
		ret.put("msg", "账户添加成功!");
		return ret;
	}
	
	
	/**
	 * 编辑账户
	 * @param user
	 * @return
	 */
	@RequestMapping(value="/edit",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, String> edit(Account account){
		Map<String, String> ret = new HashMap<String, String>();
		if(account == null){
			ret.put("type", "error");
			ret.put("msg", "请填写正确的用户信息!");
			return ret;

/**
 * 前端用户控制类
 *
 */
@Controller
@RequestMapping("/home/account")
public class ShopAccountController {

	@Autowired
	private AccountService accountService;
	
	@Autowired
	private CommentService commentService;
	
	@Autowired
	private TeaCategoryService teaCategoryService;
	
	@Autowired
	private CollectService collectService;
	
	
	/**
	 * 订单管理列表页面
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/list",method=RequestMethod.GET)
	public ModelAndView list(ModelAndView model){
		model.setViewName("order/list");
		return model;
	}
	
	/**
     * 订单统计柱形图表页面
     * @param model
     * @return
     */
    @RequestMapping(value = "/chart_bar", method = RequestMethod.GET)
    public ModelAndView chartBar(ModelAndView model){
        model.setViewName("order/chart_bar");
        return model;
    }
	
	/**
	 * 获取订单列表
	 * @param page
	 * @param name
	 * @return
	 */
	@RequestMapping(value="/list",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, Object> getOrderList(Page page,
			@RequestParam(name="id",required=false,defaultValue="") String id
			){
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("offset", page.getOffset());
		queryMap.put("pageSize", page.getRows());
		queryMap.put("id", id);
		List<Orders> findList = ordersService.findAllOrders(queryMap);
		double price = 0; //计算每个订单的总价

/**
* 商品管理控制器
*
*/
@RequestMapping("/admin/product")
@Controller
public class ProductController {
	
	@Autowired
	private TeaService teaService;
	
	
	@Autowired
	private ActionService actionService;
	
	@Autowired
	private ShoppingService shoppingService;
	
	@Autowired
	private OrdersService ordersService;
	
	@Autowired
	private TeaCategoryService teaCategoryService;
	
	@Autowired
	private View_LogService viewLogService;
	
	@Autowired
	private CommentService commentService;
	
	@Autowired
	private CollectService collectService;
	
	/**
	 * 商品列表页面
 * 日志管理控制器
 *
 */
@RequestMapping("/admin/log")
@Controller
public class LogController {
	@Autowired
	private LogService logService;
	
	/**
	 * 日志列表页面
	 * @param model
	 * @return
	 */
	@RequestMapping(value="/list",method=RequestMethod.GET)
	public ModelAndView list(ModelAndView model){
		model.setViewName("log/list");
		return model;
	}
	
	/**
	 * 获取日志列表
	 * @param page
	 * @param content
	 * @param roleId
	 * @param sex
	 * @return
	 */
	@RequestMapping(value="/list",method=RequestMethod.POST)
	@ResponseBody
	public Map<String, Object> getList(Page page,
			@RequestParam(name="content",required=false,defaultValue="") String content
			){
		Map<String, Object> ret = new HashMap<String, Object>();
		Map<String, Object> queryMap = new HashMap<String, Object>();
		queryMap.put("content", content);
		queryMap.put("offset", page.getOffset());
		queryMap.put("pageSize", page.getRows());
		ret.put("rows", logService.findList(queryMap));
		ret.put("total", logService.getTotal(queryMap));
		return ret;
	}
	
	/**
	 * 添加日志
	 * @param user
	 * @return
	 */
	@RequestMapping(value="/add",method=RequestMethod.POST)
	@ResponseBody

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

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐