springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java
@@ -10,10 +10,7 @@ import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO; import com.panzhihua.common.model.vos.community.ComActQuestnaireVO; import com.panzhihua.common.model.vos.community.ComCvtBusinessVO; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireAnswerStatVO; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.*; import com.panzhihua.common.service.community.CommunityService; import io.swagger.annotations.Api; @@ -72,10 +69,30 @@ @ApiOperation(value = "居民填写问卷调查问卷") @PostMapping("/stat/answer") public R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO) { public R usersAnswerQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.usersAnsweQuestnaire(usersAnswerQuestnaireVO, loginUserInfo.getUserId()); } @ApiOperation(value = "编辑问卷") @PostMapping("/edit") public R eidtQuestnaire(@RequestBody QuestnaireVO questnaireVO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.editQuestnaire(questnaireVO); } @ApiOperation(value = "继续调研/停止调研") @GetMapping("/toggle") public R toggle(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo) { return communityService.editQuestnaireDO(editComActQuestnaireVo); } @ApiOperation(value = "删除问卷") @GetMapping("/delete") public R delete(@RequestParam("questId") Long questId) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.editQuestnaireDO(questId, loginUserInfo.getUserId()); } } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java
@@ -19,4 +19,6 @@ private Integer total; @ApiModelProperty("比例") private String proportion; @ApiModelProperty("选项类型 0 固定选项 1 自定义选项") private Integer type; } springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
@@ -16,7 +16,9 @@ import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.*; import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireAnswerStatVO; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerVO; import com.panzhihua.common.service.community.CommunityService; import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.SFTPUtil; @@ -53,61 +55,61 @@ @Resource private SFTPConfig sftpConfig; @ApiOperation(value = "分页查询调查问卷", response = ComCvtBusinessVO.class) @ApiOperation(value = "分页查询调查问卷", response = ComActQuestnaireVO.class) @PostMapping("/page") public R page(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.pageQuestnaire(pageQuestnaireDTO, loginUserInfo.getCommunityId()); } @ApiOperation(value = "创建调查问卷", response = ComCvtBusinessVO.class) @ApiOperation(value = "创建调查问卷") @PostMapping("/add") public R add(@RequestBody QuestnaireVO questnaireVO) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.addQuestnaire(questnaireVO, loginUserInfo.getCommunityId(), loginUserInfo.getUserId()); } @ApiOperation(value = "继续调研/停止调研", response = ComCvtBusinessVO.class) @ApiOperation(value = "继续调研/停止调研") @GetMapping("/toggle") public R toggle(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo) { return communityService.editQuestnaireDO(editComActQuestnaireVo); } @ApiOperation(value = "删除问卷", response = ComCvtBusinessVO.class) @ApiOperation(value = "删除问卷") @GetMapping("/delete") public R delete(@RequestParam("questId") Long questId) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.editQuestnaireDO(questId, loginUserInfo.getUserId()); } @ApiOperation(value = "查看详细-问卷详细", response = ComCvtBusinessVO.class) @ApiOperation(value = "查看详细-问卷详细", response = UsersAnswerVO.class) @GetMapping("/view") public R viewQuestnaire(@RequestParam("questId") Long questId) { LoginUserInfoVO loginUserInfo = this.getLoginUserInfo(); return communityService.view(loginUserInfo.getUserId(), questId); } @ApiOperation(value = "查看详细-调查结果", response = ComCvtBusinessVO.class) @ApiOperation(value = "查看详细-调查结果", response = QuestnaireAnswerStatVO.class) @GetMapping("/stat") public R stat(@RequestParam("questId") Long questId) { return communityService.statistics(questId); } @ApiOperation(value = "查看详细-调查结果-查看详细信息", response = ComCvtBusinessVO.class) @ApiOperation(value = "查看详细-调查结果-查看详细信息", response = ComActQuestnaireAnswerContentVO.class) @GetMapping("/stat/details") public R statDetails(@RequestBody PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO) { //问卷调查 return communityService.qaQeustAnswerDetails(pageQuestnaireSubDetailsDTO); } @ApiOperation(value = "答卷情况-分页", response = ComCvtBusinessVO.class) @ApiOperation(value = "答卷情况-分页", response = ComActQuestnaireAnswerContentVO.class) @GetMapping("/answer/page") public R pageAnswer(@RequestBody PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO) { //问卷调查回答 用户分页数据 return communityService.pageQuestnaireAnswer(pageQuestnaireAnswerDTO); } @ApiOperation(value = "查看问卷答卷详细", response = ComCvtBusinessVO.class) @ApiOperation(value = "查看问卷答卷详细", response = UsersAnswerVO.class) @GetMapping("/answer/detail") public R answerDetail(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId) { return communityService.answerInfoQuestnaire(userId, questId); springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.model.dtos.community.PageQuestnaireAnswerDTO; import com.panzhihua.common.model.dtos.community.PageQuestnaireSubDetailsDTO; import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO; import com.panzhihua.common.model.vos.community.questnaire.UserSubAnswerSelectionStatVO; import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO; @@ -24,7 +25,7 @@ * @param questId 问卷ID */ @Select("<script> " + "SELECT qs.id AS sub_id, ac.choice as option_name, COUNT(ac.user_id) as total, ac.answer_content as answerContent, \n" + "SELECT qs.id AS sub_id, ac.choice as option_name, COUNT(ac.user_id) as total, ac.answer_content as answerContent, ac.type,\n" + " CONCAT(ROUND( COUNT(ac.user_id) /(SELECT COUNT(*) FROM com_act_questnaire_answer_content WHERE sub_id = qs.id) *100), '%') AS proportion\n" + "FROM com_act_questnaire qn LEFT JOIN com_act_questnaire_sub qs ON qn.id = qs.que_Id\n" + " LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n" + @@ -61,4 +62,16 @@ "ORDER BY ac.create_at\n"+ "</script>") IPage<ComActQuestnaireAnswerContentVO> selectAnswersByPage(Page page, @Param("pageQuestnaireAnswerDTO") PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO); /** * 查询问卷 问答题 用户回答数据 * @param pageQuestnaireSubDetailsDTO 问卷ID */ @Select("<script> " + "SELECT ac.choice , ac.user_id, ac.type, ac.sub_id, u.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" + "ORDER BY ac.create_at\n"+ "</script>") IPage<ComActQuestnaireAnswerContentVO> selectVoByPage(Page userPage, @Param("pageQuestnaireSubDetailsDTO") PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -211,7 +211,9 @@ } }); usersSubAnswerStatVO.setUsersAnswer(userSubAnswerSelectionStatVOList); Integer count = questnaireAnswerContentDAO.selectCount(new QueryWrapper<ComActQuestnaireAnswerContentDO>().select(" DISTINCT sub_id, user_id ").lambda().eq(ComActQuestnaireAnswerContentDO::getSubId, comActQuestnaireSubDO.getId())); Integer count = questnaireAnswerContentDAO.selectCount(new QueryWrapper<ComActQuestnaireAnswerContentDO>() .select(" DISTINCT sub_id, user_id ").lambda() .eq(ComActQuestnaireAnswerContentDO::getSubId, comActQuestnaireSubDO.getId())); usersSubAnswerStatVO.setTotal(count); usersSubAnswerStatVOList.add(usersSubAnswerStatVO); }); @@ -315,9 +317,8 @@ @Override public R qaQeustDetails(PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO) { Page userPage = new Page(pageQuestnaireSubDetailsDTO.getPageNum(), pageQuestnaireSubDetailsDTO.getPageSize()); IPage<ComActQuestnaireAnswerContentDO> doPager = questnaireAnswerContentDAO.selectPage(userPage, new QueryWrapper<ComActQuestnaireAnswerContentDO>() .orderBy(true, true, "create_at").lambda().eq(ComActQuestnaireAnswerContentDO::getSubId, pageQuestnaireSubDetailsDTO.getSubId())); IPage<ComActQuestnaireAnswerContentVO> doPager = questnaireAnswerContentDAO.selectVoByPage(userPage, pageQuestnaireSubDetailsDTO); return R.ok(doPager); }