admin
2020-05-06 24a8d17e007545f7426c48352109aa1a9c6587ee
fanli/src/main/java/com/yeshi/fanli/controller/web/WebRecommendController.java
@@ -1,11 +1,8 @@
package com.yeshi.fanli.controller.web;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@@ -18,36 +15,29 @@
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.recommend.RecommendBanner;
import com.yeshi.fanli.entity.bus.recommend.RecommendSection;
import com.yeshi.fanli.entity.bus.recommend.RecommendSectionGoods;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBanner;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendSection;
import com.yeshi.fanli.entity.goods.CollectionGoodsV2;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.taobao.ScanHistory;
import com.yeshi.fanli.entity.system.ConfigKeyEnum;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.log.LogManager;
import com.yeshi.fanli.log.LogType;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.config.SystemConfigService;
import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
import com.yeshi.fanli.service.inter.goods.RecommendSectionGoodsService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerService;
import com.yeshi.fanli.service.inter.goods.SuperRecommendSectionService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.ScanHistoryService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
import com.yeshi.fanli.util.Utils;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@Controller
@@ -61,13 +51,7 @@
   private SuperRecommendBannerService superRecommendBannerService;
   @Resource
   private SuperRecommendSectionService superRecommendSectionService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private RecommendSectionGoodsService recommendSectionGoodsService;
   @Resource
   private RedisManager redisManager;
@@ -88,9 +72,6 @@
   private TaoBaoGoodsBriefService taoBaoGoodsBriefService;
   @Resource
   private ScanHistoryService scanHistoryService;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
   /**
@@ -104,7 +85,8 @@
   @RequestMapping(value = "getRecommenBanner", method = RequestMethod.GET)
   public void getRecommendBanner(AcceptData acceptData, String callback, PrintWriter out) {
      BusinessSystem system = businessSystemService.getBusinessSystem("WEB", Constant.systemCommonConfig.getH5PackageName());
      BusinessSystem system = businessSystemService.getBusinessSystem("WEB",
            Constant.systemCommonConfig.getH5PackageName());
      JSONObject json = new JSONObject();
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NOSYSTEM));
@@ -147,94 +129,6 @@
   /**
    * 
    * 方法说明: 推荐商品列表
    *
    * @author mawurui createTime 2018年5月11日 上午11:26:03
    * @param acceptData
    * @param index
    * @param out
    */
   @RequestMapping(value = "getRecommendSection", method = RequestMethod.GET)
   public void getRecommendSection(AcceptData acceptData, String callback, PrintWriter out) {
      BusinessSystem system = businessSystemService.getBusinessSystem("WEB", Constant.systemCommonConfig.getH5PackageName());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NOSYSTEM));
         return;
      }
      List<SuperRecommendSection> superRecommendSectionList = superRecommendSectionService
            .getSuperRecommendSectionBySystemId(system.getId());
      List<RecommendSection> recommendSectionList = null;
      for (SuperRecommendSection superRecommendSection : superRecommendSectionList) {
         if (recommendSectionList == null) {
            recommendSectionList = new ArrayList<RecommendSection>();
         }
         RecommendSection recommendSection = superRecommendSection.getRecommendSection();
         // 暂时改变淘特价的跳转地址
         if (system.getId() == 7) {
            recommendSection.setJumpUrl(recommendSection.getJumpUrl().replace("column.html", "column_ttj.html"));
         }
         recommendSectionList.add(recommendSection);
      }
      if (recommendSectionList == null) {
         out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NODATA));
         return;
      }
      Utils.sort(recommendSectionList);
      int size = recommendSectionList.size();
      List<RecommendSectionGoods> recommendSectionGoodsList = null;
      JSONObject data = new JSONObject();
      data.put("count", size);
      JSONArray dataArr = new JSONArray();
      JSONObject validData = null;
      Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal proportion = hongBaoManageService.getFanLiRate();
      Map<Long, List<RecommendSectionGoods>> map = recommendSectionGoodsService.getAllSectionGoodsMap();
      for (int i = 0; i < size; i++) {
         validData = new JSONObject();
         RecommendSection recommendSection = recommendSectionList.get(i);
         recommendSectionGoodsList = map.get(recommendSection.getId());
         if (recommendSectionGoodsList == null) {
            continue;
         }
         Utils.sort(recommendSectionGoodsList);
         if (recommendSection.getCounts() < recommendSectionGoodsList.size()) {
            recommendSectionGoodsList = recommendSectionGoodsList.subList(0, recommendSection.getCounts());
         }
         validData.put("count", recommendSectionGoodsList.size());
         validData.put("recommendSection", gson.toJson(recommendSection));
         // 替换TaoBaoGoodsBrief
         JSONArray array = new JSONArray();
         Gson gson2 = new GsonBuilder().setDateFormat("yyyy-MM-dd").create();
         for (RecommendSectionGoods rss : recommendSectionGoodsList) {
            JSONObject obj = JSONObject.fromObject(gson2.toJson(rss));
            String json = gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(
                  gson2.fromJson(obj.optJSONObject("taoBaoGoodsBrief").toString(), TaoBaoGoodsBrief.class),
                  proportion.toString(), ""));
            obj.put("taoBaoGoodsBrief", json);
            array.add(obj);
         }
         validData.put("recommendSectionGoodsList", array);
         dataArr.add(validData);
      }
      data.put("data", dataArr);
      String result = JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data));
      if (Constant.IS_OUTNET)
         redisManager.cacheCommonString("client-api-getRecommendSection", result, 3 * 60);
      out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(result)));
      return;
   }
   /**
    *
    * 方法说明: 获取商品详情
    * 
    * @author mawurui createTime 2018年5月11日 上午11:37:02
@@ -245,18 +139,15 @@
    */
   @RequestMapping(value = "getGoodsDetail", method = RequestMethod.GET)
   public void getGoodsDetail(final AcceptData acceptData, final String id, final String uid, String callback,
         PrintWriter out) {
   public void getGoodsDetail(final AcceptData acceptData, final String id, final String uid, Integer goodsType,
         String callback, PrintWriter out) {
      long begin = java.lang.System.currentTimeMillis();
      if (StringUtil.isNullOrEmpty(id)) {
         out.print(JsonUtil.loadFalseResult(1, "请上传id"));
         return;
      }
      BusinessSystem system = webControllerUtil.getSystem(acceptData);
      // 淘特价
      if (system.getId() == 7) {
         system = businessSystemService.getBusinessSystem("ANDROID", Constant.systemCommonConfig.getAndroidPackageName());
      }
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, WebControllerUtil.NOSYSTEM));
@@ -290,14 +181,14 @@
         if (uid != null && !"".equals(uid.trim())) {
            CollectionGoodsV2 collectionGoods = collectionGoodsV2Service.findByUidAndAuctionId(Long.parseLong(uid),
                  Long.parseLong(id));
                  Long.parseLong(id), goodsType);
            data.put("collection", collectionGoods != null ? true : false);
         }
         taoBaoGoodsBriefExtra.setAuctionUrl(null);
         data.put("taobao", gson.toJson(taoBaoGoodsBriefExtra));
         String info = configService.get("detail_prompt");
         String info = configService.get(ConfigKeyEnum.detailPrompt.getKey());
         data.put("info", info);
         String onlyInfo = configService.get("only_info");
         String onlyInfo = configService.get(ConfigKeyEnum.onlyInfo.getKey());
         data.put("only", onlyInfo);
         int showType = taoBaoGoodsBriefExtra.getShowType();
         String price = "";
@@ -312,7 +203,7 @@
         data.put("shareTitle", taoBaoGoodsBriefExtra.getTitle());
         data.put("shareContent", "¥" + price + "元");
         data.put("shareImg", taoBaoGoodsBriefExtra.getPictUrl());
         String html = configService.get("downAPP");
         String html = configService.get(ConfigKeyEnum.downAPP.getKey());
         data.put("downAPP", html);
         String shareSinaContent = configService.get("shareSinaContent");
         data.put("shareSina",
@@ -323,33 +214,10 @@
         data.put("sharemoney", "分享奖金 ¥" + taoBaoGoodsBriefService.getShareGoodsUserHongBao(tb) + "元");
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
         final TaoBaoGoodsBrief tbb=tb;
         ThreadUtil.run(new Runnable() {
            public void run() {
               // 添加浏览记录
               ScanHistory sh = TaoBaoUtil.getScanHistory(tbb);
               sh.setDevice(acceptData.getDevice());
               sh.setSystem(businessSystemService.getBusinessSystem(acceptData.getPlatform(), acceptData.getPackages()));
               sh.setCreatetime(new Date());
               if (uid != null && !uid.equals("")) {
                  sh.setUid(Long.parseLong(uid));
               }
               try {
                  scanHistoryService.addScanHistory(sh);
               } catch (Exception e) {
                  e.printStackTrace();
               }
            }
         });
         final TaoBaoGoodsBrief tbb = tb;
      } else {
         out.print(JsonUtil.loadFalseResult(2, "商品已下架"));
         ThreadUtil.run(new Runnable() {
            public void run() {
               recommendSectionGoodsService.deleteRecommendSectionGoodsByTbAuctionId(Long.parseLong(id));
               ;
            }
         });
      }
      long end = java.lang.System.currentTimeMillis();
      java.lang.System.out.println("耗时:" + (end - begin));