yujian
2019-11-05 09c716a16d02ddb06df2bc2af5e588128bc7fdb4
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/TaoLiJinControllerV2.java
@@ -26,43 +26,36 @@
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.yeshi.fanli.dto.ConfigParamsDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.tlj.DeviceTaoLiJinRecord;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinDetail.TaoLiJinDetailTypeEnum;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin;
import com.yeshi.fanli.entity.bus.tlj.UserTaoLiJinOrigin.TaoLiJinOriginEnum;
import com.yeshi.fanli.entity.bus.user.UserMoneyExtra;
import com.yeshi.fanli.entity.bus.user.UserRank;
import com.yeshi.fanli.entity.taobao.ShareHotGoods;
import com.yeshi.fanli.entity.taobao.TLJBuyGoods;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinOriginException;
import com.yeshi.fanli.exception.tlj.UserTaoLiJinRecordException;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsService;
import com.yeshi.fanli.service.inter.goods.ShareGoodsTextTemplateService;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.lable.QualityGoodsService;
import com.yeshi.fanli.service.inter.money.UserMoneyExtraService;
import com.yeshi.fanli.service.inter.monitor.BusinessEmergent110Service;
import com.yeshi.fanli.service.inter.monitor.MonitorService;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
import com.yeshi.fanli.service.inter.taobao.ShareHotGoodsService;
import com.yeshi.fanli.service.inter.taobao.TLJBuyGoodsService;
import com.yeshi.fanli.service.inter.tlj.ConfigTaoLiJinService;
import com.yeshi.fanli.service.inter.tlj.DeviceTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinRecordService;
import com.yeshi.fanli.service.inter.user.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserMoneyExtraService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TaoBaoConstant;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.factory.goods.GoodsDetailVOFactory;
@@ -132,9 +125,6 @@
   @Resource
   private QualityGoodsService qualityGoodsService;
   @Resource
   private DeviceTaoLiJinRecordService deviceTaoLiJinRecordService;
   @Resource
   private JumpDetailV2Service jumpDetailV2Service;
@@ -252,15 +242,14 @@
      BigDecimal lastMonthUse = userTaoLiJinDetailService.countUseMoneyByDate(uid, 4);
      if (lastMonthUse == null || lastMonthUse.compareTo(zero) > 0) {
         lastMonthUse = zero;
      }
      String giveMin = configTaoLiJinService.getValueByKey("give_min_amount");
      }
      String giveMin = configTaoLiJinService.getValueByKey("give_min_amount");
      JSONObject data = new JSONObject();
      data.put("tlj", tlj.setScale(2).toString());
      data.put("giveMin", giveMin);
      data.put("giveTip", "注:赠送推广红包金额至少"+ giveMin +"元");
      data.put("giveTip", "注:赠送推广红包金额至少" + giveMin + "元");
      data.put("helpLink", configTaoLiJinService.getValueByKey("hongbao_help_link"));
      data.put("countShare", countShare);
      data.put("todayWin", todayWin.setScale(2).toString());
@@ -376,146 +365,7 @@
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 红包领取详情
    *
    * @param acceptData
    * @param uid
    * @param type
    * @param out
    */
   @RequestMapping(value = "getHongbaoDetails", method = RequestMethod.POST)
   public void getHongbaoDetails(AcceptData acceptData, Long uid, String type, PrintWriter out) {
      if (StringUtil.isNullOrEmpty(type)) {
         out.print(JsonUtil.loadFalseResult(1, "类型不能为空"));
         return;
      }
      // 用户未登录时 设备领取新红包
      if (uid == null || uid <= 0) {
         BigDecimal money = null;
         DeviceTaoLiJinRecord deviceRecord = deviceTaoLiJinRecordService.getByDevice(acceptData.getDevice());
         if (deviceRecord != null) {
            // 已领取
            money = deviceRecord.getMoney();
         } else {
            String value = configTaoLiJinService.getValueByKey("hongbao_newbies", null);
            if (StringUtil.isNullOrEmpty(value)) {
               out.print(JsonUtil.loadFalseResult(1, "系统红包不存在"));
               return;
            }
            money = new BigDecimal(value);
            deviceTaoLiJinRecordService.save(acceptData.getDevice(), money);
         }
         JSONObject data = new JSONObject();
         data.put("icon", configTaoLiJinService.getValueByKey("taolijin_system_icon", null));
         data.put("title", "新人红包");
         data.put("content", "自购直接抵现,优惠真实可见!");
         data.put("type", 1);
         data.put("money", money.setScale(2).toString());
         data.put("usage", "领取成功,已存入“我的-推广红包”");
         data.put("jumpName", "去使用");
         data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot"));
         data.put("tip", configTaoLiJinService.getValueByKey("hongbao_newbies_tip", null));
         data.put("rules", configTaoLiJinService.getValueByKey("newbies_rules_link", null));
         out.print(JsonUtil.loadTrueResult(data));
         return;
      }
      // 登录用户
      boolean isReceive = false;
      JSONObject data = new JSONObject();
      data.put("icon", configTaoLiJinService.getValueByKey("taolijin_system_icon", null));
      if (type.equals(TaoLiJinOriginEnum.newbiesWin.name())) {
         BigDecimal hasMoney = null;
         UserTaoLiJinOrigin userTaoLiJin = userTaoLiJinOriginService.getByUidAndOrigin(uid, type);
         if (userTaoLiJin != null) { // 已领取
            hasMoney = userTaoLiJin.getMoney();
         } else {
            try {
               UserTaoLiJinOrigin origin = userTaoLiJinOriginService.addNewbiesWinMoney(uid);
               hasMoney = origin.getMoney();
            } catch (UserTaoLiJinOriginException e) {
               out.print(JsonUtil.loadFalseResult(e.getMsg()));
               return;
            }
         }
         data.put("title", "新人红包");
         data.put("content", "自购直接抵现,优惠真实可见!");
         data.put("type", 1);
         data.put("money", hasMoney.setScale(2).toString());
         data.put("usage", "领取成功,已存入“我的-推广红包”");
         data.put("jumpName", "去使用");
         data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot"));
         data.put("tip", configTaoLiJinService.getValueByKey("hongbao_newbies_tip", null));
         data.put("rules", configTaoLiJinService.getValueByKey("newbies_rules_link", null));
      } else if (type.equals(TaoLiJinOriginEnum.rankWin.name())) {
         boolean isRank = false;
         BigDecimal hasMoney = null;
         UserTaoLiJinOrigin userTaoLiJin = userTaoLiJinOriginService.getRankByThisMonth(uid, type);
         if (userTaoLiJin != null) { // 已领取
            isRank = true;
            isReceive = true;
            hasMoney = userTaoLiJin.getMoney();
         } else {
            isRank = false;
            UserRank userRank = userInfoExtraService.gerUserRank(uid);
            if (userRank != null) {
               try {
                  UserTaoLiJinOrigin origin = userTaoLiJinOriginService.addRankWinMoney(uid, userRank);
                  hasMoney = origin.getMoney();
                  isRank = true;
               } catch (UserTaoLiJinOriginException e) {
                  if (e.getCode() != 2) {
                     isRank = false;
                     out.print(JsonUtil.loadFalseResult(e.getMsg()));
                     return;
                  }
               }
            }
         }
         // 等级不足
         if (!isRank) {
            data.put("title", "账户等级福利");
            data.put("content", "推广红包,好友福利!");
            data.put("type", 2);
            data.put("money", "本月账户等级未达到\r\n继续加油");
            data.put("jumpName", "去查看");
            data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("user_rank"));
            data.put("tip", configTaoLiJinService.getValueByKey("hongbao_rank_not_enough_tip", null));
            data.put("rules", configTaoLiJinService.getValueByKey("rank_rules_link", null));
            out.print(JsonUtil.loadTrueResult(data));
            return;
         } else {
            data.put("title", "账户等级福利");
            data.put("content", "推广红包,好友福利!");
            data.put("type", 1);
            data.put("money", hasMoney.setScale(2).toString());
            if (isReceive) {
               data.put("usage", "本月领取,已存入“我的-推广红包”");
            } else {
               data.put("usage", "领取成功,已存入“我的-推广红包”");
            }
            data.put("jumpName", "去使用");
            data.put("jumpDetail", jumpDetailV2Service.getByTypeCache("share_goods_hot"));
            data.put("tip", configTaoLiJinService.getValueByKey("hongbao_rank_tip", null));
            data.put("rules", configTaoLiJinService.getValueByKey("rank_rules_link", null));
         }
      } else {
         out.print(JsonUtil.loadFalseResult(1, "类型不匹配"));
         return;
      }
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 分享爆款商品-限于淘礼金
@@ -604,11 +454,6 @@
    */
   @RequestMapping(value = "getShareGoodsV2", method = RequestMethod.POST)
   public void getShareGoodsV2(AcceptData acceptData, Long uid, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      String day = TimeUtil.getGernalTime(java.lang.System.currentTimeMillis());
      List<ShareHotGoods> listHot = shareHotGoodsService.listByDay(day);
      if (listHot == null) {
@@ -631,6 +476,8 @@
      BigDecimal fanLiRate = hongBaoManageService.getTLJShareRate(System.currentTimeMillis());
      BigDecimal shareRate = hongBaoManageService.getTLJShareRate(System.currentTimeMillis());
       ConfigParamsDTO paramsDTO = new ConfigParamsDTO(fanLiRate, shareRate, Constant.MAX_REWARD_RATE);
      for (ShareHotGoods hotGoods : listHot) {
         TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
         if (taoBaoGoodsBrief == null) {
@@ -646,7 +493,16 @@
            continue;
         }
         GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, fanLiRate, shareRate);
         GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
         // 大于1.6.5的才会显示福利价
         if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
            if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
               detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
            else
               detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
         }
         // 去掉标签
         detailVO.setLabels(null);
@@ -779,6 +635,7 @@
            .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
      BigDecimal proportion = TaoBaoConstant.OWN_BUY_WITHOUT_FANLI_RATE;
      ConfigParamsDTO paramsDTO = new ConfigParamsDTO(proportion, proportion, Constant.MAX_REWARD_RATE);
      for (TLJBuyGoods hotGoods : listHot) {
         TaoBaoGoodsBrief taoBaoGoodsBrief = hotGoods.getGoods();
         if (taoBaoGoodsBrief == null) {
@@ -793,7 +650,16 @@
            continue;
         }
         GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, null, proportion, proportion);
         GoodsDetailVO detailVO = GoodsDetailVOFactory.convertTaoBao(taoBaoGoodsBrief, paramsDTO);
         // 大于1.6.5的才会显示福利价
         if (com.yeshi.fanli.util.VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
            if (detailVO.getCouponPrice() != null && detailVO.getCouponPrice().compareTo(new BigDecimal(0)) > 0)
               detailVO.setCouponPrice(detailVO.getCouponPrice().subtract(spreadMoney));
            else
               detailVO.setZkPrice(detailVO.getZkPrice().subtract(spreadMoney));
         }
         // 去掉标签
         detailVO.setLabels(null);
@@ -834,10 +700,10 @@
      }
      out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 赠送淘礼金
    *
    * @param acceptData
    * @param uid
    * @param amount
@@ -845,17 +711,7 @@
    */
   @RequestMapping(value = "giveTLJ", method = RequestMethod.POST)
   public void giveTLJ(AcceptData acceptData, Long uid, BigDecimal amount, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      try {
         String tips = userTaoLiJinRecordService.giveTaolijin(uid, amount);
         out.print(JsonUtil.loadTrueResult(tips));
      } catch (UserTaoLiJinRecordException e) {
         out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
      }
      out.print(JsonUtil.loadFalseResult(1, "抱歉,推广红包相关功能已下线!"));
   }
}