| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.google.common.collect.Lists; |
| | | import com.panzhihua.common.enums.QuestnaireState; |
| | | import com.panzhihua.common.exceptions.ServiceException; |
| | | import com.panzhihua.common.model.dtos.community.PageQuestnaireAnswerDTO; |
| | | import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO; |
| | | import com.panzhihua.common.model.dtos.community.PageQuestnaireSubDetailsDTO; |
| | |
| | | import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO; |
| | | import com.panzhihua.common.model.vos.LoginUserInfoVO; |
| | | import com.panzhihua.common.model.vos.R; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireSubSelectionVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireVO; |
| | | import com.panzhihua.common.model.vos.community.questnaire.*; |
| | | import com.panzhihua.common.service.user.UserService; |
| | | import com.panzhihua.common.utlis.DateUtils; |
| | | import com.panzhihua.service_community.dao.*; |
| | | import com.panzhihua.service_community.model.dos.*; |
| | | import com.panzhihua.service_community.service.ComActQuestnaireService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireSubSelectionVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO; |
| | | import com.panzhihua.common.model.vos.community.ComActQuestnaireVO; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | /** |
| | | * @Author: llming |
| | |
| | | Long userId = questnaireVO.getUserId(); |
| | | if(questnaireVO.getAdverPositionPopup().equals(ComActQuestnaireDO.isOk.yes)){ |
| | | //查询当前时间段是否已有弹窗提醒了 |
| | | Integer count = questnaireDAO.getAdvPopupCount(questnaireVO.getCommunityId(),questnaireVO.getStartTime(),questnaireVO.getEndTime(),null); |
| | | Integer count = questnaireDAO.getAdvPopupCount(questnaireVO.getCommunityId(), questnaireVO.getStartTime(), |
| | | questnaireVO.getEndTime(), null); |
| | | if(count > 0){ |
| | | return R.fail("所选时间段已设置了问卷调查弹窗,暂不支持再次添加!"); |
| | | } |
| | |
| | | } |
| | | //统计该调查问卷填报题目数量 |
| | | int count = 0; |
| | | List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(questnaireVO.getJsonObject().toString(),QuestnaiteSubVO.class); |
| | | List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(questnaireVO.getJsonObject(), QuestnaiteSubVO.class); |
| | | if(!questnaiteSubVOS.isEmpty()){ |
| | | count = questnaiteSubVOS.size(); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO) { |
| | | IPage<QuestnaireListVo> voPage = questnaireDAO.selectPageList(new Page<>(pageQuestnaireDTO.getPageNum(),pageQuestnaireDTO.getPageSize()),pageQuestnaireDTO); |
| | | IPage<QuestnaireListVo> voPage = questnaireDAO.selectPageList( |
| | | new Page<>(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize()), pageQuestnaireDTO); |
| | | return R.ok(voPage); |
| | | } |
| | | |
| | | @Override |
| | | public R pageQuestnaireAdmin(PageQuestnaireDTO pageQuestnaireDTO) { |
| | | IPage<QuestnaireListAdminVO> voPage = questnaireDAO.selectPageListAdmin(new Page<>(pageQuestnaireDTO.getPageNum(),pageQuestnaireDTO.getPageSize()),pageQuestnaireDTO); |
| | | IPage<QuestnaireListAdminVO> voPage = questnaireDAO.selectPageListAdmin( |
| | | new Page<>(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize()), pageQuestnaireDTO); |
| | | if(!voPage.getRecords().isEmpty()){ |
| | | voPage.getRecords().forEach(vo -> { |
| | | //判断调查人员身份 |
| | |
| | | |
| | | if(questnaireVO.getAdverPositionPopup().equals(ComActQuestnaireDO.isOk.yes)){ |
| | | //查询当前时间段是否已有弹窗提醒了 |
| | | Integer count = questnaireDAO.getAdvPopupCount(questnaireVO.getCommunityId(),questnaireVO.getStartTime(),questnaireVO.getEndTime(),queId); |
| | | Integer count = questnaireDAO.getAdvPopupCount(questnaireVO.getCommunityId(), questnaireVO.getStartTime(), |
| | | questnaireVO.getEndTime(), queId); |
| | | if(count > 0){ |
| | | return R.fail("所选时间段已设置了问卷调查弹窗,暂不支持再次添加!"); |
| | | } |
| | |
| | | } |
| | | //统计该调查问卷填报题目数量 |
| | | int count = 0; |
| | | List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(questnaireVO.getJsonObject().toString(),QuestnaiteSubVO.class); |
| | | List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(questnaireVO.getJsonObject(), QuestnaiteSubVO.class); |
| | | if(!questnaiteSubVOS.isEmpty()){ |
| | | count = questnaiteSubVOS.size(); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public R statQuestnaire(Long questId) { |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda().eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda() |
| | | .eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | |
| | | if(comActQuestnaireDO==null){ |
| | | return R.fail("问卷已删除!"); |
| | |
| | | usersAnswerStatVO.setQuestnaire(comActQuestnaireVO); |
| | | |
| | | //问卷题目列表 |
| | | List<ComActQuestnaireSubDO> comActQuestnaireSubDOList = |
| | | questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | List<ComActQuestnaireSubDO> comActQuestnaireSubDOList = questnaireSubDAO.selectList( |
| | | new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | //题目统计信息 |
| | | List<UserSubAnswerSelectionStatVO> usearSubAnswerSelectionStatVOList = questnaireAnswerContentDAO.selectQuestnaireStat(questId); |
| | | List<UserSubAnswerSelectionStatVO> usearSubAnswerSelectionStatVOList = |
| | | questnaireAnswerContentDAO.selectQuestnaireStat(questId); |
| | | |
| | | List<UsersSubAnswerStatVO> usersSubAnswerStatVOList = new ArrayList<>(); |
| | | |
| | |
| | | usersSubAnswerStatVO.setTotal(0); |
| | | |
| | | usearSubAnswerSelectionStatVOList.forEach(stat -> { |
| | | if (stat.getSubId().equals(comActQuestnaireSubDO.getId()) |
| | | && stat.getTotal()>0) { |
| | | if (stat.getSubId().equals(comActQuestnaireSubDO.getId()) && stat.getTotal() > 0) { |
| | | userSubAnswerSelectionStatVOList.add(stat); |
| | | } |
| | | }); |
| | | 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); |
| | | }); |
| | |
| | | |
| | | @Override |
| | | public R answerInfoQuestnaire(Long userId, Long questId) { |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda().eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda() |
| | | .eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0)); |
| | | if (comActQuestnaireDO == null) { |
| | | return R.fail("问卷不存在!"); |
| | | } |
| | |
| | | BeanUtils.copyProperties(comActQuestnaireDO, comActQuestnaireVO); |
| | | usersAnswerVO.setQuestnaire(comActQuestnaireVO); |
| | | |
| | | List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList( |
| | | new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | list.sort(Comparator.comparing(ComActQuestnaireSubDO::getSort)); |
| | | List<UsersSubAnswerVO> usersSubAnswerVOList = new ArrayList<>(); |
| | | |
| | |
| | | //问卷调查题目-选项 |
| | | Long subId = comActQuestnaireSubDO.getId(); |
| | | List<ComActQuestnaireSubSelectionDO> comActQuestnaireSubSelectionDOs = |
| | | questnaireSubSelectionDAO.selectList(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda().eq(ComActQuestnaireSubSelectionDO::getQueSubId, subId)); |
| | | |
| | | questnaireSubSelectionDAO.selectList(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda() |
| | | .eq(ComActQuestnaireSubSelectionDO::getQueSubId, subId)); |
| | | |
| | | List<ComActQuestnaireSubSelectionVO> comActQuestnaireSubSelectionVOs = new ArrayList<>(); |
| | | comActQuestnaireSubSelectionDOs.forEach(comActQuestnaireSubSelectionDO -> { |
| | |
| | | //用户回答 |
| | | if (userId != null) { |
| | | List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = |
| | | questnaireAnswerContentDAO.selectList(new QueryWrapper<ComActQuestnaireAnswerContentDO>().lambda().eq(ComActQuestnaireAnswerContentDO::getUserId, userId) |
| | | questnaireAnswerContentDAO.selectList(new QueryWrapper<ComActQuestnaireAnswerContentDO>().lambda() |
| | | .eq(ComActQuestnaireAnswerContentDO::getUserId, userId) |
| | | .eq(ComActQuestnaireAnswerContentDO::getSubId, subId)); |
| | | |
| | | List<ComActQuestnaireAnswerContentVO> questnaireAnswerContentVOList = new ArrayList<>(); |
| | | questnaireAnswerContentDOList.forEach(questnaireAnswerContentDO -> { |
| | | ComActQuestnaireAnswerContentVO comActQuestnaireSubSelectionVO = new ComActQuestnaireAnswerContentVO(); |
| | | ComActQuestnaireAnswerContentVO comActQuestnaireSubSelectionVO = |
| | | new ComActQuestnaireAnswerContentVO(); |
| | | BeanUtils.copyProperties(questnaireAnswerContentDO, comActQuestnaireSubSelectionVO); |
| | | questnaireAnswerContentVOList.add(comActQuestnaireSubSelectionVO); |
| | | }); |
| | |
| | | usersSubAnswerVO.setUsersAnswer(questnaireAnswerContentVOList); |
| | | } |
| | | usersSubAnswerVOList.add(usersSubAnswerVO); |
| | | } |
| | | ); |
| | | }); |
| | | usersAnswerVO.setUsersSubAnswer(usersSubAnswerVOList); |
| | | |
| | | return R.ok(usersAnswerVO); |
| | |
| | | /** |
| | | * 查询题目 |
| | | */ |
| | | List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList( |
| | | new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); |
| | | List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>(); |
| | | list.forEach(subDo -> { |
| | | ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); |
| | |
| | | /** |
| | | * 查询用户回答 |
| | | */ |
| | | List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = questnaireAnswerContentDAO.selectListByQuestnaire(questId); |
| | | List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList = |
| | | questnaireAnswerContentDAO.selectListByQuestnaire(questId); |
| | | List<ComActQuestnaireAnswerContentVO> vos = new ArrayList<>(); |
| | | questnaireAnswerContentDOList.forEach(dos -> { |
| | | ComActQuestnaireAnswerContentVO vo = new ComActQuestnaireAnswerContentVO(); |
| | |
| | | pageQuestnaireAnswerDTO.setPageSize(10l); |
| | | } |
| | | Page userPage = new Page(pageQuestnaireAnswerDTO.getPageNum(), pageQuestnaireAnswerDTO.getPageSize()); |
| | | IPage<ComActQuestnaireAnswerContentVO> doPager = questnaireAnswerContentDAO.selectAnswersByPage(userPage, pageQuestnaireAnswerDTO); |
| | | IPage<ComActQuestnaireAnswerContentVO> doPager = |
| | | questnaireAnswerContentDAO.selectAnswersByPage(userPage, pageQuestnaireAnswerDTO); |
| | | return R.ok(doPager); |
| | | } |
| | | |
| | |
| | | return R.fail("该调查问卷已结束,不可提交!"); |
| | | } |
| | | |
| | | ComActQuestnaireUserAnswerDO oldUserAnswerDO = comActQuestnaireUserAnswerMapper.selectOne(new QueryWrapper<ComActQuestnaireUserAnswerDO>().lambda() |
| | | .eq(ComActQuestnaireUserAnswerDO::getQuestnaireId,questId).eq(ComActQuestnaireUserAnswerDO::getUserId,userId)); |
| | | ComActQuestnaireUserAnswerDO oldUserAnswerDO = |
| | | comActQuestnaireUserAnswerMapper.selectOne(new QueryWrapper<ComActQuestnaireUserAnswerDO>().lambda() |
| | | .eq(ComActQuestnaireUserAnswerDO::getQuestnaireId, questId) |
| | | .eq(ComActQuestnaireUserAnswerDO::getUserId, userId)); |
| | | if(oldUserAnswerDO != null){ |
| | | return R.fail("您已填写该问卷,不可重复提交"); |
| | | } |
| | | |
| | | // 查询填报人员信息 |
| | | R<LoginUserInfoVO> userResult = userService.getUserInfoByUserId(userId + ""); |
| | | if (!R.isOk(userResult)) { |
| | | log.error("填写问卷调查失败,未查询到用户信息"); |
| | | return R.fail("填写失败"); |
| | | } |
| | | LoginUserInfoVO userInfo = userResult.getData(); |
| | | if (questnaireDO.getForParty().equals(ComActQuestnaireDO.isOk.yes)) { |
| | | if (!userInfo.getIsPartymember().equals(1)) { |
| | | return R.fail("您还未进行党员认证,无法填报"); |
| | | } |
| | | } |
| | | if (questnaireDO.getForVolunteer().equals(ComActQuestnaireDO.isOk.yes)) { |
| | | if (!userInfo.getIsVolunteer().equals(1)) { |
| | | return R.fail("您还未进行志愿者认证,无法填报"); |
| | | } |
| | | } |
| | | |
| | | List<ComActQuestnaireAnswerContentDO> answerContentList = new ArrayList<>(); |
| | | |
| | | //解析用户上传json数据 |
| | | List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(answerQuestnaireVO.getJsonObject().toString(),QuestnaiteSubVO.class); |
| | | List<QuestnaiteSubVO> questnaiteSubVOS = |
| | | JSON.parseArray(answerQuestnaireVO.getJsonObject(), QuestnaiteSubVO.class); |
| | | if(!questnaiteSubVOS.isEmpty()){ |
| | | for (QuestnaiteSubVO questnaiteSub:questnaiteSubVOS) { |
| | | //查询用户填写题目 |
| | | ComActQuestnaireSubDO questnaireSubDO = questnaireSubDAO.selectOne(new QueryWrapper<ComActQuestnaireSubDO>().lambda() |
| | | .eq(ComActQuestnaireSubDO::getQueId,questId).eq(ComActQuestnaireSubDO::getKey,questnaiteSub.getKey())); |
| | | ComActQuestnaireSubDO questnaireSubDO = questnaireSubDAO.selectOne( |
| | | new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId) |
| | | .eq(ComActQuestnaireSubDO::getKey, questnaiteSub.getKey())); |
| | | if(questnaireSubDO == null){ |
| | | log.error("未查询到调查问卷题目,题目名称:" + questnaiteSub.getLabel() + "题目key:" + questnaiteSub.getKey()); |
| | | continue; |
| | |
| | | if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan)){ |
| | | |
| | | //单选题处理 |
| | | ComActQuestnaireSubSelectionDO subSelectionDO = questnaireSubSelectionDAO.selectOne(new QueryWrapper<ComActQuestnaireSubSelectionDO>() |
| | | .lambda().eq(ComActQuestnaireSubSelectionDO::getQueSubId,queSubId).eq(ComActQuestnaireSubSelectionDO::getQueId,questId) |
| | | ComActQuestnaireSubSelectionDO subSelectionDO = |
| | | questnaireSubSelectionDAO.selectOne(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda() |
| | | .eq(ComActQuestnaireSubSelectionDO::getQueSubId, queSubId) |
| | | .eq(ComActQuestnaireSubSelectionDO::getQueId, questId) |
| | | .eq(ComActQuestnaireSubSelectionDO::getKey,questnaiteSub.getValues())); |
| | | if(subSelectionDO == null){ |
| | | log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues()); |
| | |
| | | String values = questnaiteSub.getValues(); |
| | | String []value = values.split(","); |
| | | for (int i = 0; i < value.length; i++) { |
| | | ComActQuestnaireSubSelectionDO subSelectionDO = questnaireSubSelectionDAO.selectOne(new QueryWrapper<ComActQuestnaireSubSelectionDO>() |
| | | .lambda().eq(ComActQuestnaireSubSelectionDO::getQueSubId,queSubId).eq(ComActQuestnaireSubSelectionDO::getQueId,questId) |
| | | ComActQuestnaireSubSelectionDO subSelectionDO = |
| | | questnaireSubSelectionDAO.selectOne(new QueryWrapper<ComActQuestnaireSubSelectionDO>() |
| | | .lambda().eq(ComActQuestnaireSubSelectionDO::getQueSubId, queSubId) |
| | | .eq(ComActQuestnaireSubSelectionDO::getQueId, questId) |
| | | .eq(ComActQuestnaireSubSelectionDO::getKey,value[i])); |
| | | if(subSelectionDO == null){ |
| | | log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues()); |
| | | log.error( |
| | | "未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues()); |
| | | continue; |
| | | } |
| | | ComActQuestnaireAnswerContentDO answerContentDO = new ComActQuestnaireAnswerContentDO(); |
| | |
| | | answerContentDO.setAnswerContent(subSelectionDO.getContent()); |
| | | answerContentList.add(answerContentDO); |
| | | } |
| | | }else{ |
| | | } else if (questnaiteSub.getType().equals(QuestnaiteSubVO.type.wenda)) { |
| | | //问答题处理 |
| | | String values = questnaiteSub.getValues(); |
| | | ComActQuestnaireAnswerContentDO answerContentDO = new ComActQuestnaireAnswerContentDO(); |
| | |
| | | |
| | | /** |
| | | * 社区后台-查询问卷调查详情 |
| | | * @param questId 问卷id |
| | | * |
| | | * @param questId |
| | | * 问卷id |
| | | * @return 问卷调查详情 |
| | | */ |
| | | @Override |
| | |
| | | |
| | | /** |
| | | * 小程序-问卷调查详情 |
| | | * @param userId 用户id |
| | | * @param questId 问卷id |
| | | * |
| | | * @param userId |
| | | * 用户id |
| | | * @param questId |
| | | * 问卷id |
| | | * @return 问卷调查详情 |
| | | */ |
| | | @Override |
| | |
| | | if(result == null){ |
| | | return R.fail("未查询到该记录"); |
| | | } |
| | | ComActQuestnaireUserAnswerDO oldUserAnswerDO = comActQuestnaireUserAnswerMapper.selectOne(new QueryWrapper<ComActQuestnaireUserAnswerDO>().lambda() |
| | | .eq(ComActQuestnaireUserAnswerDO::getQuestnaireId,questId).eq(ComActQuestnaireUserAnswerDO::getUserId,userId)); |
| | | ComActQuestnaireUserAnswerDO oldUserAnswerDO = |
| | | comActQuestnaireUserAnswerMapper.selectOne(new QueryWrapper<ComActQuestnaireUserAnswerDO>().lambda() |
| | | .eq(ComActQuestnaireUserAnswerDO::getQuestnaireId, questId) |
| | | .eq(ComActQuestnaireUserAnswerDO::getUserId, userId)); |
| | | if(oldUserAnswerDO != null){ |
| | | result.setIsOk(1); |
| | | } |
| | |
| | | |
| | | /** |
| | | * 问卷调查统计汇总 |
| | | * @param summaryDTO 请求参数 |
| | | * |
| | | * @param summaryDTO |
| | | * 请求参数 |
| | | * @return 统计汇总 |
| | | */ |
| | | @Override |
| | | public R statisticsSummary(StatisticsSummaryDTO summaryDTO){ |
| | | IPage<QuestnaireStatisticsSummaryAdminVO> summaryAdminList = questnaireDAO.getStatisticsSummaryAdmin(new Page(summaryDTO.getPageNum(),summaryDTO.getPageSize()),summaryDTO); |
| | | IPage<QuestnaireStatisticsSummaryAdminVO> summaryAdminList = questnaireDAO |
| | | .getStatisticsSummaryAdmin(new Page(summaryDTO.getPageNum(), summaryDTO.getPageSize()), summaryDTO); |
| | | summaryAdminList.getRecords().forEach(summary -> { |
| | | if(summary.getAllCount().equals(0)){ |
| | | summary.setTag(BigDecimal.ZERO); |
| | | }else{ |
| | | summary.setTag(BigDecimal.valueOf(summary.getCount()).divide(BigDecimal.valueOf(summary.getAllCount()),2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))); |
| | | summary.setTag(BigDecimal.valueOf(summary.getCount()) |
| | | .divide(BigDecimal.valueOf(summary.getAllCount()), 2, RoundingMode.HALF_UP) |
| | | .multiply(BigDecimal.valueOf(100))); |
| | | } |
| | | }); |
| | | return R.ok(summaryAdminList); |
| | |
| | | |
| | | /** |
| | | * 问卷调查统计汇总导出数据查询 |
| | | * @param questId 调查问卷id |
| | | * |
| | | * @param questId |
| | | * 调查问卷id |
| | | * @return 调查统计汇总导出数据 |
| | | */ |
| | | @Override |
| | | public R statisticsSummaryExport(Long questId){ |
| | | List<QuestnaireStatisticsSummaryExcelAdminVO> summaryExcelList = questnaireDAO.getStatisticsSummaryExcelAdmin(questId); |
| | | List<QuestnaireStatisticsSummaryExcelAdminVO> summaryExcelList = |
| | | questnaireDAO.getStatisticsSummaryExcelAdmin(questId); |
| | | summaryExcelList.forEach(summary -> { |
| | | if(summary.getAllCount().equals(0)){ |
| | | summary.setTag(BigDecimal.ZERO); |
| | | }else{ |
| | | summary.setTag(BigDecimal.valueOf(summary.getCount()).divide(BigDecimal.valueOf(summary.getAllCount()),2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))); |
| | | summary.setTag(BigDecimal.valueOf(summary.getCount()) |
| | | .divide(BigDecimal.valueOf(summary.getAllCount()), 2, RoundingMode.HALF_UP) |
| | | .multiply(BigDecimal.valueOf(100))); |
| | | } |
| | | }); |
| | | return R.ok(summaryExcelList); |
| | |
| | | |
| | | /** |
| | | * 问卷调查统计汇总表头统计 |
| | | * @param questId 调查问卷id |
| | | * |
| | | * @param questId |
| | | * 调查问卷id |
| | | * @return 问卷调查统计汇总表头统计数据 |
| | | */ |
| | | @Override |
| | | public R statisticsSummaryHeader(Long questId,Long communityId){ |
| | | QuestnaireStatisticsSummaryHeaderAdminVO summaryHeaderAdminVO = this.questnaireDAO.statisticsSummaryHeader(questId,communityId); |
| | | QuestnaireStatisticsSummaryHeaderAdminVO summaryHeaderAdminVO = |
| | | this.questnaireDAO.statisticsSummaryHeader(questId, communityId); |
| | | if(summaryHeaderAdminVO != null){ |
| | | if(!summaryHeaderAdminVO.getUserCount().equals(0)){ |
| | | BigDecimal nub1 = BigDecimal.valueOf(summaryHeaderAdminVO.getAllCount()); |
| | |
| | | public R timedTaskQuestionnaire(){ |
| | | Date nowDate = new Date(); |
| | | //查询所有开始时间已经超过当前时间的待发布状态调查问卷 |
| | | List<ComActQuestnaireDO> questnaireDOList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>().lambda() |
| | | .eq(ComActQuestnaireDO::getState,ComActQuestnaireDO.state.dfb).eq(ComActQuestnaireDO::getIsHide,0) |
| | | .le(ComActQuestnaireDO::getStartTime,nowDate)); |
| | | List<ComActQuestnaireDO> questnaireDOList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>() |
| | | .lambda().eq(ComActQuestnaireDO::getState, ComActQuestnaireDO.state.dfb) |
| | | .eq(ComActQuestnaireDO::getIsHide, 0).le(ComActQuestnaireDO::getStartTime, nowDate)); |
| | | questnaireDOList.forEach(questnaire -> { |
| | | questnaire.setState(ComActQuestnaireDO.state.dyz); |
| | | questnaire.setPublishTime(nowDate); |
| | |
| | | }); |
| | | |
| | | //查询所有结束时间已经超过当前时间的调研中状态调查问卷 |
| | | List<ComActQuestnaireDO> questnaireList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>().lambda() |
| | | .eq(ComActQuestnaireDO::getState,ComActQuestnaireDO.state.dyz).eq(ComActQuestnaireDO::getIsHide,0) |
| | | .le(ComActQuestnaireDO::getEndTime,nowDate)); |
| | | List<ComActQuestnaireDO> questnaireList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>() |
| | | .lambda().eq(ComActQuestnaireDO::getState, ComActQuestnaireDO.state.dyz) |
| | | .eq(ComActQuestnaireDO::getIsHide, 0).le(ComActQuestnaireDO::getEndTime, nowDate)); |
| | | questnaireList.forEach(questnaire -> { |
| | | questnaire.setState(ComActQuestnaireDO.state.yjs); |
| | | questnaireDAO.updateById(questnaire); |
| | |
| | | |
| | | /** |
| | | * 小程序-新增问卷调查浏览数量 |
| | | * @param questId 问卷调查id |
| | | * |
| | | * @param questId |
| | | * 问卷调查id |
| | | * @return 增加结果 |
| | | */ |
| | | @Override |
| | |
| | | |
| | | /** |
| | | * 小程序-用户弹窗添加不在提醒接口 |
| | | * @param questId 问卷id |
| | | * @param userId 用户id |
| | | * |
| | | * @param questId |
| | | * 问卷id |
| | | * @param userId |
| | | * 用户id |
| | | * @return 添加结果 |
| | | */ |
| | | @Override |