admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/controller/apph5/AppH5UserRankingsController.java
@@ -1,272 +1,269 @@
package com.yeshi.fanli.controller.apph5;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.annotation.Resource;
import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserRankings;
import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
import com.yeshi.fanli.service.inter.user.UserRankingsService;
import com.yeshi.fanli.util.annotation.RequestNoSignValidate;
import org.yeshi.utils.JsonUtil;
@Controller
@RequestMapping("api/apph5/v1/rewardRank")
public class AppH5UserRankingsController {
   @Resource
   private UserRankingsService userRankingsService;
   @Resource
   private HongBaoService hongBaoService;
   /**
    * 返利券排行榜
    * @param callback
    * @param out
    */
   @RequestNoSignValidate()
   @RequestMapping(value = "getRank")
   public void getRank(String callback, PrintWriter out) {
      try {
         List<UserRankings> userRankingsList = userRankingsService.query(0,   50, null, 1, null, 2);
         if (userRankingsList == null || userRankingsList.size() == 0) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(2, "暂无相关数据")));
            return;
         }
         DecimalFormat format = new DecimalFormat("0.00");
         List<RankInfo> rankingsList = new ArrayList<RankInfo>();
         for (UserRankings userRankings: userRankingsList) {
            RankInfo rankInfo = new RankInfo();
            rankInfo.nickName = userRankings.getNickName();
            rankInfo.portrait = userRankings.getPortrait();
            rankInfo.showId = userRankings.getShowId();
            rankInfo.reward = format.format(userRankings.getTradeReward());
            rankingsList.add(rankInfo);
         }
         Calendar calendar = Calendar.getInstance();
         calendar.add(Calendar.DATE,-1);
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式
         String defaultDate = sdf.format(calendar.getTime());    //格式化前一天
         // 真实用户
         List<HongBao> listHongBao = hongBaoService.listShareAndInviteMoney(0, 50, defaultDate);
         if (listHongBao != null && listHongBao.size() > 0) {
            HongBao hongBao = listHongBao.get(0);
            BigDecimal maxMoney = hongBao.getShareAndInviteMoney();
            UserRankings userRankings = userRankingsList.get(userRankingsList.size()-1);
            BigDecimal mminMoney = userRankings.getTradeReward();
            // 真实数据大于最低金额
            if (maxMoney.compareTo(mminMoney) > 0 ) {
               for (HongBao hb: listHongBao) {
                  BigDecimal rewardMoney = hb.getShareAndInviteMoney();
                  // 奖金高到低排序,不满足结束循环
                  if (rewardMoney.compareTo(mminMoney) <= 0 ) {
                     break;
                  }
                  UserInfo userInfo = hb.getUserInfo();
                  if (userInfo != null) {
                     RankInfo rankInfo = new RankInfo();
                     rankInfo.reward = format.format(rewardMoney);
                     rankInfo.nickName =  userInfo.getNickName();
                     rankInfo.portrait = userInfo.getPortrait();
                     rankInfo.showId = userRankings.getShowId();
                     // 处理id
                     Long id = userInfo.getId();
                     String uid = id + "";
                     String index = uid.substring(0, 1);
                     String end = uid.substring(uid.length()-1, uid.length());
                     rankInfo.showId = index+ "****" + end;
                     rankingsList.add(rankInfo);
                  }
               }
            }
         }
         List<RankInfo> resultList = null;
         List<RankInfo> listSort = listSort(rankingsList);
         if (listSort.size() > 50) {
            resultList = listSort.subList(0, 50);
         } else {
            resultList = listSort;
         }
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("result_list", gson.toJson(resultList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   /**
    * 自购排行榜
    * @param callback
    * @param out
    */
   @RequestNoSignValidate()
   @RequestMapping(value = "getTrade")
   public void getTrade(String callback, PrintWriter out) {
      try {
         List<UserRankings> userRankingsList = userRankingsService.query(0,   30, null, 1, null, 2);
         if (userRankingsList == null || userRankingsList.size() == 0) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无相关数据")));
            return;
         }
         DecimalFormat format = new DecimalFormat("0.00");
         List<RankInfo> rankingsList = new ArrayList<RankInfo>();
         for (UserRankings userRankings: userRankingsList) {
            RankInfo rankInfo = new RankInfo();
            rankInfo.nickName = userRankings.getNickName();
            rankInfo.portrait = userRankings.getPortrait();
            rankInfo.showId = userRankings.getShowId();
            rankInfo.reward = format.format(userRankings.getTradeReward());
            rankingsList.add(rankInfo);
         }
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("result_list", gson.toJson(rankingsList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   /**
    * 分享排行榜
    * @param callback
    * @param out
    */
   @RequestNoSignValidate()
   @RequestMapping(value = "getShare")
   public void getShare(String callback, PrintWriter out) {
      try {
         List<UserRankings> userRankingsList = userRankingsService.query(0,   30, null, null, 1, 4);
         if (userRankingsList == null || userRankingsList.size() == 0) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无相关数据")));
            return;
         }
         DecimalFormat format = new DecimalFormat("0.00");
         List<RankInfo> rankingsList = new ArrayList<RankInfo>();
         for (UserRankings userRankings: userRankingsList) {
            RankInfo rankInfo = new RankInfo();
            rankInfo.nickName = userRankings.getNickName();
            rankInfo.portrait = userRankings.getPortrait();
            rankInfo.showId = userRankings.getShowId();
            rankInfo.reward = format.format(userRankings.getShareReward());
            rankingsList.add(rankInfo);
         }
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("result_list", gson.toJson(rankingsList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   public List<RankInfo> listSort (List<RankInfo> list) {
       Collections.sort(list, new Comparator<RankInfo>(){
               public int compare(RankInfo p1, RankInfo p2) {
                  //按照Person的年龄进行升序排列
                   if(p1.reward.compareTo(p2.reward) < 0){
                       return 1;
                   }
                   if(p1.reward.compareTo(p2.reward) == 0){
                       return 0;
                   }
                   return -1;
               }
           });
      return list;
   }
}
class RankInfo {
   public String nickName;// 昵称
   public String portrait; // 头像
   public String showId; // 展示id
   public String reward;// 奖金
}
package com.yeshi.fanli.controller.apph5;
import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.yeshi.utils.JsonUtil;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserRankings;
import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
import com.yeshi.fanli.service.inter.user.UserRankingsService;
import com.yeshi.fanli.vo.order.HongBaoV2VO;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("api/apph5/v1/rewardRank")
public class AppH5UserRankingsController {
   @Resource
   private UserRankingsService userRankingsService;
   @Resource
   private HongBaoV2CountService hongBaoV2CountService;
   /**
    * 板栗快省排行榜
    * @param callback
    * @param out
    */
   //@RequestNoSignValidate()
   @RequestMapping(value = "getRank")
   public void getRank(String callback, PrintWriter out) {
      try {
         List<UserRankings> userRankingsList = userRankingsService.query(0,   50, null, 1, null, 2);
         if (userRankingsList == null || userRankingsList.size() == 0) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult(2, "暂无相关数据")));
            return;
         }
         DecimalFormat format = new DecimalFormat("0.00");
         List<RankInfo> rankingsList = new ArrayList<RankInfo>();
         for (UserRankings userRankings: userRankingsList) {
            RankInfo rankInfo = new RankInfo();
            rankInfo.nickName = userRankings.getNickName();
            rankInfo.portrait = userRankings.getPortrait();
            rankInfo.showId = userRankings.getShowId();
            rankInfo.reward = format.format(userRankings.getTradeReward());
            rankingsList.add(rankInfo);
         }
         Calendar calendar = Calendar.getInstance();
         calendar.add(Calendar.DATE,-1);
         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //设置时间格式
         String defaultDate = sdf.format(calendar.getTime());    //格式化前一天
         // 真实用户
         List<HongBaoV2VO> listHongBao = hongBaoV2CountService.listShareAndInviteMoney(0, 50, defaultDate);
         if (listHongBao != null && listHongBao.size() > 0) {
            HongBaoV2VO hongBao = listHongBao.get(0);
            BigDecimal maxMoney = hongBao.getTotalMoney();
            UserRankings userRankings = userRankingsList.get(userRankingsList.size()-1);
            BigDecimal mminMoney = userRankings.getTradeReward();
            // 真实数据大于最低金额
            if (maxMoney.compareTo(mminMoney) > 0 ) {
               for (HongBaoV2VO hb: listHongBao) {
                  BigDecimal rewardMoney = hb.getTotalMoney();
                  // 奖金高到低排序,不满足结束循环
                  if (rewardMoney.compareTo(mminMoney) <= 0 ) {
                     break;
                  }
                  UserInfo userInfo = hb.getUserInfo();
                  if (userInfo != null) {
                     RankInfo rankInfo = new RankInfo();
                     rankInfo.reward = format.format(rewardMoney);
                     rankInfo.nickName =  userInfo.getNickName();
                     rankInfo.portrait = userInfo.getPortrait();
                     rankInfo.showId = userRankings.getShowId();
                     // 处理id
                     Long id = userInfo.getId();
                     String uid = id + "";
                     String index = uid.substring(0, 1);
                     String end = uid.substring(uid.length()-1, uid.length());
                     rankInfo.showId = index+ "****" + end;
                     rankingsList.add(rankInfo);
                  }
               }
            }
         }
         List<RankInfo> resultList = null;
         List<RankInfo> listSort = listSort(rankingsList);
         if (listSort.size() > 50) {
            resultList = listSort.subList(0, 50);
         } else {
            resultList = listSort;
         }
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("result_list", gson.toJson(resultList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   /**
    * 自购排行榜
    * @param callback
    * @param out
    */
   //@RequestNoSignValidate()
   @RequestMapping(value = "getTrade")
   public void getTrade(String callback, PrintWriter out) {
      try {
         List<UserRankings> userRankingsList = userRankingsService.query(0,   30, null, 1, null, 2);
         if (userRankingsList == null || userRankingsList.size() == 0) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无相关数据")));
            return;
         }
         DecimalFormat format = new DecimalFormat("0.00");
         List<RankInfo> rankingsList = new ArrayList<RankInfo>();
         for (UserRankings userRankings: userRankingsList) {
            RankInfo rankInfo = new RankInfo();
            rankInfo.nickName = userRankings.getNickName();
            rankInfo.portrait = userRankings.getPortrait();
            rankInfo.showId = userRankings.getShowId();
            rankInfo.reward = format.format(userRankings.getTradeReward());
            rankingsList.add(rankInfo);
         }
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("result_list", gson.toJson(rankingsList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   /**
    * 分享排行榜
    * @param callback
    * @param out
    */
   //@RequestNoSignValidate()
   @RequestMapping(value = "getShare")
   public void getShare(String callback, PrintWriter out) {
      try {
         List<UserRankings> userRankingsList = userRankingsService.query(0,   30, null, null, 1, 4);
         if (userRankingsList == null || userRankingsList.size() == 0) {
            out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("暂无相关数据")));
            return;
         }
         DecimalFormat format = new DecimalFormat("0.00");
         List<RankInfo> rankingsList = new ArrayList<RankInfo>();
         for (UserRankings userRankings: userRankingsList) {
            RankInfo rankInfo = new RankInfo();
            rankInfo.nickName = userRankings.getNickName();
            rankInfo.portrait = userRankings.getPortrait();
            rankInfo.showId = userRankings.getShowId();
            rankInfo.reward = format.format(userRankings.getShareReward());
            rankingsList.add(rankInfo);
         }
         GsonBuilder gsonBuilder = new GsonBuilder();
         gsonBuilder.serializeNulls();
         Gson gson = gsonBuilder.create();
         JSONObject data = new JSONObject();
         data.put("result_list", gson.toJson(rankingsList));
         JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
      } catch (Exception e) {
         JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("查询失败"));
         e.printStackTrace();
      }
   }
   public List<RankInfo> listSort (List<RankInfo> list) {
       Collections.sort(list, new Comparator<RankInfo>(){
               public int compare(RankInfo p1, RankInfo p2) {
                  //按照Person的年龄进行升序排列
                   if(p1.reward.compareTo(p2.reward) < 0){
                       return 1;
                   }
                   if(p1.reward.compareTo(p2.reward) == 0){
                       return 0;
                   }
                   return -1;
               }
           });
      return list;
   }
}
class RankInfo {
   public String nickName;// 昵称
   public String portrait; // 头像
   public String showId; // 展示id
   public String reward;// 奖金
}