admin
2019-11-28 18ef3cfe9992b3c1663c7bccb45279a4c6732245
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
@@ -1,6 +1,9 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -13,11 +16,15 @@
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.SMSHistory;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
import com.yeshi.fanli.entity.push.DeviceActive;
import com.yeshi.fanli.entity.shop.BanLiShopOrder;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.homemodule.HomeNavbarUserService;
import com.yeshi.fanli.service.inter.money.UserMoneyService;
import com.yeshi.fanli.service.inter.order.LostOrderService;
@@ -26,6 +33,7 @@
import com.yeshi.fanli.service.inter.push.DeviceTokenHWService;
import com.yeshi.fanli.service.inter.push.DeviceTokenOPPOService;
import com.yeshi.fanli.service.inter.push.DeviceTokenVIVOService;
import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.user.BindRemindService;
@@ -40,8 +48,11 @@
import com.yeshi.fanli.service.inter.user.UserInfoService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
@@ -134,7 +145,22 @@
   @Resource
   private BindRemindService bindRemindService;
   @Resource
   private UserVIPInfoService userVIPInfoService;
   @Resource
   private HongBaoV2CountService hongBaoV2CountService;
   @Resource
   private IntegralDetailService integralDetailService;
   @Resource
   private BanLiShopOrderService banLiShopOrderService;
   @Resource
   private ConfigService configService;
   /**
    * 新版登录 V1.5.3
    * 
@@ -302,4 +328,81 @@
      out.print(JsonUtil.loadTrueResult("记录成功"));
   }
   /**
    * 获取vip信息
    * @param acceptData
    * @param uid
    * @param out
    */
   @RequestMapping(value = "getVIPInfo")
   public void getVIPInfo(AcceptData acceptData, Long uid, PrintWriter out) {
      if (uid == null || uid <= 0) {
         out.print(JsonUtil.loadFalseResult("用户id为空"));
         return;
      }
      UserInfo userInfo = userInfoService.selectByPKey(uid);
      if (userInfo == null) {
         out.print(JsonUtil.loadFalseResult("该用户不存在"));
         return;
      }
      JSONObject data = new JSONObject();
      data.put("id", uid);
      data.put("nickName", userInfo.getNickName());
      data.put("portrait", userInfo.getPortrait());
      UserVIPInfo userVIPInfo = userVIPInfoService.selectByUid(uid);
      boolean vip = false;
      if (userVIPInfo != null && userVIPInfo.getState() != null
            && userVIPInfo.getState() == UserVIPInfo.STATE_SUCCESS) {
         vip = true;
         data.put("applyTime", userVIPInfo.getSuccessTime());
      }
      data.put("vip", vip);
      // 省钱 -自购产生返利
      BigDecimal rewardPurchase = hongBaoV2CountService.getRewardMoneyBySelf(uid);
      data.put("rurchaseReward", rewardPurchase.setScale(2));
      BigDecimal conserveMoney = rewardPurchase;
      if (!vip) { // 少省钱:  自购产生返利  * 5/12
         BigDecimal rate1 = new BigDecimal(5);
         BigDecimal rate2 = new BigDecimal(12);
         conserveMoney = MoneyBigDecimalUtil.mul2(rewardPurchase,  MoneyBigDecimalUtil.div(rate1, rate2));
      }
      data.put("conserveMoney", conserveMoney.setScale(2));
      // 分享赚
      BigDecimal rewardShare = hongBaoV2CountService.getRewardMoneyByShare(uid);
      // 邀请赚
      BigDecimal rewardInvite = hongBaoV2CountService.getRewardMoneyByInvite(uid);
      BigDecimal earnMoney = rewardShare;
      if (vip) { // 赚钱=分享+邀请
         earnMoney = MoneyBigDecimalUtil.add(rewardShare, rewardInvite );
      } else { // 少赚钱: 分享赚* 5/12
         BigDecimal rate1 = new BigDecimal(5);
         BigDecimal rate2 = new BigDecimal(12);
         earnMoney = MoneyBigDecimalUtil.mul2(rewardShare,  MoneyBigDecimalUtil.div(rate1, rate2));
      }
      data.put("earnMoney", earnMoney.setScale(2));
      // 注:1.有效一级队员定义:2019年1月1日起,自购或分享1笔且付款总金额不小于1元(退款为失效);
      long teamNum = hongBaoV2CountService.countValidOrderTeamUserByUid(uid, "2019-01-01", new BigDecimal(1));
      data.put("teamNum", teamNum);
      // 累计金币
      BigDecimal goldCoin = integralDetailService.getCumulativeMoney(uid);
      data.put("goldCoin", goldCoin.setScale(0));
      // 帮助链接
      data.put("helpLink", configService.get("help_link_vip_info"));
      // 使用红包次数
      List<Integer> list = new ArrayList<Integer>();
      list.add(BanLiShopOrder.STATE_SUCCESS);
      data.put("shopNum", banLiShopOrderService.countByUidAndState(uid, list));
      out.print(JsonUtil.loadTrueResult(data));
   }
}