Browse Source

社群排行榜后台数据初始化

dev
liuchuang 6 years ago
parent
commit
8648b20d3a
  1. 27
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupActivityDTO.java
  2. 29
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupMemberDTO.java
  3. 32
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/GroupController.java
  4. 26
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/dao/GroupDao.java
  5. 22
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java
  6. 14
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java
  7. 74
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml

27
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupActivityDTO.java

@ -0,0 +1,27 @@
package com.elink.esua.epdc.dto.group;
import lombok.Data;
import java.io.Serializable;
/**
*
* 社群排行榜-活跃度
*
* @Authorliuchuang
* @Date2019/11/12 16:05
*/
@Data
public class GroupActivityDTO implements Serializable {
private static final long serialVersionUID = -3033977017133093569L;
/**
* 社群名称
*/
private String groupName;
/**
* 所属网格
*/
private String ownGrid;
}

29
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupMemberDTO.java

@ -0,0 +1,29 @@
package com.elink.esua.epdc.dto.group;
import lombok.Data;
import java.io.Serializable;
/**
* @Authorliuchuang
* @Date2019/11/12 16:07
*/
@Data
public class GroupMemberDTO implements Serializable {
private static final long serialVersionUID = 5630344874027207828L;
/**
* 社群名称
*/
private String groupName;
/**
* 群成员数量
*/
private Integer memberNum;
/**
* 所属网格
*/
private String ownGrid;
}

32
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/GroupController.java

@ -149,4 +149,36 @@ public class GroupController {
return new Result<List<GroupListDTO>>().ok(data);
}
/**
*
* 排行榜-活跃度
*
* @params [params]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.group.GroupActivityDTO>>
* @author liuchuang
* @since 2019/11/12 16:10
*/
@GetMapping("activity")
@DataFilter(tableAlias = "gp", deptId = "grid_id", prefix = "AND", isPendingCreator = false)
public Result<PageData<GroupActivityDTO>> pageOfActivity(@RequestParam Map<String, Object> params) {
PageData<GroupActivityDTO> page = groupService.listGroupOrderByActivity(params);
return new Result<PageData<GroupActivityDTO>>().ok(page);
}
/**
*
* 排行榜-群成员数量
*
* @params [params]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.group.GroupMemberDTO>>
* @author liuchuang
* @since 2019/11/12 16:11
*/
@GetMapping("member")
@DataFilter(tableAlias = "gp", deptId = "grid_id", prefix = "AND", isPendingCreator = false)
public Result<PageData<GroupMemberDTO>> pageOfMember(@RequestParam Map<String, Object> params) {
PageData<GroupMemberDTO> page = groupService.listGroupOrderByMember(params);
return new Result<PageData<GroupMemberDTO>>().ok(page);
}
}

26
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/dao/GroupDao.java

@ -18,9 +18,7 @@
package com.elink.esua.epdc.modules.group.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.group.GroupDetailDTO;
import com.elink.esua.epdc.dto.group.GroupListDTO;
import com.elink.esua.epdc.dto.group.GroupManagementDTO;
import com.elink.esua.epdc.dto.group.*;
import com.elink.esua.epdc.dto.group.form.GroupDetailForMobileEndFormDTO;
import com.elink.esua.epdc.dto.group.form.GroupsOfMineFormDTO;
import com.elink.esua.epdc.dto.group.result.GroupDetailForMobileEndResultDTO;
@ -117,5 +115,27 @@ public interface GroupDao extends BaseDao<GroupEntity> {
* @since 2019/11/12 9:35
*/
List<GroupListDTO> selectListOfGroupByGridId(Long deptId);
/**
*
* 排行榜-活跃度
*
* @params [params]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.group.GroupActivityDTO>
* @author liuchuang
* @since 2019/11/12 16:14
*/
List<GroupActivityDTO> selectListOfGroupOrderByActivity(Map<String, Object> params);
/**
*
* 排行榜-群成员数量
*
* @params [params]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.group.GroupMemberDTO>
* @author liuchuang
* @since 2019/11/12 16:14
*/
List<GroupMemberDTO> selectListOfGroupOrderByMember(Map<String, Object> params);
}

22
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java

@ -228,4 +228,26 @@ public interface GroupService extends BaseService<GroupEntity> {
*/
List<GroupListDTO> listOfGroupByGridId(Long deptId);
/**
*
* 排行榜-活跃度
*
* @params [params]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.group.GroupActivityDTO>
* @author liuchuang
* @since 2019/11/12 16:14
*/
PageData<GroupActivityDTO> listGroupOrderByActivity(Map<String, Object> params);
/**
*
* 排行榜-群成员数量
*
* @params [params]
* @return com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.group.GroupMemberDTO>
* @author liuchuang
* @since 2019/11/12 16:14
*/
PageData<GroupMemberDTO> listGroupOrderByMember(Map<String, Object> params);
}

14
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java

@ -311,4 +311,18 @@ public class GroupServiceImpl extends BaseServiceImpl<GroupDao, GroupEntity> imp
public List<GroupListDTO> listOfGroupByGridId(Long deptId) {
return baseDao.selectListOfGroupByGridId(deptId);
}
@Override
public PageData<GroupActivityDTO> listGroupOrderByActivity(Map<String, Object> params) {
IPage<GroupActivityDTO> page = getPage(params);
List<GroupActivityDTO> list = baseDao.selectListOfGroupOrderByActivity(params);
return new PageData<>(list, page.getTotal());
}
@Override
public PageData<GroupMemberDTO> listGroupOrderByMember(Map<String, Object> params) {
IPage<GroupMemberDTO> page = getPage(params);
List<GroupMemberDTO> list = baseDao.selectListOfGroupOrderByMember(params);
return new PageData<>(list, page.getTotal());
}
}

74
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml

@ -176,5 +176,79 @@
AND GRID_ID = #{deptId}
</select>
<select id="selectListOfGroupOrderByActivity" resultType="com.elink.esua.epdc.dto.group.GroupActivityDTO">
SELECT
gp.GROUP_NAME,
CONCAT( gp.AREA, gp.STREET, gp.COMMUNITY, gp.GRID ) AS ownGrid
FROM
epdc_group gp
LEFT JOIN (
SELECT
tc.GROUP_ID,
( tc.COMMENT_NUM + tc.BROWSE_NUM + SUM( tcm.LIKE_COUNT ) + SUM( tcm.UN_LIKE_COUNT ) ) AS attitudeNum
FROM
epdc_topic tc
LEFT JOIN epdc_topic_comment tcm ON tc.ID = tcm.TOPIC_ID
AND tcm.DEL_FLAG = '0'
WHERE
tc.DEL_FLAG = '0'
GROUP BY
tc.ID
) tmp ON gp.ID = tmp.GROUP_ID
WHERE
gp.DEL_FLAG = '0'
AND gp.STATE IN ( 10, 15 )
<if test="gridId != null and gridId != ''">
AND gp.GRID_ID = #{gridId}
</if>
<if test="streetId != null and streetId != ''">
AND gp.STREET_ID = #{streetId}
</if>
<if test="communityId != null and communityId != ''">
AND gp.COMMUNITY_ID = #{communityId}
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( gp.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
GROUP BY
gp.ID
ORDER BY
SUM( tmp.attitudeNum ) DESC,
gp.CREATED_TIME DESC
</select>
<select id="selectListOfGroupOrderByMember" resultType="com.elink.esua.epdc.dto.group.GroupMemberDTO">
SELECT
gp.GROUP_NAME,
CASE
WHEN COUNT( up.ID ) IS NULL THEN
0 ELSE COUNT( up.ID ) END AS memberNum,
CONCAT( gp.AREA, gp.STREET, gp.COMMUNITY, gp.GRID ) AS ownGrid
FROM
epdc_group gp
LEFT JOIN epdc_user_group up ON gp.ID = up.GROUP_ID
AND up.DEL_FLAG = '0'
AND up.STATE = 10
WHERE
gp.DEL_FLAG = '0'
AND gp.STATE IN ( 10, 15 )
<if test="gridId != null and gridId != ''">
AND gp.GRID_ID = #{gridId}
</if>
<if test="streetId != null and streetId != ''">
AND gp.STREET_ID = #{streetId}
</if>
<if test="communityId != null and communityId != ''">
AND gp.COMMUNITY_ID = #{communityId}
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( gp.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
GROUP BY
gp.ID
ORDER BY
memberNum DESC,
gp.CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save