diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java index 74a9176a..183cb47b 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java @@ -1487,17 +1487,7 @@ public class AppUserServiceImpl implements AppUserService { formDto.setUserId(userDetail.getUserId()); formDto.setRealName(userDetail.getRealName()); formDto.setPoints(userDetail.getPoints()); - - if (NumConstant.ZERO == formDto.getRankingType()){ - // 根据网格查询排行榜 - formDto.setDeptId(userDetail.getGridId()); - } else if (NumConstant.ONE == formDto.getRankingType()) { - // 根据街道查询排行榜 - Result deptDto = adminFeignClient.getCompleteDept(userDetail.getGridId()); - if (deptDto.success()) { - formDto.setDeptId(deptDto.getData().getStreetId()); - } - } + formDto.setDeptId(userDetail.getGridId()); return userFeignClient.selectListUserPointsRanking(formDto); } diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml index e3f9d538..4930a077 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml @@ -119,12 +119,12 @@ AND en.DEL_FLAG = '0' AND en.NOTICE_RELEASE_STATE = 1 ORDER BY - - en.RELEASE_TIME DESC - - + en.READING_AMOUNT DESC + + en.RELEASE_TIME DESC + LIMIT #{pageIndex},#{pageSize} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserRankingFormDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserRankingFormDTO.java index b4f90303..0051f232 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserRankingFormDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcAppUserRankingFormDTO.java @@ -6,6 +6,7 @@ import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.io.Serializable; +import java.util.List; /** * 移动端接口-用户模块-用户积分排行接口入参 @@ -60,4 +61,9 @@ public class EpdcAppUserRankingFormDTO implements Serializable { * 用户积分 */ private Integer points; + + /** + * 当前部门(网格/街道)下的,所有用户ID + */ + private List allUserIdByDept; } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java index cb3a4041..2d4f35fc 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java @@ -27,7 +27,7 @@ import java.util.List; /** * 网格长与网格关系表 * - * @author work@yujt.net.cn + * @author work@yujt.net.cn * @since v1.0.0 2019-10-23 */ @Mapper @@ -66,4 +66,13 @@ public interface UserGridRelationDao extends BaseDao { * @since 2020/3/7 1:20 */ void updateGridByDeptId(String newDeptName, Long deptId); -} \ No newline at end of file + + /** + * 根据deptId,查询用户网格关系表,有多少用户在同一个网格/街道 + * @param deptId + * @return java.util.List + * @Author zhangyong + * @Date 17:08 2020-06-04 + **/ + List selectListUserIdByDeptId(Long deptId); +} diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java index 7655e329..2c48cd89 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -2,6 +2,7 @@ package com.elink.esua.epdc.feign; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.CompleteDeptDTO; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; @@ -39,4 +40,15 @@ public interface AdminFeignClient { */ @GetMapping("/sys/dept/getParentAndAllDept/{deptId}") Result getParentAndAllDept(@PathVariable("deptId") String deptId); + + /** + * 根据网格ID获取所有上级机构名称和ID + * + * @param gridId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author zhangyong + * @date 2020/06/04 09:31 + */ + @GetMapping("sys/dept/getCompleteDept/{gridId}") + Result getCompleteDept(@PathVariable("gridId") Long gridId); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java index 7ec1c523..726fe0b3 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -3,6 +3,7 @@ package com.elink.esua.epdc.feign.fallback; import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.CompleteDeptDTO; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.feign.AdminFeignClient; import org.springframework.stereotype.Component; @@ -26,4 +27,9 @@ public class AdminFeignClientFallback implements AdminFeignClient { public Result getParentAndAllDept(String depId) { return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getParentAndAllDept", depId); } + + @Override + public Result getCompleteDept(Long gridId) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getCompleteDept", gridId); + } } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java index c4009747..95cae824 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java @@ -188,4 +188,13 @@ public interface UserGridRelationService extends BaseService + * @Author zhangyong + * @Date 17:08 2020-06-04 + **/ + List listUserIdByDeptId(Long deptId); } diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java index 76a97635..04ac388c 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java @@ -233,6 +233,11 @@ public class UserGridRelationServiceImpl extends BaseServiceImpl listUserIdByDeptId(Long deptId) { + return baseDao.selectListUserIdByDeptId(deptId); + } + /** * * 组织机构信息处理 diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java index 431afccc..4ebf39b4 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java @@ -42,13 +42,10 @@ import com.elink.esua.epdc.dao.PartyAuthenticationFailedDao; import com.elink.esua.epdc.dao.PartyMembersDao; import com.elink.esua.epdc.dao.UserAuthenticateHistoryDao; import com.elink.esua.epdc.dao.UserDao; -import com.elink.esua.epdc.dto.CachingUserInfoDTO; -import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; -import com.elink.esua.epdc.dto.UserDTO; +import com.elink.esua.epdc.dto.*; import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserRegistFormDTO; import com.elink.esua.epdc.dto.epdc.result.*; -import com.elink.esua.epdc.dto.UserGridRelationDTO; import com.elink.esua.epdc.dto.epdc.EpdcCompleteAppUserDTO; import com.elink.esua.epdc.dto.epdc.EpdcGridLeaderRegisterDTO; import com.elink.esua.epdc.dto.epdc.form.*; @@ -1019,6 +1016,11 @@ public class UserServiceImpl extends BaseServiceImpl implem public EpdcAppUserRankingResultDTO listUserPointsRanking(EpdcAppUserRankingFormDTO formDto) { int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize(); formDto.setPageIndex(pageIndex); + + // 获取 用户网格关系表 中的 用户id,做网格/街道 积分排行的源用户数据 + List listUser = this.getActRankingUserId(formDto); + formDto.setAllUserIdByDept(listUser); + // 积分相同,排名相同 EpdcAppUserRankingResultDTO rangking = new EpdcAppUserRankingResultDTO(); // 获取排好序的 排行榜数据数据 @@ -1026,12 +1028,36 @@ public class UserServiceImpl extends BaseServiceImpl implem // 查询当前用户积分记录 EpdcAppRankingUserDTO currentUserDTO = baseDao.selectCurrentUserRanking(formDto); // 返回当前登录用户积分排名 - currentUserDTO.setUserId(formDto.getUserId()); - currentUserDTO.setRealName(formDto.getRealName()); - rangking.setCurrentUser(currentUserDTO); + if (null != currentUserDTO) { + currentUserDTO.setUserId(formDto.getUserId()); + currentUserDTO.setRealName(formDto.getRealName()); + rangking.setCurrentUser(currentUserDTO); + } return rangking; } + /** + * 返回本次 积分排行 用户网格关系表中的用户id + * @param formDto + * @return java.util.List + * @Author zhangyong + * @Date 17:25 2020-06-04 + **/ + private List getActRankingUserId(EpdcAppUserRankingFormDTO formDto){ + if (NumConstant.ZERO == formDto.getRankingType()){ + // 根据网格查询排行榜 + formDto.setDeptId(formDto.getDeptId()); + } else if (NumConstant.ONE == formDto.getRankingType()) { + // 根据街道查询排行榜 + Result deptDto = adminFeignClient.getCompleteDept(formDto.getDeptId()); + if (deptDto.success()) { + formDto.setDeptId(deptDto.getData().getStreetId()); + } + } + // 根据从 用户网格关系表中查询到的用户id,做积分排名比较 + List listUser = userGridRelationService.listUserIdByDeptId(formDto.getDeptId()); + return listUser; + } /** * 获取【排好序】的排行榜数据 * @param formDto diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml index aaffdcd6..467c892e 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml @@ -509,8 +509,11 @@ epdc_user u WHERE u.DEL_FLAG = 0 AND u.STATE != 0 - - AND instr(u.ALL_DEPT_IDS , #{deptId} ) > 0 + + and u.ID in + + #{userId} + ORDER BY u.POINTS DESC LIMIT #{pageIndex}, #{pageSize} @@ -530,8 +533,11 @@ epdc_user u ,(select @i:=0) t1 WHERE u.DEL_FLAG = 0 AND u.STATE != 0 - - AND instr(u.ALL_DEPT_IDS , #{deptId} ) > 0 + + and u.ID in + + #{userId} + GROUP BY IFNULL(u.POINTS, 0) ORDER BY IFNULL(u.POINTS, 0) DESC diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml index 722d56e3..7a8ebe91 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml @@ -33,4 +33,13 @@ UPDATE epdc_user_grid_relation SET GRID = #{newDeptName}, UPDATED_TIME = NOW() WHERE GRID_ID = #{deptId} - \ No newline at end of file + +