Browse Source

网格排名

feature/syp_points
曲树通 5 years ago
parent
commit
1531f540b9
  1. 67
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserPointResultDTO.java
  2. 12
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java
  3. 10
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java
  4. 15
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
  5. 8
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  6. 91
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

67
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserPointResultDTO.java

@ -0,0 +1,67 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @author: qushutong
* @Date: 2020/8/3 11:00
* @Description: 网格积分排行
*/
@Data
public class UserPointResultDTO implements Serializable {
private static final long serialVersionUID = -816829897801616059L;
/**
* 用户积分
*/
private Integer points;
/**
* 用户累计积分
*/
private Integer pointsTotle;
/**
* 父所有部门
*/
private String parentDeptIds;
/**
* 父所有部门
*/
private String parentDeptNames;
/**
* 所有部门ID
*/
private String allDeptIds;
/**
* 所有部门名称
*/
private String allDeptNames;
}

12
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java

@ -29,6 +29,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.PartyMemberModifyFormDTO; import com.elink.esua.epdc.dto.PartyMemberModifyFormDTO;
import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.UserPointResultDTO;
import com.elink.esua.epdc.dto.UserPointsDTO; import com.elink.esua.epdc.dto.UserPointsDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO;
import com.elink.esua.epdc.enums.AppUserStatesEnum; import com.elink.esua.epdc.enums.AppUserStatesEnum;
@ -306,4 +307,15 @@ public class UserController {
public Result addPerfectPoints(@RequestBody UserDTO dto){ public Result addPerfectPoints(@RequestBody UserDTO dto){
return new Result(); return new Result();
} }
@GetMapping("pointPage")
@DataFilter(tableAlias = "ug3", isPendingCreator = false, deptId = "GRID_ID", prefix = "AND")
public Result<PageData<UserPointResultDTO>> pointPage(@RequestParam Map<String, Object> params) {
PageData<UserPointResultDTO> page = userService.listPoint(params);
return new Result<PageData<UserPointResultDTO>>().ok(page);
}
} }

10
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserDao.java

@ -20,6 +20,7 @@ package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.CachingUserInfoDTO; import com.elink.esua.epdc.dto.CachingUserInfoDTO;
import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.UserPointResultDTO;
import com.elink.esua.epdc.dto.UserPointsDTO; import com.elink.esua.epdc.dto.UserPointsDTO;
import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.dto.epdc.result.*;
@ -279,4 +280,13 @@ public interface UserDao extends BaseDao<UserEntity> {
* @Date 14:06 2020-06-24 * @Date 14:06 2020-06-24
**/ **/
UsersGradeRankingDTO selectCurrentUserGradeRanking(EpdcAppUserGradeRankingFormDTO formDto); UsersGradeRankingDTO selectCurrentUserGradeRanking(EpdcAppUserGradeRankingFormDTO formDto);
/***
* 网格社区排名
* @param params
* @return java.lang.Object
* @author qushutong
* @date 2020/8/3 13:43
*/
List<UserPointResultDTO> selectListPoints(Map<String, Object> params);
} }

15
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java

@ -20,10 +20,7 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CachingUserInfoDTO; import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.PartyMemberModifyFormDTO;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.UserPointsDTO;
import com.elink.esua.epdc.dto.epdc.form.*; import com.elink.esua.epdc.dto.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.entity.UserEntity; import com.elink.esua.epdc.entity.UserEntity;
@ -387,4 +384,14 @@ public interface UserService extends BaseService<UserEntity> {
* @Date 10:59 2020-06-24 * @Date 10:59 2020-06-24
**/ **/
Result<EpdcAppUserGradeRankingResultDTO> listUsersGradeRanking(EpdcAppUserGradeRankingFormDTO formDto); Result<EpdcAppUserGradeRankingResultDTO> listUsersGradeRanking(EpdcAppUserGradeRankingFormDTO formDto);
/***
* 网络积分排名
* @param params
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.UserPointResultDTO>
* @author qushutong
* @date 2020/8/3 13:41
*/
PageData<UserPointResultDTO> listPoint(Map<String, Object> params);
} }

8
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -1319,6 +1319,8 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return new Result<EpdcAppUserGradeRankingResultDTO>().ok(rangking); return new Result<EpdcAppUserGradeRankingResultDTO>().ok(rangking);
} }
/** /**
* 获取排好序 用户等级排行榜数据 * 获取排好序 用户等级排行榜数据
* @param formDto * @param formDto
@ -1344,4 +1346,10 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return listPointsRank; return listPointsRank;
} }
@Override
public PageData<UserPointResultDTO> listPoint(Map<String, Object> params) {
IPage<UserPointResultDTO> iPage = this.getPage(params);
List<UserPointResultDTO> userPointResultDTOS = baseDao.selectListPoints(params);
return new PageData<>(userPointResultDTOS, iPage.getTotal());
}
} }

91
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

@ -833,4 +833,95 @@
) userRanking ) userRanking
WHERE userRanking.POINTS_TOTLE = #{pointsTotle} WHERE userRanking.POINTS_TOTLE = #{pointsTotle}
</select> </select>
<select id="selectListPoints" resultType="com.elink.esua.epdc.dto.UserPointResultDTO">
SELECT
SUM(t0.points) AS points,
SUM(t0.pointsTotle) AS pointsTotle,
t0.ALL_DEPT_IDS,
t0.PARENT_DEPT_IDS,
t0.PARENT_DEPT_NAMES,
<choose>
<when test='type != "" and type != null and type=="1"'>
t0.ALL_DEPT_NAMES as ALL_DEPT_NAMES
</when>
<otherwise>
t0.PARENT_DEPT_NAMES as ALL_DEPT_NAMES
</otherwise>
</choose>
FROM
(
(
SELECT
SUM(u.POINTS) AS points,
SUM(u.POINTS_TOTLE) AS pointsTotle,
u.ALL_DEPT_IDS,
u.ALL_DEPT_NAMES,
u.PARENT_DEPT_IDS,
u.PARENT_DEPT_NAMES,
u.ID
FROM
epdc_user u
WHERE
u.ALL_DEPT_IDS IS NOT NULL
AND TRIM(u.ALL_DEPT_IDS) != ''
AND u.DEL_FLAG = '0'
GROUP BY
u.ALL_DEPT_IDS
ORDER BY
pointsTotle DESC
)
UNION ALL
(
SELECT
SUM(u2.POINTS) AS points,
SUM(u2.POINTS_TOTLE) AS pointsTotle,
ug2.ALL_DEPT_IDS,
ug2.ALL_DEPT_NAMES,
ug2.PARENT_DEPT_IDS,
ug2.PARENT_DEPT_NAMES,
u2.ID
FROM
epdc_user u2
LEFT JOIN (
SELECT
u.ID,
ug.ALL_DEPT_IDS,
ug.ALL_DEPT_NAMES,
ug.PARENT_DEPT_IDS,
ug.PARENT_DEPT_NAMES
FROM
epdc_user u
LEFT JOIN epdc_user_grid_relation ug ON u.ID = ug.USER_ID
AND ug.DEL_FLAG = '0'
WHERE
u.DEL_FLAG = '0'
GROUP BY
u.ID
ORDER BY
ug.CREATED_TIME
) ug2 ON u2.ID = ug2.ID
WHERE
u2.ALL_DEPT_IDS IS NULL
OR TRIM(u2.ALL_DEPT_IDS) = ''
GROUP BY
ug2.ALL_DEPT_IDS
ORDER BY
pointsTotle DESC
)
) t0
LEFT JOIN ( select * from (select * from epdc_user_grid_relation order by CREATED_TIME)t group by t.USER_ID) ug3 ON t0.ID = ug3.USER_ID
where ug3.DEL_FLAG = '0'
GROUP BY
<choose>
<when test='type != "" and type != null and type=="1"'>
t0.ALL_DEPT_IDS
</when>
<otherwise>
t0.PARENT_DEPT_IDS
</otherwise>
</choose>
ORDER BY
points DESC
</select>
</mapper> </mapper>

Loading…
Cancel
Save