CeDo
2021-06-16 425559ac7b6133592aed3c6fe1773fbe07aa5a26
add:网格大屏 党建接口
17个文件已添加
3个文件已修改
893 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticAgeGenderDTO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticPartyActivityDTO.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/PageBigScreenStatisticPartyOrg.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticAgeGender.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivity.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivityTopUser.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyBuild.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyDyn.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyMemeber.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyOrg.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PagePartyOrganizationMemberVO.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PartyBuildingMemberVO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyOrganizationVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenApi.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenApi.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BigScreenDAO.java 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenService.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberDAO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 &lt;= 30 then '30以内' " +
            "  when age &gt; 30 and age &lt;= 60 then '31-60' " +
            "  when age &gt; 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 &lt; DATE_FORMAT( DATE_ADD( STR_TO_DATE(#{queryDTO.date}, '%Y-%m-%d'), INTERVAL 1 MONTH ), '%Y-%m-%d' ) AND\n" +
            " activity_time_begin &gt; 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 != &quot;&quot;'>" +
            "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 != &quot;&quot;'>" +
            "and u.phone like concat (#{pagePartyOrganizationVO.account},'%')"+
            " </if> " +