@ -53,10 +53,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service ;
import org.springframework.stereotype.Service ;
import org.springframework.transaction.annotation.Transactional ;
import org.springframework.transaction.annotation.Transactional ;
import java.util.Arrays ;
import java.util.* ;
import java.util.Date ;
import java.util.List ;
import java.util.Map ;
/ * *
/ * *
* 积分记录表 积分记录表
* 积分记录表 积分记录表
@ -236,21 +233,50 @@ public class PointsLogsServiceImpl extends BaseServiceImpl<PointsLogsDao, Points
public EpdcAppPointsRankingResultDTO listPointsRanking ( EpdcAppPointsRankingFormDTO formDto ) {
public EpdcAppPointsRankingResultDTO listPointsRanking ( EpdcAppPointsRankingFormDTO formDto ) {
int pageIndex = ( formDto . getPageIndex ( ) - NumConstant . ONE ) * formDto . getPageSize ( ) ;
int pageIndex = ( formDto . getPageIndex ( ) - NumConstant . ONE ) * formDto . getPageSize ( ) ;
formDto . setPageIndex ( pageIndex ) ;
formDto . setPageIndex ( pageIndex ) ;
// 积分相同,排名相同
EpdcAppPointsRankingResultDTO rangking = new EpdcAppPointsRankingResultDTO ( ) ;
EpdcAppPointsRankingResultDTO rangking = new EpdcAppPointsRankingResultDTO ( ) ;
rangking . setPointsRankingTopTen ( baseDao . selectListPointsRanking ( formDto ) ) ;
// 获取排好序的 排行榜数据数据
rangking . setRank ( this . sortListPointsRank ( formDto ) ) ;
// 判断当前用户是否产生过积分记录
// 判断当前用户是否产生过积分记录
EpdcAppPointsRankingUserDTO userRang = baseDao . selectUserPointsRanking ( formDto ) ;
EpdcAppPointsRankingUserDTO userRang = baseDao . selectUserPointsRanking ( formDto ) ;
// 用户产生过积分记录,返回积分排名
// 用户产生过积分记录,返回积分排名
if ( userRang ! = null ) {
if ( userRang ! = null ) {
rangking . setPointsRankingUser ( userRang ) ;
userRang . setUserId ( formDto . getUserId ( ) ) ;
userRang . setNickName ( formDto . getNickName ( ) ) ;
rangking . setCurrentUser ( userRang ) ;
} else {
} else {
// 未产生过积分排名 总排名+1
// 未产生过积分排名 总排名+1
rangking . setPointsRanking User ( this . noPointsRecordIsUserRanking ( formDto ) ) ;
rangking . setCurrent User ( this . noPointsRecordIsUserRanking ( formDto ) ) ;
}
}
return rangking ;
return rangking ;
}
}
/ * *
* 获取 【 排好序 】 的排行榜数据
* @param formDto
* @return java . util . List < com . elink . esua . epdc . dto . result . EpdcAppPointsRankingTopTenDTO >
* @Author zhangyong
* @Date 16 : 09 2020 - 05 - 13
* * /
private List < EpdcAppPointsRankingTopTenDTO > sortListPointsRank ( EpdcAppPointsRankingFormDTO formDto ) {
List < EpdcAppPointsRankingTopTenDTO > listPointsRank = new ArrayList < > ( ) ;
listPointsRank = baseDao . selectListPointsRanking ( formDto ) ;
int sortNumber = 1 ;
if ( listPointsRank ! = null ) {
for ( int i = 1 ; i < listPointsRank . size ( ) ; i + + ) {
listPointsRank . get ( 0 ) . setRank ( NumConstant . ONE ) ;
if ( listPointsRank . get ( i - NumConstant . ONE ) . getPoints ( ) . intValue ( ) = = listPointsRank . get ( i ) . getPoints ( ) . intValue ( ) ) {
listPointsRank . get ( i ) . setRank ( sortNumber ) ;
} else {
sortNumber = sortNumber + NumConstant . ONE ;
listPointsRank . get ( i ) . setRank ( sortNumber ) ;
}
}
}
return listPointsRank ;
}
/ * *
/ * *
* 查询积分排行接口 ( 0 周排行 、 1 月排行 ) 如果没有当前登录用户的积分记录 , 返回 处理 ( 总排名 + 1 ) 过的排名信息
* 查询积分排行接口 ( 0 周排行 、 1 月排行 ) 如果没有当前登录用户的积分记录 , 返回 处理 ( 总排名 + 1 ) 过的排名信息
* @param formDto
* @param formDto