java版商城之买家端首页Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 电子商务多商家入驻直播带货商城

源码地址来源: https://minglisoft.cn/honghu2/business.html

首页控制器代码:

package com.honghu.cloud.controller;
 
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
 
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Maps;
import com.honghu.cloud.bean.AdvertPosition;
import com.honghu.cloud.bean.Floor;
import com.honghu.cloud.bean.H5Menu;
import com.honghu.cloud.code.ResponseCode;
import com.honghu.cloud.dto.AdvertPositionDto;
import com.honghu.cloud.dto.StoreDto;
import com.honghu.cloud.dto.UserDto;
import com.honghu.cloud.feign.AccessoryFeignClient;
import com.honghu.cloud.feign.AdvertPositionFeignClient;
import com.honghu.cloud.feign.GoodsFeignClient;
import com.honghu.cloud.feign.MessageFeignClient;
import com.honghu.cloud.feign.SearchFeignClient;
import com.honghu.cloud.feign.StoreFeignClient;
import com.honghu.cloud.feign.SysConfigFeignClient;
import com.honghu.cloud.redis.RedisUtil;
import com.honghu.cloud.service.IAdvertPositionService;
import com.honghu.cloud.service.IAdvertService;
import com.honghu.cloud.service.IFloorService;
import com.honghu.cloud.service.IH5MenuService;
import com.honghu.cloud.tools.SecurityUserHolder;
import com.honghu.cloud.utils.CommUtil;
import com.honghu.cloud.utils.QueryUtils;
 
import net.sf.json.JSONObject;
 
 
/**
 * 首页控制器
 * @author Administrator
 * @param <V>
 * @param <K>
 *
 */
@RestController
@SuppressWarnings({ "rawtypes", "unchecked" })
/*/*@CrossOrigin(origins = "*", maxAge = 3600, methods = { RequestMethod.GET, RequestMethod.POST, RequestMethod.DELETE,
		RequestMethod.PUT })*/
public class IndexViewController<V, K>{
	
	private static final Logger logger = LoggerFactory.getLogger(IndexViewController.class);
 
	
	@Autowired
	private SysConfigFeignClient sysConfigFeignClient;
	@Autowired
	private StoreFeignClient storeFeignClient;
	@Autowired
	private SearchFeignClient searchFeignClient;
	@Autowired
	private AdvertPositionFeignClient advertPositionFeignClient;
	@Autowired
	private IFloorService floorService;
	@Autowired
	private IH5MenuService h5MenuService;
	@Autowired
	private RedisUtil redisUtil;
	@Autowired
	private QueryUtils queryUtils;
	@Autowired
	private GoodsFeignClient goodsFeignClient;
	@Autowired
	private IAdvertPositionService advertPositionService;
	@Autowired
	private MessageFeignClient messageFeignClient;
	
	/**
	 * 手机客户端商城首页
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value="/index")
	public Map<String, Object> index(HttpServletRequest request, HttpServletResponse response) {
		Map<String, Object> resultMap = new HashMap<String, Object>();
		Map<String,Object> maps = Maps.newHashMap();
        maps.put("orderBy", "sequence");
        maps.put("orderType", "asc");
        maps.put("store_id_is_null", "yes");
		List<Floor> list = floorService.queryPageList(maps);
		resultMap.put("floor_list", list);
		
		String weixin_navigator = sysConfigFeignClient.getSysConfig().getWeixin_navigator();
		Map index_nav_map = Maps.newHashMap();
		Map weixin_nav_map;
		if ((weixin_navigator != null) && (!weixin_navigator.equals(""))) {
			weixin_nav_map = JSON.parseObject(weixin_navigator);
			for (Object obj : weixin_nav_map.keySet()) {
				if (obj.toString().indexOf("index") >= 0) {
					index_nav_map.put(obj, weixin_nav_map.get(obj));
				}
			}
		} else {
			weixin_nav_map = Maps.newHashMap();
		}
		resultMap.put("index_nav_map", index_nav_map);
		return ResponseCode.buildSuccessMap(resultMap);
	}
	
	//TODO
	@RequestMapping({ "/index/v3" })
	public Map<String, Object> indexv3(HttpServletRequest request,
			HttpServletResponse response) {
 
		Map<String, Object> maps = Maps.newHashMap();
		Map<String, Object> resultMap = Maps.newHashMap();
 
		maps.put("orderBy", "sequence");
		maps.put("orderType", "asc");
		maps.put("store_id_is_null", "yes");
		List<Floor> queryPageList = this.floorService.queryPageList(maps);
 
		String weixin_navigator = sysConfigFeignClient.getSysConfig().getWeixin_navigator();
 
		Map index_nav_map = Maps.newHashMap();
		Map weixin_nav_map;
		if ((weixin_navigator != null) && (!weixin_navigator.equals(""))) {
			weixin_nav_map = JSON.parseObject(weixin_navigator);
			for (Object obj : weixin_nav_map.keySet()) {
				if (obj.toString().indexOf("index") >= 0) {
					index_nav_map.put(obj, weixin_nav_map.get(obj));
				}
			}
		} else {
			weixin_nav_map = Maps.newHashMap();
		}
		resultMap.put("floor", queryPageList);
 
		Object object = redisUtil.get("everyday_refresh");
		if (object != null) {
			redisUtil.set("everyday_refresh", false, CommUtil.null2Long(CommUtil.subSecond()));
			redisUtil.remove("h5_advert_invoke_new");
		}
 
		// show menu
	/*	Object object2 = redisUtil.get("h5_menus_new");
		if (object2 != null) {
			List<H5Menu> result = (List<H5Menu>) object2;
			resultMap.put("menu", result);
		} else {*/
			maps = Maps.newHashMap();
			maps.put("orderBy", "seq");
			maps.put("orderType", "asc");
			/*maps.put("h5_status", 0);*/
			maps.put("no_pid", "no_pid");    //不查询子menu
			List<H5Menu> menus = this.h5MenuService.queryPages(maps);
			resultMap.put("menu", menus);
			if (menus != null && menus.size() > 0) {
				redisUtil.set("h5_menus_new", menus);
			}
		//}
 
		// 首页广告位
		object = redisUtil.get("h5_advert_invoke_new");
		// object = null;
		if (object != null) {
			AdvertPosition result = (AdvertPosition) object;
			resultMap.put("adv", result);
		} else {
			AdvertPosition index_advert_invoke = advertPositionService.getAdvoPos(11L);
			resultMap.put("adv", index_advert_invoke);
			if (index_advert_invoke != null) {
				redisUtil.set("h5_advert_invoke_new", index_advert_invoke);
			}
		}
		
		// 查询微商城推荐
		Map<String, Object> map = (Map<String, Object>) redisUtil.get("wechat_recommend_list");
		if (null == map||map.get("rowCount").toString().equals("0")) {
			Map<String, Object> params = this.queryUtils.getParams(null, 12, "weixin_recommendTime", "desc");
			params.put("goods_status", 0);
			params.put("weixin_recommend", true);
			params.put("deleteStatus", 0);
			Map<String, Object> list = goodsFeignClient.listIndex(params);
			redisUtil.set("wechat_recommend_list", list);
			resultMap.put("recommend_list", list);
 
		}else {
			resultMap.put("recommend_list", map);
		}
		
		//查询未读消息记录
		UserDto user = SecurityUserHolder.getCurrentUser(request);
		if(user != null){
			maps.clear();
			maps.put("read_status", 0);
			maps.put("toUser_id", user.getId());
			int messageCount = messageFeignClient.selectCount(maps);
			resultMap.put("messageCount", messageCount);
		}
		
		UserDto currentUser = SecurityUserHolder.getCurrentUser(request);
		if(currentUser != null&&currentUser.getStore_id()!=null){
			StoreDto storeDto = storeFeignClient.selectByPrimaryKey(currentUser.getStore_id());
			resultMap.put("store_status", storeDto!=null?storeDto.getStore_status():null);
		}
		return resultMap;
	}
	
	
	/**
	 * 手机客户端商城首页
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value="/index/v3_date", method = RequestMethod.POST)
	public Map<String, Object> v3_date(@RequestBody JSONObject json, HttpServletRequest request,
			HttpServletResponse response) {
		String currentPage = json.optString("currentPage");   //当前页
		Map<String, Object> resultMap = Maps.newHashMap();
		// 查询微商城推荐
			Map<String, Object> params = this.queryUtils.getParams(currentPage, 12, "weixin_recommendTime", "desc");
			params.put("goods_status", 0);
			params.put("weixin_recommend", true);
			params.put("deleteStatus", 0);
			//Map<String, Object> list = goodsFeignClient.list(params);
			Map<String, Object> list = goodsFeignClient.listIndex(params);
			resultMap.put("recommend_list", list);
 
 
		return resultMap;
 
	}
	
	
	/**
	 * 手机客户端商城首页
	 * @param request
	 * @param response
	 * @return
	 */
	@RequestMapping(value="/index/v2", method = RequestMethod.POST)
	public Map<String, Object> indexV2(@RequestBody JSONObject json, HttpServletRequest request, HttpServletResponse response) {
		Map<String, Object> resultMap = new HashMap<String, Object>();
		/*// 广告
		String advert_id=json.getString("advert_id");
		if ((advert_id != null) && (!advert_id.equals(""))) {
			AdvertPositionDto advertPositionDto = advertPositionFeignClient.selectAdvertPosition(advert_id);
			AdvertPositionDto selectByPrimaryKey = advertPositionFeignClient.selectByPrimaryKey(CommUtil.null2Long(advert_id));
			resultMap.put("advertPositionDto", advertPositionDto);
			resultMap.put("selectByPrimaryKey", selectByPrimaryKey);
		}
		
		//show menu导航
		HashMap<String, Object> maps = new HashMap<String, Object>();
		
		maps.put("orderBy", "seq");
		maps.put("orderType", "asc");
		List<H5Menu> menus = this.h5MenuService.queryPages(maps);
		resultMap.put("menus", menus);
		*/
		
		// TODO List<每日推荐>10 List<新品推荐>6 List<微商城推荐推荐>1000
 
		// 每日推荐
		// 查询微商城推荐
		Map<String, Object> map = (Map<String, Object>) redisUtil.get("wechat_goods_no_break_list");
		if (null == map||map.get("rowCount").toString().equals("0")) {
			Map<String, Object> params = this.queryUtils.getParams(null, 10, "", "desc");
			params.put("goods_status", 0);
			params.put("goods_no_break", true);
			params.put("deleteStatus", 0);
			Map<String, Object> list = goodsFeignClient.list(params);
			redisUtil.set("wechat_goods_no_break_list", list);
			resultMap.put("goods_no_break_list", list);
		}else {
			resultMap.put("goods_no_break_list", map);
		}
		
		// 新品推荐
		map = (Map<String, Object>) redisUtil.get("wechat_goods_new_products");
		if (null == map||map.get("rowCount").toString().equals("0")) {
			Map<String, Object> params = this.queryUtils.getParams(null, 6, "", "desc");
			params.put("goods_status", 0);
			params.put("goods_new_products", true);
			params.put("deleteStatus", 0);
			Map<String, Object> list = goodsFeignClient.list(params);
			redisUtil.set("wechat_goods_new_products", list);
			resultMap.put("goods_new_products", list);
		}else{
		resultMap.put("goods_new_products", map);
		}
		
		
		// 查询微商城推荐
		map = (Map<String, Object>) redisUtil.get("wechat_recommend_list");
		if (null == map||map.get("rowCount").toString().equals("0")) {
			Map<String, Object> params = this.queryUtils.getParams(null, 1000, "weixin_recommendTime", "desc");
			params.put("goods_status", 0);
			params.put("weixin_recommend", true);
			params.put("deleteStatus", 0);
			Map<String, Object> list = goodsFeignClient.list(params);
			redisUtil.set("wechat_recommend_list", list);
			resultMap.put("recommend_list", list);
 
		}else {
			resultMap.put("recommend_list", map);
		}
		
		
		String weixin_navigator = sysConfigFeignClient.getSysConfig().getWeixin_navigator();
		Map index_nav_map = Maps.newHashMap();
		Map weixin_nav_map;
		if ((weixin_navigator != null) && (!weixin_navigator.equals(""))) {
			weixin_nav_map = JSON.parseObject(weixin_navigator);
			for (Object obj : weixin_nav_map.keySet()) {
				if (obj.toString().indexOf("index") >= 0) {
					index_nav_map.put(obj, weixin_nav_map.get(obj));
				}
			}
		} else {
			weixin_nav_map = Maps.newHashMap();
		}
		resultMap.put("index_nav_map", index_nav_map);
		return ResponseCode.buildSuccessMap(resultMap);
	}
	
	/**
	 * 手机端商品搜索
	 * @param request
	 * @param response
	 * @param gc_id
	 * @param currentPage
	 * @param orderBy
	 * @param orderType
	 * @param goods_type
	 * @param goods_inventory
	 * @param keyword
	 * @param goods_transfee
	 * @param goods_cod
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	@RequestMapping(value="/search", method = RequestMethod.POST)
	public Map<String, Object> search(HttpServletRequest request, HttpServletResponse response,@RequestBody JSONObject json
			) throws UnsupportedEncodingException {
		String keyword = json.optString("keyword");
		String currentPage = json.optString("currentPage");
		String orderBy = json.optString("orderBy");
		String orderType = json.optString("orderType");
		String gc_id = json.optString("gc_id");
		String goods_transfee = json.optString("goods_transfee");
		String goods_inventory = json.optString("goods_inventory");
		String goods_type = json.optString("goods_type");
		String goods_cod = json.optString("goods_cod");
		
		Map<String, Object> resultMap = new HashMap<String, Object>();
		if ((keyword != null) && (!keyword.equals(""))) {
			if (CommUtil.null2Int(currentPage) <= 1) {
				response.addCookie(search_history_cookie(request, keyword));
				if ((keyword != null) && (!keyword.equals(""))
						&& (keyword.length() > 1)) {
					resultMap.put("stores", search_stores_seo(keyword));
				}
			}
			resultMap = searchFeignClient.searchGoods(orderBy, orderType, gc_id, keyword, goods_transfee, currentPage,
					goods_inventory, goods_type, goods_cod);
		}
		
		return ResponseCode.buildSuccessMap(resultMap);
	}
	
	/**
	 * APP下载
	 * @param request
	 * @param response
	 */
	@RequestMapping({ "/app/download" })
	public void app_download(HttpServletRequest request,
			HttpServletResponse response) {
		String user_agent = request.getHeader("User-Agent").toLowerCase();
		String url = CommUtil.getURL(request);
		if (user_agent.indexOf("iphone") > 0) {
			url = sysConfigFeignClient.getSysConfig().getIos_download();
		}
		if (user_agent.indexOf("android") > 0) {
			url = sysConfigFeignClient.getSysConfig().getAndroid_download();
		}
		try {
			response.sendRedirect(CommUtil.getURL(request) + "/" + url);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
 
	public List<StoreDto> search_stores_seo(String keyword) {
		Map<String, Object> params = Maps.newHashMap();
		params.put("store_seo_keywords1", keyword);
		
		
		List<StoreDto> stores = storeFeignClient.queryPageList(params, 0, 3);
		
		Collections.sort(stores, new Comparator() {
			public int compare(Object o1, Object o2) {
				StoreDto store1 = (StoreDto) o1;
				StoreDto store2 = (StoreDto) o2;
				int l1 = store1.getStore_seo_keywords().split(",").length;
				int l2 = store2.getStore_seo_keywords().split(",").length;
				if (l1 > l2) {
					return 1;
				}
				if (l1 == l2) {
					if (store1.getPoint().getStore_evaluate()
							.compareTo(store2.getPoint().getStore_evaluate()) == 1) {
						return -1;
					}
					if (store1.getPoint().getStore_evaluate()
							.compareTo(store2.getPoint().getStore_evaluate()) == -1) {
						return 1;
					}
					return 0;
				}
				return -1;
			}
		});
		return stores;
	}
	
 
	/**
	 * 手机端广告
	 * @param request
	 * @param response
	 * @param id 手机端广告id=11
	 * @return
	 */
	@RequestMapping(value="/advert_invoke")
	public Map<String, Object> advert_invoke(HttpServletRequest request, HttpServletResponse response) {
			AdvertPositionDto advertPositionDto = advertPositionFeignClient.selectAdvertPosition("11");
			return ResponseCode.buildSuccessMap(advertPositionDto);
	}
 
	public Cookie search_history_cookie(HttpServletRequest request,
			String keyword) throws UnsupportedEncodingException {
		String str = "";
		Cookie[] cookies = request.getCookies();
		Cookie search_cookie = null;
		
		for (Cookie cookie : cookies) {
			if (cookie.getName().equals("search_history")) {
				String str_temp = URLDecoder.decode(cookie.getValue(), "UTF-8");
				for (String s : str_temp.split(",")) {
					if ((!s.equals(keyword)) && (!str.equals(""))) {
						str = str + "," + s;
					} else if (!s.equals(keyword)) {
						str = s;
					}
				}
				break;
			}
		}
		if (str.equals("")) {
			str = keyword;
			str = URLEncoder.encode(str, "UTF-8");
			search_cookie = new Cookie("search_history", str);
		} else {
			str = keyword + "," + str;
			str = URLEncoder.encode(str, "UTF-8");
			search_cookie = new Cookie("search_history", str);
		}
		return search_cookie;
	}
	
	/**
	 * 手机端文章
	 * @param request
	 * @param response
	 * @param mark
	 * @return
	 
	@RequestMapping({ "/doc" })
	public ModelAndView doc(HttpServletRequest request,
			HttpServletResponse response, String mark) {
		ModelAndView mv = new HongHuJModelAndView("weixin/article.html",
				this.configService.getSysConfig(),
				this.userConfigService.getUserConfig(), 1, request, response);
		mv.addObject("doc", "doc");
		
		Document obj = this.documentService.getObjByProperty("mark","=", mark);
		
		mv.addObject("obj", obj);
		return mv;
	}*/
	
	/**
	 * 
	 * @param request
	 * @param response
	 * @return
	 
	@RequestMapping({ "/layer" })
	public ModelAndView layer(HttpServletRequest request,
			HttpServletResponse response) {
		ModelAndView mv = new HongHuJModelAndView("weixin/layer.html",
				this.configService.getSysConfig(),
				this.userConfigService.getUserConfig(), 1, request, response);
		String weixin_navigator = sysConfigFeignClient.getSysConfig().getWeixin_navigator();
		Map layer_nav_map = Maps.newHashMap();
		Map weixin_nav_map;
		if ((weixin_navigator != null) && (!weixin_navigator.equals(""))) {
			weixin_nav_map = JSON.parseObject(weixin_navigator);
			for (Object obj : weixin_nav_map.keySet()) {
				if (obj.toString().indexOf("nav_") >= 0) {
					layer_nav_map.put(obj, weixin_nav_map.get(obj));
				}
			}
			String ret = CommUtil.null2String(weixin_nav_map
					.get("navigator_bar"));
			layer_nav_map.put("navigator_bar", ret);
		} else {
			weixin_nav_map = Maps.newHashMap();
		}
		mv.addObject("layer_nav_map", layer_nav_map);
		mv.addObject("op", CommUtil.null2String(request.getAttribute("op")));
		return mv;
	}
	
	@SuppressWarnings("unused")
	private List<GoodsCart> cart_calc(HttpServletRequest request) {
		String cart_session_id = "";
		Cookie[] cookies = request.getCookies();
		if (cookies != null) {
			
			
			for (Cookie cookie : cookies) {
				
				if (cookie.getName().equals("cart_session_id")) {
					try {
						cart_session_id = CommUtil.null2String(URLDecoder.decode(cookie.getValue(), "UTF-8"));
					} catch (UnsupportedEncodingException e) {
						e.printStackTrace();
					}
				}
			}
		}
		if (cart_session_id.equals("")) {
			cart_session_id = UUID.randomUUID().toString();
			Cookie cookie;
			try {
				cookie = new Cookie("cart_session_id", URLEncoder.encode(cart_session_id,"UTF-8"));
				cookie.setDomain(CommUtil.generic_domain(request));
			} catch (UnsupportedEncodingException e) {
				e.printStackTrace();
			}
		}
		List<GoodsCart> carts_list = Lists.newArrayList();
		List<GoodsCart> carts_cookie = Lists.newArrayList();
		List<GoodsCart> carts_user = Lists.newArrayList();
		User user = SecurityUserHolder.getCurrentUser();
		Map cart_map = Maps.newHashMap();
		if (user != null) {
			user = this.userService.selectByPrimaryKey(user.getId());
			if (!cart_session_id.equals("")) {
				cart_map.clear();
				cart_map.put("cart_session_id", cart_session_id);
				cart_map.put("cart_status", Integer.valueOf(0));
				
				carts_cookie = this.goodsCartService.queryPageList(cart_map);
				
				if (user.getStore() != null) {
					for (GoodsCart gc : carts_cookie) {
						gc.getGoods().getGoods_type();
					}
				}
				cart_map.clear();
				cart_map.put("user_id", user.getId());
				cart_map.put("cart_status", Integer.valueOf(0));
				
				carts_user = this.goodsCartService.queryPageList(cart_map);
				
			} else {
				cart_map.clear();
				cart_map.put("user_id", user.getId());
				cart_map.put("cart_status", Integer.valueOf(0));
				
				carts_user = this.goodsCartService.queryPageList(cart_map);
				
			}
		} else if (!cart_session_id.equals("")) {
			cart_map.clear();
			cart_map.put("cart_session_id", cart_session_id);
			cart_map.put("cart_status", Integer.valueOf(0));
			
			carts_cookie = this.goodsCartService.queryPageList(cart_map);
			
		}
		if (user != null) {
			for (GoodsCart ugc : carts_user) {
				carts_list.add(ugc);
			}
			for (GoodsCart cookie : carts_cookie) {
				boolean add = true;
				for (GoodsCart gc2 : carts_user) {
					if ((cookie.getGoods().getId().equals(gc2.getGoods()
							.getId()))
							&& (cookie.getSpec_info()
									.equals(gc2.getSpec_info()))) {
						add = false;
						this.goodsCartService.deleteById(cookie.getId());
					}
				}
				if (add) {
					cookie.setCart_session_id(null);
					cookie.setUser(user);
					this.goodsCartService.updateById(cookie);
					carts_list.add(cookie);
				}
			}
		} else {
			for (GoodsCart cookie : carts_cookie) {
				carts_list.add(cookie);
			}
		}
		return carts_list;
	}*/
	
}
 源码地址来源: https://minglisoft.cn/honghu2/business.html
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值