admin
2019-02-27 309a22d0624e8fec46f4b6722ed6135fe0a2ea3d
fanli/src/main/java/com/yeshi/fanli/controller/client/RecommendController.java
@@ -1,10 +1,12 @@
package com.yeshi.fanli.controller.client;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -21,6 +23,10 @@
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.yeshi.fanli.dao.mybatis.HongBaoManageMapper;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.Special;
@@ -40,6 +46,7 @@
import com.yeshi.fanli.entity.bus.user.Order;
import com.yeshi.fanli.entity.bus.user.ShamUser;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.common.ImageInfo;
import com.yeshi.fanli.entity.common.JumpDetail;
import com.yeshi.fanli.entity.common.JumpDetailV2;
@@ -62,6 +69,7 @@
import com.yeshi.fanli.exception.goods.ScanHistoryException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.exception.taobao.TaobaoGoodsUpdateException;
import com.yeshi.fanli.exception.user.UserCustomSettingsException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
@@ -87,12 +95,15 @@
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.order.OrderService;
import com.yeshi.fanli.service.inter.order.ShareGoodsActivityOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoGoodsUpdateService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.user.ShamUserService;
import com.yeshi.fanli.service.inter.user.ShareManageService;
import com.yeshi.fanli.service.inter.user.TBPidService;
import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
import com.yeshi.fanli.service.inter.user.UserGoodsStorageService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.RedisManager;
@@ -105,6 +116,7 @@
import com.yeshi.fanli.util.taobao.TaoBaoOrderUtil;
import com.yeshi.fanli.util.taobao.TaoBaoUtil;
import com.yeshi.fanli.util.taobao.TaoKeApiUtil;
import com.yeshi.fanli.vo.user.UserSettingsVO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -217,6 +229,16 @@
   @Resource
   private JumpDetailV2Service jumpDetailV2Service;
   @Resource
   private UserCustomSettingsService userCustomSettingsService;
   @Resource
   private ShareGoodsActivityOrderService shareGoodsActivityOrderService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @RequestMapping(value = "getrecommendsection")
   public void getRecommendSection(AcceptData acceptData, int index, PrintWriter out) {
@@ -1297,14 +1319,30 @@
      JSONObject data = new JSONObject();
      data.put("count", count);
      JSONArray array = new JSONArray();
      Gson gson = JsonUtil.getApiCommonGson();
      GsonBuilder gsonBuilder = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder());
      gsonBuilder.excludeFieldsWithoutExposeAnnotation();
      gsonBuilder.registerTypeAdapter(Date.class, new JsonSerializer<Date>() {
         @Override
         public JsonElement serialize(Date value, Type theType, JsonSerializationContext context) {
            if (value == null) {
               return new JsonPrimitive("");
            } else {
               return new JsonPrimitive(value.getTime() + "");
            }
         }
      });
      Gson gson = gsonBuilder.create();
      if (list != null) {
         Map<String, String> map = hongBaoManageService.convertMap();
         BigDecimal proportion = manageService.getFanLiRate();
         for (ScanHistoryV2 sh : list) {
            TaoBaoGoodsBrief goods = TaoBaoUtil.convert(sh.getCommonGoods());
            goods.setId(sh.getId());
            array.add(gson.toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "")));
            TaoBaoGoodsBriefExtra extra = TaoBaoUtil.getTaoBaoGoodsBriefExtra(goods, proportion.toString(), "");
            extra.setCreatetime(sh.getCreateTime());
            array.add(gson.toJson(extra));
         }
      }
      data.put("data", array);
@@ -1583,7 +1621,8 @@
    * @param out
    */
   @RequestMapping(value = "getNewRecommendInfo")
   public void getNewRecommendInfo(AcceptData acceptData, String specialCard, String swiperCard, PrintWriter out) {
   public void getNewRecommendInfo(AcceptData acceptData, Long uid, String specialCard, String swiperCard,
         PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      if (system == null) {
@@ -1694,7 +1733,16 @@
         if (("android".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) > 30)
               || ("ios".equalsIgnoreCase(acceptData.getPlatform())
                     && Integer.parseInt(acceptData.getVersion()) > 37)) {
            root.put("invite", invite);
            if (uid != null) {
               try {
                  UserSettingsVO vo = userCustomSettingsService.getMySettings(uid);
                  if (vo == null || vo.getNoInvitationBonus() == null || vo.getNoInvitationBonus() == 0)// 没有关闭邀请
                     root.put("invite", invite);
               } catch (UserCustomSettingsException e) {
                  e.printStackTrace();
               }
            } else
               root.put("invite", invite);
         }
      }
@@ -1878,7 +1926,7 @@
      List<String> finalImgList = new ArrayList<>();
      for (String img : tb.getImgList()) {
         finalImgList.add(img);
         finalImgList.add(TbImgUtil.getTBSizeImg(img, 600));
      }
      JSONObject goods = new JSONObject();
@@ -2002,6 +2050,17 @@
      data.put("goods", goods);
      data.put("shareUsers", listShareUser);
      data.put("couponUsers", listCouponUser);
      data.put("detailWebUrl", "http://apph5.yeshitv.com/apppage/goods_img.html?id=" + id);
      JSONObject shareActivity = new JSONObject();
      shareActivity.put("moneyDesc", "春节狂欢奖金:¥" + TaoBaoUtil.getGoodsHongBaoMoney(tb,
            new BigDecimal(hongBaoManageService.get("share_activity_proportion"))));
      shareActivity.put("ruleDescPicture", "http://img.flqapp.com/resource/share_activity_img.png");
      if (!StringUtil.isNullOrEmpty(uid)
            && shareGoodsActivityOrderService.countShareGoodsActivityOrder(Long.parseLong(uid)) > 0) {
      } else
         data.put("shareActivity", shareActivity);
      out.print(JsonUtil.loadTrueResult(data));
@@ -2161,4 +2220,64 @@
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 活动列表
    *
    * @param acceptData
    * @param out
    */
   @RequestMapping(value = "getSpecialActivities")
   public void getSpecialActivities(AcceptData acceptData, Long uid, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
      if (system == null) {
         out.print(JsonUtil.loadFalseResult(1, "系统不存在"));
         return;
      }
      try {
         // 专题活动
         String specialCard = "special_activities";
         List<Special> listSpecial = specialService.listPageBySystemAndCard(0, Integer.MAX_VALUE, specialCard,
               system.getId());
         if (listSpecial != null && listSpecial.size() > 0) {
            for (Special special : listSpecial) {
               special.setCreatetime(null);
               special.setUpdatetime(null);
               special.setState(null);
               special.setRemark(null);
               special.setCard(null);
               special.setCardId(null);
               JumpDetailV2 jumpDetail = special.getJumpDetail();
               if (jumpDetail != null) {
                  jumpDetail.setId(null);
                  jumpDetail.setName(null);
               }
               // 邀请登陆验证
               if(jumpDetail.getType().equals("invite_web") && jumpDetail.getNeedLogin()
                     && uid != null) {
                  UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
                  if (userInfoExtra != null && userInfoExtra.getInviteCode() != null
                        && userInfoExtra.getInviteCode().trim().length() > 0) {
                     JSONObject params = new JSONObject();
                     params.put("url", configService.get("invite_activation_success_url"));
                     special.setParams(params.toString());
                  }
               }
            }
         }
         JSONObject root = new JSONObject();
         root.put("special", listSpecial);
         out.print(JsonUtil.loadTrueResult(root));
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}