From 517f945fbf9dcd11211de87ea268aeb3a478f657 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 12 十二月 2018 15:37:16 +0800
Subject: [PATCH] 增加邀请有奖入口
---
fanli/src/main/java/com/yeshi/fanli/controller/client/SearchController.java | 298 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 208 insertions(+), 90 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/SearchController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/SearchController.java
index b38b739..05cfc92 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/SearchController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/SearchController.java
@@ -38,6 +38,7 @@
import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
+import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SuperHotSearchService;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.HonestService;
@@ -60,6 +61,9 @@
private SystemService systemService;
@Resource
+ private ConfigService configService;
+
+ @Resource
private SuperHotSearchService superHotSearchSerivce;
@Resource
@@ -73,13 +77,12 @@
@Resource
private TaoBaoUnionConfigService taoBaoUnionConfigService;
-
+
@Resource
private TaoKeGoodsService taoKeGoodsService;
@Resource
private QualityGoodsService qualityGoodsService;
-
@RequestMapping(value = "gethotsearch", method = RequestMethod.POST)
public void getHotSearch(AcceptData acceptData, PrintWriter out) {
@@ -137,11 +140,9 @@
data.put("nav", gson.toJson(navList));
List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
- Map<String, String> map = manageService.convertMap();
- String proportion = map.get("hongbao_goods_proportion");
- String fcRate = map.get("hongbao_fc_ratio");
+ BigDecimal proportion = manageService.getFanLiRate();
for (TaoBaoGoodsBrief bf : taoBaoGoodsBriefs) {
- re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
+ re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
}
Gson gson2 = JsonUtil.getApiCommonGson();
data.put("result", gson2.toJson(re));
@@ -289,7 +290,7 @@
} else if ("fahuodi".equalsIgnoreCase(ty)) {
int id = array.optJSONObject(i).optInt("id");
sf.setProvinceId(id);
- }else if ("materialId".equalsIgnoreCase(ty)) {
+ } else if ("materialId".equalsIgnoreCase(ty)) {
int id = array.optJSONObject(i).optInt("id");
sf.setProvinceId(id);
}
@@ -312,9 +313,7 @@
int fq = sf.getQuan();
int fh = sf.getHongbao();
boolean ft = sf.isTmall();
- Map<String, String> map = manageService.convertMap();
- String proportion = map.get("hongbao_goods_proportion");
- String fcRate = map.get("hongbao_fc_ratio");
+ BigDecimal proportion = manageService.getFanLiRate();
if (fq == 0 && fh == 0 && !ft) {
if (result != null && result.getTaoBaoGoodsBriefs() != null)
for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
@@ -323,10 +322,10 @@
double sales = count;
String salesCountMidea = String.format("%.1f", sales / 10000);
bf.setSalesCount(salesCountMidea + "涓�");
- re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
+ re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
} else {
bf.setSalesCount(count + "");
- re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
+ re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
}
}
} else {
@@ -338,13 +337,13 @@
double sales = count;
String salesCountMidea = String.format("%.1f", sales / 10000);
taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
- taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
- fcRate, "");
+ taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+ proportion.toString(), "");
re.add(taoBaoGoodsBriefExtra);
} else {
taoBaoGoodsBrief.setSalesCount(count + "");
- taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
- fcRate, "");
+ taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+ proportion.toString(), "");
re.add(taoBaoGoodsBriefExtra);
}
}
@@ -406,14 +405,16 @@
return StringUtil.Md5(sb.toString());
}
-
/**
* 鎼滅储-鏂扮増
+ *
* @param acceptData
* @param kw
* @param page
* @param filter
- * @param order 閿�閲忕敱楂樺埌浣�:1 銆� 浠锋牸浠庨珮鍒颁綆:2 銆� 浠锋牸浠庝綆鍒伴珮:3 銆� 鎺ㄥ箍閲忛珮鍒颁綆:4锛堢患鍚堥粯璁わ級銆佽繑鍒╂瘮楂樺埌浣�:5 銆佽繑鍒╂瘮浣庡埌楂�:6 銆佹帹鑽�20
+ * @param order
+ * 閿�閲忕敱楂樺埌浣�:1 銆� 浠锋牸浠庨珮鍒颁綆:2 銆� 浠锋牸浠庝綆鍒伴珮:3 銆� 鎺ㄥ箍閲忛珮鍒颁綆:4锛堢患鍚堥粯璁わ級銆佽繑鍒╂瘮楂樺埌浣�:5
+ * 銆佽繑鍒╂瘮浣庡埌楂�:6 銆佹帹鑽�20
* @param startprice
* @param endprice
* @param fastFilter
@@ -421,12 +422,12 @@
*/
@RequestMapping(value = "searchgoods")
public void searchgoods(AcceptData acceptData, String kw, int page, String filter, String order, String startprice,
- String endprice, String fastFilter, PrintWriter out) {
-
+ String endprice, Double startTkRate, Double endTkRate, String fastFilter, PrintWriter out) {
+
String bid = getHistorySearchBid(acceptData);
-
+
historySearchService.addHistorySearch(kw, bid);
-
+
System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
if (system == null) {
out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
@@ -437,7 +438,7 @@
out.print(JsonUtil.loadFalseResult("鏃犳硶鎼滅储閾炬帴"));
return;
}
-
+
if (!StringUtil.isNullOrEmpty(fastFilter)) {
if (!StringUtil.isNullOrEmpty(filter)) {
JSONArray filterArray = JSONArray.fromObject(filter);
@@ -448,8 +449,7 @@
filter = fastFilter;
}
}
-
-
+
// 鏄惁鏄帹鑽�
boolean recommend = false;
if (!StringUtil.isNullOrEmpty(fastFilter)) {
@@ -457,14 +457,13 @@
JSONArray array = JSONArray.fromObject(filter);
for (int i = 0; i < array.size(); i++) {
String ty = array.optJSONObject(i).optString("type");
-
+
if ("recommend".equalsIgnoreCase(ty)) {
recommend = true;
}
}
}
-
-
+
JSONObject data = null;
if (!recommend) {
// 娣樺疂鎺ュ彛璇锋眰
@@ -473,26 +472,26 @@
// 鎺ㄨ崘锛氱簿閫夊簱
data = searchQualityGoods(kw, page, filter, order, startprice, endprice);
}
-
+
// 鑾峰彇鎺ㄨ崘璇�
List<String> listRecommendWords = new ArrayList<String>();
// 缁煎悎 鏌ヨ绗竴椤垫椂鑾峰彇鍊欓�夎瘝
- if (page == 0 && !StringUtil.isNullOrEmpty(order) && "4".equalsIgnoreCase(order)) {
+ if (page == 0) {
listRecommendWords = TaoBaoUtil.getSuguestSearch(kw);
if (listRecommendWords == null || listRecommendWords.size() == 0) {
listRecommendWords = new ArrayList<String>();
- }
+ }
}
-
+
Gson gson = new GsonBuilder().create();
data.put("words", gson.toJson(listRecommendWords));
-
+
out.print(JsonUtil.loadTrueResult(data));
}
-
-
+
/**
* 鎵ц鎼滅储-鏂扮増
+ *
* @param kw
* @param page
* @param filter
@@ -501,7 +500,8 @@
* @param endprice
* @return
*/
- private JSONObject searchGoods(String kw, int page, String filter, String order, String startprice, String endprice) {
+ private JSONObject searchGoods(String kw, int page, String filter, String order, String startprice,
+ String endprice) {
page = page + 1;
SearchFilter sf = new SearchFilter();
@@ -600,13 +600,24 @@
} else if ("fahuodi".equalsIgnoreCase(ty)) {
int id = array.optJSONObject(i).optInt("id");
sf.setProvinceId(id);
- }else if ("materialId".equalsIgnoreCase(ty)) {
+ } else if ("materialId".equalsIgnoreCase(ty)) {
int id = array.optJSONObject(i).optInt("id");
sf.setProvinceId(id);
+ } else if ("tkRate1".equalsIgnoreCase(ty)) {
+ setSearchTkRate(0, sf);
+ } else if ("tkRate2".equalsIgnoreCase(ty)) {
+ setSearchTkRate(1, sf);
+ } else if ("tkRate3".equalsIgnoreCase(ty)) {
+ setSearchTkRate(2, sf);
+ } else if ("tkRate4".equalsIgnoreCase(ty)) {
+ setSearchTkRate(3, sf);
+ } else if ("tkRate5".equalsIgnoreCase(ty)) {
+ setSearchTkRate(4, sf);
}
}
sf.setParams(params);
}
+
TaoBaoSearchResult result = TaoBaoUtil.search(sf);
if (result == null) {
return null;
@@ -624,8 +635,7 @@
int fh = sf.getHongbao();
boolean ft = sf.isTmall();
Map<String, String> map = manageService.convertMap();
- String proportion = map.get("hongbao_goods_proportion");
- String fcRate = map.get("hongbao_fc_ratio");
+ BigDecimal proportion = manageService.getFanLiRate();
if (fq == 0 && fh == 0 && !ft) {
if (result != null && result.getTaoBaoGoodsBriefs() != null)
for (TaoBaoGoodsBrief bf : result.getTaoBaoGoodsBriefs()) {
@@ -634,10 +644,10 @@
double sales = count;
String salesCountMidea = String.format("%.1f", sales / 10000);
bf.setSalesCount(salesCountMidea + "涓�");
- re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
+ re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
} else {
bf.setSalesCount(count + "");
- re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion, fcRate, ""));
+ re.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(bf, proportion.toString(), ""));
}
}
} else {
@@ -649,13 +659,13 @@
double sales = count;
String salesCountMidea = String.format("%.1f", sales / 10000);
taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
- taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
- fcRate, "");
+ taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+ proportion.toString(), "");
re.add(taoBaoGoodsBriefExtra);
} else {
taoBaoGoodsBrief.setSalesCount(count + "");
- taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion,
- fcRate, "");
+ taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief,
+ proportion.toString(), "");
re.add(taoBaoGoodsBriefExtra);
}
}
@@ -666,11 +676,10 @@
data.put("count", result.getTaoBaoHead().getDocsfound());
return data;
}
-
-
-
+
/**
* 鎵ц鎼滅储绮鹃�夊簱
+ *
* @param kw
* @param page
* @param filter
@@ -679,77 +688,155 @@
* @param endprice
* @return
*/
- private JSONObject searchQualityGoods(String key, int page, String filter, String order, String startprice, String endprice) {
-
+ private JSONObject searchQualityGoods(String key, int page, String filter, String order, String startprice,
+ String endprice) {
+
Integer hasQuan = null;
Integer userType = null;
Double start_Price = null;
- Double end_Price= null;
+ Double end_Price = null;
Integer sort = null;
-
+ Double startTkRate = null;
+ Double endTkRate = null;
+
int provinceId = -100;
-
+
// 璧峰浠锋牸
if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(startprice)) {
start_Price = Double.parseDouble(startprice);
}
// 缁撴潫浠锋牸
if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(endprice)) {
- end_Price = Double.parseDouble(endprice);
+ end_Price = Double.parseDouble(endprice);
}
-
- // 鎺掑簭
+
+ // 鎺掑簭
if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
-
+
if (Integer.parseInt(order) == 4) {
sort = 20; // 缁煎悎鏃讹細閲囩敤榛樿鏉冮噸鎺掑簭
} else {
- sort =Integer.parseInt(order);
+ sort = Integer.parseInt(order);
}
-
+
}
- /* 鍏朵粬绛涢�夋潯浠� */
+ /* 鍏朵粬绛涢�夋潯浠� */
if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(filter)) {
// 鏌ヨ娣樺疂澶╃尗
JSONArray array = JSONArray.fromObject(filter);
for (int i = 0; i < array.size(); i++) {
String ty = array.optJSONObject(i).optString("type");
-
+
if ("userType".equalsIgnoreCase(ty)) {
userType = 1; // 澶╃尗
} else if ("quantype".equalsIgnoreCase(ty)) {
hasQuan = 1; // 鏈夊埜
} else if ("hongbaotype".equalsIgnoreCase(ty)) {
-
+
} else if ("fahuodi".equalsIgnoreCase(ty)) {
provinceId = array.optJSONObject(i).optInt("id");
+ } else if ("tkRate1".equalsIgnoreCase(ty)) {
+ // 鑾峰彇瀵瑰簲鍙傛暟
+ String value = configService.get("tkRate_range");
+ if (!StringUtil.isNullOrEmpty(value)) {
+ JSONArray tkRatearray = JSONArray.fromObject(value);
+ if (tkRatearray != null) {
+ String start = tkRatearray.optJSONObject(0).optString("start");
+ if (!StringUtil.isNullOrEmpty(start)) {
+ startTkRate = Double.parseDouble(start);
+ }
+ String end = tkRatearray.optJSONObject(0).optString("end");
+ if (!StringUtil.isNullOrEmpty(end)) {
+ endTkRate = Double.parseDouble(end);
+ }
+ }
+ }
+ } else if ("tkRate2".equalsIgnoreCase(ty)) {
+ // 鑾峰彇瀵瑰簲鍙傛暟
+ String value = configService.get("tkRate_range");
+ if (!StringUtil.isNullOrEmpty(value)) {
+ JSONArray tkRatearray = JSONArray.fromObject(value);
+ if (tkRatearray != null) {
+ String start = tkRatearray.optJSONObject(1).optString("start");
+ if (!StringUtil.isNullOrEmpty(start)) {
+ startTkRate = Double.parseDouble(start);
+ }
+ String end = tkRatearray.optJSONObject(1).optString("end");
+ if (!StringUtil.isNullOrEmpty(end)) {
+ endTkRate = Double.parseDouble(end);
+ }
+ }
+ }
+ } else if ("tkRate3".equalsIgnoreCase(ty)) {
+ // 鑾峰彇瀵瑰簲鍙傛暟
+ String value = configService.get("tkRate_range");
+ if (!StringUtil.isNullOrEmpty(value)) {
+ JSONArray tkRatearray = JSONArray.fromObject(value);
+ if (tkRatearray != null) {
+ String start = tkRatearray.optJSONObject(2).optString("start");
+ if (!StringUtil.isNullOrEmpty(start)) {
+ startTkRate = Double.parseDouble(start);
+ }
+ String end = tkRatearray.optJSONObject(2).optString("end");
+ if (!StringUtil.isNullOrEmpty(end)) {
+ endTkRate = Double.parseDouble(end);
+ }
+ }
+ }
+ } else if ("tkRate4".equalsIgnoreCase(ty)) {
+ // 鑾峰彇瀵瑰簲鍙傛暟
+ String value = configService.get("tkRate_range");
+ if (!StringUtil.isNullOrEmpty(value)) {
+ JSONArray tkRatearray = JSONArray.fromObject(value);
+ if (tkRatearray != null) {
+ String start = tkRatearray.optJSONObject(3).optString("start");
+ if (!StringUtil.isNullOrEmpty(start)) {
+ startTkRate = Double.parseDouble(start);
+ }
+ String end = tkRatearray.optJSONObject(3).optString("end");
+ if (!StringUtil.isNullOrEmpty(end)) {
+ endTkRate = Double.parseDouble(end);
+ }
+ }
+ }
+ } else if ("tkRate5".equalsIgnoreCase(ty)) {
+ // 鑾峰彇瀵瑰簲鍙傛暟
+ String value = configService.get("tkRate_range");
+ if (!StringUtil.isNullOrEmpty(value)) {
+ JSONArray tkRatearray = JSONArray.fromObject(value);
+ if (tkRatearray != null) {
+ String start = tkRatearray.optJSONObject(4).optString("start");
+ if (!StringUtil.isNullOrEmpty(start)) {
+ startTkRate = Double.parseDouble(start);
+ }
+ String end = tkRatearray.optJSONObject(4).optString("end");
+ if (!StringUtil.isNullOrEmpty(end)) {
+ endTkRate = Double.parseDouble(end);
+ }
+ }
+ }
}
}
}
-
-
+
int pageSize = Constant.PAGE_SIZE;
-
- List<QualityFactory> listQuery = qualityGoodsService.listRecommendBykey(page * pageSize,
- pageSize, key, hasQuan, userType, start_Price, end_Price, sort);
-
-
+
+ List<QualityFactory> listQuery = qualityGoodsService.listRecommendBykey(page * pageSize, pageSize, key, hasQuan,
+ userType, start_Price, end_Price, startTkRate, endTkRate, sort);
+
List<TaoBaoGoodsBriefExtra> listExtra = new ArrayList<TaoBaoGoodsBriefExtra>();
- Map<String, String> map = manageService.convertMap();
- String proportion = map.get("hongbao_goods_proportion");
- String fcRate = map.get("hongbao_fc_ratio");
-
+ BigDecimal proportion = manageService.getFanLiRate();
/* 閬嶅巻鍒楄〃鏁版嵁 */
if (listQuery != null && listQuery.size() > 0) {
for (QualityFactory selectionGoods : listQuery) {
-
+
TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
-
+
if (taoBaoGoodsBrief == null) {
continue;
}
-
+
int biz30day = taoBaoGoodsBrief.getBiz30day();
if (biz30day >= 10000) {
double sales = biz30day;
@@ -758,30 +845,29 @@
} else {
taoBaoGoodsBrief.setSalesCount(biz30day + "");
}
-
- // 鏀瑰彉鍥剧墖灏哄
+
+ // 鏀瑰彉鍥剧墖灏哄
String pictUrl = taoBaoGoodsBrief.getPictUrl();
if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
taoBaoGoodsBrief.setPictUrl(TbImgUtil.getTBSize320Img(pictUrl));
}
-
- listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion, fcRate, null));
+
+ listExtra.add(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null));
}
}
-
- long count = qualityGoodsService.countRecommendBykey(key, hasQuan, userType, start_Price, end_Price);
-
-
+ long count = qualityGoodsService.countRecommendBykey(key, hasQuan, userType, start_Price, end_Price,
+ startTkRate, endTkRate);
+
// 璁剧疆鍙戣揣鍦板潃
TaoBaoSearchNav nav = new TaoBaoSearchNav();
- nav.setName("鍙戣揣鍦�");
+ nav.setName("鍙戣揣鍦伴�夋嫨");
nav.setFlag("address");
nav.setId(11110);
nav.setType("fahuodi");
List<TaoBaoSearchNav> navList = new ArrayList<>();
-
+
List<TaoBaoSearchNav> childNavList = new ArrayList<>();
List<TaoBaoProvince> provinceList = TaoBaoUtil.getTaoBaoProvinceList();
for (TaoBaoProvince province : provinceList) {
@@ -796,17 +882,49 @@
nav.setSubIds(childNavList);
navList.add(nav);
-
+
Gson gson = new GsonBuilder().create();
Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
.excludeFieldsWithoutExposeAnnotation().create();
-
+
JSONObject data = new JSONObject();
data.put("nav", gson.toJson(navList));
data.put("result", gson2.toJson(listExtra));
data.put("count", count);
-
+
return data;
}
-
+
+ /**
+ * 璁剧疆鏌ヨ浣i噾姣斾緥鑼冨洿
+ *
+ * @param i
+ * @param sf
+ */
+ public void setSearchTkRate(int i, SearchFilter sf) {
+ // 鑾峰彇瀵瑰簲鍙傛暟
+ String value = configService.get("tkRate_range");
+
+ if (!StringUtil.isNullOrEmpty(value)) {
+
+ JSONArray tkRatearray = JSONArray.fromObject(value);
+
+ if (tkRatearray != null) {
+
+ String start = tkRatearray.optJSONObject(i).optString("start");
+
+ if (!StringUtil.isNullOrEmpty(start)) {
+ int tkRate = (int) (Float.parseFloat(start) * 100);
+ sf.setStartTkRate(tkRate);
+ }
+
+ String end = tkRatearray.optJSONObject(i).optString("end");
+ if (!StringUtil.isNullOrEmpty(end)) {
+ int tkRate = (int) (Float.parseFloat(end) * 100);
+ sf.setEndTkRate(tkRate);
+ }
+ }
+
+ }
+ }
}
--
Gitblit v1.8.0