CeDo
2021-04-14 7bc19ee6b21131ec01f00a0379d5c35c03760fd6
社区问卷调查 分用户类型查询 列表
10个文件已修改
160 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireDTO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListVo.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ParammeterInterceptor.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java
@@ -33,10 +33,29 @@
    @Resource
    private CommunityService communityService;
    @ApiOperation(value = "分页查询调查问卷", response = ComActQuestnaireVO.class)
    @PostMapping("/page")
    public R page(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
    @ApiOperation(value = "分页查询登录用户调查问卷", response = ComActQuestnaireVO.class)
    @PostMapping("/pageUser")
    public R pageUser(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        Integer isPartymember = loginUserInfo.getIsPartymember();
        Integer isVolunteer = loginUserInfo.getIsVolunteer();
        pageQuestnaireDTO.setForParty(1 == isPartymember);
        pageQuestnaireDTO.setForVolunteer(1 == isVolunteer);
        return communityService.pageQuestnaire(pageQuestnaireDTO, loginUserInfo.getCommunityId());
    }
    @ApiOperation(value = "分页查询社区调查问卷", response = ComActQuestnaireVO.class)
    @PostMapping("/pageVolunteer")
    public R pageVolunteer(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if(loginUserInfo.getIsVolunteer()!=1){
            return R.fail("用户不是社区志愿者!");
        }
        pageQuestnaireDTO.setForMasses(true);
        pageQuestnaireDTO.setForVolunteer(true);
        pageQuestnaireDTO.setForParty(true);
        return communityService.pageQuestnaire(pageQuestnaireDTO, loginUserInfo.getCommunityId());
    }
@@ -77,7 +96,7 @@
    @ApiOperation(value = "编辑问卷")
    @PostMapping("/edit")
    public R eidtQuestnaire(@RequestBody QuestnaireVO questnaireVO) {
    public R editQuestnaire(@RequestBody QuestnaireVO questnaireVO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        return communityService.editQuestnaire(questnaireVO);
    }
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireDTO.java
@@ -28,9 +28,11 @@
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize;
    @ApiModelProperty("提供居民")
    private Boolean forMasses;
    private Boolean forMasses=false;
    @ApiModelProperty("提供党员")
    private Boolean forParty;
    private Boolean forParty=false;
    @ApiModelProperty("提供志愿者")
    private Boolean forVolunteer;
    private Boolean forVolunteer=false;
    @ApiModelProperty("社区ID")
    private Long communityId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java
@@ -21,4 +21,6 @@
    private String userName;
    @ApiModelProperty("创建时间")
    private String createAt;
    @ApiModelProperty("选项类型 0 固定选项 1 自定义选项")
    private Integer type;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListVo.java
@@ -6,6 +6,10 @@
@Data
public class QuestnaireListVo {
    @ApiModelProperty("id")
    private String id;
    @ApiModelProperty("标题")
    private String title;
@@ -18,12 +22,13 @@
    @ApiModelProperty("发布人")
    private String createBy;
    @ApiModelProperty("发布人姓名")
    private String createUser;
    @ApiModelProperty("发布时间")
    private Data createAt;
    @ApiModelProperty("是否填写")
    @ApiModelProperty("是否已回答")
    private Boolean answer;
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
@@ -59,6 +59,12 @@
    @PostMapping("/page")
    public R page(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if(loginUserInfo.getIsVolunteer()!=1){
            return R.fail("用户不是社区志愿者!");
        }
        pageQuestnaireDTO.setForMasses(true);
        pageQuestnaireDTO.setForVolunteer(true);
        pageQuestnaireDTO.setForParty(true);
        return communityService.pageQuestnaire(pageQuestnaireDTO, loginUserInfo.getCommunityId());
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -1346,6 +1346,12 @@
     */
    @PostMapping("questnaire/pagequestnaire")
    public R pageQuestnaire(@RequestBody PageQuestnaireDTO pageQuestnaireDTO,@RequestParam("communityId") Long communityId) {
        if(pageQuestnaireDTO.getForParty()==null){
            pageQuestnaireDTO.setForParty(false);
        }
        if(pageQuestnaireDTO.getForVolunteer()==null){
            pageQuestnaireDTO.setForVolunteer(false);
        }
        return comActQuestnaireService.pageQuestnaire(pageQuestnaireDTO,communityId);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -68,10 +68,23 @@
     * @param pageQuestnaireSubDetailsDTO 问卷ID
     */
    @Select("<script> " +
            "SELECT ac.choice , ac.user_id, ac.type, ac.sub_id, u.name, ac.answer_content \n" +
            "SELECT ac.choice , ac.user_id, ac.type, ac.sub_id, u.name as user_name, ac.answer_content \n" +
            "FROM com_act_questnaire_answer_content ac  LEFT JOIN sys_user u ON ac.user_id = u.user_id\n" +
            "WHERE ac.sub_id=1#{pageQuestnaireSubDetailsDTO.subId}\n" +
            "WHERE ac.sub_id=#{pageQuestnaireSubDetailsDTO.subId}\n" +
            "ORDER BY ac.create_at\n"+
            "</script>")
    IPage<ComActQuestnaireAnswerContentVO> selectVoByPage(Page userPage, @Param("pageQuestnaireSubDetailsDTO") PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO);
    /**
     * 查询问卷 问答题 用户回答数据
     * @param questId 问卷ID
     * @param userId 用户ID
     */
    @Select("<script> " +
            "SELECT COUNT(*)\n" +
            "FROM com_act_questnaire q LEFT JOIN com_act_questnaire_sub qs ON q.id = qs.que_Id\n" +
            "LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n" +
            "WHERE q.id =  #{questId} AND ac.user_id = #{userId}\n" +
            "</script>")
    Integer selectUserCountByQuestnaireId( @Param("questId")String questId, @Param("userId") Long userId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java
@@ -18,32 +18,41 @@
@Mapper
public interface ComActQuestnaireDAO extends BaseMapper<ComActQuestnaireDO> {
    @Select("<script> " +
            "SELECT \n" +
            "aq.*,aqac.user_id \n" +
            "SELECT  aq.id, aq.title, aq.state, u.name as create_user, aq.join_count, aq.create_at , aq.create_by \n" +
            "FROM \n" +
            "com_act_questnaire aq join com_act_questnaire_sub aqs on aq.id=aqs.que_Id \n" +
            "join com_act_questnaire_answer_content aqac on aqs.id=aqac.sub_id \n" +
            " where 1=1" +
            "<if test='pageQuestnaireDTO.state != null '>" +
            "and aq.state = #{pageQuestnaireDTO.state} \n" +
            " com_act_questnaire aq \n" +
            " LEFT JOIN sys_user u on aq.create_by = u.user_id \n" +
            " where aq.community_id = #{communityId}\n" +
            "<if test='pageQuestnaireDTO.state != null '>\n" +
            " and aq.state = #{pageQuestnaireDTO.state} \n" +
            " </if> " +
            "<if test='pageQuestnaireDTO.forMasses != null '>" +
            "and aq.for_masses = #{pageQuestnaireDTO.forMasses} \n" +
            " </if> " +
            "<if test='pageQuestnaireDTO.forParty != null '>" +
            "and aq.for_party = #{pageQuestnaireDTO.forParty} \n" +
            " </if> " +
            "<if test='pageQuestnaireDTO.forVolunteer != null '>" +
            "and aq.for_volunteer = #{pageQuestnaireDTO.forVolunteer} \n" +
            " </if> " +
            "<if test='pageQuestnaireDTO.forMasses != null '>\n" +
            " and aq.for_masses = #{pageQuestnaireDTO.forMasses} \n" +
            " </if> \n" +
            "<if test='pageQuestnaireDTO.startTime != null '>" +
            "AND aq.create_at BETWEEN " +
            "<if test='pageQuestnaireDTO.forParty==true and pageQuestnaireDTO.forVolunteer==true '>\n" +   //既是党员又是志愿者
            " and ( aq.for_party = 1 OR aq.for_party=1 OR (aq.for_party!=1 AND aq.for_volunteer!=1) )  \n" +
            " </if> \n" +
            "<if test='pageQuestnaireDTO.forParty==true and pageQuestnaireDTO.forVolunteer==false '>\n" +     //党员 不是志愿者
            " and ( aq.for_party = 1 OR (aq.for_party!=1 AND aq.for_volunteer!=1) )  \n" +
            " </if> \n" +
            "<if test='pageQuestnaireDTO.forParty==false and pageQuestnaireDTO.forVolunteer==true '>\n" +    //非党员的志愿者
            " and ( aq.for_volunteer = 1 OR (aq.for_party!=1 AND aq.for_volunteer!=1) )  \n" +
            " </if> \n" +
            "<if test='pageQuestnaireDTO.forParty==false and pageQuestnaireDTO.forVolunteer==false '>\n" +    //非党员非志愿者
            " and  (aq.for_party!=1 AND aq.for_volunteer!=1)  \n" +
            " </if> \n" +
            "<if test='pageQuestnaireDTO.startTime != null '>\n" +
            " AND aq.create_at BETWEEN \n" +
            "#{pageComActDTO.startTime} \n" +
            "AND #{pageQuestnaireDTO.endTime}" +
            " </if> " +
            "ORDER BY \n" +
            "aq.create_at DESC" +
            " AND #{pageQuestnaireDTO.endTime}\n" +
            " </if> \n" +
            " ORDER BY \n" +
            " aq.create_at DESC" +
            "</script>")
    IPage<QuestnaireListVo> selectPageList(Page page, @Param("pageQuestnaireDTO") PageQuestnaireDTO pageQuestnaireDTO, @Param("communityId") Long communityId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ParammeterInterceptor.java
@@ -75,16 +75,18 @@
                            Map.Entry<String, Object> entry = (Map.Entry<String, Object>) iterator.next();
                            if (entry.getKey().startsWith("param")) {
                                Object v = entry.getValue();
                                EncryptQueryClass encryptQueryClass = AnnotationUtils.findAnnotation(v.getClass(), EncryptQueryClass.class);
                                if (Objects.nonNull(encryptQueryClass)) {
                                    Field[] declaredFields = v.getClass().getDeclaredFields();
                                    for (Field field : declaredFields) {
                                        if (field.isAnnotationPresent(EncryptQuery.class)) {
                                            try {
                                                final Object encrypt = encryptDecrypt.encrypt(new Field[]{field}, v);
                                                paramMap.put("encrypted", true);
                                            } catch (IllegalAccessException e) {
                                                e.printStackTrace();
                                if(v!=null) {
                                    EncryptQueryClass encryptQueryClass = AnnotationUtils.findAnnotation(v.getClass(), EncryptQueryClass.class);
                                    if (Objects.nonNull(encryptQueryClass)) {
                                        Field[] declaredFields = v.getClass().getDeclaredFields();
                                        for (Field field : declaredFields) {
                                            if (field.isAnnotationPresent(EncryptQuery.class)) {
                                                try {
                                                    final Object encrypt = encryptDecrypt.encrypt(new Field[]{field}, v);
                                                    paramMap.put("encrypted", true);
                                                } catch (IllegalAccessException e) {
                                                    e.printStackTrace();
                                                }
                                            }
                                        }
                                    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -110,6 +110,14 @@
        page.setSize(pageSize);
        page.setCurrent(pageNum);
        IPage<QuestnaireListVo> voPage = questnaireDAO.selectPageList(page,pageQuestnaireDTO,communityId);
        voPage.getRecords().forEach(record -> {
            Integer userAnswerCount = questnaireAnswerContentDAO.selectUserCountByQuestnaireId(record.getId(), pageQuestnaireDTO.getUserId());
            if(userAnswerCount>0){
                record.setAnswer(true);
            }else{
                record.setAnswer(false);
            }
        });
        return R.ok(voPage);
    }