package com.iamberry.wechat.handles.home; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.iamberry.wechat.tools.WeixinUtil; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.iamberry.wechat.core.entity.ResultMsg; import com.iamberry.wechat.core.entity.WechatUtils; import com.iamberry.wechat.core.entity.banner.ActionBannerImage; import com.iamberry.wechat.core.entity.member.Member; import com.iamberry.wechat.core.entity.product.Product; import com.iamberry.wechat.face.admin.SystemService; import com.iamberry.wechat.face.cart.ProductInfoService; import com.iamberry.wechat.face.home.HomeService; import com.iamberry.wechat.face.member.MemberService; import com.iamberry.wechat.tools.NameUtils; import com.iamberry.wechat.tools.ResultInfo; /** * @company 深圳爱贝源科技有限公司 * @website www.iamberry.com * @author 献 * @tel 18271840547 * @date 2016年11月3日 * @explain 微信商城首页Handler */ @Controller @RequestMapping("/wechat") public class HomeHandler { @Autowired private HomeService homeService; @Autowired private ProductInfoService productInfoService; @Autowired private WechatUtils wechatUtils; @Autowired private MemberService memberService; @Autowired private SystemService systemService; /** * 微信商城首页URL * @return * @throws Exception */ @RequestMapping(value = "/index", method = RequestMethod.GET) public void index(HttpServletRequest request, HttpServletResponse response) throws Exception { //如果是分享 则绑定关系 Member member = wechatUtils.getUserBySession(request); String shareOpenid = request.getParameter("shareOpenid"); if(StringUtils.isNotEmpty(shareOpenid)){ build(shareOpenid, member); } request.getRequestDispatcher(NameUtils.WECHAT_SHOP_INDEX).forward(request, response); } /** * post请求获取首页Banner数据 * @throws Exception */ @ResponseBody @RequestMapping(value = "/indexData", method = RequestMethod.POST) public ResultMsg indexData(HttpServletRequest request) throws Exception { ResultMsg msg = new ResultMsg(); Member member = wechatUtils.getUserBySession(request); if (member == null || member.getUserOpenid() == null) { msg.setMessage(ResultInfo.loginOutError); msg.setStatus(false); return msg; } // 准备数据 Map returnMap = new HashMap(); List productList = productInfoService.selectIndexPageProduct(); List images = homeService.selectNowBannerByType(); // Banner、广告位 List banners = new ArrayList(); // banner List advs = new ArrayList(); // 广告位 if (images != null && images.size() >= 1) { // 分类注册 for (ActionBannerImage actionBannerImage : images) { if (actionBannerImage.getBannerId() == 1) { banners.add(actionBannerImage); } else { advs.add(actionBannerImage); } } } returnMap.put("advs", advs); returnMap.put("banners", banners); returnMap.put("products", productList); // 产品信息,10个 returnMap.put("memberOpenid", member.getUserOpenid()); // 当前用户信息 分享用 msg.setData(returnMap); // 封装数据 msg.setMessage(ResultInfo.SUCCESSINFO); msg.setResultCode(ResultInfo.SUCCESSCODE); msg.setStatus(true); return msg; } /** * 绑定用户关系 * @param shareOpenid 分享的人 * @param member 当前用户 */ @Async public void build(String shareOpenid, Member member) { boolean flag = memberService.buildChildUser(shareOpenid, member,1); if(flag){ memberService.updateUserFlagByOpenId(member.getUserOpenid()); // 绑定用户关系 } } }