yujian
2019-12-19 626d711cb15896055c13fe344eb7fcc824589715
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/RedPackControllerV2.java
@@ -26,9 +26,8 @@
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.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
import com.yeshi.fanli.entity.redpack.RedPackDetail.RedPackDetailTypeEnum;
import com.yeshi.fanli.entity.redpack.RedPackExchange;
import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
@@ -41,18 +40,20 @@
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.RedPackForbidService;
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.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
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 com.yeshi.fanli.vo.redpack.RedPackWinProgressVO;
import net.sf.json.JSONObject;
@@ -77,22 +78,29 @@
   @Resource
   private RedPackWinInviteService redPackWinInviteService;
   @Resource
   private RedPackWinNewUserService redPackWinNewUserService;
   @Resource
   private UserInfoService userInfoService;
   @Resource
   private UserInfoExtraService userInfoExtraService;
   @Resource
   private JumpDetailV2Service jumpDetailV2Service;
   @Resource
   private SwiperPictureService swiperPictureService;
   @Resource
   private UserSystemCouponService userSystemCouponService;
   @Resource
   private RedPackForbidService redPackForbidService;
   @Resource
   private ThreeSaleSerivce threeSaleSerivce;
   /**
    * 统计
    * 
@@ -117,6 +125,7 @@
      BigDecimal thisMonthUse = zero;
      BigDecimal lastMonthUse = zero;
      BigDecimal balance = redPackBalanceService.getBalance(uid);
      ;
      if (balance == null) {
         balance = zero;
      } else {
@@ -189,12 +198,9 @@
    * 
    * @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")
@@ -377,67 +383,111 @@
   @RequestMapping(value = "getBasicInfo")
   public void getBasicInfo(AcceptData acceptData, Long uid, String callback, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult(1, "用户未登录"));
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      JSONObject data = new JSONObject();
      data.put("balance", redPackBalanceService.getBalance(uid));
      data.put("ruleLink", redPackConfigService.getValueByKey("invite_reward_rule_link"));
      data.put("shareLink", UserInviteUtil.getShareUrl(uid));
      data.put("redPackLock", redPackForbidService.verifyForbid(uid));
      UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
      if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
         data.put("inviteCode", userInfoExtra.getInviteCode());
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      if ( !StringUtil.isNullOrEmpty(inviteCode)) {
         data.put("inviteCode", inviteCode);
      } else {
         data.put("inviteCode", "");
      }
      // 赠送免单券
      long freeCouponCount = userSystemCouponService.countGiveFreeCoupon(uid);
      // 奖励券
      long rewardCouponCount = userSystemCouponService.countUsableRewardCoupon(uid);
      data.put("freeCouponCount", freeCouponCount);
      data.put("rewardCouponCount", rewardCouponCount);
      if (!StringUtil.isNullOrEmpty(callback)) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
      } else
      } else {
         out.print(JsonUtil.loadTrueResult(data));
      }
   }
   /**
    *  该用户邀请奖金榜
    *
    * @param acceptData
    * @param uid  下线UID
    * @param out
    */
   @RequestMapping(value = "getInviteReward")
   public void getInviteReward(AcceptData acceptData,Integer page, Long uid, String callback, PrintWriter out) {
      if (uid == null || uid <= 0) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "用户未登录"));
         return;
      }
      if (page == null || page < 1)
         page = 1;
      List<RedPackWinProgressVO> listVO = new ArrayList<RedPackWinProgressVO>();
      List<RedPackWinInvite> list = redPackWinInviteService.getWinTopListByBossId(page, Constant.PAGE_SIZE, uid);
      if (list != null) {
         for (RedPackWinInvite win: list) {
            ThreeSale threeSale = threeSaleSerivce.getNearRelationByBossIdAndWorkerId(uid, win.getTeamUid());
            if (threeSale == null)
               continue;
            UserInfo userInfo = userInfoService.selectByPKey(win.getTeamUid());
            if (userInfo == null)
               continue;
            RedPackWinProgressVO progressVO = new RedPackWinProgressVO();
            progressVO.setUid(userInfo.getId());
            progressVO.setName(userInfo.getNickName());
            progressVO.setPortrait(userInfo.getPortrait());
            progressVO.setMoney(win.getMoney().setScale(2).toString());
            progressVO.setTime("邀请:" + TimeUtil.formatDate(threeSale.getSucceedTime()));
            listVO.add(progressVO);
         }
      }
      JSONObject data = new JSONObject();
      data.put("list", listVO);
      data.put("count", redPackWinInviteService.countWinTopListByBossId(uid));
      if (!StringUtil.isNullOrEmpty(callback)) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
      } else {
         out.print(JsonUtil.loadTrueResult(data));
      }
   }
   
   
   /**
    * 新人红包详情
    *  该用户邀请进度
    *
    * @param acceptData
    * @param uid
    * @param tid  下线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, "用户未登录"));
   @RequestMapping(value = "getInviteProgress")
   public void getInviteProgress(AcceptData acceptData, Long uid, Long tid, String callback, PrintWriter out) {
      if (uid == null || uid <= 0 || tid == null || tid <= 0) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "传递参数缺失"));
         return;
      }
      
      try {
         RedPackWinDetailVO winDetail = redPackWinNewUserService.receiveReward(uid);
         if (winDetail == null) {
            out.print(JsonUtil.loadFalseResult(1, "红包已被抢光"));
            return;
         }
         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("index_top");
         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, "红包已被抢光啦"));
      JSONObject data = new JSONObject();
      data.put("list", redPackWinInviteService.getInviteProgressByWorkerId(uid, tid));
      data.put("num", redPackWinInviteService.countTeamNumByTid(uid, tid));
      if (!StringUtil.isNullOrEmpty(callback)) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data)));
      } else {
         out.print(JsonUtil.loadTrueResult(data));
      }
   }
}