From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 25 二月 2025 16:41:22 +0800
Subject: [PATCH] 淘宝转链接口更新

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java | 1826 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 913 insertions(+), 913 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java
index abc0cff..5a33d98 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/GoodsClassController.java
@@ -1,913 +1,913 @@
-package com.yeshi.fanli.controller.client.v1;
-
-import java.io.PrintWriter;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-
-import org.springframework.core.task.TaskExecutor;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.JsonUtil;
-
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
-import com.yeshi.fanli.entity.bus.clazz.GoodsSecondClass;
-import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
-import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass;
-import com.yeshi.fanli.entity.bus.lable.QualityFactory;
-import com.yeshi.fanli.entity.system.BusinessSystem;
-import com.yeshi.fanli.entity.taobao.SearchFilter;
-import com.yeshi.fanli.entity.taobao.TaoBaoCoupon;
-import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
-import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
-import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
-import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
-import com.yeshi.fanli.log.LogHelper;
-import com.yeshi.fanli.service.inter.config.BusinessSystemService;
-import com.yeshi.fanli.service.inter.goods.GoodsClassService;
-import com.yeshi.fanli.service.inter.goods.GoodsSecondClassService;
-import com.yeshi.fanli.service.inter.goods.GoodsSubClassService;
-import com.yeshi.fanli.service.inter.goods.SuperGoodsClassService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
-import com.yeshi.fanli.service.inter.goods.TaoBaoCouponService;
-import com.yeshi.fanli.service.inter.homemodule.HomeNavbarService;
-import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
-import com.yeshi.fanli.service.inter.lable.LabelClassService;
-import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
-import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
-import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
-import com.yeshi.fanli.service.inter.monitor.MonitorService;
-import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-import com.yeshi.fanli.util.Constant;
-import com.yeshi.fanli.util.RedisKeyEnum;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import org.yeshi.utils.TimeUtil;
-import com.yeshi.fanli.util.Utils;
-import com.yeshi.fanli.util.factory.MonitorFactory;
-import com.yeshi.fanli.util.taobao.TaoBaoUtil;
-import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
-import com.yeshi.fanli.vo.homemodule.BannerVO;
-
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-@Controller
-@RequestMapping("api/v1/class")
-public class GoodsClassController<E> {
-
-    @Resource
-    private SuperGoodsClassService superGoodsClassService;
-
-    @Resource
-    private GoodsSecondClassService goodsSecondClassService;
-
-    @Resource
-    private GoodsClassService goodsClassService;
-
-    @Resource
-    private SearchController searchController;
-
-    @Resource
-    private TaoBaoCouponService taoBaoCouponService;
-
-    @Resource
-    private HongBaoManageService hongBaoManageService;
-
-    @Resource
-    private HongBaoManageService manageService;
-
-    @Resource
-    private BusinessSystemService businessSystemService;
-
-    @Resource
-    private RedisManager redisManager;
-
-    @Resource
-    private QualityFactoryService selectionGoodsService;
-    @Resource
-    private TaoKeGoodsService taoKeGoodsService;
-    @Resource
-    private GoodsSubClassService goodsSubClassService;
-    @Resource
-    private TaoBaoClassService taoBaoClassService;
-    @Resource
-    private LabelClassService labelClassService;
-
-    @Resource
-    private QualityGoodsService qualityGoodsService;
-
-    @Resource
-    private MonitorService monitorService;
-
-    @Resource
-    private HomeNavbarService homeNavbarService;
-    @Resource
-    private SwiperPictureService swiperPictureService;
-
-    @Resource(name = "taskExecutor")
-    private TaskExecutor executor;
-
-    /**
-     * 鑾峰彇涓荤被鐩�
-     *
-     * @param acceptData
-     * @param out
-     */
-    @RequestMapping(value = "getgoodsclass", method = RequestMethod.POST)
-    public void getGoodsClass(AcceptData acceptData, PrintWriter out) {
-
-        try {
-            List<GoodsClass> goodsClassList = goodsClassService.getEffectiveClassCache();
-            if (goodsClassList == null || goodsClassList.size() == 0) {
-                out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
-                return;
-            }
-
-            JSONObject data = new JSONObject();
-            data.put("count", goodsClassList.size());
-            data.put("goodsClassList", JsonUtil.getApiCommonGson().toJson(goodsClassList));
-
-            out.print(JsonUtil.loadTrueResult(data));
-        } catch (Exception e) {
-            out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
-            try {
-                LogHelper.errorDetailInfo(e);
-            } catch (Exception e1) {
-                e1.printStackTrace();
-            }
-        }
-
-    }
-
-    /**
-     * 鑾峰彇浜岀骇瀛愮被鐩�
-     *
-     * @param acceptData
-     * @param gcid
-     * @param out
-     */
-    @RequestMapping(value = "getgoodssecondclass", method = RequestMethod.POST)
-    public void getGoodsSecondClass(AcceptData acceptData, long gcid, Long swpid, PrintWriter out) {
-        try {
-            GoodsClass goodsClass = goodsClassService.getGoodsClassCache(gcid);
-            if (goodsClass == null) {
-                out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
-                return;
-            }
-
-            // 杞挱鍥�
-            List<BannerVO> picList = null;
-            if (swpid != null) {
-                picList = swiperPictureService.getByBannerId(swpid, acceptData.getPlatform(),
-                        Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
-            }
-            if (picList == null) {
-                picList = new ArrayList<BannerVO>();
-            }
-
-            List<GoodsSubClass> goodsSubClassList = goodsSubClassService.getSubClassCache(gcid, 1,
-                    Calendar.getInstance().get(Calendar.MONTH) + 1);
-            if (goodsSubClassList == null) {
-                goodsSubClassList = new ArrayList<GoodsSubClass>();
-            }
-
-            boolean changePicture = false;
-            String version = acceptData.getVersion();
-            int tversion = Integer.parseInt(version);
-            String platform = acceptData.getPlatform();
-            if ("android".equalsIgnoreCase(platform) && tversion > 38) {
-                changePicture = true;
-            } else if (tversion > 47) {
-                changePicture = true;
-            }
-
-            // 1.5.3鏂扮増鍥剧墖鏇挎崲
-            if (changePicture) {
-                for (GoodsSubClass goodsSubClass : goodsSubClassList) {
-                    String pictureSecond = goodsSubClass.getPictureSecond();
-                    if (pictureSecond != null && pictureSecond.trim().length() > 0) {
-                        goodsSubClass.setPicture(pictureSecond);
-                    }
-                }
-            }
-
-            JSONObject data = new JSONObject();
-            data.put("picList", JsonUtil.getApiCommonGson().toJson(picList));
-            data.put("count", goodsSubClassList.size());
-            data.put("goodsSecondClassList", JsonUtil.getApiCommonGson().toJson(goodsSubClassList));
-            out.print(JsonUtil.loadTrueResult(data));
-
-            // 鏇存柊鍒嗙被鐐瑰嚮娆℃暟
-            executor.execute(new Runnable() {
-                @Override
-                public void run() {
-                    if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
-                        Long androidClick = goodsClass.getAndroidClick();
-                        if (androidClick != null) {
-                            goodsClass.setAndroidClick(androidClick + 1);
-                        } else {
-                            goodsClass.setAndroidClick(1L);
-                        }
-                    } else if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
-                        Long iosClick = goodsClass.getIosClick();
-                        if (iosClick != null) {
-                            goodsClass.setIosClick(iosClick + 1);
-                        } else {
-                            goodsClass.setIosClick(1L);
-                        }
-                    }
-
-                    GoodsClass gc = new GoodsClass();
-                    gc.setId(goodsClass.getId());
-                    gc.setIosClick(goodsClass.getIosClick());
-                    gc.setAndroidClick(goodsClass.getAndroidClick());
-                    goodsClassService.updateByPrimaryKeySelective(gc);
-                }
-            });
-
-        } catch (Exception e) {
-            out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
-            try {
-                LogHelper.errorDetailInfo(e);
-            } catch (Exception e1) {
-                e1.printStackTrace();
-            }
-        }
-
-    }
-
-    @RequestMapping(value = "getCouponGoods", method = RequestMethod.POST)
-    public void getCouponGoods(AcceptData acceptData, int page, long gcid, PrintWriter out) {
-        // GoodsClass goodsClass = goodsClassService.getGoodsClass(gcid);
-
-        List<GoodsSecondClass> secondClassList = goodsSecondClassService.getGoodsSecondClassByGoodsClassId(gcid);
-        List<String> searchKeys = new ArrayList<String>();
-        for (GoodsSecondClass secondClass : secondClassList) {
-            String key = secondClass.getKey();
-            if (key == null || "".equals(key.trim())) {
-                searchKeys.add(secondClass.getName());
-            } else {
-                searchKeys.add(secondClass.getKey());
-            }
-        }
-        List<TaoBaoCoupon> taoBaoCoupons = taoBaoCouponService.getTaoBaoCouponListBykeys(searchKeys, page);
-        int count = taoBaoCouponService.getCount(searchKeys);
-        setTaoBaoCouponHongBao(acceptData, taoBaoCoupons);
-        JSONObject data = new JSONObject();
-        long currentTimeMillis = java.lang.System.currentTimeMillis();
-        String time = TimeUtil.getGernalTime(currentTimeMillis);
-        data.put("time", time);
-        data.put("count", count);
-        data.put("taoBaoCoupons", Utils.imgListSize(
-                JsonUtil.getApiCommonGson().toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtraList(taoBaoCoupons))));
-        out.print(JsonUtil.loadTrueResult(data));
-    }
-
-    /**
-     * 鑾峰彇瀛愮被鐩晢鍝�
-     *
-     * @param acceptData
-     * @param page
-     * @param scid
-     * @param filter
-     * @param order      閿�閲忕敱楂樺埌浣�:0 浠锋牸浠庨珮鍒颁綆:2 浠锋牸浠庝綆鍒伴珮:3 娣樺浣i噾姣旂巼楂樺埌浣�:4 鍏朵粬锛氶粯璁�1
-     * @param startprice 璧峰浠锋牸
-     * @param endprice   缁撴潫浠锋牸
-     * @param fastFilter fastFilter 鏈夊埜 [{"type":"quantype"}] 澶╃尗鍟嗗搧 [{"type":"shoptype"}]
-     * @param totalSales 閿�閲忎互涓�
-     * @param out
-     */
-    @RequestMapping(value = "getgoods", method = RequestMethod.POST)
-    public void getGoods(AcceptData acceptData, int page, long scid, String filter, String order, String startprice,
-                         String endprice, String fastFilter, PrintWriter out) {
-        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
-                acceptData.getPackages(), acceptData.getSystem());
-        if (system == null) {
-            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
-            return;
-        }
-        GoodsSubClass goodsSubClass = goodsSubClassService.selectByPrimaryKey(scid);
-        String name2 = goodsSubClass.getName();
-        String name1 = goodsSubClass.getKey();
-        if (name1 != null && !"".equals(name1.trim())) {
-            name2 = name1;
-        }
-        if (!StringUtil.isNullOrEmpty(fastFilter)) {
-            if (!StringUtil.isNullOrEmpty(filter)) {
-                JSONArray filterArray = JSONArray.fromObject(filter);
-                JSONArray fastFilterArray = JSONArray.fromObject(fastFilter);
-                filterArray.addAll(fastFilterArray);
-                filter = filterArray.toString();
-            } else {
-                filter = fastFilter;
-            }
-        }
-
-        SearchFilter sf = new SearchFilter();
-        if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
-            if (Integer.parseInt(order) == 1) {
-                sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
-            } else if (Integer.parseInt(order) == 2) {
-                sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
-            } else if (Integer.parseInt(order) == 3) {
-                sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
-            }
-        } else {
-            // 榛樿閿�閲忎粠楂樺埌浣庢帓搴�
-            sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
-        }
-
-        sf.setKey(name2);
-        sf.setBaoYou(true);
-        /* 璧峰浠锋牸 */
-        Integer start_price = null;
-        if (!StringUtil.isNullOrEmpty(startprice)) {
-            start_price = Integer.parseInt(startprice);
-            sf.setStartPrice(new BigDecimal(start_price));
-        }
-
-        sf.setQuan(1);
-
-        if (fastFilter != null && fastFilter.contains("shoptype")) {
-            sf.setTmall(true);
-        }
-
-        /* 缁撴潫浠锋牸 */
-        Integer end_price = null;
-        if (!StringUtil.isNullOrEmpty(endprice)) {
-            end_price = Integer.parseInt(endprice);
-            sf.setEndPrice(new BigDecimal(end_price));
-        }
-        sf.setPageSize(20);
-        sf.setPage(page + 1);
-        sf.setMaterialId("6707");
-        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-        JSONArray array = new JSONArray();
-        List<TaoBaoGoodsBrief> taobaoList = taoKeGoodsService.searchWuLiaoList(sf,acceptData.getSystem());
-        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
-        for (TaoBaoGoodsBrief taoBaoGoodsBrief : taobaoList) {
-            int biz30day = taoBaoGoodsBrief.getBiz30day();
-            if (biz30day >= 10000) {
-                double sales = biz30day;
-                String salesCountMidea = String.format("%.1f", sales / 10000);
-                taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
-            } else {
-                taoBaoGoodsBrief.setSalesCount(biz30day + "");
-            }
-            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
-        }
-        JSONObject data = new JSONObject();
-        data.put("nav", new JSONArray());
-        data.put("count", 1000);
-        data.put("result", array);
-        out.print(JsonUtil.loadTrueResult(data));
-    }
-
-    /**
-     * 鑾峰彇浜岀骇鍒嗙被鍟嗗搧
-     *
-     * @param acceptData
-     * @param page
-     * @param scid
-     * @param filter
-     * @param order      鏉ユ簮锛氥�愭帹鑽愶細0 | 缁煎悎锛�4 銆佺患鍚堝彧鐪嬫湁鍒� 1 銆佺患鍚堝彧鐪嬪ぉ鐚� 1 | 浠锋牸锛氫綆鍒伴珮3 楂樺埌浣�2 | 閿�閲忥細1銆�
-     *                   鎺掑簭鍊硷細銆愰攢閲忕敱楂樺埌浣�: 1 锛� 閿�閲忕敱浣庡埌楂� 5锛� 浠锋牸浠庨珮鍒颁綆: 2 锛� 浠锋牸浠庝綆鍒伴珮:3 锛� 鎺ㄥ箍閲忛珮鍒颁綆:4 锛�
-     *                   鍏朵粬榛樿锛� 閿�閲忕敱楂樺埌浣庛��
-     * @param startprice 璧峰浠锋牸
-     * @param endprice   缁撴潫浠锋牸
-     * @param fastFilter fastFilter 鏈夊埜 [{"type":"quantype"}] 澶╃尗鍟嗗搧 [{"type":"shoptype"}]
-     * @param totalSales 閿�閲忎互涓�
-     * @param out
-     */
-    @RequestMapping(value = "getsecondclassgoods", method = RequestMethod.POST)
-    public void getSecondClassGoods(AcceptData acceptData, int page, long scid, String filter, String order,
-                                    String startprice, String endprice, String fastFilter, Integer totalSales, PrintWriter out) {
-        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
-                acceptData.getPackages(), acceptData.getSystem());
-        if (system == null) {
-            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
-            return;
-        }
-
-        try {
-
-            GoodsSubClass goodsSubClass = goodsSubClassService.getSubClassByPrimaryKeyCache(scid);
-            if (goodsSubClass == null) {
-                out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
-                return;
-            }
-
-            if (page == 0) {
-                // 缁熻鐐瑰嚮閲�
-                goodsSubClassService.countClick(acceptData, goodsSubClass);
-            }
-
-            SearchFilter sf = new SearchFilter();
-            String catesId = "";
-            // 鏌ヨ鏄惁鏈夋窐瀹濆垎绫籌D
-            List<TaoBaoClass> tbClassList = taoBaoClassService.listBySystemSubCid(0, 10, goodsSubClass.getId());
-            if (tbClassList != null && tbClassList.size() > 0)
-                for (TaoBaoClass tbc : tbClassList) {
-                    catesId += tbc.getCategoryId() + ",";
-                }
-            if (catesId.endsWith(","))
-                catesId = catesId.substring(0, catesId.length() - 1);
-            sf.setCateIds(catesId);
-            if (!StringUtil.isNullOrEmpty(catesId))// 鎸夊垎绫诲悕绉版悳绱�
-            {
-                String searchParam = goodsSubClass.getSearchJson();
-                Gson gs = new Gson();
-                SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
-                searchfilter.setCateIds(catesId);
-                searchfilter.setPage(page);
-                searchfilter.setPageSize(20);
-                if (Integer.parseInt(order) == 0)
-                    searchfilter.setMaterialId("6707");
-                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
-                        totalSales);
-                TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiao(searchfilter,null,null);
-                long count = searchResult.getPageEntity().getTotalCount();
-
-                JSONObject result = new JSONObject();
-
-                BigDecimal rate = hongBaoManageService.getFanLiRate(acceptData.getSystem());
-
-                List<TaoBaoGoodsBrief> resultGoodsList = searchResult.getTaoBaoGoodsBriefs();
-                // 鏌ヨ鏄惁瓒呰繃浜嗘渶澶х殑鍟嗗搧鏁�
-                if ((resultGoodsList == null || resultGoodsList.size() < 20)
-                        && !StringUtil.isNullOrEmpty(goodsSubClass.getKey())) {
-                    if (resultGoodsList == null)
-                        resultGoodsList = new ArrayList<>();
-
-                    // 闇�瑕佹牴鎹叧閿瓧鏌ヨ
-                    searchfilter.setCateIds(null);
-                    searchfilter.setPage((int) (count % 20 == 0 ? count / 20 - 1 : count / 20));
-                    searchfilter.setPageSize(20);
-                    searchfilter.setKey(goodsSubClass.getKey());
-                    TaoBaoSearchResult searchResult2 = TaoKeApiUtil.searchWuLiao(searchfilter,null,null);
-                    if (searchResult2 != null) {
-                        List<TaoBaoGoodsBrief> resultListTemp = searchResult2.getTaoBaoGoodsBriefs();
-                        if (resultListTemp != null)
-                            resultGoodsList.addAll(resultListTemp);
-                    }
-                }
-                JSONArray array = new JSONArray();
-                Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-                        .excludeFieldsWithoutExposeAnnotation().create();
-                if (resultGoodsList != null)
-                    for (TaoBaoGoodsBrief goods : resultGoodsList) {
-                        array.add(gson2.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, rate + "", null)));
-                    }
-                result.put("result", array);
-                result.put("count", result.optLong("count") + count);
-                out.print(JsonUtil.loadTrueResult(result));
-                return;
-            } else {
-                String searchParam = goodsSubClass.getSearchJson();
-                Gson gs = new Gson();
-                SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
-                searchfilter.setCateIds(catesId);
-                searchfilter.setPage(page);
-                searchfilter.setPageSize(20);
-                if (Integer.parseInt(order) == 0)
-                    searchfilter.setMaterialId("6707");
-                searchfilter.setKey(goodsSubClass.getKey());
-                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
-                        totalSales);
-                JSONObject result = taoKeGoodsService.searchWuLiao(searchfilter,acceptData.getSystem());
-                if (1 > 0) {
-                    out.print(JsonUtil.loadTrueResult(result));
-                    return;
-                }
-            }
-            /* 鎼滅储鍏抽敭璇� */
-            String searchKey = goodsSubClass.getName();
-            String key = goodsSubClass.getKey();
-            if (key != null && !"".equals(key.trim())) {
-                searchKey = key;
-            }
-
-            /* 鍟嗗搧绯荤粺鍒嗙被id */
-            Long systemCid = null;
-            GoodsClass rootClass = goodsSubClass.getRootClass();
-            if (rootClass != null) {
-                systemCid = rootClass.getId();
-            }
-
-            // page浠�1寮�濮�
-            page += 1;
-            // 璇锋眰娣樺疂鎺ュ彛椤电爜
-            int pageNo = page;
-
-            int pageSize = Constant.PAGE_SIZE;
-
-            /* 鏌ヨ鎺ㄨ崘妯″潡 娓呯┖鍏朵粬闈炲繀瑕佺瓫閫夐」鍜屾帓搴忛」 */
-            if (!StringUtil.isNullOrEmpty(order) && Integer.parseInt(order) == 0) {
-
-                // 鍒嗙被鍏宠仈鏍囩id闆嗗悎
-                List<Long> listLabId = labelClassService.getRelationLabIds((page - 1) * pageSize, pageSize,
-                        goodsSubClass.getId());
-
-                /* 璁$畻绮鹃�夊簱鏁版嵁 鎬婚〉鏁� */
-                long incount = taoKeGoodsService.countByQuality(searchKey, systemCid, listLabId);
-
-                int totalPage = (int) (incount % pageSize == 0 ? incount / pageSize : incount / pageSize + 1);
-
-                pageNo = page - totalPage;
-
-                /* 鏌ヨ绮鹃�夊簱鏁版嵁 */
-                if (pageNo <= 0) {
-
-                    List<QualityFactory> listQuality = taoKeGoodsService.queryByQuality((page - 1) * pageSize, pageSize,
-                            searchKey, systemCid, listLabId);
-
-                    List<TaoBaoGoodsBrief> searchWuLiaoList = null;
-
-                    /* 绮鹃�夊簱鏁版嵁涓嶈冻10鏉� */
-                    if (listQuality != null && listQuality.size() != 0 && listQuality.size() < 10) {
-
-                        String searchParam = goodsSubClass.getSearchJson();
-
-                        Gson gs = new Gson();
-                        SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
-
-                        int quanfilter = searchfilter.getQuan();
-                        if (quanfilter != 1) {
-                            searchfilter.setQuan(1);
-                        }
-
-                        BigDecimal endPricefilter = searchfilter.getEndPrice();
-                        if (endPricefilter == null) {
-                            searchfilter.setEndPrice(new BigDecimal(220));
-                        }
-
-                        boolean includeGoodRate = searchfilter.isIncludeGoodRate();
-                        if (!includeGoodRate) {
-                            searchfilter.setIncludeGoodRate(true);
-                        }
-
-                        // 璇锋眰绗竴椤垫暟鎹�
-                        searchfilter.setPage(1);
-                        searchfilter.setPageSize(pageSize);
-                        searchfilter.setKey(searchKey);
-                        searchfilter.setMaterialId("6707");
-
-                        searchWuLiaoList = taoKeGoodsService.searchWuLiaoList(searchfilter,acceptData.getSystem());
-                    }
-
-                    Map<String, String> map = manageService.convertMap(acceptData.getSystem());
-
-                    JSONObject data = taoKeGoodsService.listQualityGoods(listQuality, searchWuLiaoList, map,acceptData.getSystem());
-
-                    out.print(JsonUtil.loadTrueResult(data));
-
-                    return;
-                }
-
-                if (pageNo > 0 && totalPage > 0) {
-                    List<QualityFactory> list = taoKeGoodsService.queryByQuality((totalPage - 1) * pageSize, pageSize,
-                            searchKey, systemCid, listLabId);
-
-                    if (list != null && list.size() != 0 && list.size() < 10) {
-                        // 椤电爜+ 1 宸茶姹備竴娆℃窐瀹濇帴鍙�
-                        pageNo += 1;
-                    }
-                }
-            }
-
-            /* 缃戠粶璇锋眰 */
-            SearchFilter searchfilter = null;
-            String searchParam = goodsSubClass.getSearchJson();
-
-            if (!StringUtil.isNullOrEmpty(searchParam) && !StringUtil.isNullOrEmpty(order)
-                    && Integer.parseInt(order) == 0) {
-                // 鎺ㄨ崘 浣跨敤瀛愬垎绫婚粯璁ゆ煡璇㈡潯浠�
-                Gson gs = new Gson();
-                searchfilter = gs.fromJson(searchParam, SearchFilter.class);
-
-                int quanfilter = searchfilter.getQuan();
-                if (quanfilter != 1) {
-                    searchfilter.setQuan(1);
-                }
-
-                BigDecimal endPricefilter = searchfilter.getEndPrice();
-                if (endPricefilter == null) {
-                    searchfilter.setEndPrice(new BigDecimal(220));
-                }
-
-                boolean includeGoodRate = searchfilter.isIncludeGoodRate();
-                if (!includeGoodRate) {
-                    searchfilter.setIncludeGoodRate(true);
-                }
-
-            } else {
-                searchfilter = new SearchFilter();
-                // 璁剧疆SearchFilter
-                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
-                        totalSales);
-
-                // 鐢ㄦ埛鏈緭鍏ユ渶楂樹环鏍兼椂 鏈�楂樹环鏍奸檺鍒�99999
-                if (searchfilter.getEndPrice() == null) {
-                    searchfilter.setEndPrice(new BigDecimal(99999));
-                }
-            }
-
-            searchfilter.setPage(pageNo);
-            searchfilter.setPageSize(pageSize);
-            searchfilter.setKey(searchKey);
-
-            if (!StringUtil.isNullOrEmpty(order) && Integer.parseInt(order) != 4) {
-                searchfilter.setMaterialId("6707");
-            }
-
-            // 鏌ヨ鐗╂枡鎺ュ彛
-            JSONObject result = taoKeGoodsService.searchWuLiao(searchfilter,acceptData.getSystem());
-            out.print(JsonUtil.loadTrueResult(result));
-
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 鍒嗙被涓嬬殑绮鹃�夊晢鍝�
-     */
-    @RequestMapping("choiceGoods")
-    public void choiceGoods(AcceptData acceptData, long gcid, int page, PrintWriter out) {
-
-        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
-                acceptData.getPackages(), acceptData.getSystem());
-        if (system == null) {
-            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
-            return;
-        }
-
-        GoodsClass goodsClass = goodsClassService.getGoodsClassCache(gcid);
-        if (goodsClass == null) {
-            out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
-            return;
-        }
-
-        if (page < 1)
-            page = 1;
-
-        int pageSize = Constant.PAGE_SIZE;
-
-        List<QualityFactory> listQuery = qualityGoodsService.listQueryByClassId((page - 1) * pageSize, pageSize, gcid);
-        // 鎬绘潯鏁�
-        long counttotal = 5000;
-
-        // 绮鹃�夊簱鏁版嵁涓虹┖鏃讹紝缃戠粶杩涜鏌ヨ
-        if (listQuery == null || listQuery.size() == 0 || listQuery.size() < 10) {
-            long count = qualityGoodsService.countQueryClassId(gcid);
-            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
-            page = page - totalPage;
-            if (page < 1)
-                page = 1;
-
-            // 娣樺疂绫荤洰id
-            String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(gcid);
-
-            SearchFilter filter = null;
-
-            String searchParam = goodsClass.getSearchParam();
-            if (!StringUtil.isNullOrEmpty(searchParam)) {
-                Gson gs = new Gson();
-                filter = gs.fromJson(searchParam, SearchFilter.class);
-            } else {
-                filter = new SearchFilter();
-            }
-
-            filter.setMaterialId("6707");
-            filter.setPage(page);
-            filter.setPageSize(pageSize);
-            filter.setCateIds(taoBaoCatIds);
-
-            JSONObject result = taoKeGoodsService.searchWuLiao(filter,acceptData.getSystem());
-            out.print(JsonUtil.loadTrueResult(result));
-
-            return;
-        }
-
-        // 绮鹃�夊簱鏁版嵁澶勭悊杩斿洖 鍓嶇
-        JSONArray array = new JSONArray();
-        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
-                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
-        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
-
-        // 閬嶅巻鍒楄〃鏁版嵁
-        for (QualityFactory selectionGoods : listQuery) {
-
-            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
-
-            if (taoBaoGoodsBrief == null) {
-                continue;
-            }
-
-            int biz30day = taoBaoGoodsBrief.getBiz30day();
-            if (biz30day >= 10000) {
-                double sales = biz30day;
-                String salesCountMidea = String.format("%.1f", sales / 10000);
-                taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
-            } else {
-                taoBaoGoodsBrief.setSalesCount(biz30day + "");
-            }
-
-            // 鐧藉簳鍥炬祴璇�
-            // if
-            // (!StringUtil.isNullOrEmpty(taoBaoGoodsBrief.getPictUrlWhite()))
-            // taoBaoGoodsBrief.setPictUrl(taoBaoGoodsBrief.getPictUrlWhite());
-
-            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
-        }
-
-        JSONObject data = new JSONObject();
-        data.put("nav", null);
-        data.put("count", counttotal);
-        data.put("result", array);
-        out.print(JsonUtil.loadTrueResult(data));
-
-    }
-
-    @RequestMapping("getCouponList")
-    public void getCouponList(AcceptData acceptData, int page, HttpServletRequest request, PrintWriter out) {
-        page = page > 0 ? page : 1;
-        List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = taoBaoCouponService.getTaoBaoCouponList(page);
-        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
-        JSONArray array = new JSONArray();
-        TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
-        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
-
-        for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
-            taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "");
-            array.add(gson.toJson(taoBaoGoodsBriefExtra));
-        }
-        int count = 10000;
-        JSONObject data = new JSONObject();
-        data.put("taoBaoCoupons", array);
-        data.put("count", count);
-        out.print(JsonUtil.loadTrueResult(data));
-
-        try {
-            monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, null));
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    /**
-     * 閫氳繃鍒嗙被鑾峰彇鍒�
-     *
-     * @param acceptData
-     * @param page
-     * @param out
-     */
-    @RequestMapping("getCouponListByClass")
-    public void getCouponListByClass(AcceptData acceptData, Long id, int page, PrintWriter out) {
-
-        // SearchFilter sf = new SearchFilter();
-        // sf.setQuan(1);
-        // sf.setPage(page);
-        // TaoKeApiUtil.getMaterialByMaterialId(3786, page, 20);
-        if (id == null)
-            return;
-        page = page < 1 ? 1 : page;
-        String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.couponByClass, id + "-" + page);
-        String resultStr = "";
-
-        if (Constant.IS_OUTNET)
-            resultStr = redisManager.getCommonString(key);
-        if (!StringUtil.isNullOrEmpty(resultStr)) {
-            out.print(resultStr);
-            return;
-        }
-
-        int meterialId = 0;
-        Map<Long, Integer> paramMap = new HashMap<>();
-        paramMap.put(10L, 3767);// 濂宠
-        paramMap.put(11L, 3760);// 姣嶅┐
-        paramMap.put(28L, 3764);// 鐢疯
-        paramMap.put(27L, 3758);// 瀹跺眳瀹惰
-        paramMap.put(1L, 3759);// 瀹剁數鏁扮爜
-        paramMap.put(6L, 3765);// 鍐呰。
-        paramMap.put(30L, 3763);// 缇庡
-
-        paramMap.put(31L, 3766);// 杩愬姩鎴峰
-
-        paramMap.put(32L, 3761);// 缇庨
-
-        if (paramMap.get(id) != null)
-            meterialId = paramMap.get(id);
-
-        TaoBaoSearchResult result = null;
-
-        // 涓嶇敓鏁�
-        meterialId = 0;
-        if (meterialId > 0)
-            result = TaoKeApiUtil.getMaterialByMaterialId(meterialId, page, 20);
-        else {
-            SearchFilter sf = new SearchFilter();
-            sf.setPage(page);
-            sf.setPageSize(20);
-            sf.setQuan(1);
-            sf.setKey(goodsClassService.getKeysById(id));
-
-            result = TaoKeApiUtil.searchWuLiao(sf,null,null);
-
-        }
-        List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
-        if (result != null && result.getNavList() != null)
-            navList.addAll(result.getNavList());
-
-        if (navList == null)
-            navList = new ArrayList<>();
-
-        Gson gson = new GsonBuilder().create();
-        JSONObject data = new JSONObject();
-        data.put("nav", gson.toJson(navList));
-        List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
-        List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
-        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
-        TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
-        for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
-            taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "");
-            re.add(taoBaoGoodsBriefExtra);
-        }
-
-        Gson gson2 = JsonUtil.getConvertBigDecimalToStringBuilder(new GsonBuilder())
-                .excludeFieldsWithoutExposeAnnotation().create();
-        data.put("result", gson2.toJson(re));
-        data.put("count", result.getTaoBaoHead().getDocsfound());
-        resultStr = JsonUtil.loadTrueResult(0, data);
-        try {
-            if (Constant.IS_OUTNET)
-                redisManager.cacheCommonString(key, resultStr, 120);
-        } catch (Exception e) {
-        }
-
-        out.print(resultStr);
-    }
-
-    /**
-     * 璁剧疆绾㈠寘杩涘幓
-     *
-     * @param taoBaoCoupons
-     */
-    private void setTaoBaoCouponHongBao(AcceptData acceptData, List<TaoBaoCoupon> taoBaoCoupons) {
-        if (taoBaoCoupons.size() > 0) {
-            BigDecimal proportion = hongBaoManageService.getFanLiRate(acceptData.getSystem());
-
-            for (TaoBaoCoupon taoBaoCoupon : taoBaoCoupons) {
-                BigDecimal hb = TaoBaoUtil.getCouponHongBaoInfo(taoBaoCoupon, proportion);
-                taoBaoCoupon.setHongbao(hb);
-            }
-        }
-    }
-
-    @RequestMapping(value = {"getcategory"}, method = {org.springframework.web.bind.annotation.RequestMethod.POST})
-    public void getcategory(AcceptData acceptData, PrintWriter out) {
-        try {
-
-            boolean changePicture = false;
-            String version = acceptData.getVersion();
-            int tversion = Integer.parseInt(version);
-            String platform = acceptData.getPlatform();
-            if ("android".equalsIgnoreCase(platform) && tversion > 38) {
-                changePicture = true;
-            } else if (tversion > 47) {
-                changePicture = true;
-            }
-
-            List<Map<String, Object>> listCache = goodsClassService.getClassListAllCache(changePicture);
-            if (listCache == null) {
-                listCache = new ArrayList<Map<String, Object>>();
-            }
-
-            JSONObject data = new JSONObject();
-            data.put("categoryList", listCache);
-
-            out.print(JsonUtil.loadTrueResult(data));
-
-        } catch (Exception e) {
-            out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
-            try {
-                LogHelper.errorDetailInfo(e);
-            } catch (Exception e1) {
-                e1.printStackTrace();
-            }
-        }
-    }
-}
+package com.yeshi.fanli.controller.client.v1;
+
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.core.task.TaskExecutor;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.JsonUtil;
+
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
+import com.yeshi.fanli.entity.bus.clazz.GoodsSecondClass;
+import com.yeshi.fanli.entity.bus.clazz.GoodsSubClass;
+import com.yeshi.fanli.entity.bus.clazz.TaoBaoClass;
+import com.yeshi.fanli.entity.bus.lable.QualityFactory;
+import com.yeshi.fanli.entity.system.BusinessSystem;
+import com.yeshi.fanli.entity.taobao.SearchFilter;
+import com.yeshi.fanli.entity.taobao.TaoBaoCoupon;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchNav;
+import com.yeshi.fanli.entity.taobao.TaoBaoSearchResult;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.inter.config.BusinessSystemService;
+import com.yeshi.fanli.service.inter.goods.GoodsClassService;
+import com.yeshi.fanli.service.inter.goods.GoodsSecondClassService;
+import com.yeshi.fanli.service.inter.goods.GoodsSubClassService;
+import com.yeshi.fanli.service.inter.goods.SuperGoodsClassService;
+import com.yeshi.fanli.service.inter.goods.TaoBaoClassService;
+import com.yeshi.fanli.service.inter.goods.TaoBaoCouponService;
+import com.yeshi.fanli.service.inter.homemodule.HomeNavbarService;
+import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
+import com.yeshi.fanli.service.inter.lable.LabelClassService;
+import com.yeshi.fanli.service.inter.lable.QualityFactoryService;
+import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
+import com.yeshi.fanli.service.inter.lable.TaoKeGoodsService;
+import com.yeshi.fanli.service.inter.monitor.MonitorService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisKeyEnum;
+import com.yeshi.fanli.util.RedisManager;
+import com.yeshi.fanli.util.StringUtil;
+import org.yeshi.utils.TimeUtil;
+import com.yeshi.fanli.util.Utils;
+import com.yeshi.fanli.util.factory.MonitorFactory;
+import com.yeshi.fanli.util.taobao.TaoBaoUtil;
+import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
+import com.yeshi.fanli.vo.homemodule.BannerVO;
+
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
+
+@Controller
+@RequestMapping("api/v1/class")
+public class GoodsClassController<E> {
+
+    @Resource
+    private SuperGoodsClassService superGoodsClassService;
+
+    @Resource
+    private GoodsSecondClassService goodsSecondClassService;
+
+    @Resource
+    private GoodsClassService goodsClassService;
+
+    @Resource
+    private SearchController searchController;
+
+    @Resource
+    private TaoBaoCouponService taoBaoCouponService;
+
+    @Resource
+    private HongBaoManageService hongBaoManageService;
+
+    @Resource
+    private HongBaoManageService manageService;
+
+    @Resource
+    private BusinessSystemService businessSystemService;
+
+    @Resource
+    private RedisManager redisManager;
+
+    @Resource
+    private QualityFactoryService selectionGoodsService;
+    @Resource
+    private TaoKeGoodsService taoKeGoodsService;
+    @Resource
+    private GoodsSubClassService goodsSubClassService;
+    @Resource
+    private TaoBaoClassService taoBaoClassService;
+    @Resource
+    private LabelClassService labelClassService;
+
+    @Resource
+    private QualityGoodsService qualityGoodsService;
+
+    @Resource
+    private MonitorService monitorService;
+
+    @Resource
+    private HomeNavbarService homeNavbarService;
+    @Resource
+    private SwiperPictureService swiperPictureService;
+
+    @Resource(name = "taskExecutor")
+    private TaskExecutor executor;
+
+    /**
+     * 鑾峰彇涓荤被鐩�
+     *
+     * @param acceptData
+     * @param out
+     */
+    @RequestMapping(value = "getgoodsclass", method = RequestMethod.POST)
+    public void getGoodsClass(AcceptData acceptData, PrintWriter out) {
+
+        try {
+            List<GoodsClass> goodsClassList = goodsClassService.getEffectiveClassCache();
+            if (goodsClassList == null || goodsClassList.size() == 0) {
+                out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+                return;
+            }
+
+            JSONObject data = new JSONObject();
+            data.put("count", goodsClassList.size());
+            data.put("goodsClassList", JsonUtil.getApiCommonGson().toJson(goodsClassList));
+
+            out.print(JsonUtil.loadTrueResult(data));
+        } catch (Exception e) {
+            out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
+            try {
+                LogHelper.errorDetailInfo(e);
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+        }
+
+    }
+
+    /**
+     * 鑾峰彇浜岀骇瀛愮被鐩�
+     *
+     * @param acceptData
+     * @param gcid
+     * @param out
+     */
+    @RequestMapping(value = "getgoodssecondclass", method = RequestMethod.POST)
+    public void getGoodsSecondClass(AcceptData acceptData, long gcid, Long swpid, PrintWriter out) {
+        try {
+            GoodsClass goodsClass = goodsClassService.getGoodsClassCache(gcid);
+            if (goodsClass == null) {
+                out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+                return;
+            }
+
+            // 杞挱鍥�
+            List<BannerVO> picList = null;
+            if (swpid != null) {
+                picList = swiperPictureService.getByBannerId(swpid, acceptData.getPlatform(),
+                        Integer.parseInt(acceptData.getVersion()), acceptData.getSystem());
+            }
+            if (picList == null) {
+                picList = new ArrayList<BannerVO>();
+            }
+
+            List<GoodsSubClass> goodsSubClassList = goodsSubClassService.getSubClassCache(gcid, 1,
+                    Calendar.getInstance().get(Calendar.MONTH) + 1);
+            if (goodsSubClassList == null) {
+                goodsSubClassList = new ArrayList<GoodsSubClass>();
+            }
+
+            boolean changePicture = false;
+            String version = acceptData.getVersion();
+            int tversion = Integer.parseInt(version);
+            String platform = acceptData.getPlatform();
+            if ("android".equalsIgnoreCase(platform) && tversion > 38) {
+                changePicture = true;
+            } else if (tversion > 47) {
+                changePicture = true;
+            }
+
+            // 1.5.3鏂扮増鍥剧墖鏇挎崲
+            if (changePicture) {
+                for (GoodsSubClass goodsSubClass : goodsSubClassList) {
+                    String pictureSecond = goodsSubClass.getPictureSecond();
+                    if (pictureSecond != null && pictureSecond.trim().length() > 0) {
+                        goodsSubClass.setPicture(pictureSecond);
+                    }
+                }
+            }
+
+            JSONObject data = new JSONObject();
+            data.put("picList", JsonUtil.getApiCommonGson().toJson(picList));
+            data.put("count", goodsSubClassList.size());
+            data.put("goodsSecondClassList", JsonUtil.getApiCommonGson().toJson(goodsSubClassList));
+            out.print(JsonUtil.loadTrueResult(data));
+
+            // 鏇存柊鍒嗙被鐐瑰嚮娆℃暟
+            executor.execute(new Runnable() {
+                @Override
+                public void run() {
+                    if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
+                        Long androidClick = goodsClass.getAndroidClick();
+                        if (androidClick != null) {
+                            goodsClass.setAndroidClick(androidClick + 1);
+                        } else {
+                            goodsClass.setAndroidClick(1L);
+                        }
+                    } else if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
+                        Long iosClick = goodsClass.getIosClick();
+                        if (iosClick != null) {
+                            goodsClass.setIosClick(iosClick + 1);
+                        } else {
+                            goodsClass.setIosClick(1L);
+                        }
+                    }
+
+                    GoodsClass gc = new GoodsClass();
+                    gc.setId(goodsClass.getId());
+                    gc.setIosClick(goodsClass.getIosClick());
+                    gc.setAndroidClick(goodsClass.getAndroidClick());
+                    goodsClassService.updateByPrimaryKeySelective(gc);
+                }
+            });
+
+        } catch (Exception e) {
+            out.print(JsonUtil.loadFalseResult("鏆傛棤鏁版嵁"));
+            try {
+                LogHelper.errorDetailInfo(e);
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+        }
+
+    }
+
+    @RequestMapping(value = "getCouponGoods", method = RequestMethod.POST)
+    public void getCouponGoods(AcceptData acceptData, int page, long gcid, PrintWriter out) {
+        // GoodsClass goodsClass = goodsClassService.getGoodsClass(gcid);
+
+        List<GoodsSecondClass> secondClassList = goodsSecondClassService.getGoodsSecondClassByGoodsClassId(gcid);
+        List<String> searchKeys = new ArrayList<String>();
+        for (GoodsSecondClass secondClass : secondClassList) {
+            String key = secondClass.getKey();
+            if (key == null || "".equals(key.trim())) {
+                searchKeys.add(secondClass.getName());
+            } else {
+                searchKeys.add(secondClass.getKey());
+            }
+        }
+        List<TaoBaoCoupon> taoBaoCoupons = taoBaoCouponService.getTaoBaoCouponListBykeys(searchKeys, page);
+        int count = taoBaoCouponService.getCount(searchKeys);
+        setTaoBaoCouponHongBao(acceptData, taoBaoCoupons);
+        JSONObject data = new JSONObject();
+        long currentTimeMillis = java.lang.System.currentTimeMillis();
+        String time = TimeUtil.getGernalTime(currentTimeMillis);
+        data.put("time", time);
+        data.put("count", count);
+        data.put("taoBaoCoupons", Utils.imgListSize(
+                JsonUtil.getApiCommonGson().toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtraList(taoBaoCoupons))));
+        out.print(JsonUtil.loadTrueResult(data));
+    }
+
+    /**
+     * 鑾峰彇瀛愮被鐩晢鍝�
+     *
+     * @param acceptData
+     * @param page
+     * @param scid
+     * @param filter
+     * @param order      閿�閲忕敱楂樺埌浣�:0 浠锋牸浠庨珮鍒颁綆:2 浠锋牸浠庝綆鍒伴珮:3 娣樺浣i噾姣旂巼楂樺埌浣�:4 鍏朵粬锛氶粯璁�1
+     * @param startprice 璧峰浠锋牸
+     * @param endprice   缁撴潫浠锋牸
+     * @param fastFilter fastFilter 鏈夊埜 [{"type":"quantype"}] 澶╃尗鍟嗗搧 [{"type":"shoptype"}]
+     * @param totalSales 閿�閲忎互涓�
+     * @param out
+     */
+    @RequestMapping(value = "getgoods", method = RequestMethod.POST)
+    public void getGoods(AcceptData acceptData, int page, long scid, String filter, String order, String startprice,
+                         String endprice, String fastFilter, PrintWriter out) {
+        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+                acceptData.getPackages(), acceptData.getSystem());
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
+        GoodsSubClass goodsSubClass = goodsSubClassService.selectByPrimaryKey(scid);
+        String name2 = goodsSubClass.getName();
+        String name1 = goodsSubClass.getKey();
+        if (name1 != null && !"".equals(name1.trim())) {
+            name2 = name1;
+        }
+        if (!StringUtil.isNullOrEmpty(fastFilter)) {
+            if (!StringUtil.isNullOrEmpty(filter)) {
+                JSONArray filterArray = JSONArray.fromObject(filter);
+                JSONArray fastFilterArray = JSONArray.fromObject(fastFilter);
+                filterArray.addAll(fastFilterArray);
+                filter = filterArray.toString();
+            } else {
+                filter = fastFilter;
+            }
+        }
+
+        SearchFilter sf = new SearchFilter();
+        if (!com.yeshi.fanli.util.StringUtil.isNullOrEmpty(order)) {
+            if (Integer.parseInt(order) == 1) {
+                sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
+            } else if (Integer.parseInt(order) == 2) {
+                sf.setSort(TaoBaoUtil.SORT_PRICE_HIGH_TO_LOW);
+            } else if (Integer.parseInt(order) == 3) {
+                sf.setSort(TaoBaoUtil.SORT_PRICE_LOW_TO_HIGH);
+            }
+        } else {
+            // 榛樿閿�閲忎粠楂樺埌浣庢帓搴�
+            sf.setSort(TaoBaoUtil.SORT_SALE_HIGH_TO_LOW);
+        }
+
+        sf.setKey(name2);
+        sf.setBaoYou(true);
+        /* 璧峰浠锋牸 */
+        Integer start_price = null;
+        if (!StringUtil.isNullOrEmpty(startprice)) {
+            start_price = Integer.parseInt(startprice);
+            sf.setStartPrice(new BigDecimal(start_price));
+        }
+
+        sf.setQuan(1);
+
+        if (fastFilter != null && fastFilter.contains("shoptype")) {
+            sf.setTmall(true);
+        }
+
+        /* 缁撴潫浠锋牸 */
+        Integer end_price = null;
+        if (!StringUtil.isNullOrEmpty(endprice)) {
+            end_price = Integer.parseInt(endprice);
+            sf.setEndPrice(new BigDecimal(end_price));
+        }
+        sf.setPageSize(20);
+        sf.setPage(page + 1);
+        sf.setMaterialId("6707");
+        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+        JSONArray array = new JSONArray();
+        List<TaoBaoGoodsBrief> taobaoList = taoKeGoodsService.searchWuLiaoList(sf,acceptData.getSystem());
+        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
+        for (TaoBaoGoodsBrief taoBaoGoodsBrief : taobaoList) {
+            int biz30day = taoBaoGoodsBrief.getBiz30day();
+            if (biz30day >= 10000) {
+                double sales = biz30day;
+                String salesCountMidea = String.format("%.1f", sales / 10000);
+                taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+            } else {
+                taoBaoGoodsBrief.setSalesCount(biz30day + "");
+            }
+            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
+        }
+        JSONObject data = new JSONObject();
+        data.put("nav", new JSONArray());
+        data.put("count", 1000);
+        data.put("result", array);
+        out.print(JsonUtil.loadTrueResult(data));
+    }
+
+    /**
+     * 鑾峰彇浜岀骇鍒嗙被鍟嗗搧
+     *
+     * @param acceptData
+     * @param page
+     * @param scid
+     * @param filter
+     * @param order      鏉ユ簮锛氥�愭帹鑽愶細0 | 缁煎悎锛�4 銆佺患鍚堝彧鐪嬫湁鍒� 1 銆佺患鍚堝彧鐪嬪ぉ鐚� 1 | 浠锋牸锛氫綆鍒伴珮3 楂樺埌浣�2 | 閿�閲忥細1銆�
+     *                   鎺掑簭鍊硷細銆愰攢閲忕敱楂樺埌浣�: 1 锛� 閿�閲忕敱浣庡埌楂� 5锛� 浠锋牸浠庨珮鍒颁綆: 2 锛� 浠锋牸浠庝綆鍒伴珮:3 锛� 鎺ㄥ箍閲忛珮鍒颁綆:4 锛�
+     *                   鍏朵粬榛樿锛� 閿�閲忕敱楂樺埌浣庛��
+     * @param startprice 璧峰浠锋牸
+     * @param endprice   缁撴潫浠锋牸
+     * @param fastFilter fastFilter 鏈夊埜 [{"type":"quantype"}] 澶╃尗鍟嗗搧 [{"type":"shoptype"}]
+     * @param totalSales 閿�閲忎互涓�
+     * @param out
+     */
+    @RequestMapping(value = "getsecondclassgoods", method = RequestMethod.POST)
+    public void getSecondClassGoods(AcceptData acceptData, int page, long scid, String filter, String order,
+                                    String startprice, String endprice, String fastFilter, Integer totalSales, PrintWriter out) {
+        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+                acceptData.getPackages(), acceptData.getSystem());
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
+
+        try {
+
+            GoodsSubClass goodsSubClass = goodsSubClassService.getSubClassByPrimaryKeyCache(scid);
+            if (goodsSubClass == null) {
+                out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
+                return;
+            }
+
+            if (page == 0) {
+                // 缁熻鐐瑰嚮閲�
+                goodsSubClassService.countClick(acceptData, goodsSubClass);
+            }
+
+            SearchFilter sf = new SearchFilter();
+            String catesId = "";
+            // 鏌ヨ鏄惁鏈夋窐瀹濆垎绫籌D
+            List<TaoBaoClass> tbClassList = taoBaoClassService.listBySystemSubCid(0, 10, goodsSubClass.getId());
+            if (tbClassList != null && tbClassList.size() > 0)
+                for (TaoBaoClass tbc : tbClassList) {
+                    catesId += tbc.getCategoryId() + ",";
+                }
+            if (catesId.endsWith(","))
+                catesId = catesId.substring(0, catesId.length() - 1);
+            sf.setCateIds(catesId);
+            if (!StringUtil.isNullOrEmpty(catesId))// 鎸夊垎绫诲悕绉版悳绱�
+            {
+                String searchParam = goodsSubClass.getSearchJson();
+                Gson gs = new Gson();
+                SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+                searchfilter.setCateIds(catesId);
+                searchfilter.setPage(page);
+                searchfilter.setPageSize(20);
+                if (Integer.parseInt(order) == 0)
+                    searchfilter.setMaterialId("6707");
+                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
+                        totalSales);
+                TaoBaoSearchResult searchResult = TaoKeApiUtil.searchWuLiaoNew(searchfilter,null,null);
+                long count = searchResult.getPageEntity().getTotalCount();
+
+                JSONObject result = new JSONObject();
+
+                BigDecimal rate = hongBaoManageService.getFanLiRate(acceptData.getSystem());
+
+                List<TaoBaoGoodsBrief> resultGoodsList = searchResult.getTaoBaoGoodsBriefs();
+                // 鏌ヨ鏄惁瓒呰繃浜嗘渶澶х殑鍟嗗搧鏁�
+                if ((resultGoodsList == null || resultGoodsList.size() < 20)
+                        && !StringUtil.isNullOrEmpty(goodsSubClass.getKey())) {
+                    if (resultGoodsList == null)
+                        resultGoodsList = new ArrayList<>();
+
+                    // 闇�瑕佹牴鎹叧閿瓧鏌ヨ
+                    searchfilter.setCateIds(null);
+                    searchfilter.setPage((int) (count % 20 == 0 ? count / 20 - 1 : count / 20));
+                    searchfilter.setPageSize(20);
+                    searchfilter.setKey(goodsSubClass.getKey());
+                    TaoBaoSearchResult searchResult2 = TaoKeApiUtil.searchWuLiaoNew(searchfilter,null,null);
+                    if (searchResult2 != null) {
+                        List<TaoBaoGoodsBrief> resultListTemp = searchResult2.getTaoBaoGoodsBriefs();
+                        if (resultListTemp != null)
+                            resultGoodsList.addAll(resultListTemp);
+                    }
+                }
+                JSONArray array = new JSONArray();
+                Gson gson2 = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+                        .excludeFieldsWithoutExposeAnnotation().create();
+                if (resultGoodsList != null)
+                    for (TaoBaoGoodsBrief goods : resultGoodsList) {
+                        array.add(gson2.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, rate + "", null)));
+                    }
+                result.put("result", array);
+                result.put("count", result.optLong("count") + count);
+                out.print(JsonUtil.loadTrueResult(result));
+                return;
+            } else {
+                String searchParam = goodsSubClass.getSearchJson();
+                Gson gs = new Gson();
+                SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+                searchfilter.setCateIds(catesId);
+                searchfilter.setPage(page);
+                searchfilter.setPageSize(20);
+                if (Integer.parseInt(order) == 0)
+                    searchfilter.setMaterialId("6707");
+                searchfilter.setKey(goodsSubClass.getKey());
+                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
+                        totalSales);
+                JSONObject result = taoKeGoodsService.searchWuLiao(searchfilter,acceptData.getSystem());
+                if (1 > 0) {
+                    out.print(JsonUtil.loadTrueResult(result));
+                    return;
+                }
+            }
+            /* 鎼滅储鍏抽敭璇� */
+            String searchKey = goodsSubClass.getName();
+            String key = goodsSubClass.getKey();
+            if (key != null && !"".equals(key.trim())) {
+                searchKey = key;
+            }
+
+            /* 鍟嗗搧绯荤粺鍒嗙被id */
+            Long systemCid = null;
+            GoodsClass rootClass = goodsSubClass.getRootClass();
+            if (rootClass != null) {
+                systemCid = rootClass.getId();
+            }
+
+            // page浠�1寮�濮�
+            page += 1;
+            // 璇锋眰娣樺疂鎺ュ彛椤电爜
+            int pageNo = page;
+
+            int pageSize = Constant.PAGE_SIZE;
+
+            /* 鏌ヨ鎺ㄨ崘妯″潡 娓呯┖鍏朵粬闈炲繀瑕佺瓫閫夐」鍜屾帓搴忛」 */
+            if (!StringUtil.isNullOrEmpty(order) && Integer.parseInt(order) == 0) {
+
+                // 鍒嗙被鍏宠仈鏍囩id闆嗗悎
+                List<Long> listLabId = labelClassService.getRelationLabIds((page - 1) * pageSize, pageSize,
+                        goodsSubClass.getId());
+
+                /* 璁$畻绮鹃�夊簱鏁版嵁 鎬婚〉鏁� */
+                long incount = taoKeGoodsService.countByQuality(searchKey, systemCid, listLabId);
+
+                int totalPage = (int) (incount % pageSize == 0 ? incount / pageSize : incount / pageSize + 1);
+
+                pageNo = page - totalPage;
+
+                /* 鏌ヨ绮鹃�夊簱鏁版嵁 */
+                if (pageNo <= 0) {
+
+                    List<QualityFactory> listQuality = taoKeGoodsService.queryByQuality((page - 1) * pageSize, pageSize,
+                            searchKey, systemCid, listLabId);
+
+                    List<TaoBaoGoodsBrief> searchWuLiaoList = null;
+
+                    /* 绮鹃�夊簱鏁版嵁涓嶈冻10鏉� */
+                    if (listQuality != null && listQuality.size() != 0 && listQuality.size() < 10) {
+
+                        String searchParam = goodsSubClass.getSearchJson();
+
+                        Gson gs = new Gson();
+                        SearchFilter searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+
+                        int quanfilter = searchfilter.getQuan();
+                        if (quanfilter != 1) {
+                            searchfilter.setQuan(1);
+                        }
+
+                        BigDecimal endPricefilter = searchfilter.getEndPrice();
+                        if (endPricefilter == null) {
+                            searchfilter.setEndPrice(new BigDecimal(220));
+                        }
+
+                        boolean includeGoodRate = searchfilter.isIncludeGoodRate();
+                        if (!includeGoodRate) {
+                            searchfilter.setIncludeGoodRate(true);
+                        }
+
+                        // 璇锋眰绗竴椤垫暟鎹�
+                        searchfilter.setPage(1);
+                        searchfilter.setPageSize(pageSize);
+                        searchfilter.setKey(searchKey);
+                        searchfilter.setMaterialId("6707");
+
+                        searchWuLiaoList = taoKeGoodsService.searchWuLiaoList(searchfilter,acceptData.getSystem());
+                    }
+
+                    Map<String, String> map = manageService.convertMap(acceptData.getSystem());
+
+                    JSONObject data = taoKeGoodsService.listQualityGoods(listQuality, searchWuLiaoList, map,acceptData.getSystem());
+
+                    out.print(JsonUtil.loadTrueResult(data));
+
+                    return;
+                }
+
+                if (pageNo > 0 && totalPage > 0) {
+                    List<QualityFactory> list = taoKeGoodsService.queryByQuality((totalPage - 1) * pageSize, pageSize,
+                            searchKey, systemCid, listLabId);
+
+                    if (list != null && list.size() != 0 && list.size() < 10) {
+                        // 椤电爜+ 1 宸茶姹備竴娆℃窐瀹濇帴鍙�
+                        pageNo += 1;
+                    }
+                }
+            }
+
+            /* 缃戠粶璇锋眰 */
+            SearchFilter searchfilter = null;
+            String searchParam = goodsSubClass.getSearchJson();
+
+            if (!StringUtil.isNullOrEmpty(searchParam) && !StringUtil.isNullOrEmpty(order)
+                    && Integer.parseInt(order) == 0) {
+                // 鎺ㄨ崘 浣跨敤瀛愬垎绫婚粯璁ゆ煡璇㈡潯浠�
+                Gson gs = new Gson();
+                searchfilter = gs.fromJson(searchParam, SearchFilter.class);
+
+                int quanfilter = searchfilter.getQuan();
+                if (quanfilter != 1) {
+                    searchfilter.setQuan(1);
+                }
+
+                BigDecimal endPricefilter = searchfilter.getEndPrice();
+                if (endPricefilter == null) {
+                    searchfilter.setEndPrice(new BigDecimal(220));
+                }
+
+                boolean includeGoodRate = searchfilter.isIncludeGoodRate();
+                if (!includeGoodRate) {
+                    searchfilter.setIncludeGoodRate(true);
+                }
+
+            } else {
+                searchfilter = new SearchFilter();
+                // 璁剧疆SearchFilter
+                taoKeGoodsService.setSearchFilter(searchfilter, filter, order, startprice, endprice, fastFilter,
+                        totalSales);
+
+                // 鐢ㄦ埛鏈緭鍏ユ渶楂樹环鏍兼椂 鏈�楂樹环鏍奸檺鍒�99999
+                if (searchfilter.getEndPrice() == null) {
+                    searchfilter.setEndPrice(new BigDecimal(99999));
+                }
+            }
+
+            searchfilter.setPage(pageNo);
+            searchfilter.setPageSize(pageSize);
+            searchfilter.setKey(searchKey);
+
+            if (!StringUtil.isNullOrEmpty(order) && Integer.parseInt(order) != 4) {
+                searchfilter.setMaterialId("6707");
+            }
+
+            // 鏌ヨ鐗╂枡鎺ュ彛
+            JSONObject result = taoKeGoodsService.searchWuLiao(searchfilter,acceptData.getSystem());
+            out.print(JsonUtil.loadTrueResult(result));
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 鍒嗙被涓嬬殑绮鹃�夊晢鍝�
+     */
+    @RequestMapping("choiceGoods")
+    public void choiceGoods(AcceptData acceptData, long gcid, int page, PrintWriter out) {
+
+        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+                acceptData.getPackages(), acceptData.getSystem());
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
+
+        GoodsClass goodsClass = goodsClassService.getGoodsClassCache(gcid);
+        if (goodsClass == null) {
+            out.print(JsonUtil.loadFalseResult("涓嶅瓨鍦ㄨ鍒嗙被"));
+            return;
+        }
+
+        if (page < 1)
+            page = 1;
+
+        int pageSize = Constant.PAGE_SIZE;
+
+        List<QualityFactory> listQuery = qualityGoodsService.listQueryByClassId((page - 1) * pageSize, pageSize, gcid);
+        // 鎬绘潯鏁�
+        long counttotal = 5000;
+
+        // 绮鹃�夊簱鏁版嵁涓虹┖鏃讹紝缃戠粶杩涜鏌ヨ
+        if (listQuery == null || listQuery.size() == 0 || listQuery.size() < 10) {
+            long count = qualityGoodsService.countQueryClassId(gcid);
+            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
+            page = page - totalPage;
+            if (page < 1)
+                page = 1;
+
+            // 娣樺疂绫荤洰id
+            String taoBaoCatIds = taoBaoClassService.getTaoBaoCatIds(gcid);
+
+            SearchFilter filter = null;
+
+            String searchParam = goodsClass.getSearchParam();
+            if (!StringUtil.isNullOrEmpty(searchParam)) {
+                Gson gs = new Gson();
+                filter = gs.fromJson(searchParam, SearchFilter.class);
+            } else {
+                filter = new SearchFilter();
+            }
+
+            filter.setMaterialId("6707");
+            filter.setPage(page);
+            filter.setPageSize(pageSize);
+            filter.setCateIds(taoBaoCatIds);
+
+            JSONObject result = taoKeGoodsService.searchWuLiao(filter,acceptData.getSystem());
+            out.print(JsonUtil.loadTrueResult(result));
+
+            return;
+        }
+
+        // 绮鹃�夊簱鏁版嵁澶勭悊杩斿洖 鍓嶇
+        JSONArray array = new JSONArray();
+        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
+                .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
+
+        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
+
+        // 閬嶅巻鍒楄〃鏁版嵁
+        for (QualityFactory selectionGoods : listQuery) {
+
+            TaoBaoGoodsBrief taoBaoGoodsBrief = selectionGoods.getTaoBaoGoodsBrief();
+
+            if (taoBaoGoodsBrief == null) {
+                continue;
+            }
+
+            int biz30day = taoBaoGoodsBrief.getBiz30day();
+            if (biz30day >= 10000) {
+                double sales = biz30day;
+                String salesCountMidea = String.format("%.1f", sales / 10000);
+                taoBaoGoodsBrief.setSalesCount(salesCountMidea + "涓�");
+            } else {
+                taoBaoGoodsBrief.setSalesCount(biz30day + "");
+            }
+
+            // 鐧藉簳鍥炬祴璇�
+            // if
+            // (!StringUtil.isNullOrEmpty(taoBaoGoodsBrief.getPictUrlWhite()))
+            // taoBaoGoodsBrief.setPictUrl(taoBaoGoodsBrief.getPictUrlWhite());
+
+            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), null)));
+        }
+
+        JSONObject data = new JSONObject();
+        data.put("nav", null);
+        data.put("count", counttotal);
+        data.put("result", array);
+        out.print(JsonUtil.loadTrueResult(data));
+
+    }
+
+    @RequestMapping("getCouponList")
+    public void getCouponList(AcceptData acceptData, int page, HttpServletRequest request, PrintWriter out) {
+        page = page > 0 ? page : 1;
+        List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = taoBaoCouponService.getTaoBaoCouponList(page);
+        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
+        JSONArray array = new JSONArray();
+        TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
+        Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
+
+        for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
+            taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "");
+            array.add(gson.toJson(taoBaoGoodsBriefExtra));
+        }
+        int count = 10000;
+        JSONObject data = new JSONObject();
+        data.put("taoBaoCoupons", array);
+        data.put("count", count);
+        out.print(JsonUtil.loadTrueResult(data));
+
+        try {
+            monitorService.addClientAPIMonitor(MonitorFactory.createClientAPI(request, 0, 0, null));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 閫氳繃鍒嗙被鑾峰彇鍒�
+     *
+     * @param acceptData
+     * @param page
+     * @param out
+     */
+    @RequestMapping("getCouponListByClass")
+    public void getCouponListByClass(AcceptData acceptData, Long id, int page, PrintWriter out) {
+
+        // SearchFilter sf = new SearchFilter();
+        // sf.setQuan(1);
+        // sf.setPage(page);
+        // TaoKeApiUtil.getMaterialByMaterialId(3786, page, 20);
+        if (id == null)
+            return;
+        page = page < 1 ? 1 : page;
+        String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.couponByClass, id + "-" + page);
+        String resultStr = "";
+
+        if (Constant.IS_OUTNET)
+            resultStr = redisManager.getCommonString(key);
+        if (!StringUtil.isNullOrEmpty(resultStr)) {
+            out.print(resultStr);
+            return;
+        }
+
+        int meterialId = 0;
+        Map<Long, Integer> paramMap = new HashMap<>();
+        paramMap.put(10L, 3767);// 濂宠
+        paramMap.put(11L, 3760);// 姣嶅┐
+        paramMap.put(28L, 3764);// 鐢疯
+        paramMap.put(27L, 3758);// 瀹跺眳瀹惰
+        paramMap.put(1L, 3759);// 瀹剁數鏁扮爜
+        paramMap.put(6L, 3765);// 鍐呰。
+        paramMap.put(30L, 3763);// 缇庡
+
+        paramMap.put(31L, 3766);// 杩愬姩鎴峰
+
+        paramMap.put(32L, 3761);// 缇庨
+
+        if (paramMap.get(id) != null)
+            meterialId = paramMap.get(id);
+
+        TaoBaoSearchResult result = null;
+
+        // 涓嶇敓鏁�
+        meterialId = 0;
+        if (meterialId > 0)
+            result = TaoKeApiUtil.getMaterialByMaterialId(meterialId, page, 20);
+        else {
+            SearchFilter sf = new SearchFilter();
+            sf.setPage(page);
+            sf.setPageSize(20);
+            sf.setQuan(1);
+            sf.setKey(goodsClassService.getKeysById(id));
+
+            result = TaoKeApiUtil.searchWuLiaoNew(sf,null,null);
+
+        }
+        List<TaoBaoSearchNav> navList = TaoBaoUtil.getBaseNav();
+        if (result != null && result.getNavList() != null)
+            navList.addAll(result.getNavList());
+
+        if (navList == null)
+            navList = new ArrayList<>();
+
+        Gson gson = new GsonBuilder().create();
+        JSONObject data = new JSONObject();
+        data.put("nav", gson.toJson(navList));
+        List<TaoBaoGoodsBriefExtra> re = new ArrayList<TaoBaoGoodsBriefExtra>();
+        List<TaoBaoGoodsBrief> taoBaoGoodsBriefs = result.getTaoBaoGoodsBriefs();
+        BigDecimal proportion = manageService.getFanLiRate(acceptData.getSystem());
+        TaoBaoGoodsBriefExtra taoBaoGoodsBriefExtra;
+        for (TaoBaoGoodsBrief taoBaoGoodsBrief : taoBaoGoodsBriefs) {
+            taoBaoGoodsBriefExtra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(taoBaoGoodsBrief, proportion.toString(), "");
+            re.add(taoBaoGoodsBriefExtra);
+        }
+
+        Gson gson2 = JsonUtil.getConvertBigDecimalToStringBuilder(new GsonBuilder())
+                .excludeFieldsWithoutExposeAnnotation().create();
+        data.put("result", gson2.toJson(re));
+        data.put("count", result.getTaoBaoHead().getDocsfound());
+        resultStr = JsonUtil.loadTrueResult(0, data);
+        try {
+            if (Constant.IS_OUTNET)
+                redisManager.cacheCommonString(key, resultStr, 120);
+        } catch (Exception e) {
+        }
+
+        out.print(resultStr);
+    }
+
+    /**
+     * 璁剧疆绾㈠寘杩涘幓
+     *
+     * @param taoBaoCoupons
+     */
+    private void setTaoBaoCouponHongBao(AcceptData acceptData, List<TaoBaoCoupon> taoBaoCoupons) {
+        if (taoBaoCoupons.size() > 0) {
+            BigDecimal proportion = hongBaoManageService.getFanLiRate(acceptData.getSystem());
+
+            for (TaoBaoCoupon taoBaoCoupon : taoBaoCoupons) {
+                BigDecimal hb = TaoBaoUtil.getCouponHongBaoInfo(taoBaoCoupon, proportion);
+                taoBaoCoupon.setHongbao(hb);
+            }
+        }
+    }
+
+    @RequestMapping(value = {"getcategory"}, method = {org.springframework.web.bind.annotation.RequestMethod.POST})
+    public void getcategory(AcceptData acceptData, PrintWriter out) {
+        try {
+
+            boolean changePicture = false;
+            String version = acceptData.getVersion();
+            int tversion = Integer.parseInt(version);
+            String platform = acceptData.getPlatform();
+            if ("android".equalsIgnoreCase(platform) && tversion > 38) {
+                changePicture = true;
+            } else if (tversion > 47) {
+                changePicture = true;
+            }
+
+            List<Map<String, Object>> listCache = goodsClassService.getClassListAllCache(changePicture);
+            if (listCache == null) {
+                listCache = new ArrayList<Map<String, Object>>();
+            }
+
+            JSONObject data = new JSONObject();
+            data.put("categoryList", listCache);
+
+            out.print(JsonUtil.loadTrueResult(data));
+
+        } catch (Exception e) {
+            out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
+            try {
+                LogHelper.errorDetailInfo(e);
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+        }
+    }
+}

--
Gitblit v1.8.0