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;// 奖金
|
}
|