admin
2024-01-23 81da61b828e29b7745e1382dfbbaeb685dc083ef
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/S11Controller.java
@@ -1,170 +1,169 @@
package com.yeshi.fanli.controller.client.v1;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
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.recommend.RecommendBanner;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TBPid;
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.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.special.S11Service;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import org.yeshi.utils.JsonUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
 * 双11的内容
 *
 * @author Administrator
 *
 */
@Controller
@RequestMapping("api/v1/s11")
public class S11Controller {
   @Resource
   private S11Service s11Service;
   @Resource
   private TBPidService tbPidService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
   /**
    * 获取分类与banner
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getBannerAndClass")
   public void getClass(AcceptData acceptData, PrintWriter out) {
      JSONObject data = new JSONObject();
      JumpDetailV2 jdv = new JumpDetailV2();
      jdv.setActivity("com.yeshi.ec.rebate.myapplication.ui.mine.weex.WeexApplicationActivity");
      jdv.setController("WeexNativeController");
      jdv.setType("weex");
      List<RecommendBanner> recommendBanner = s11Service.getBanner();
      List<GoodsClass> goodsClass = s11Service.getGoodsClassCache();
      Gson gson = new Gson();
      data.put("banner", gson.toJson(recommendBanner));
      JSONArray array = new JSONArray();
      for (GoodsClass gc : goodsClass) {
         JSONObject item = JSONObject.fromObject(gson.toJson(gc));
         item.put("jumpDetail", jdv);
         JSONObject params = new JSONObject();
         params.put("url", gc.getUrl());
         item.put("params", params);
         array.add(item);
      }
      data.put("classes", array);
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 获取推荐商品
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getRecommendGoods")
   public void getRecommendGoods(AcceptData acceptData, int page, PrintWriter out) {
      List<TaoBaoGoodsBrief> list = s11Service.getPreSaleGoodsCache(page);
      JSONArray array = new JSONArray();
      if (list != null) {
         BigDecimal proportion = hongBaoManageService.getFanLiRate();
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
         boolean is11 = System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2018-11-11", "yyyy-MM-dd") ? true
               : false;
         for (TaoBaoGoodsBrief goods : list) {
            TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "");
            if (!is11)
               extra.setShopType(3);
            array.add(gson.toJson(extra));
         }
      }
      JSONObject data = new JSONObject();
      data.put("data", array);
      data.put("count", 10000);
      out.print(JsonUtil.loadTrueResult(data));
   }
   @RequestMapping(value = "getGoodsByType")
   public void getGoodsByType(AcceptData acceptData, int page, String key, PrintWriter out) {
      List<TaoBaoGoodsBrief> list = s11Service.getPreSaleGoodsByType(key, page);
      JSONArray array = new JSONArray();
      if (list != null) {
         BigDecimal proportion = hongBaoManageService.getFanLiRate();
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
         boolean is11 = System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2018-11-11", "yyyy-MM-dd") ? true
               : false;
         for (TaoBaoGoodsBrief goods : list) {
            TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "");
            if (!is11)
               extra.setShopType(3);
            array.add(gson.toJson(extra));
         }
      }
      JSONObject data = new JSONObject();
      data.put("data", array);
      data.put("count", 10000);
      out.print(JsonUtil.loadTrueResult(data));
   }
   @RequestMapping(value = "getTBPidInfo")
   public void getTBInfo(AcceptData acceptData, Long uid, PrintWriter out) {
      ClientTBPid tbPid = null;
      if (uid != null && uid > 0) {
         TBPid pid = null;
         if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
            pid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_ANDROID);
         } else {
            pid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_IOS);
         }
         if (pid != null) {
            String appId = pid.getPid().split("_")[2];
            String adzoneId = pid.getPid().split("_")[3];
            TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
            tbPid = new ClientTBPid(taoBaoUnionConfig.getAppKey(), pid.getPid(), appId, adzoneId);
         }
      }
      if (tbPid == null) {
         if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
            tbPid = tbPidService.getAndroidDefault();
         } else {
            tbPid = tbPidService.getIOSDefault();
         }
      }
      out.print(JsonUtil.loadTrueResult(tbPid));
   }
}
package com.yeshi.fanli.controller.client.v1;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
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.recommend.RecommendBanner;
import com.yeshi.fanli.entity.common.JumpDetailV2;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TBPid;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.goods.facade.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.special.S11Service;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import org.yeshi.utils.TimeUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
 * 双11的内容
 *
 * @author Administrator
 *
 */
@Controller
@RequestMapping("api/v1/s11")
public class S11Controller {
   @Resource
   private S11Service s11Service;
   @Resource
   private TBPidService tbPidService;
   @Resource
   private HongBaoManageService hongBaoManageService;
   @Resource
   private TaoBaoUnionConfigService taoBaoUnionConfigService;
   /**
    * 获取分类与banner
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getBannerAndClass")
   public void getClass(AcceptData acceptData, PrintWriter out) {
      JSONObject data = new JSONObject();
      JumpDetailV2 jdv = new JumpDetailV2();
      jdv.setActivity("com.yeshi.ec.rebate.myapplication.ui.mine.weex.WeexApplicationActivity");
      jdv.setController("WeexNativeController");
      jdv.setType("weex");
      List<RecommendBanner> recommendBanner = s11Service.getBanner();
      List<GoodsClass> goodsClass = s11Service.getGoodsClassCache();
      Gson gson = new Gson();
      data.put("banner", gson.toJson(recommendBanner));
      JSONArray array = new JSONArray();
      for (GoodsClass gc : goodsClass) {
         JSONObject item = JSONObject.fromObject(gson.toJson(gc));
         item.put("jumpDetail", jdv);
         JSONObject params = new JSONObject();
         params.put("url", gc.getUrl());
         item.put("params", params);
         array.add(item);
      }
      data.put("classes", array);
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 获取推荐商品
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getRecommendGoods")
   public void getRecommendGoods(AcceptData acceptData, int page, PrintWriter out) {
      List<TaoBaoGoodsBrief> list = s11Service.getPreSaleGoodsCache(page);
      JSONArray array = new JSONArray();
      if (list != null) {
         BigDecimal proportion = hongBaoManageService.getFanLiRate(acceptData.getSystem());
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
         boolean is11 = System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2018-11-11", "yyyy-MM-dd") ? true
               : false;
         for (TaoBaoGoodsBrief goods : list) {
            TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "");
            if (!is11)
               extra.setShopType(3);
            array.add(gson.toJson(extra));
         }
      }
      JSONObject data = new JSONObject();
      data.put("data", array);
      data.put("count", 10000);
      out.print(JsonUtil.loadTrueResult(data));
   }
   @RequestMapping(value = "getGoodsByType")
   public void getGoodsByType(AcceptData acceptData, int page, String key, PrintWriter out) {
      List<TaoBaoGoodsBrief> list = s11Service.getPreSaleGoodsByType(key, page);
      JSONArray array = new JSONArray();
      if (list != null) {
         BigDecimal proportion = hongBaoManageService.getFanLiRate(acceptData.getSystem());
         Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder()).create();
         boolean is11 = System.currentTimeMillis() > TimeUtil.convertToTimeTemp("2018-11-11", "yyyy-MM-dd") ? true
               : false;
         for (TaoBaoGoodsBrief goods : list) {
            TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "");
            if (!is11)
               extra.setShopType(3);
            array.add(gson.toJson(extra));
         }
      }
      JSONObject data = new JSONObject();
      data.put("data", array);
      data.put("count", 10000);
      out.print(JsonUtil.loadTrueResult(data));
   }
   @RequestMapping(value = "getTBPidInfo")
   public void getTBInfo(AcceptData acceptData, Long uid, PrintWriter out) {
      ClientTBPid tbPid = null;
      if (uid != null && uid > 0) {
         TBPid pid = null;
         if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
            pid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_ANDROID);
         } else {
            pid = tbPidService.getTBPid(uid, PidUser.TYPE_FANLI_IOS);
         }
         if (pid != null) {
            String appId = pid.getPid().split("_")[2];
            String adzoneId = pid.getPid().split("_")[3];
            TaoBaoUnionConfig taoBaoUnionConfig = taoBaoUnionConfigService.getConfigByAppIdCache(appId);
            tbPid = new ClientTBPid(taoBaoUnionConfig.getAppKey(), pid.getPid(), appId, adzoneId);
         }
      }
      if (tbPid == null) {
         if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
            tbPid = tbPidService.getAndroidDefault();
         } else {
            tbPid = tbPidService.getIOSDefault();
         }
      }
      out.print(JsonUtil.loadTrueResult(tbPid));
   }
}