package com.feetao.web.controller; import java.util.ArrayList; import java.util.Map; import javax.annotation.Resource; import org.codehaus.jackson.map.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; import com.feetao.web.service.AddressService; import com.feetao.web.service.BannerService; import com.feetao.web.service.BoardService; import com.feetao.web.service.ItemService; import com.feetao.web.service.MemberService; import com.feetao.web.service.OrderService; import com.feetao.web.service.ProductService; import com.feetao.web.service.ShopService; import com.feetao.web.support.RequestContextHolder; import com.feetao.web.support.RequestData; import com.feetao.web.vo.MemberVO; /** * web页面 * @author feetao */ @Controller @RequestMapping("/mini") public class WebController { private static Logger logger = LoggerFactory.getLogger(WebController.class); @Resource private AddressService addressService; @Resource private BannerService bannerService; @Resource private BoardService boardService; @Resource private ItemService itemService; @Resource private MemberService memberService; @Resource private OrderService orderService; @Resource private ProductService productService; @Resource private ShopService shopService; @Resource private RequestContextHolder requestContextHolder; /** * 分类 * @return */ @RequestMapping("/item") public ModelAndView getItem() { RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/item"); mv.addObject("bannerList" , bannerService.getBannerList(data.getUserId())); mv.addObject("itemList" , itemService.getItemList(data.getUserId())); return mv; } /** * 店铺 * @param item * @return */ @RequestMapping("/shop/{item}") public ModelAndView getShop(@PathVariable("item") String item) { RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/shop"); mv.addObject("shopList" , shopService.getShopList(data.getUserId() , item)); return mv; } /** * 商品 * @param item * @return */ @RequestMapping("/product/{item}") public ModelAndView getMarket(@PathVariable("item") String item) { RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/market"); mv.addObject("productList", productService.getProductList(data.getUserId() , item)); return mv; } /** * 购物车 * @return */ @RequestMapping("/cart") public ModelAndView getCart(@CookieValue(value="cart", required= false, defaultValue="") String cart) { RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/cart"); try { @SuppressWarnings("unchecked") Map<Long, Integer> maps = new ObjectMapper().readValue(cart, Map.class); mv.addObject("address",addressService.getDefaultAddress(data.getUserId(), data.getOpenId())); mv.addObject("productList", productService.getProductList(data.getUserId(), new ArrayList<Long>(maps.keySet()))); } catch (Exception e) { logger.error(e.getMessage(), e); } return mv; } @RequestMapping("/address") public ModelAndView getAddress(){ RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/address"); mv.addObject("addressList", addressService.getAddressList(data.getUserId(), data.getOpenId())); return mv; } /** * 订单 * @return */ @RequestMapping("/order") public ModelAndView getOrder() { RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/order"); mv.addObject("orderList", orderService.getOrderList(data.getUserId() , data.getOpenId())); return mv; } /** * 留言板 * @return */ @RequestMapping("/board") public ModelAndView getBoard(@RequestParam("cursor") Long cursor, @RequestParam("size") int size) { RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/board"); mv.addObject("messageList", boardService.getMessageList(data.getUserId(), cursor , size)); return mv; } /** * 会员信息 * @return */ @RequestMapping("/member") public ModelAndView getMember() { RequestData data = requestContextHolder.getRequestData(); ModelAndView mv = new ModelAndView("screen/member"); MemberVO mvo = memberService.getMember(data.getUserId(), data.getOpenId()); mv.addObject("member" , mvo); return mv; } }