Browse Source

修改居民端积分排行列表 bug

master
liuchuang 4 years ago
parent
commit
4292a63610
  1. 2
      epdc-cloud-client-yushan
  2. 6
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/dao/UserDao.java
  3. 29
      epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  4. 34
      epdc-cloud-user/src/main/resources/mapper/UserDao.xml

2
epdc-cloud-client-yushan

@ -1 +1 @@
Subproject commit 3127af4b7d515b9466dcaa3ee8e20235b79670ad Subproject commit dd1819833046eac8d1599b1048ff98d6e7561f51

6
epdc-cloud-user/src/main/java/com/elink/esua/epdc/dao/UserDao.java

@ -280,6 +280,8 @@ public interface UserDao extends BaseDao<UserEntity> {
**/ **/
List<UsersGradeRankingDTO> selectListUsersGradeRanking(EpdcAppUserGradeRankingFormDTO formDto); List<UsersGradeRankingDTO> selectListUsersGradeRanking(EpdcAppUserGradeRankingFormDTO formDto);
String selectAllDeptIdByGridId(Long deptId);
/** /**
* 获取当前用户的积分情况 * 获取当前用户的积分情况
* *
@ -306,7 +308,9 @@ public interface UserDao extends BaseDao<UserEntity> {
* @Author zhangyong * @Author zhangyong
* @Date 14:06 2020-06-24 * @Date 14:06 2020-06-24
**/ **/
UsersGradeRankingDTO selectCurrentUserGradeRanking(EpdcAppUserGradeRankingFormDTO formDto); List<UsersGradeRankingDTO> selectCurrentUserGradeRanking(EpdcAppUserGradeRankingFormDTO formDto);
UsersGradeRankingDTO getUserGrade(String userId);
/** /**
* 网格社区排名 * 网格社区排名

29
epdc-cloud-user/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -1609,13 +1609,19 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
rangking.setRank(this.sortListUsersGradeRank(formDto)); rangking.setRank(this.sortListUsersGradeRank(formDto));
// 查询当前用户的排名 // 查询当前用户的排名
UsersGradeRankingDTO userRang = baseDao.selectCurrentUserGradeRanking(formDto); List<UsersGradeRankingDTO> userRang1 = baseDao.selectCurrentUserGradeRanking(formDto);
// 用户产生过积分记录,返回积分排名 UsersGradeRankingDTO userGrade = baseDao.getUserGrade(formDto.getUserId());
if (userRang != null) { UsersGradeRankingDTO rankingDto = new UsersGradeRankingDTO();
userRang.setUserId(formDto.getUserId()); rankingDto.setUserId(formDto.getUserId());
userRang.setNickName(formDto.getNickName()); rankingDto.setNickName(userGrade.getNickName());
rangking.setCurrentUser(userRang); rankingDto.setFaceImg(userGrade.getFaceImg());
for (UsersGradeRankingDTO dto:
userRang1) {
if (dto.getGrade().equals(userGrade.getGrade())) {
rankingDto.setRank(dto.getRank());
}
} }
rangking.setCurrentUser(rankingDto);
return new Result<EpdcAppUserGradeRankingResultDTO>().ok(rangking); return new Result<EpdcAppUserGradeRankingResultDTO>().ok(rangking);
} }
@ -1641,6 +1647,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
List<UsersGradeRankingDTO> listPointsRank; List<UsersGradeRankingDTO> listPointsRank;
listPointsRank = baseDao.selectListUsersGradeRanking(formDto); listPointsRank = baseDao.selectListUsersGradeRanking(formDto);
int sortNumber = NumConstant.ONE; int sortNumber = NumConstant.ONE;
System.out.println(listPointsRank.size());
if (listPointsRank != null) { if (listPointsRank != null) {
for (int i = NumConstant.ONE; i < listPointsRank.size(); i++) { for (int i = NumConstant.ONE; i < listPointsRank.size(); i++) {
listPointsRank.get(0).setRank(NumConstant.ONE); listPointsRank.get(0).setRank(NumConstant.ONE);
@ -1652,6 +1659,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
} }
} }
} }
System.out.println(listPointsRank.size());
return listPointsRank; return listPointsRank;
} }
@ -1669,10 +1677,15 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
// 根据街道查询排行榜 // 根据街道查询排行榜
if (NumConstant.ONE == formDto.getRankingType()) { if (NumConstant.ONE == formDto.getRankingType()) {
Result<List<Long>> deptDto = adminFeignClient.listParentIdByDeptId(deptId, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY); String allDeptIds = baseDao.selectAllDeptIdByGridId(deptId);
if (StringUtils.isNotEmpty(allDeptIds)) {
String[] ids = allDeptIds.split(",");
deptId = Long.valueOf(ids[1]);
}
/*Result<List<Long>> deptDto = adminFeignClient.listParentIdByDeptId(deptId, OrganizationTypeConstant.ORG_TYPE_STREET_PARTY);
if (deptDto.success()) { if (deptDto.success()) {
deptId = deptDto.getData().get(NumConstant.ZERO); deptId = deptDto.getData().get(NumConstant.ZERO);
} }*/
} }
return deptId; return deptId;
} }

34
epdc-cloud-user/src/main/resources/mapper/UserDao.xml

@ -776,6 +776,10 @@ WHERE 1 = 1
WHERE @rank &lt;= #{pageSize} WHERE @rank &lt;= #{pageSize}
</select> </select>
<select id="selectAllDeptIdByGridId" resultType="string">
SELECT ALL_DEPT_IDS FROM epdc_user_grid_relation WHERE DEL_FLAG = '0' AND GRID_ID = #{deptId} LIMIT 1
</select>
<select id="selectListUsersGradeRanking" resultType="com.elink.esua.epdc.dto.epdc.result.UsersGradeRankingDTO"> <select id="selectListUsersGradeRanking" resultType="com.elink.esua.epdc.dto.epdc.result.UsersGradeRankingDTO">
SELECT SELECT
userGrade.userId, userGrade.userId,
@ -830,16 +834,26 @@ WHERE 1 = 1
)temp WHERE temp.userId = #{userId} )temp WHERE temp.userId = #{userId}
</select> </select>
<select id="getUserGrade" resultType="com.elink.esua.epdc.dto.epdc.result.UsersGradeRankingDTO">
SELECT
u.real_name as nickName,
u.face_img,
u.POINTS_TOTLE,
CASE
WHEN IFNULL(u.POINTS_TOTLE,0) &lt;= 0 THEN 0
ELSE
IFNULL(FLOOR(IFNULL(u.POINTS_TOTLE,0) / IFNULL(g.POINTS,0) * IFNULL(g.GRADE,0)),0)
END grade
FROM epdc_user u
LEFT JOIN epdc_points_grade g ON 1=1 AND g.DEL_FLAG = '0'
WHERE u.DEL_FLAG = '0' and u.id = #{userId}
</select>
<select id="selectCurrentUserGradeRanking" resultType="com.elink.esua.epdc.dto.epdc.result.UsersGradeRankingDTO"> <select id="selectCurrentUserGradeRanking" resultType="com.elink.esua.epdc.dto.epdc.result.UsersGradeRankingDTO">
SELECT SELECT
userRanking.rank,
userRanking.faceImg,
userRanking.grade
FROM(
SELECT
(@i:=@i+1) rank, (@i:=@i+1) rank,
tab.USER_ID userId, tab.USER_ID userId,
GROUP_CONCAT(tab.USER_ID SEPARATOR ',') pdtj, -- 有展示上限,所以不用该字段 删选名次 GROUP_CONCAT(tab.USER_ID SEPARATOR ',') pdtj,
tab.POINTS_TOTLE, tab.POINTS_TOTLE,
tab.faceImg, tab.faceImg,
tab.grade tab.grade
@ -847,7 +861,7 @@ WHERE 1 = 1
SELECT SELECT
u.ID USER_ID, u.ID USER_ID,
u.face_img faceImg, u.face_img faceImg,
u.POINTS_TOTLE, IFNULL(u.POINTS_TOTLE,0) POINTS_TOTLE,
CASE CASE
WHEN IFNULL(u.POINTS_TOTLE,0) &lt;= 0 THEN 0 WHEN IFNULL(u.POINTS_TOTLE,0) &lt;= 0 THEN 0
ELSE ELSE
@ -856,12 +870,12 @@ WHERE 1 = 1
FROM epdc_user u FROM epdc_user u
LEFT JOIN epdc_points_grade g ON 1=1 AND g.DEL_FLAG = '0' LEFT JOIN epdc_points_grade g ON 1=1 AND g.DEL_FLAG = '0'
WHERE u.DEL_FLAG = '0' WHERE u.DEL_FLAG = '0'
AND instr(u.PARENT_DEPT_IDS , #{streetId} ) > 0 <if test="streetId != null and streetId != '' ">
AND instr(u.PARENT_DEPT_IDS , #{streetId} ) > 0
</if>
) tab ,(select @i:=0) t1 ) tab ,(select @i:=0) t1
GROUP BY tab.grade GROUP BY tab.grade
ORDER BY tab.grade DESC ORDER BY tab.grade DESC
) userRanking
WHERE userRanking.POINTS_TOTLE = #{pointsTotle}
</select> </select>
<select id="selectListPoints" resultType="com.elink.esua.epdc.dto.UserPointResultDTO"> <select id="selectListPoints" resultType="com.elink.esua.epdc.dto.UserPointResultDTO">

Loading…
Cancel
Save