实战SSM_O2O商铺_23【商铺列表】Controller层开发

2021-08-17 11:31:23 浏览数 (1)

文章目录

  • 概述
  • ShopController
  • 单元测试
  • Github地址

概述

按照页面原型 控制层有2个功能要开发

  • 获取商铺列表
  • 然后根据连接对某个单一的商铺进行操作(管理页面主要是对session部分的操作)

ShopController

代码语言:javascript复制
/**
	 * 
	 * 
	 * @Title: getShopList
	 * 
	 * @Description: 从session中获取当前person拥有的商铺列表
	 * 
	 * @param request
	 * @return
	 * 
	 * @return: Map
	 */
	@RequestMapping(value = "/getshoplist", method = RequestMethod.GET)
	@ResponseBody
	public Map<String, Object> getShopList(HttpServletRequest request) {
		Map<String, Object> modelMap = new HashMap<String, Object>();
		// 现在还没有做登录模块,因此session中并没有用户的信息,先模拟一下登录 要改造TODO
		PersonInfo personInfo = new PersonInfo();
		personInfo.setUserId(1L);
		personInfo.setName("小工匠");
		request.getSession().setAttribute("user", personInfo);
		// 从session中获取user信息
		personInfo = (PersonInfo) request.getSession().getAttribute("user");
		
		try {
			Shop shopCondition = new Shop();
			shopCondition.setOwner(personInfo);
			ShopExecution se = shopService.getShopList(shopCondition, 1, 99);
			modelMap.put("success", true);
			modelMap.put("shopList", se.getShopList());
			modelMap.put("user", personInfo);
		} catch (ShopOperationException e) {
			e.printStackTrace();
			modelMap.put("success", false);
			modelMap.put("errMsg", e.getMessage());
		}
		return modelMap;
	}

	/**
	 * 
	 * 
	 * @Title: shopManagement
	 * 
	 * @Description: 从商铺列表页面中,点击“进入”按钮进入
	 *               某个商铺的管理页面的时候,对session中的数据的校验从而进行页面的跳转,是否跳转到店铺列表页面或者可以直接操作该页面
	 * 
	 *               访问形式如下
	 *               http://ip:port/o2o/shopadmin/shopmanagement?shopId=xxx
	 * 
	 * @return
	 * 
	 * @return: Map
	 */
	@RequestMapping(value = "/getshopmanageInfo", method = RequestMethod.GET)
	@ResponseBody
	public Map<String, Object> getShopManageInfo(HttpServletRequest request) {
		Map<String, Object> modelMap = new HashMap<String, Object>();
		// 获取shopId
		long shopId = HttPServletRequestUtil.getLong(request, "shopId");
		// 如果shopId不合法
		if (shopId < 0) {
			// 尝试从当前session中获取
			Shop currentShop = (Shop) request.getSession().getAttribute("currentShop");
			if (currentShop == null) {
				// 如果当前session中也没有shop信息,告诉view层 重定向
				modelMap.put("redirect", true);
				modelMap.put("url", "/o2o/shopadmin/shoplist");
			}else{
				// 告诉view层 进入该页面
				modelMap.put("redirect", false);
				modelMap.put("shopId", currentShop.getShopId());
			}
		} else { // shopId合法的话
			Shop shop = new Shop();
			shop.setShopId(shopId);
			// 将currentShop放到session中
			request.getSession().setAttribute("currentShop", shop);
			modelMap.put("redirect", false);
		}

		return modelMap;
	}

单元测试

单元测试我们开发完页面后一并测试。


Github地址

代码地址: https://github.com/yangshangwei/o2o

0 人点赞