springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireDTO.java
@@ -17,8 +17,6 @@ private String title; @ApiModelProperty(value = "状态 0 调研中 1已停止") private Integer state; @ApiModelProperty(value = "问卷参与者类型 0 全部 1 志愿者 2 党员") private Integer parterType; @ApiModelProperty(value = "发布开始时间") private Date startTime; @ApiModelProperty(value = "发布结束时间") springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/EditComActQuestnaireVo.java
New file @@ -0,0 +1,16 @@ package com.panzhihua.common.model.vos.community.questnaire; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @Author: llming * @Description:编辑问卷调查DO */ @Data public class EditComActQuestnaireVo { @ApiModelProperty(value = "问卷调查Id") private Long questId; @ApiModelProperty(value = "状态 0 调研中 1已停止", example = "0") private Integer state; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java
@@ -12,7 +12,7 @@ @Data public class QuestnaireVO { @ApiModelProperty(value = "问卷调查Id") private Long queId; private Long questId; @ApiModelProperty(value = "类型 0单选1多选2问答题", example = "0") private Integer type; @ApiModelProperty(value = "问卷标题") @@ -21,6 +21,12 @@ private String queDescribe; @ApiModelProperty(value = "问卷参与者类型 0 全部 1 志愿者 2 党员", example = "0") private Integer parterType; @ApiModelProperty(value = "题目", example = "0") @ApiModelProperty(value = "提供居民", example = "true") private Boolean forMasses; @ApiModelProperty(value = "提供党员", example = "true") private Boolean forParty; @ApiModelProperty(value = "提供志愿者", example = "true") private Boolean forVolunteer; @ApiModelProperty(value = "题目") private List<QuestnaiteSubVO> questnaiteSubVOS; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -7,6 +7,8 @@ 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.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -1635,4 +1637,50 @@ @PostMapping("/common/data/population/getList") R getPopulationLists(@RequestBody List<Long> Ids); /** * 新增社区问卷 * * @param questnaireVO * @return */ @PostMapping("/questnaire/addquestnaire") R addQuestnaire(@RequestBody QuestnaireVO questnaireVO); /** * 新增社区问卷 * * @param questnaireVO * @return */ @PostMapping("/questnaire/pagequestnaire") R pageQuestnaire(@RequestBody QuestnaireVO questnaireVO); /** * 编辑问卷——问卷、题目、选项 * * @param questnaireVO * @return */ @PostMapping("/questnaire/editquestnaire") R editQuestnaire(@RequestBody QuestnaireVO questnaireVO); /** * 修改问卷状态 * * @param editComActQuestnaireVo * @return */ @PostMapping("/questnaire/editquestnairedo") R editQuestnaireDO(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo); /** * 删除问卷 ——隐藏 * * @param questId 调查问卷Id * @return */ @PostMapping("/questnaire/deletequestnaire") R editQuestnaireDO(@RequestParam("questId") Long questId); } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -4,28 +4,23 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO; import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO; import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO; import com.panzhihua.common.model.dtos.community.PageComActDTO; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.dtos.community.*; 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.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.common.model.vos.user.UserPhoneVO; import com.panzhihua.common.validated.AddGroup; import com.panzhihua.service_community.model.dos.ComActActPrizeDO; import com.panzhihua.service_community.model.dos.ComActDynDO; import com.panzhihua.service_community.model.dos.ComActMicroWishDO; import com.panzhihua.service_community.model.dos.ComMngStructAreaDO; import com.panzhihua.service_community.service.*; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -203,6 +198,7 @@ /** * 社区后台分页查询社区活动 * * @param comActActivityVO 查询参数 * @return 返回结果 */ @@ -759,6 +755,7 @@ /** * 查询所有建筑类型 * * @return 类型列表 */ @PostMapping("listbuildtype") @@ -768,6 +765,7 @@ /** * 分页查询 其他建筑 * * @param comMngStructOtherBuildVO 分页查询参数 * @return 查询结果 */ @@ -778,6 +776,7 @@ /** * 增加志愿者 * * @param comMngVolunteerMngVO 志愿者信息 * @return 增加结果 */ @@ -788,6 +787,7 @@ /** * 删除志愿者 * * @param comMngVolunteerMngVO 手机号 * @return 删除结果 */ @@ -798,6 +798,7 @@ /** * 编辑志愿者 * * @param comMngVolunteerMngVO 编辑内容 * @return 编辑结果 */ @@ -808,6 +809,7 @@ /** * 分页展示志愿者 * * @param comMngVolunteerMngVO 查询参数 * @return 分页集合返回 */ @@ -818,6 +820,7 @@ /** * 分页展示志愿者审核 * * @param comMngVolunteerMngVO 查询参数 * @return 查询结果 */ @@ -828,6 +831,7 @@ /** * 志愿者审核详情 * * @param id 主键 * @return 详情 */ @@ -838,6 +842,7 @@ /** * 志愿者审核 * * @param comMngVolunteerMngVO 审核操作 * @return 审核结果 */ @@ -848,6 +853,7 @@ /** * 删除志愿者审核 * * @param comMngVolunteerMngVO 主键 * @return 删除结果 */ @@ -858,6 +864,7 @@ /** * 查询区域 * * @param comActVO 登录人的经纬度、或者指定区域的社区 * @return 社区集合 */ @@ -868,6 +875,7 @@ /** * 用户修改手机号对应的志愿者手机号也要修改 * * @param userPhoneVO 新旧手机号 * @return 修改结果 */ @@ -878,6 +886,7 @@ /** * 房屋地址下拉列表 * * @param parentCode 父级编码 * @param areaId 小区id * @return 下级列表 @@ -897,6 +906,7 @@ /** * 新增房屋 * * @param comMngStructHouseVO 房屋信息 * @return 新增结果 */ @@ -913,6 +923,7 @@ /** * 查询小区 * * @param communityId 社区id * @return 小区集合 */ @@ -923,6 +934,7 @@ /** * 用户参加的所有社区活动 * * @param userId 用户id * @return 活动列表 */ @@ -933,6 +945,7 @@ /** * 用户确认心愿 * * @param comActMicroWishVO 用户评价 * @return 确认结果 */ @@ -943,6 +956,7 @@ /** * 建筑类型 * * @param communityId 社区id * @return 建筑集合 */ @@ -953,6 +967,7 @@ /** * 增加删除建筑类型 * * @param systemmanagementConfigVO 操作内容 * @return 操作结果 */ @@ -968,6 +983,7 @@ /** * 社区详情 * * @param communityId 社区id * @return 社区详情 */ @@ -978,6 +994,7 @@ /** * 小区详情 * * @param areaId 小区id * @return 小区信息 */ @@ -988,6 +1005,7 @@ /** * 分页查询社区 * * @param pageComActDTO 查询参数 * @return 分页集合 */ @@ -998,6 +1016,7 @@ /** * 志愿者详情 * * @param id 主键 * @return 志愿者 */ @@ -1016,6 +1035,7 @@ /** * 查询平台所有的社区 * * @return 社区集合 按照创建顺序倒序排列 */ @PostMapping("listcommunityall") @@ -1025,6 +1045,7 @@ /** * 社区管理后台数据看板 代办事件 * * @param communityId 社区id * @param userId 登录用户信息 * @return 代办事件列表 @@ -1053,6 +1074,7 @@ /** * 删除社区 * * @param communityId 社区id * @return 删除结果 */ @@ -1063,14 +1085,17 @@ /** * 定时任务刷新社区动态置顶状态 * * @return 刷新结果 */ @PostMapping("timedtaskdynistopping") public R timedTaskDynIstopping(){ return comActDynService.timedTaskDynIstopping(); } /** * 定时任务刷新社区动态发布状态 * * @return */ @PostMapping("timedtaskdynstatus") @@ -1080,6 +1105,7 @@ /** * 定时任务查询所有要取消的社区活动 * * @return 社区活动集合 */ @PostMapping("timedtaskactactivity") @@ -1089,6 +1115,7 @@ /** * 定时任务刷新社区活动的各个状态 除取消外 * * @return 更新结果 */ @PostMapping("timedtaskactactivityall") @@ -1098,6 +1125,7 @@ /** * 其他建筑详情 * * @param id 主键id * @return 建筑内容 */ @@ -1108,6 +1136,7 @@ /** * 编辑其他建筑 * * @param comMngStructOtherBuildVO 编辑内容 * @return 编辑结果 */ @@ -1118,6 +1147,7 @@ /** * 删除其他建筑 * * @param id 主键 * @return 删除结果 */ @@ -1128,6 +1158,7 @@ /** * 小程序分页查询随手拍 * * @param comActEasyPhotoVO 查询参数 * @return 返回结果 */ @@ -1138,6 +1169,7 @@ /** * 随手拍评论分页查询 * * @param pageComActEasyPhotoCommentDTO 查询参数 * @return 查询结果 */ @@ -1148,6 +1180,7 @@ /** * 评论点赞/取消点赞 * * @param comActEasyPhotoCommentUserDTO 操作 * @return 操作结果 */ @@ -1158,6 +1191,7 @@ /** * 随手拍--评论--新增评论 * * @param comActEasyPhotoCommentDTO 新增内容 * @return 新增结果 */ @@ -1168,6 +1202,7 @@ /** * 查询城市下属所有地区列表 * * @param cityAdcode 城市地址编码 * @return 地区列表 */ @@ -1178,6 +1213,7 @@ /** * 首页图表数据汇总 * * @param communityId 社区id * @return 图表数据 IndexDataVO */ @@ -1188,6 +1224,7 @@ /** * 选择导入的小区 * * @param param 小区名字 模糊查询 * @param communityId 社区id * @return 小区集合 ComMngStructAreaVO @@ -1199,6 +1236,7 @@ /** * 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则 * * @param id 小区id * @return ComMngStructAreaVO */ @@ -1206,8 +1244,10 @@ public R checkAreaHouse(@RequestParam("id")Long id){ return comMngStructAreaService.checkAreaHouse(id); } /** * 新增留言 * * @param comActMessageVO 新增留言信息 * @return 发布结果 */ @@ -1216,40 +1256,50 @@ // 微信内容审核 return comActMessageService.addMessage(comActMessageVO); } /** * 我发的留言 * * @return 结果集合 */ @PostMapping("pagemymessage") public R pageMyMessage (@RequestBody ComActMessageVO comActMessageVO){ return comActMessageService.pageMyMessageApplets(comActMessageVO); } /** * 发给我的留言 * * @return 结果集合 */ @PostMapping("pagesendtomemessage") public R pageSendToMessage (@RequestBody ComActMessageVO comActMessageVO){ return comActMessageService.pageSendToMessageApplets(comActMessageVO); } /** * 根据id查询留言集合 * * @return 结果集合 */ @PostMapping("pagemessagebyuser") public R pageMessageByUser (@RequestBody ComActMessageVO comActMessageVO){ return comActMessageService.pageMessageByUserApplets(comActMessageVO); } /** * 社区留言 * * @return 结果集合 */ @PostMapping("pagemycommunitymessage") public R pageMyCommunityMessage (@RequestBody ComActMessageVO comActMessageVO){ return comActMessageService.pageMyCommunityMessageApplets(comActMessageVO); } /** * 新增留言回复 * * @param comActMessageVO 新增留言回复信息 * @return 发布结果 */ @@ -1258,6 +1308,7 @@ // 微信内容审核 return comActMessageService.addMessageBack(comActMessageBackVO); } @PostMapping("deletemessage") public R deleteMessage(@RequestBody ComActMessageVO comActMessageVO) { return comActMessageService.deleteMessage(comActMessageVO); @@ -1281,6 +1332,7 @@ /** * 导出房屋信息 * * @param areaId * @return */ @@ -1291,6 +1343,7 @@ /** * 查看用户问卷调查详细 * * @param userId 用户ID * @param questId 问卷ID * @return 用户问卷调查详细 @@ -1300,4 +1353,60 @@ return comActQuestnaireService.answerInfoQuestnaire(userId, questId); } /** * 新增社区问卷 * * @param questnaireVO * @return */ @PostMapping("questnaire/addquestnaire") public R answerInfoQuestnaire(@RequestBody QuestnaireVO questnaireVO, @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId) { return comActQuestnaireService.addQuestnaire(questnaireVO, communityId, userId); } /** * 社区问卷列表 * * @param pageQuestnaireDTO * @return */ @PostMapping("questnaire/pagequestnaire") public R pageQuestnaire(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) { return comActQuestnaireService.pageQuestnaire(pageQuestnaireDTO); } /** * 编辑问卷——问卷、题目、选项 * * @param questnaireVO * @return */ @PostMapping("questnaire/editquestnaire") public R editQuestnaire(@RequestBody QuestnaireVO questnaireVO) { return comActQuestnaireService.editQuestnaire(questnaireVO); } /** * 修改问卷状态 * * @param editComActQuestnaireVo * @return */ @PostMapping("questnaire/editquestnairedo") public R editQuestnaireDO(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo, @RequestParam("userId") Long userId) { return comActQuestnaireService.editQuestnaireDO(editComActQuestnaireVo, userId); } /** * 删除问卷 ——隐藏 * * @param questId 调查问卷Id * @return */ @PostMapping("questnaire/deletequestnaire") public R editQuestnaireDO(@RequestParam("questId") Long questId,@RequestParam("userId") Long userId) { return comActQuestnaireService.deleteQuestnaire(questId,userId); } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java
@@ -28,7 +28,7 @@ /** * 状态 0 调研中 1已停止 */ private int state; private Integer state; /** * 参与人数 */ @@ -39,9 +39,17 @@ private Long communityId; /** * 问卷参与者类型 0 全部 1 志愿者 2 党员 * 提供居民 */ private Integer parterType; private Boolean forMasses; /** * 提供党员 */ private Boolean forParty; /** * 提供志愿者 */ private Boolean forVolunteer; /** * 是否隐藏显示 0 显示 1 隐藏 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireService.java
@@ -2,8 +2,8 @@ import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import io.swagger.annotations.ApiModelProperty; /** * @Author: llming @@ -15,33 +15,41 @@ * * @return */ R AddQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId); R addQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId); /** * 社区问卷列表 */ R PageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO); R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO); /** * 编辑问卷——问卷、题目、选项 */ R editQuestnaire(QuestnaireVO questnaireVO); /** * 修改问卷状态 */ R editQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId); R editQuestnaireDO(EditComActQuestnaireVo editComActQuestnaireVo, Long userId); /** * 删除问卷 ——隐藏 * @param queId 问卷调查ID * * @param questId 问卷调查ID * @return */ R deleteQuestnaire(Long queId); R deleteQuestnaire(Long questId, Long userId); /** * 问卷详情-调查结果统计 * * @param questId 问卷ID */ R statQuestnaire(Long questId); /** * 问卷详细-问卷查看 * * @param questId * @return */ @@ -49,6 +57,7 @@ /** * 问卷答题详情 * * @param userId 用户ID * @param questId 问卷ID */ springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -1,7 +1,6 @@ package com.panzhihua.service_community.service.impl; import java.util.Comparator; import java.util.Date; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -13,6 +12,7 @@ import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo; import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO; import com.panzhihua.service_community.dao.ComActQuestnaireAnswerContentDAO; import com.panzhihua.service_community.dao.ComActQuestnaireDAO; @@ -35,7 +35,6 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * @Author: llming @@ -57,7 +56,7 @@ ComActQuestnaireSubSelectionServiceImpl subSelectionService; @Override public R AddQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { public R addQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { ComActQuestnaireDO comActQuestnaireDO = new ComActQuestnaireDO(); comActQuestnaireDO.setTitle(questnaireVO.getQueTitle()); comActQuestnaireDO.setQueDescribe(questnaireVO.getQueDescribe()); @@ -65,14 +64,16 @@ comActQuestnaireDO.setJoinCount(0); comActQuestnaireDO.setCommunityId(communityId); comActQuestnaireDO.setCreateBy(userId); comActQuestnaireDO.setParterType(questnaireVO.getParterType()); int questnaireId = questnaireDAO.insert(comActQuestnaireDO); comActQuestnaireDO.setForMasses(questnaireVO.getForMasses()); comActQuestnaireDO.setForParty(questnaireVO.getForParty()); comActQuestnaireDO.setForVolunteer(questnaireVO.getForVolunteer()); int questId = questnaireDAO.insert(comActQuestnaireDO); questnaireVO.getQuestnaiteSubVOS().forEach(sub -> { ComActQuestnaireSubDO comActQuestnaireSubDO = new ComActQuestnaireSubDO(); comActQuestnaireSubDO.setType(sub.getType()); comActQuestnaireSubDO.setContent(sub.getContent()); comActQuestnaireSubDO.setSort(sub.getSort()); comActQuestnaireSubDO.setQueId((long) questnaireId); comActQuestnaireSubDO.setQueId((long) questId); comActQuestnaireSubDO.setCreateBy(userId); int subId = questnaireSubDAO.insert(comActQuestnaireSubDO); ArrayList<ComActQuestnaireSubSelectionDO> subSelectionList = Lists.newArrayList(); @@ -91,17 +92,17 @@ } @Override public R PageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO) { public R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO) { Page userPage = new Page(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize()); LambdaQueryWrapper<ComActQuestnaireDO> lambdaQueryWrapper = Wrappers.lambdaQuery(); lambdaQueryWrapper.eq(ComActQuestnaireDO::getCommunityId, 0); //过滤隐藏字段 lambdaQueryWrapper.eq(ComActQuestnaireDO::getIsHide, 0); if (pageQuestnaireDTO.getTitle() != null) { lambdaQueryWrapper.like(ComActQuestnaireDO::getTitle, pageQuestnaireDTO.getTitle()); } if (pageQuestnaireDTO.getTitle() != null) { lambdaQueryWrapper.eq(ComActQuestnaireDO::getState, pageQuestnaireDTO.getState()); } if (pageQuestnaireDTO.getParterType() != null) { lambdaQueryWrapper.eq(ComActQuestnaireDO::getParterType, pageQuestnaireDTO.getParterType()); } if (pageQuestnaireDTO.getEndTime() != null && pageQuestnaireDTO.getStartTime() != null) { lambdaQueryWrapper.ge(ComActQuestnaireDO::getCreateAt, pageQuestnaireDTO.getStartTime()); @@ -112,10 +113,10 @@ } @Override public R editQuestnaire(QuestnaireVO questnaireVO, Long communityId, Long userId) { public R editQuestnaire(QuestnaireVO questnaireVO) { ComActQuestnaireDO questnaireDO = null; if (questnaireVO.getQueId() != null && questnaireVO.getQueId() != 0L) { questnaireDO = questnaireDAO.selectById(questnaireVO.getQueId()); if (questnaireVO.getQuestId() != null && questnaireVO.getQuestId() != 0L) { questnaireDO = questnaireDAO.selectById(questnaireVO.getQuestId()); if (questnaireDO == null) { return R.fail(500, "id有误!"); } @@ -150,9 +151,26 @@ } @Override public R deleteQuestnaire(Long queId) { LambdaQueryWrapper<ComActQuestnaireDO> subParam = new LambdaQueryWrapper<ComActQuestnaireDO>().eq(ComActQuestnaireDO::getId, queId); public R editQuestnaireDO(EditComActQuestnaireVo editComActQuestnaireVo, Long userId) { LambdaQueryWrapper<ComActQuestnaireDO> subParam = new LambdaQueryWrapper<ComActQuestnaireDO>().eq(ComActQuestnaireDO::getId, editComActQuestnaireVo.getQuestId()); ComActQuestnaireDO questDO = questnaireDAO.selectOne(subParam); if (questDO == null) { return R.fail(500, "Id有误!"); } questDO.setState(editComActQuestnaireVo.getState()); questDO.setUpdateBy(userId); questnaireDAO.updateById(questDO); return R.ok(); } @Override public R deleteQuestnaire(Long questId, Long userId) { LambdaQueryWrapper<ComActQuestnaireDO> subParam = new LambdaQueryWrapper<ComActQuestnaireDO>().eq(ComActQuestnaireDO::getId, questId); ComActQuestnaireDO queDO = questnaireDAO.selectOne(subParam); if (queDO == null) { return R.fail(); } queDO.setUpdateBy(userId); queDO.setIsHide(1); questnaireDAO.updateById(queDO); return R.ok();