springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticAgeGenderDTO.java
New file @@ -0,0 +1,23 @@ package com.panzhihua.common.model.dtos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; /** * @ClasssName PageBigScreenStatisticPartyOrg * @Description 党员党支部统计信息分页 * @Author cedoo * @Date 2021/6/16 * @Version 1.0 **/ @Data public class BigScreenStatisticAgeGenderDTO { @ApiModelProperty(value = "社区id", hidden = false, example = "2", required = true) @NotNull(message = "社区id不能为空") private Long communityId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticPartyActivityDTO.java
New file @@ -0,0 +1,33 @@ package com.panzhihua.common.model.dtos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; /** * @ClasssName PageBigScreenStatisticPartyOrg * @Description 党员活动统计 * @Author cedoo * @Date 2021/6/16 * @Version 1.0 **/ @Data public class BigScreenStatisticPartyActivityDTO { @ApiModelProperty(value = "社区id", hidden = true, example = "2", required = false) //@NotNull(message = "社区id不能为空") private Long communityId; @ApiModelProperty(value = "类型:3 按月;默认为3", hidden = false, example = "3", required = false) @NotNull(message = "类型不能为空") private Integer type = 3; @ApiModelProperty(value = "日期", hidden = false, example = "2021-06-01", required = true) @NotNull(message = "时间不能为空") @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "时间格式错误") private String date; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/PageBigScreenStatisticPartyOrg.java
New file @@ -0,0 +1,37 @@ package com.panzhihua.common.model.dtos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; /** * @ClasssName PageBigScreenStatisticPartyOrg * @Description 党员党支部统计信息分页 * @Author cedoo * @Date 2021/6/16 * @Version 1.0 **/ @Data public class PageBigScreenStatisticPartyOrg { @ApiModelProperty(value = "分页-当前页数,默认1", example = "1", required = true) @NotNull private Long pageNum = 1L; @ApiModelProperty(value = "分页-每页记录数,默认50", example = "10", required = true) @NotNull private Long pageSize = 50L; @ApiModelProperty(value = "排序字段, 默认id", hidden = true, example = "id") private String sortBy="id"; @ApiModelProperty(value = "排序方式: asc/desc(默认)", hidden = true, example = "desc") @Pattern(regexp = "asc|desc|ASC|DESC") private String order="desc"; @ApiModelProperty(value = "社区id", hidden = true, example = "2") //@NotNull(message = "社区id不能为空") private Long communityId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticAgeGender.java
New file @@ -0,0 +1,41 @@ package com.panzhihua.common.model.vos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClasssName BigScreenStatisticParty * @Description 大屏数据党建统计信息 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Data public class BigScreenStatisticAgeGender { @ApiModelProperty(value = "男性占比") private Double manPer; @ApiModelProperty(value = "男性数量") private Integer manTotal; @ApiModelProperty(value = "女性占比") private Double womenPer; @ApiModelProperty(value = "女性数量") private Integer womeTotal; @ApiModelProperty(value = "年龄段总数 30以下") private Double thirtyPer; @ApiModelProperty(value = "年龄段占比 30以下") private Integer thirtyTotal; @ApiModelProperty(value = "年龄段总数 30-60") private Double sixtyPer; @ApiModelProperty(value = "年龄段占比 30-60") private Integer sixtyTotal; @ApiModelProperty(value = "年龄段总数 60以上") private Double biggerPer; @ApiModelProperty(value = "年龄段占比 60以上") private Integer biggerTotal; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivity.java
New file @@ -0,0 +1,25 @@ package com.panzhihua.common.model.vos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClasssName BigScreenStatisticParty * @Description 大屏数据党建统计信息 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Data public class BigScreenStatisticPartyActivity { @ApiModelProperty(value = "顺序") private Integer idx; @ApiModelProperty(value = "显示名称") private String idxName; @ApiModelProperty(value = "党员数量") private Integer total; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivityTopUser.java
New file @@ -0,0 +1,22 @@ package com.panzhihua.common.model.vos.community.bigscreen; import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @ClasssName BigScreenStatisticParty * @Description 大屏数据党建统计信息 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Data public class BigScreenStatisticPartyActivityTopUser { @ApiModelProperty(value = "党员活动排行榜") List<PartyBuildingMemberVO> topUser; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyBuild.java
New file @@ -0,0 +1,25 @@ package com.panzhihua.common.model.vos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClasssName BigScreenStatisticParty * @Description 大屏数据党建统计信息 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Data public class BigScreenStatisticPartyBuild { @ApiModelProperty(value = "党组织数") private Integer orgCount; @ApiModelProperty(value = "党员数") private Integer memberCount; @ApiModelProperty(value = "党员活动数") private Integer activityCount; @ApiModelProperty(value = "党建宣传数") private Integer dynCount;//党建动态 } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyDyn.java
New file @@ -0,0 +1,23 @@ package com.panzhihua.common.model.vos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClasssName BigScreenStatisticParty * @Description 大屏数据党建统计信息 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Data public class BigScreenStatisticPartyDyn { @ApiModelProperty(value = "党组织ID") private Long id; @ApiModelProperty(value = "党组织名称") private String name; @ApiModelProperty(value = "党员数量") private Integer total; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyMemeber.java
New file @@ -0,0 +1,23 @@ package com.panzhihua.common.model.vos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClasssName BigScreenStatisticParty * @Description 大屏数据党建统计信息 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Data public class BigScreenStatisticPartyMemeber { @ApiModelProperty(value = "党组织ID") private Long id; @ApiModelProperty(value = "党组织名称") private String name; @ApiModelProperty(value = "党员数量") private Integer total; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyOrg.java
New file @@ -0,0 +1,25 @@ package com.panzhihua.common.model.vos.community.bigscreen; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @ClasssName BigScreenStatisticParty * @Description 大屏数据党建统计信息 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Data public class BigScreenStatisticPartyOrg { @ApiModelProperty(value = "党组织ID") private Long id; @ApiModelProperty(value = "党组织名称") private String name; @ApiModelProperty(value = "党员数量") private Integer total; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PagePartyOrganizationMemberVO.java
New file @@ -0,0 +1,27 @@ package com.panzhihua.common.model.vos.community.bigscreen; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 分页党员 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-11-30 16:10 **/ @Data @ApiModel(value = "分页查询党员") public class PagePartyOrganizationMemberVO { @ApiModelProperty(value ="组织ID") private Long orgId; @ApiModelProperty(value ="当前页数,默认1") private Long pageNum = 1L; @ApiModelProperty(value ="每页记录数,默认10") private Long pageSize = 10L; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PartyBuildingMemberVO.java
New file @@ -0,0 +1,44 @@ package com.panzhihua.common.model.vos.community.bigscreen; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @program: springcloud_k8s_panzhihuazhihuishequ * @description: 党建 * @author: huang.hongfa weixin hhf9596 qq 959656820 * @create: 2020-11-30 10:03 **/ @Data @ApiModel("党员活动参加用户排行榜") public class PartyBuildingMemberVO { @ApiModelProperty(value = "党员唯一标识id") private Long id; @ApiModelProperty(value = "党员活动id") private Long activityId; @ApiModelProperty(value = "党员id") private Long memberId; @ApiModelProperty(value = "用户ID") private Long userId; @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "头像图片路径") private String photoPath; @ApiModelProperty(value = "报名时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createAt; @ApiModelProperty(value = "参与活动数量") private Integer total; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyOrganizationVO.java
@@ -17,6 +17,9 @@ @ApiModelProperty(value ="组织名字") private String orgName; @ApiModelProperty(value ="组织ID") private Long orgId; @ApiModelProperty(value ="账户") private String account; @@ -31,4 +34,5 @@ @ApiModelProperty(value ="社区id",hidden = true) private Long communityId; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -5,6 +5,9 @@ import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO; import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO; import com.panzhihua.common.model.dtos.community.*; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO; import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg; import com.panzhihua.common.model.dtos.elders.ComEldersAuthGetResultDTO; import com.panzhihua.common.model.dtos.elders.ComEldersAuthPageDTO; import com.panzhihua.common.model.dtos.elders.ComEldersAuthUserAddAppDTO; @@ -24,6 +27,7 @@ import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.SystemmanagementConfigVO; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.bigscreen.*; import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; @@ -2859,4 +2863,40 @@ @PostMapping("/elders/getAuthHistoryExport") R getAuthHistoryExport(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO); /** * 党员党支部统计信息 * @return */ @PostMapping("/bigscreen/party/orgmembers") R bigscreenPartyOrgmembers(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg); /** * 党员年龄占比、男女占比 * @return */ @PostMapping("/bigscreen/party/ageGender") R<BigScreenStatisticAgeGender> ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO); /** * 党建数据概览 * @return */ @PostMapping("/bigscreen/party/partybuild/{communityId}") R<BigScreenStatisticPartyBuild> bigscreenPartybuild(@PathVariable("communityId") Long communityId); /** * 党员活动参加用户排行榜-TOP3 * @return */ @PostMapping("/bigscreen/party/activitytopuser/{communityId}") R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(@PathVariable("communityId") Long communityId); /** * 党员活动 * @return */ @PostMapping("/bigscreen/party/bigscreenPartyactivity") R<List<BigScreenStatisticPartyActivity>> bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO); } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenApi.java
New file @@ -0,0 +1,101 @@ package com.panzhihua.community_backstage.api; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO; import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.bigscreen.*; import com.panzhihua.common.model.vos.partybuilding.PagePartyOrganizationVO; import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO; import com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * @ClasssName BigScreenApi * @Description TODO * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Slf4j @RestController @RequestMapping("/bigscreen/party") @Api(tags = {"网格大屏/党建"}) public class BigScreenApi extends BaseController { @Resource private PartyBuildingService partyBuildingService; @Resource private CommunityService communityService; @ApiOperation(value = "党员党支部统计信息", response = BigScreenStatisticPartyOrg.class) @PostMapping("/orgmembers") public R<BigScreenStatisticPartyOrg> orgmembers(@Validated @RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg){ pageBigScreenStatisticPartyOrg.setCommunityId(2L); return communityService.bigscreenPartyOrgmembers(pageBigScreenStatisticPartyOrg); } @ApiOperation(value = "党员年龄占比、男女占比", response = BigScreenStatisticAgeGender.class) @GetMapping("/agegender") public R<BigScreenStatisticAgeGender> agegender(){ BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO = new BigScreenStatisticAgeGenderDTO(); bigScreenStatisticAgeGenderDTO.setCommunityId(2L); return communityService.ageGender(bigScreenStatisticAgeGenderDTO); } @ApiOperation(value = "党建数据概览", response = BigScreenStatisticPartyBuild.class) @GetMapping("/partybuild") public R<BigScreenStatisticPartyBuild> partybuild(){ return communityService.bigscreenPartybuild(2L); } @ApiOperation(value = "党员活动(按月-最近12个月)",response = BigScreenStatisticPartyActivity.class) @PostMapping("/partyactivity") public R<List<BigScreenStatisticPartyActivity>> partyactivity(@Validated @RequestBody BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO){ bigScreenStatisticPartyActivityDTO.setCommunityId(2L); return communityService.bigscreenPartyactivity(bigScreenStatisticPartyActivityDTO); } @ApiOperation(value = "党员活动参加用户排行榜-TOP3", response = PartyBuildingMemberVO.class) @GetMapping("/partyactivitytopuser") public R<List<PartyBuildingMemberVO>> partyactivitytopuser(){ return communityService.bigscreenPartyactivitytopuser(2L); } @ApiOperation(value = "党建动态", response = BigScreenStatisticPartyOrg.class) @GetMapping("/partydyn") public R<BigScreenStatisticPartyOrg> partydyn(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) { Integer type = 1; Long communityId = 2L; partyBuildingComPbDynVO.setType(1); partyBuildingComPbDynVO.setCommunityId(communityId); return partyBuildingService.pageYnamic(partyBuildingComPbDynVO); } @ApiOperation(value = "社区党委", response = BigScreenStatisticPartyMemeber.class) @PostMapping("/pagePartyCommittee") public R<BigScreenStatisticPartyMemeber> pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) { partyCommitteeVO.setCommunityId(2L); return partyBuildingService.pagePartyCommittee(partyCommitteeVO); } @ApiOperation(value = "党员分页查询", response = com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO.class) @PostMapping("/pagepartyorganization") public R pagePartyOrganization(@RequestBody PagePartyOrganizationMemberVO pagePartyOrganizationMemberVO) { PagePartyOrganizationVO pagePartyOrganizationVO = new PagePartyOrganizationVO(); BeanUtils.copyProperties(pagePartyOrganizationMemberVO, pagePartyOrganizationVO); pagePartyOrganizationVO.setCommunityId(2L); return partyBuildingService.pagePartyOrganization(pagePartyOrganizationVO); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenApi.java
New file @@ -0,0 +1,84 @@ package com.panzhihua.service_community.api; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO; import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.bigscreen.*; import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO; import com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO; import com.panzhihua.common.service.partybuilding.PartyBuildingService; import com.panzhihua.service_community.service.BigScreenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** * @ClasssName BigScreenApi * @Description 网格大屏/党建 * @Author cedoo * @Date 2021/6/15 * @Version 1.0 **/ @Slf4j @RestController @RequestMapping("/bigscreen/party") public class BigScreenApi extends BaseController { @Resource private BigScreenService bigScreenService; /** * 党员党支部统计信息 * @return */ @PostMapping("/orgmembers") R orgmembers(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg){ return bigScreenService.partyOrgMembers(pageBigScreenStatisticPartyOrg); } /** * 党员年龄占比、男女占比 * @return */ @PostMapping("/ageGender") R<BigScreenStatisticAgeGender> ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO){ return bigScreenService.ageGender(bigScreenStatisticAgeGenderDTO); } /** * 党建数据概览 * @return */ @PostMapping("/partybuild/{communityId}") R<BigScreenStatisticPartyBuild> bigscreenPartybuild(@PathVariable("communityId") Long communityId){ return bigScreenService.bigscreenPartybuild(communityId); } /** * 党员活动参加用户排行榜-TOP3 * @return */ @PostMapping("/activitytopuser/{communityId}") R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(@PathVariable("communityId") Long communityId){ return bigScreenService.bigscreenPartyactivitytopuser(communityId); } /** * 党员活动 * @return */ @PostMapping("/bigscreenPartyactivity") R<List<BigScreenStatisticPartyActivity>> bigscreenPartyactivity(@RequestBody BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO){ return bigScreenService.bigscreenPartyactivity(bigScreenStatisticPartyActivityDTO); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BigScreenDAO.java
New file @@ -0,0 +1,167 @@ package com.panzhihua.service_community.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO; import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg; import com.panzhihua.common.model.vos.community.bigscreen.*; import com.panzhihua.service_community.model.dos.EldersAuthDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; /** * DAO * * @author cedoo email:cedoo(a)qq.com * @version 1.0 * @since 1.0 * */ @Mapper public interface BigScreenDAO extends BaseMapper<EldersAuthDO> { @Select("<script> " + " SELECT org.id, org.name, COUNT(pm.id) as total " + " FROM com_pb_org org " + " LEFT JOIN com_pb_member pm ON org.id = pm.org_id " + " <where> " + " org.status = 1 " + "<if test='pageDTO.communityId != null'>" + " AND org.community_id = #{pageDTO.communityId} " + "</if> " + " </where>" + " GROUP BY org.id " + " ORDER BY org.${pageDTO.sortBy} ${pageDTO.order} " + "</script>") IPage<BigScreenStatisticPartyOrg> partyOrgMembers(Page page, @Param("pageDTO") PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg); @Select("<script> " + " SELECT " + " SUM(CASE lev WHEN '30以内' THEN total ELSE 0 END) as 'thirtyTotal', " + " SUM(CASE lev WHEN '31-60' THEN total ELSE 0 END) as 'sixtyTotal', " + " SUM(CASE lev WHEN '60以上' THEN total ELSE 0 END) as 'biggerTotal' " + " FROM ( " + " SELECT " + " abt.lev, COUNT(abt.id) AS total " + " FROM ( " + " SELECT id_card, id,age, " + " case when age <= 30 then '30以内' " + " when age > 30 and age <= 60 then '31-60' " + " when age > 60 then '60以上' " + " ELSE '' " + " END AS lev " + " FROM ( " + " SELECT id, id_card, ROUND(DATEDIFF(CURDATE(), STR_TO_DATE(SUBSTRING(id_card,7,15), '%Y%m%d'))/365.2422) AS age " + " FROM com_pb_member " + " <where> " + "<if test='queryDTO.communityId != null'> " + " community_id = #{queryDTO.communityId} " + "</if> " + " </where>" + " ) t " + " )abt " + " GROUP BY abt.lev " + " ) t2 " + "</script>") BigScreenStatisticAgeGender age(@Param("queryDTO") BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO); @Select("<script> " + " SELECT " + " SUM(CASE gender WHEN '男' THEN total ELSE 0 END) as 'manTotal', " + " SUM(CASE gender WHEN '女' THEN total ELSE 0 END) as 'womeTotal' " + " FROM ( " + " SELECT CASE WHEN t.sxi = 0 THEN '女' WHEN t.sxi = 1 THEN '男' ELSE '未知' END AS gender, t.total " + " FROM ( " + " SELECT CONVERT(SUBSTRING(id_card,'17',1), UNSIGNED INTEGER)%2 AS sxi, COUNT(id_card) AS total " + " FROM com_pb_member " + " <where> " + "<if test='queryDTO.communityId != null'>" + " community_id = #{queryDTO.communityId} " + "</if> " + " </where>" + " GROUP BY sxi " + " )t " + " ) t2 " + "</script>") BigScreenStatisticAgeGender gender(@Param("queryDTO") BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO); @Select("<script> " + " SELECT \n" + " SUM(CASE TYPE WHEN 1 THEN total ELSE 0 END) as 'orgCount',\n" + " SUM(CASE TYPE WHEN 2 THEN total ELSE 0 END) as 'memberCount',\n" + " SUM(CASE TYPE WHEN 3 THEN total ELSE 0 END) as 'activityCount',\n" + " SUM(CASE TYPE WHEN 4 THEN total ELSE 0 END) as 'dynCount'\n" + " FROM (\n" + " SELECT 1 AS TYPE , COUNT(id) total\n" + " FROM com_pb_org org \n" + " WHERE org.community_id = #{communityId} AND STATUS=1\n" + " UNION ALL \n" + " SELECT 2 AS TYPE , COUNT(id) total\n" + " FROM com_pb_member \n" + " WHERE community_id = #{communityId} AND audit_result = 1\n" + " UNION ALL \n" + " SELECT 3 AS TYPE , COUNT(id) total\n" + " FROM com_pb_activity\n" + " WHERE community_id = #{communityId} AND STATUS IN (2,3,4,5)\n" + " UNION ALL \n" + " SELECT 4 AS TYPE , COUNT(id) total\n" + " FROM com_pb_dyn \n" + " WHERE community_id = #{communityId} AND STATUS = 2\n" + ") t" + "</script>") BigScreenStatisticPartyBuild partybuild(@Param("communityId") Long communityId); @Select("<script> " + " SELECT pm.id, pm.member_id, pm.user_id, pm.name, pm.photo_path, COUNT(pa.id) AS total \n" + " FROM com_pb_activity_member pm LEFT JOIN com_pb_activity pa ON pm.activity_id = pa.id \n" + " WHERE pa.community_id = #{communityId} \n" + " GROUP BY pm.member_id\n" + " ORDER BY total DESC\n" + " LIMIT 3 " + "</script>") List<PartyBuildingMemberVO> bigscreenPartyactivitytopuser(@Param("communityId")Long communityId); @Select("<script> " + " SELECT id AS member_id, user_id, NAME, photo_path, 0 AS total\n" + " FROM com_pb_member\n" + " WHERE community_id=#{communityId}\n" + " ORDER BY join_time DESC \n" + " LIMIT 3 " + "</script>") List<PartyBuildingMemberVO> defaultPartyactivity(@Param("communityId")Long communityId); @Select("<script> " + " SELECT m.idxName, case when d.total IS NOT NULL then d.total ELSE 0 END AS total\n" + " FROM \n" + " (\n" + " SELECT\n" + " DATE_FORMAT(@cdate := date_add( @cdate, INTERVAL - 1 MONTH ),'%Y-%m') as idxName\n" + "FROM\n" + " ( \n" + " SELECT @cdate := date_add(now(), INTERVAL 1 MONTH )\n" + " FROM com_pb_activity LIMIT 12\n" + " )d\n" + " ORDER BY idxName\n" + ")m LEFT JOIN \n" + "(\n" + "SELECT \n" + " date_format(activity_time_begin, '%Y-%m') AS idxName,\n" + " COUNT(id) AS total\n" + " FROM com_pb_activity \n" + " WHERE \n" + " community_id=#{queryDTO.communityId} AND STATUS IN ( 3, 4, 5 ) AND \n" + " activity_time_begin < DATE_FORMAT( DATE_ADD( STR_TO_DATE(#{queryDTO.date}, '%Y-%m-%d'), INTERVAL 1 MONTH ), '%Y-%m-%d' ) AND\n" + " activity_time_begin > DATE_FORMAT( DATE_ADD( STR_TO_DATE(#{queryDTO.date}, '%Y-%m-%d'), INTERVAL - 12 MONTH ), '%Y-%m-%d') \n" + " GROUP BY idxName\n" + " ORDER BY idxName ASC \n" + " ) d ON m.idxName = d.idxName\n" + " ORDER BY m.idxName " + "</script>") List<BigScreenStatisticPartyActivity> partyactivity(@Param("queryDTO")BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenService.java
New file @@ -0,0 +1,50 @@ package com.panzhihua.service_community.service; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO; import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.bigscreen.*; import java.util.List; /** * @ClasssName BigScreenService * @Description TODO * @Author cedoo * @Date 2021/6/16 * @Version 1.0 **/ public interface BigScreenService { /** * 党员党支部统计信息 * @param pageBigScreenStatisticPartyOrg * @return */ R partyOrgMembers(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg); /** * 党员年龄占比、男女占比 * @param bigScreenStatisticAgeGenderDTO * @return */ R<BigScreenStatisticAgeGender> ageGender(BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO); /** * 党建数据概览 * @return */ R<BigScreenStatisticPartyBuild> bigscreenPartybuild(Long communityId); /** * 党员活动参加用户排行榜-TOP3 * @return */ R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(Long communityId); /** * 党员活动 * @return */ R<List<BigScreenStatisticPartyActivity>> bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenServiceImpl.java
New file @@ -0,0 +1,96 @@ package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO; import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO; import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.EldersAuthVO; import com.panzhihua.common.model.vos.community.bigscreen.*; import com.panzhihua.service_community.dao.BigScreenDAO; import com.panzhihua.service_community.service.BigScreenService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** * @ClasssName BigScreenService * @Description TODO * @Author cedoo * @Date 2021/6/16 * @Version 1.0 **/ @Slf4j @Service public class BigScreenServiceImpl implements BigScreenService { @Resource private BigScreenDAO bigScreenDAO; @Override public R partyOrgMembers(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg) { Page page=new Page<>(); page.setSize(pageBigScreenStatisticPartyOrg.getPageSize()); page.setCurrent(pageBigScreenStatisticPartyOrg.getPageNum()); IPage<BigScreenStatisticPartyOrg> rPage = bigScreenDAO.partyOrgMembers(page, pageBigScreenStatisticPartyOrg); return R.ok(rPage); } @Override public R<BigScreenStatisticAgeGender> ageGender(BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO) { BigScreenStatisticAgeGender gender = bigScreenDAO.gender(bigScreenStatisticAgeGenderDTO); BigScreenStatisticAgeGender age = bigScreenDAO.age(bigScreenStatisticAgeGenderDTO); BigScreenStatisticAgeGender ageGender = new BigScreenStatisticAgeGender(); BeanUtils.copyProperties(age, ageGender); ageGender.setManTotal(gender.getManTotal()); ageGender.setWomeTotal(gender.getWomeTotal()); /** * 计算百分比 */ Double manPer = 1.0*ageGender.getManTotal() / (ageGender.getManTotal()+ageGender.getWomeTotal()); Double womenPer = 1.0*ageGender.getWomeTotal() / (ageGender.getManTotal()+ageGender.getWomeTotal()); ageGender.setManPer(manPer); ageGender.setWomenPer(womenPer); Integer memTotal = ageGender.getThirtyTotal() +ageGender.getSixtyTotal()+ ageGender.getBiggerTotal(); Double thrPer = 1.0*ageGender.getThirtyTotal() / memTotal; Double sixPer = 1.0*ageGender.getSixtyTotal() / memTotal; Double biggerPer = 1.0*ageGender.getBiggerTotal() / memTotal; ageGender.setThirtyPer(thrPer); ageGender.setSixtyPer(sixPer); ageGender.setBiggerPer(biggerPer); return R.ok(ageGender); } @Override public R<BigScreenStatisticPartyBuild> bigscreenPartybuild(Long communityId) { return R.ok(bigScreenDAO.partybuild(communityId)); } @Override public R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(Long communityId) { List<PartyBuildingMemberVO> listRt = bigScreenDAO.bigscreenPartyactivitytopuser(communityId); if(listRt==null || listRt.size()< 0){ //选择默认的党员列表 List<PartyBuildingMemberVO> defaultPartyactivity = bigScreenDAO.defaultPartyactivity(communityId); listRt.addAll(defaultPartyactivity); if(listRt.size()>=3) { listRt = listRt.subList(0, 3); } } return R.ok(listRt); } @Override public R<List<BigScreenStatisticPartyActivity>> bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO) { List<BigScreenStatisticPartyActivity> listR = bigScreenDAO.partyactivity(bigScreenStatisticPartyActivityDTO); return R.ok(listR); } } springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberDAO.java
@@ -62,6 +62,9 @@ "<if test='pagePartyOrganizationVO.orgName != null and pagePartyOrganizationVO.orgName != ""'>" + "and o.name like concat(#{pagePartyOrganizationVO.orgName},'%') "+ " </if> " + "<if test='pagePartyOrganizationVO.orgId != null'>" + " and o.id = #{pagePartyOrganizationVO.orgId} "+ " </if> " + "<if test='pagePartyOrganizationVO.account != null and pagePartyOrganizationVO.account != ""'>" + "and u.phone like concat (#{pagePartyOrganizationVO.account},'%')"+ " </if> " +