yujian
2019-12-07 8c93d2e3b22ac543f8f94c2cf0eb982258fb708b
fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserAccountControllerV2.java
@@ -1,6 +1,7 @@
package com.yeshi.fanli.controller.client.v2;
import java.io.PrintWriter;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -16,6 +17,12 @@
import org.springframework.web.bind.annotation.RequestMethod;
import org.yeshi.utils.JsonUtil;
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.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.SMSHistory;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -363,10 +370,7 @@
         return;
      }
      //
      String inviteCode = "";
      UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
      if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode()))
         inviteCode = userInfoExtra.getInviteCode();
      String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
      UserVipRateVO vo = new UserVipRateVO();
      vo.setId(uid);
@@ -405,17 +409,15 @@
      if (userVIPInfo != null && userVIPInfo.getState() != null
            && userVIPInfo.getState() == UserVIPInfo.STATE_SUCCESS) { // VIP
         vo.setSuccessTime(TimeUtil.getGernalTime(userVIPInfo.getSuccessTime().getTime(), "yyyy.MM.dd"));
         vo.setConserveMoney(finishMoney.setScale(2));
         vo.setEarnMoney(MoneyBigDecimalUtil.add(rewardShare, rewardInvite).setScale(2));
         vo.setConserveMoney(finishMoney);
         vo.setEarnMoney(MoneyBigDecimalUtil.add(rewardShare, rewardInvite));
      } else {
         BigDecimal rate1 = new BigDecimal(5);
         BigDecimal rate2 = new BigDecimal(12);
         vo.setConserveMoney(
               MoneyBigDecimalUtil.mul2(finishMoney, MoneyBigDecimalUtil.div(rate1, rate2)).setScale(2));
         vo.setEarnMoney(MoneyBigDecimalUtil.mul2(rewardShare, MoneyBigDecimalUtil.div(rate1, rate2)).setScale(2));
         vo.setConserveMoney(MoneyBigDecimalUtil.mul2(finishMoney, MoneyBigDecimalUtil.div(rate1, rate2)));
         vo.setEarnMoney(MoneyBigDecimalUtil.mul2(rewardShare, MoneyBigDecimalUtil.div(rate1, rate2)));
      }
      vo.setFinishMoney(finishMoney.setScale(2));
      vo.setFinishMoney(finishMoney);
      // 会员规则执行时间
      String limtDate = userVipConfigService.getValueByKey("vip_execute_time");
@@ -445,10 +447,26 @@
      vo.setLimitMoney(new BigDecimal(userVipConfigService.getValueByKey("require_fan_money")));
      vo.setLimitgoldCoin(new BigDecimal(userVipConfigService.getValueByKey("require_gold_coin")));
      GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation();
      gsonBuilder.registerTypeAdapter(BigDecimal.class, new JsonSerializer<BigDecimal>() {
         @Override
         public JsonElement serialize(BigDecimal value, Type theType, JsonSerializationContext context) {
            if (value == null) {
               return new JsonPrimitive("");
            } else {
               // 保留2位小数
               value = value.setScale(2);
               return new JsonPrimitive(value.toString());
            }
         }
      });
      Gson gson = gsonBuilder.create();
      if (!StringUtil.isNullOrEmpty(callback)) {
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(vo)));
         out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(gson.toJson(vo))));
      } else {
         out.print(JsonUtil.loadTrueResult(vo));
         out.print(JsonUtil.loadTrueResult(gson.toJson(vo)));
      }
   }