yujian
2019-12-19 626d711cb15896055c13fe344eb7fcc824589715
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/DynamicControllerV2.java
@@ -21,12 +21,19 @@
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.homemodule.Special;
import com.yeshi.fanli.entity.bus.homemodule.SpecialLabel;
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.dynamic.DynamicInfoService;
import com.yeshi.fanli.service.inter.goods.TaoBaoGoodsBriefService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.homemodule.SpecialService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.taobao.DaTaoKeUtil;
import com.yeshi.fanli.vo.msg.ClientTextStyleVO;
import net.sf.json.JSONObject;
@@ -52,6 +59,10 @@
   @Resource
   private DynamicInfoService dynamicInfoService;
   @Resource
   private SpecialService specialService;
   /**
    * 动态商品列表
@@ -68,8 +79,22 @@
         return;
      }
      if (cid != null && cid == 5) {
         // 活动主题
         getSpecialList(acceptData, page, subId, out);
         return;
      }
      long count = 0;
      List<DynamicInfo> list = dynamicInfoService.queryV2((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, cid,
      int platform = 1;
      if ("ios".equalsIgnoreCase(acceptData.getPlatform())) {
         platform = 2;
      }
      int version = Integer.parseInt(acceptData.getVersion());
      List<DynamicInfo> list = dynamicInfoService.queryV2(platform, version, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, cid,
            subId);
      if (list == null) {
         list = new ArrayList<DynamicInfo>();
@@ -82,6 +107,165 @@
      data.put("list", getGson().toJson(list));
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    *  活动列表
    * @param acceptData
    * @param out
    */
   private void getSpecialList(AcceptData acceptData, Integer page, Long subId, PrintWriter out) {
      if (subId == null) {
         out.print(JsonUtil.loadFalseResult("分类id不能为空"));
         return;
      }
      // 平台区分
      int platformCode = Constant.getPlatformCode(acceptData.getPlatform());
      List<String> listKey = new ArrayList<String>();
      if (subId == 1) { // 淘宝
         listKey.add("special_channel_tb");
      } else if (subId == 2) { // 京东
         listKey.add("special_channel_jd");
      } else if (subId == 3) { // 拼多多
         listKey.add("special_channel_pdd");
      } else { // 全部
         listKey.add("special_channel_tb");
         listKey.add("special_channel_jd");
         listKey.add("special_channel_pdd");
      }
      List<Special> list = specialService.listByPlaceKeyHasLabel((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, listKey, platformCode,
            Integer.parseInt(acceptData.getVersion()));
      long time = System.currentTimeMillis();
      // 删除尚未启用的过期的
      for (int i = 0; i < list.size(); i++) {
         Special special = list.get(i);
         if (special.getState() == 1L) {
            list.remove(i--);
         } else {
            if (special.getStartTime() != null && special.getEndTime() != null)
               special.setTimeTask(true);
            else
               special.setTimeTask(false);
            if (special.isTimeTask()) {
               if (time < special.getStartTime().getTime() || time > special.getEndTime().getTime()) {
                  list.remove(i--);
               } else// 设置倒计时
               {
                  special.setCountDownTime((special.getEndTime().getTime() - time) / 1000);
               }
            }
            List<SpecialLabel> listLabels = special.getListLabels();
            if (listLabels != null && !listLabels.isEmpty()) {
               List<ClientTextStyleVO> labels = new ArrayList<>();
               for (SpecialLabel specialLabel: listLabels) {
                   labels.add(new ClientTextStyleVO(specialLabel.getName(), specialLabel.getBgColor()));
               }
               special.setLabels(labels);
            }
         }
      }
      long count = specialService.countByPlaceKeyList( listKey, platformCode,   Integer.parseInt(acceptData.getVersion()));
      GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
      Gson gson = gsonBuilder.create();
      JSONObject data = new JSONObject();
      data.put("count", count);
      data.put("list", gson.toJson(list));
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 查询顶部分类
    *
    * @param acceptData
    * @param page
    * @param cid
    * @param out
    */
   @RequestMapping(value = "getClass", method = RequestMethod.POST)
   public void getClass(AcceptData acceptData, Integer cid, PrintWriter out) {
      // ios 只返回子集分类
      if (cid != null) {
         List<GoodsClass> list = new ArrayList<GoodsClass>();
         switch (cid) {
         case 1:
            list.add(new GoodsClass(0L, "今日单品"));
            list.addAll(DaTaoKeUtil.goodsClasses);
            break;
         case 2:
            break;
         case 3:
            break;
         case 4:
            break;
         case 5:
            list.add(new GoodsClass(0L, "全部"));
            list.add(new GoodsClass(1L, "淘宝"));
            list.add(new GoodsClass(2L, "京东"));
            list.add(new GoodsClass(3L, "拼多多"));
            break;
         default:
            break;
         }
         JSONObject data = new JSONObject();
         data.put("list", JsonUtil.getApiCommonGson().toJson(list));
         out.print(JsonUtil.loadTrueResult(data));
         return;
      }
      // Android 返回分类以及顶部数据
      List<GoodsClass> listSub = new ArrayList<GoodsClass>();
      listSub.add(new GoodsClass(0L, "今日单品"));
      listSub.addAll(DaTaoKeUtil.goodsClasses);
      GoodsClass menu1 = new GoodsClass(1L, "热销");
      menu1.setListSub(listSub);
      GoodsClass menu2 = new GoodsClass(2L, "推荐");
      menu2.setListSub(new ArrayList<GoodsClass>());
      GoodsClass menu3 = new GoodsClass(3L, "好店");
      menu3.setListSub(new ArrayList<GoodsClass>());
      GoodsClass menu4 = new GoodsClass(4L, "邀请");
      menu4.setListSub(new ArrayList<GoodsClass>());
      GoodsClass menu5 = new GoodsClass(5L, "活动");
      List<GoodsClass> sub5 = new ArrayList<GoodsClass>();
      sub5.add(new GoodsClass(0L, "全部"));
      sub5.add(new GoodsClass(1L, "淘宝"));
      sub5.add(new GoodsClass(2L, "京东"));
      sub5.add(new GoodsClass(3L, "拼多多"));
      menu5.setListSub(sub5);
      List<GoodsClass> list = new ArrayList<GoodsClass>();
      list.add(menu1);
      list.add(menu5);
      list.add(menu2);
      // 2.0.5版本隐藏 好店栏目
      if (!VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
         list.add(menu3);
      }
      list.add(menu4);
      JSONObject data = new JSONObject();
      data.put("list", JsonUtil.getApiCommonGson().toJson(list));
      out.print(JsonUtil.loadTrueResult(data));
   }