package com.yeshi.fanli.util.cache; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.stereotype.Component; import org.yeshi.utils.HttpUtil; import com.yeshi.fanli.dto.common.CommonContentNav; import com.yeshi.fanli.dto.common.CommonContentTypeEnum; import com.yeshi.fanli.entity.brand.BrandClass; import com.yeshi.fanli.entity.bus.clazz.GoodsClass; import com.yeshi.fanli.service.inter.brand.BrandClassService; import com.yeshi.fanli.service.inter.goods.CommonTemplateContentService; import com.yeshi.fanli.service.inter.goods.GoodsClassService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.taobao.DaTaoKeUtil; /** * 采用http请求触发商品缓存 * * @author Administrator * */ @Component public class HttpGoodsCacheManager { @Resource private CommonTemplateContentService commonTemplateContentService; @Resource private GoodsClassService goodsClassService; @Resource private BrandClassService brandClassService; private static String getSign(Map params) { List list = new ArrayList<>(); Iterator its = params.keySet().iterator(); while (its.hasNext()) { String key = its.next(); Object value = params.get(key); list.add(key + "=" + value.toString()); } Collections.sort(list); String str = ""; for (String st : list) { str += st + "&"; } String sign = null; sign = StringUtil.Md5(str + Constant.systemCommonConfig.getSignKey()); return sign; } private void request(String url, Map par) { Map params = new HashMap<>(); params.put("packages", "com.yeshi.ec.rebate"); params.put("Version", "46"); params.put("appkey", "24587154"); params.put("platform", "android"); params.put("apiversion", "1"); params.put("channel", "GuanWang"); params.put("imei", "862977040115210"); params.put("osVersion", "8.0.0"); params.put("network", "WIFI"); params.put("deviceType", "LND-AL30"); params.put("time", System.currentTimeMillis() + ""); params.put("Device", "da105e2c-a7e8-3739-8fb8-4100da3c3aac"); if (par != null) { for (Iterator its = par.keySet().iterator(); its.hasNext();) { String key = its.next(); params.put(key, par.get(key)); } } params.put("time", System.currentTimeMillis() + ""); params.put("sign", getSign(params)); String result = HttpUtil.post(url, params, null); System.out.println(result); } // 触发首页的商品更新 public void requestHomeRecommend() { Map params = new HashMap<>(); params.put("goodsType", 1 + ""); for (int p = 1; p < 5; p++) { params.put("page", p + ""); request("http://api.flqapp.com/fanli/api/v2/recommend/getGoodList", params); } } // 触发通用模板 public void requestCommonTemplate() { CommonContentTypeEnum[] types = CommonContentTypeEnum.values(); for (int p = 1; p < 3; p++) { for (CommonContentTypeEnum type : types) { List navList = commonTemplateContentService.getNavList(type); if (navList != null && navList.size() > 0) for (CommonContentNav nav : navList) { commonTemplateContentService.getContentList(type, nav.getCid(), p, 50); } else { commonTemplateContentService.getContentList(type, null, p, 50); } } } } // 触发分类商品 public void requestClassGoods() { Map params = new HashMap<>(); List classList = goodsClassService.getEffectiveClassCache(); for (int p = 1; p < 3; p++) { params.put("page", p + ""); for (GoodsClass gc : classList) params.put("gcid", gc.getId() + ""); request("http://api.flqapp.com/fanli/api/v2/class/getClassGoods", params); } } // 触发动态 public void requestDynamic() { // 热销 List list = new ArrayList(); list.add(new GoodsClass(0L, "今日单品")); list.addAll(DaTaoKeUtil.goodsClasses); for (int p = 1; p < 5; p++) { Map params = new HashMap<>(); params.put("cid", 1 + ""); params.put("page", p + ""); for (GoodsClass gc : list) { params.put("subId", gc.getId() + ""); request("http://api.flqapp.com/fanli/api/v2/dynamic/getList", params); } // 推荐 params = new HashMap<>(); params.put("cid", 2 + ""); params.put("page", p + ""); request("http://api.flqapp.com/fanli/api/v2/dynamic/getList", params); // 好店 params = new HashMap<>(); params.put("cid", 3 + ""); params.put("page", p + ""); request("http://api.flqapp.com/fanli/api/v2/dynamic/getList", params); } } // 触发品牌商品列表 public void requestBrandGoods() { List list = brandClassService.listBrandClassEffectiveCache(); list.add(new BrandClass(0L)); list.addAll(list); for (int p = 1; p < 5; p++) { Map params = new HashMap<>(); params.put("page", p + ""); for (BrandClass gc : list) { params.put("cid", gc.getId() + ""); request("http://api.flqapp.com/fanli/api/v2/brand/getShopList", params); } } } }