admin
2019-11-12 0cf8c0bf5649b0b7269f78f6eae7c09cffea75cd
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java
@@ -26,26 +26,34 @@
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.homemodule.SwiperPicture;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.redpack.RedPackBalance;
import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum;
import com.yeshi.fanli.entity.redpack.RedPackExchange;
import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
import com.yeshi.fanli.entity.redpack.RedPackWinInvite.RedPackWinInviteTypeEnum;
import com.yeshi.fanli.exception.redpack.RedPackBalanceException;
import com.yeshi.fanli.exception.redpack.RedPackExchangeException;
import com.yeshi.fanli.exception.redpack.RedPackGiveRecordException;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.homemodule.SwiperPictureService;
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackConfigService;
import com.yeshi.fanli.service.inter.redpack.RedPackDetailService;
import com.yeshi.fanli.service.inter.redpack.RedPackExchangeService;
import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService;
import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService;
import com.yeshi.fanli.service.inter.redpack.RedPackWinNewUserService;
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.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.UserInviteUtil;
import com.yeshi.fanli.vo.redpack.RedPackDetailVO;
import com.yeshi.fanli.vo.redpack.RedPackWinDetailVO;
import com.yeshi.fanli.vo.redpack.RedPackWinInviteVO;
import net.sf.json.JSONObject;
@@ -62,22 +70,30 @@
   @Resource
   private RedPackDetailService redPackDetailService;
   @Resource
   @Resource
   private RedPackGiveRecordService redPackGiveRecordService;
   @Resource
   @Resource
   private RedPackExchangeService redPackExchangeService;
   @Resource
   @Resource
   private RedPackWinInviteService redPackWinInviteService;
   @Resource
   @Resource
   private RedPackWinNewUserService redPackWinNewUserService;
   @Resource
   private UserInfoService userInfoService;
   @Resource
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private JumpDetailV2Service jumpDetailV2Service;
   @Resource
   private SwiperPictureService swiperPictureService;
   /**
    * 统计
@@ -102,7 +118,14 @@
      BigDecimal yesterdayUse = zero;
      BigDecimal thisMonthUse = zero;
      BigDecimal lastMonthUse = zero;
      BigDecimal balance = redPackBalanceService.getBalance(uid);
      BigDecimal balance = null;
      try {
         balance = redPackBalanceService.getBalance(uid);
      } catch (RedPackBalanceException e) {
         out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
         return;
      }
      if (balance == null) {
         balance = zero;
      } else {
@@ -137,10 +160,10 @@
      tips.add("你也可以选择使用红包,享受给力折扣。");
      String giveMin = redPackConfigService.getValueByKey("give_money_min");
      String giveMax = redPackConfigService.getValueByKey("give_money_max");
      // 正在提现金额
      BigDecimal extractingMoney = redPackExchangeService.countMoneyByUidAndState(uid, RedPackExchange.STATE_INIT);
      JSONObject data = new JSONObject();
      data.put("balance", balance.setScale(2).toString());
      data.put("helpLink", redPackConfigService.getValueByKey("desc_help_link"));
@@ -148,15 +171,15 @@
      data.put("giveMax", giveMax);
      data.put("giveDesc", "注:红包赠送金额至少" + giveMin + "元至多" + giveMax + "元");
      if (extractingMoney != null && extractingMoney.compareTo(zero) > 0)
      if (extractingMoney != null && extractingMoney.compareTo(zero) > 0)
         data.put("extractingInfo", "提现中:¥" + extractingMoney.setScale(2));
      data.put("extractShortage", tips);
      data.put("extractMin", redPackConfigService.getValueByKey("extract_money_min"));
      data.put("extractMax", redPackConfigService.getValueByKey("extract_money_max"));
      data.put("extractBanlenMin", redPackConfigService.getValueByKey("extract_banlen_min"));
      data.put("extractDesc", "注:3个工作日内完成审核,红包提现成功后将会进入到余额。");
      data.put("useLink", redPackConfigService.getValueByKey("use_link"));
      data.put("todayWin", todayWin.setScale(2).toString());
@@ -175,9 +198,12 @@
    * 
    * @param acceptData
    * @param uid
    * @param index      List最末的主键ID
    * @param year       年份
    * @param month      月份
    * @param index
    *            List最末的主键ID
    * @param year
    *            年份
    * @param month
    *            月份
    * @param out
    */
   @RequestMapping(value = "getMoneyDetails")
@@ -243,7 +269,6 @@
         }
      });
      Gson gson = gsonBuilder.create();
      JSONObject data = new JSONObject();
@@ -275,10 +300,9 @@
      }
   }
   /**
    * 转换红包为真实金钱
    *
    * @param acceptData
    * @param uid
    * @param amount
@@ -298,32 +322,33 @@
         out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
      }
   }
   /**
    * 红包邀请进度
    *
    * @param acceptData
    * @param page
    * @param uid
    * @param out
    */
   @RequestMapping(value = "getRewardList", method = RequestMethod.POST)
   public void getRewardList(AcceptData acceptData, Integer page, Long uid, PrintWriter out) {
   @RequestMapping(value = "getRewardList")
   public void getRewardList(AcceptData acceptData, Integer page, Long uid, String callback, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      if (page == null || page < 1) {
         out.print(JsonUtil.loadFalseResult(1, "页码不正确"));
         return;
      }
      List<RedPackWinInviteVO> list = new ArrayList<RedPackWinInviteVO>();
      List<RedPackWinInvite> listRecord = redPackWinInviteService.getRewardList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
      List<RedPackWinInvite> listRecord = redPackWinInviteService.getRewardList((page - 1) * Constant.PAGE_SIZE,
            Constant.PAGE_SIZE, uid);
      if (listRecord != null && !listRecord.isEmpty()) {
         for (RedPackWinInvite record: listRecord) {
         for (RedPackWinInvite record : listRecord) {
            UserInfo user = null;
            RedPackWinInviteVO winVO = new RedPackWinInviteVO();
            RedPackWinInviteTypeEnum type = record.getType();
@@ -339,36 +364,104 @@
            list.add(winVO);
         }
      }
      JSONObject data = new JSONObject();
      data.put("winMoney", redPackWinInviteService.getRewardMoney(uid).setScale(2));
      data.put("count", redPackWinInviteService.countRewardRecord(uid));
       data.put("list", JsonUtil.getApiCommonGson().toJson(list));
       out.print(JsonUtil.loadTrueResult(data));
      data.put("list", JsonUtil.getApiCommonGson().toJson(list));
      if (!StringUtil.isNullOrEmpty(callback)) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
      } else {
         out.print(JsonUtil.loadTrueResult(data));
      }
   }
   /**
    * 用户基础信息
    *
    * @param acceptData
    * @param uid
    * @param out
    */
   @RequestMapping(value = "getBasicInfo", method = RequestMethod.POST)
   public void getBasicInfo(AcceptData acceptData, Long uid, PrintWriter out) {
   @RequestMapping(value = "getBasicInfo")
   public void getBasicInfo(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      JSONObject data = new JSONObject();
      data.put("balance", redPackBalanceService.getBalance(uid));
      try {
         data.put("balance", redPackBalanceService.getBalance(uid));
      } catch (RedPackBalanceException e) {
         out.print(JsonUtil.loadFalseResult(1, e.getMsg()));
         return;
      }
      data.put("ruleLink", redPackConfigService.getValueByKey("invite_reward_rule_link"));
      data.put("shareLink", UserInviteUtil.getShareUrl(uid));
      RedPackBalance redPackBalance = redPackBalanceService.selectByPrimaryKey(uid);
      if (redPackBalance != null && redPackBalance.getState() == RedPackBalance.STATE_LOCKED) {
         data.put("redPackLock", true);
      } else {
         data.put("redPackLock", false);
      }
      UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
      if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
         data.put("inviteCode", userInfoExtra.getInviteCode());
      } else {
         data.put("inviteCode", "");
      }
       out.print(JsonUtil.loadTrueResult(data));
      if (!StringUtil.isNullOrEmpty(callback)) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
      } else
         out.print(JsonUtil.loadTrueResult(data));
   }
   /**
    * 新人红包详情
    *
    * @param acceptData
    * @param uid
    * @param out
    */
   @RequestMapping(value = "getWinDetail", method = RequestMethod.POST)
   public void getWinDetail(AcceptData acceptData, Long uid, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      try {
         RedPackWinDetailVO winDetail = redPackWinNewUserService.receiveReward(uid);
         if (winDetail == null) {
            out.print(JsonUtil.loadFalseResult(1, "红包已被抢光"));
            return;
         }
         winDetail.setLogo(Constant.systemCommonConfig.getDefaultPortrait());
         winDetail.setLogoLight(Constant.systemCommonConfig.getDefaultPortrait());
         JSONObject params = new JSONObject();
         params.put("url", redPackConfigService.getValueByKey("goods_shop_link_h5"));
         winDetail.setParams(params.toString());
         winDetail.setJumpDetail(jumpDetailV2Service.getByTypeCache("web",
               Constant.getPlatformCode(acceptData.getPlatform()), Integer.parseInt(acceptData.getVersion())));
         winDetail.setTips(redPackConfigService.getValueByKey("new_user_win_tips"));
         // 2、顶部轮播图
         List<SwiperPicture> oldtopPicList = swiperPictureService.getByBannerCard("redpack_win_detail_banner");
         List<SwiperPicture> topPicList = new ArrayList<>();
         if (oldtopPicList != null && oldtopPicList.size() > 0)
            topPicList.addAll(oldtopPicList);
         JSONObject data = new JSONObject();
         data.put("detail", JsonUtil.getApiCommonGson().toJson(winDetail));
         data.put("banner", JsonUtil.getApiCommonGson().toJson(topPicList));
         out.print(JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         out.print(JsonUtil.loadFalseResult(1, "红包已被抢光啦"));
      }
   }
}