diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/controller/AppPsychologistController.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/controller/AppPsychologistController.java index fd88d12..1fde508 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/controller/AppPsychologistController.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/controller/AppPsychologistController.java @@ -76,42 +76,80 @@ public class AppPsychologistController { return new Result().ok(data); } + /** + * 居民端: 用户发布心理咨询问题 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2020/6/15 13:54 + */ @PostMapping("submitQuestion") - public Result submitQuestion(@RequestBody PsychologyQuestionFormDTO formDto) throws Exception { + public Result submitQuestion(@RequestBody PsychologyQuestionFormDTO formDto) { psychologyQuestionService.saveQuestion(formDto); return new Result(); } + /** + * 居民端: 用户提问的心理咨询问题列表 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2020/6/15 11:20 + */ @GetMapping("listUserQuestion") - public Result> listUserQuestion(@RequestBody PsychologyAnswerFormDTO formDto) throws Exception { - //效验数据 - ValidatorUtils.validateEntity(formDto, AddGroup.class, DefaultGroup.class); + public Result> listUserQuestion(@RequestBody PsychologyAnswerFormDTO formDto) { + // 效验数据 + ValidatorUtils.validateEntity(formDto); List data = psychologistService.listUserQuestion(formDto); return new Result>().ok(data); } + /** + * 居民端,心理咨询问题列表 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2020/6/15 13:36 + */ @GetMapping("listQuestion") - public Result> listAllQuestion(@RequestBody PsychologyAnswerFormDTO formDto) throws Exception { + public Result> listAllQuestion(@RequestBody PsychologyAnswerFormDTO formDto) { //效验数据 - ValidatorUtils.validateEntity(formDto, AddGroup.class, DefaultGroup.class); + ValidatorUtils.validateEntity(formDto); List data = psychologistService.listAllQuestion(formDto); return new Result>().ok(data); } + /** + * 工作端:获取待回答的心理咨询问题列表 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2020/6/15 13:35 + */ @GetMapping("listUnansweredQuestion") - public Result> listUnansweredQuestion(@RequestBody PsychologyUnansweredFormDTO formDto) throws Exception { - //效验数据 - ValidatorUtils.validateEntity(formDto, AddGroup.class, DefaultGroup.class); + public Result> listUnansweredQuestion(@RequestBody PsychologyUnansweredFormDTO formDto) { + // 效验数据 + ValidatorUtils.validateEntity(formDto); List data = psychologistService.listUnansweredQuestion(formDto); return new Result>().ok(data); } + /** + * 工作端:我回答过的问题列表 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author work@yujt.net.cn + * @date 2020/6/15 10:09 + */ @GetMapping("listMyQuestion") - public Result> listMyQuestion(@RequestBody PsychologyAnswerFormDTO formDto) throws Exception { - UserDetail user = SecurityUser.getUser(); - formDto.setUserId(user.getId().toString()); - //效验数据 - ValidatorUtils.validateEntity(formDto, AddGroup.class, DefaultGroup.class); + public Result> listMyQuestion(@RequestBody PsychologyAnswerFormDTO formDto) { + // 效验数据 + ValidatorUtils.validateEntity(formDto); List data = psychologistService.listMyQuestion(formDto); return new Result>().ok(data); } diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyAnswerDao.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyAnswerDao.java index 5d055d3..1501030 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyAnswerDao.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyAnswerDao.java @@ -18,11 +18,9 @@ package com.elink.esua.epdc.modules.psychology.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; -import com.elink.esua.epdc.dto.psychology.result.PsychologyAnswerInfoResultDTO; -import com.elink.esua.epdc.dto.psychology.result.PsychologyAnswerUserInfoResultDTO; +import com.elink.esua.epdc.dto.psychology.form.PsychologyAnswerFormDTO; import com.elink.esua.epdc.modules.psychology.entity.PsychologyAnswerEntity; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; import java.util.List; @@ -36,33 +34,12 @@ import java.util.List; public interface PsychologyAnswerDao extends BaseDao { /** - * 居民端-心理咨询-我的问题列表 + * 根据用户id,查询用户回答过的问题的id * - * @return java.util.List - * @params [params] - * @author zhangyuan - * @since 2020/5/21 14:54 + * @param dto + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/6/15 10:16 */ - List listUserQuestion(@Param("questionId") String questionId); - - /** - * 居民端-心理咨询-我的问题列表 - * - * @return java.util.List - * @params [params] - * @author zhangyuan - * @since 2020/5/21 14:54 - */ - List listAllQuestion(@Param("questionId") String questionId); - - - /** - * 工作端--心理咨询-我回答的问题列表 - * - * @return java.util.List - * @params [params] - * @author zhangyuan - * @since 2020/5/21 14:54 - */ - List listMyQuestion(@Param("userId") String userId); + List selectListAnsweredQuestionId(PsychologyAnswerFormDTO dto); } \ No newline at end of file diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyQuestionDao.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyQuestionDao.java index e7c9571..bbb689a 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyQuestionDao.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/dao/PsychologyQuestionDao.java @@ -27,6 +27,7 @@ import com.elink.esua.epdc.dto.psychology.result.PsychologyAnswerOfMineResultDTO import com.elink.esua.epdc.dto.psychology.result.PsychologyUnansweredResultDTO; import com.elink.esua.epdc.modules.psychology.entity.PsychologyQuestionEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -47,7 +48,7 @@ public interface PsychologyQuestionDao extends BaseDao * @author zhangyuan * @since 2020/5/21 14:54 */ - List listUserQuestion(PsychologyAnswerFormDTO dto); + List selectListUserQuestions(PsychologyAnswerFormDTO dto); /** * 居民端-心理咨询-问题列表 @@ -57,7 +58,7 @@ public interface PsychologyQuestionDao extends BaseDao * @author zhangyuan * @since 2020/5/21 14:54 */ - List listAllQuestion(PsychologyAnswerFormDTO dto); + List selectListAllQuestions(PsychologyAnswerFormDTO dto); /** * 工作端--待解答的心理咨询问题列表 @@ -77,7 +78,7 @@ public interface PsychologyQuestionDao extends BaseDao * @author zhangyuan * @since 2020/5/21 14:54 */ - List listMyQuestion(PsychologyAnswerFormDTO dto); + List selectlistAnsweredQuestion(@Param("questionIds") List questionIds); /** * 查询问题详情 diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologistServiceImpl.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologistServiceImpl.java index c9ab329..ed2bfa7 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologistServiceImpl.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologistServiceImpl.java @@ -26,6 +26,7 @@ import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.dto.psychology.PsychologistDTO; import com.elink.esua.epdc.dto.psychology.form.PsychologistFormDTO; @@ -40,6 +41,7 @@ import com.elink.esua.epdc.modules.psychology.entity.PsychologistEntity; import com.elink.esua.epdc.modules.psychology.entity.PsychologistTitleRelationEntity; import com.elink.esua.epdc.modules.psychology.entity.PsychologyAnswerEntity; import com.elink.esua.epdc.modules.psychology.service.PsychologistService; +import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; @@ -178,49 +180,36 @@ public class PsychologistServiceImpl extends BaseServiceImpl listUserQuestion(PsychologyAnswerFormDTO dto) { // sql limit条件转换 - dto.setPageIndex((dto.getPageIndex() - 1) * dto.getPageSize()); - List data = psychologyQuestionDao.listUserQuestion(dto); - data.forEach(item -> { - List list = psychologyAnswerDao.listUserQuestion(item.getId()); - item.setAnswerList(list.size() == 0 ? new ArrayList<>() : ConvertUtils.sourceToTarget(list, PsychologyAnswerUserInfoResultDTO.class)); - }); - - return data; + dto.setPageIndex((dto.getPageIndex() - NumConstant.ONE) * dto.getPageSize()); + return psychologyQuestionDao.selectListUserQuestions(dto); } @Override public List listAllQuestion(PsychologyAnswerFormDTO dto) { // sql limit条件转换 - dto.setPageIndex((dto.getPageIndex() - 1) * dto.getPageSize()); - List data = psychologyQuestionDao.listAllQuestion(dto); - data.forEach(item -> { - List list = psychologyAnswerDao.listAllQuestion(item.getId()); - item.setAnswerList(list.size() == 0 ? new ArrayList<>() : ConvertUtils.sourceToTarget(list, PsychologyAnswerInfoResultDTO.class)); - }); - - return data; + dto.setPageIndex((dto.getPageIndex() - NumConstant.ONE) * dto.getPageSize()); + return psychologyQuestionDao.selectListAllQuestions(dto); } @Override public List listUnansweredQuestion(PsychologyUnansweredFormDTO dto) { + + dto.setUserId(String.valueOf(SecurityUser.getUserId())); // sql limit条件转换 - dto.setPageIndex((dto.getPageIndex() - 1) * dto.getPageSize()); + dto.setPageIndex((dto.getPageIndex() - NumConstant.ONE) * dto.getPageSize()); return psychologyQuestionDao.listUnansweredQuestion(dto); } @Override public List listMyQuestion(PsychologyAnswerFormDTO dto) { - List questionIds = psychologyAnswerDao.listMyQuestion(dto.getUserId()).stream().map(PsychologyAnswerEntity::getQuestionId).collect(Collectors.toList()); - dto.setQuestionIds(questionIds); + dto.setUserId(String.valueOf(SecurityUser.getUserId())); // sql limit条件转换 - dto.setPageIndex((dto.getPageIndex() - 1) * dto.getPageSize()); - List data = psychologyQuestionDao.listMyQuestion(dto); - data.forEach(item -> { - List list = psychologyAnswerDao.listUserQuestion(item.getId()); - item.setAnswerList(list.size() == 0 ? new ArrayList<>() : ConvertUtils.sourceToTarget(list, PsychologyAnswerUserInfoResultDTO.class)); - }); - - return data; + dto.setPageIndex((dto.getPageIndex() - NumConstant.ONE) * dto.getPageSize()); + List questionIds = psychologyAnswerDao.selectListAnsweredQuestionId(dto); + if (CollUtil.isEmpty(questionIds)) { + return Lists.newArrayList(); + } + return psychologyQuestionDao.selectlistAnsweredQuestion(questionIds); } } \ No newline at end of file diff --git a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologyQuestionServiceImpl.java b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologyQuestionServiceImpl.java index 5308fd5..9f0ad1f 100644 --- a/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologyQuestionServiceImpl.java +++ b/epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/psychology/service/impl/PsychologyQuestionServiceImpl.java @@ -22,9 +22,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.NumConstant; +import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; -import com.elink.esua.epdc.dto.constant.PropertyConstant; +import com.elink.esua.epdc.dto.constant.PsychologyConstant; import com.elink.esua.epdc.dto.psychology.PsychologyQuestionDTO; import com.elink.esua.epdc.dto.psychology.form.PsychologyQuestionFormDTO; import com.elink.esua.epdc.modules.psychology.dao.PsychologyQuestionDao; @@ -93,9 +94,9 @@ public class PsychologyQuestionServiceImpl extends BaseServiceImpl - - - - - - - - - - - - - - - - - - ID, NAME, AVATAR, MOBILE, SEX, USER_ID, MOTTO, BRIEF_INTRODUCTION, SORT, DISPLAY_FLAG, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME diff --git a/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyAnswerDao.xml b/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyAnswerDao.xml index 1bd84c1..902da02 100644 --- a/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyAnswerDao.xml +++ b/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyAnswerDao.xml @@ -3,58 +3,16 @@ - - - - - - - - - - - - - - - ID, QUESTION_ID, PSYCHOLOGIST_ID, PSYCHOLOGIST_NAME, ANSWER_CONTENT, - DEL_FLAG, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME - - SELECT - PSYCHOLOGIST_ID, PSYCHOLOGIST_NAME, ANSWER_CONTENT, date_format(CREATED_TIME, '%Y-%m-%d') AS ANSWER_TIME + DISTINCT(QUESTION_ID) AS QUESTION_ID FROM - epdc_psychology_answer + epdc_psychology_answer WHERE - DEL_FLAG = '0' - - AND QUESTION_ID = #{questionId} - - ORDER BY - CREATED_TIME DESC - - - - - \ No newline at end of file diff --git a/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyQuestionDao.xml b/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyQuestionDao.xml index 3887db0..d7edd9d 100644 --- a/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyQuestionDao.xml +++ b/epdc-cloud-property/src/main/resources/mapper/psychology/PsychologyQuestionDao.xml @@ -3,90 +3,120 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - - ID, USER_ID, USER_NAME, USER_AVATAR, QUESTION_CONTENT, ANONYMOUS_FLAG, PSYCHOLOGIST_ID, ANSWER_NUM, - DEL_FLAG, DISPLAY_FLAG, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME - - SELECT - ID, USER_ID, USER_NAME, USER_AVATAR, QUESTION_CONTENT, CREATED_TIME AS QUESTION_TIME + pq.ID, + pq.USER_ID,pq.USER_NAME,pq.USER_AVATAR, + pq.QUESTION_CONTENT, + DATE_FORMAT( pq.CREATED_TIME, '%Y.%m.%d %H:%i' ) AS QUESTION_TIME, + pa.PSYCHOLOGIST_ID, + pa.PSYCHOLOGIST_NAME, + pa.ANSWER_CONTENT, + DATE_FORMAT( pa.CREATED_TIME, '%Y.%m.%d' ) AS ANSWER_TIME FROM - epdc_psychology_question + epdc_psychology_question pq + LEFT JOIN epdc_psychology_answer pa ON pa.QUESTION_ID = pq.ID AND pa.DEL_FLAG = '0' WHERE - DEL_FLAG = '0' - - AND USER_ID = #{userId} - - ORDER BY - CREATED_TIME DESC + pq.DEL_FLAG = '0' + and pq.USER_ID = #{userId} + AND pq.CREATED_TIME <= STR_TO_DATE( #{timestamp}, '%Y-%m-%d %H:%i:%s' ) + ORDER BY pq.CREATED_TIME DESC LIMIT #{pageIndex}, #{pageSize}; - SELECT - ID, USER_ID, USER_NAME, USER_AVATAR, QUESTION_CONTENT + pq.ID, + pq.USER_ID,pq.USER_NAME,pq.USER_AVATAR, + pq.QUESTION_CONTENT, + pa.PSYCHOLOGIST_ID, + pa.PSYCHOLOGIST_NAME, + pa.ANSWER_CONTENT FROM - epdc_psychology_question + epdc_psychology_question pq + LEFT JOIN epdc_psychology_answer pa ON pa.QUESTION_ID = pq.ID AND pa.DEL_FLAG = '0' WHERE - DEL_FLAG = '0' + pq.DEL_FLAG = '0' + AND pq.CREATED_TIME <= STR_TO_DATE( #{timestamp}, '%Y-%m-%d %H:%i:%s' ) ORDER BY - CREATED_TIME DESC - LIMIT #{pageIndex}, #{pageSize}; + pq.CREATED_TIME DESC + LIMIT #{pageIndex}, #{pageSize}; - SELECT - ID, QUESTION_CONTENT, CREATED_TIME AS QUESTION_TIME + pq.ID, + pq.QUESTION_CONTENT, + DATE_FORMAT( pq.CREATED_TIME, '%Y.%m.%d %H:%i' ) AS QUESTION_TIME, + pa.PSYCHOLOGIST_ID, + pa.PSYCHOLOGIST_NAME, + pa.ANSWER_CONTENT, + DATE_FORMAT( pa.CREATED_TIME, '%Y.%m.%d' ) AS ANSWER_TIME FROM - epdc_psychology_question + epdc_psychology_question pq + LEFT JOIN epdc_psychology_answer pa ON pa.QUESTION_ID = pq.ID WHERE - DEL_FLAG = '0' - - AND ID IN - - #{questionId} - - + pq.id in #{item} + and pa.DEL_FLAG = '0' ORDER BY - CREATED_TIME DESC - LIMIT #{pageIndex}, #{pageSize}; + pa.CREATED_TIME DESC