diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java
new file mode 100644
index 0000000000..57f5fbb8ee
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/form/EvaluationListFormDTO.java
@@ -0,0 +1,31 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @Description 项目跟踪-项目满意度评价列表-接口入参
+ * @Author sun
+ */
+@Data
+public class EvaluationListFormDTO implements Serializable {
+ private static final long serialVersionUID = 4859779755214502427L;
+
+ @NotBlank(message = "项目Id不能为空")
+ private String projectId;
+
+ /**
+ * 请求页码
+ * */
+ @Min(1)
+ private int pageNo;
+
+ /**
+ * 每页多少条数据
+ * */
+ private int pageSize = 20;
+}
+
diff --git a/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EvaluationListResultDTO.java b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EvaluationListResultDTO.java
new file mode 100644
index 0000000000..0a9dd49d82
--- /dev/null
+++ b/epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/EvaluationListResultDTO.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright 2018 人人开源 https://www.renren.io
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package com.epmet.dto.result;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+
+/**
+ * 项目跟踪-项目满意度评价列表-接口返参
+ *
+ * @author sun
+ */
+@Data
+public class EvaluationListResultDTO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 评价用户id
+ */
+ private String userId = "";
+
+ /**
+ * 评论人员全称(街道-姓氏先生/女士)
+ */
+ private String userNickName = "";
+
+ /**
+ * 满意程度(不满意:bad、基本满意:good、非常满意:perfect)
+ */
+ private String satisfaction = "";
+
+ /**
+ * 评价时间
+ */
+ private Long evaluateTime;
+
+ /**
+ * 评价内容
+ */
+ private String evaluateContent = "";
+
+ /**
+ * 头像
+ */
+ private String userHeadPhoto = "";
+
+}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/pom.xml b/epmet-module/gov-project/gov-project-server/pom.xml
index 7fa15bd39f..ef9a20e890 100644
--- a/epmet-module/gov-project/gov-project-server/pom.xml
+++ b/epmet-module/gov-project/gov-project-server/pom.xml
@@ -66,6 +66,12 @@
2.0.0
compile
+
+ com.epmet
+ epmet-user-client
+ 2.0.0
+ compile
+
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
index e9b81ef0f9..1c2b314f41 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/constant/ProjectConstant.java
@@ -68,4 +68,9 @@ public interface ProjectConstant {
* 是否处理-已处理
*/
String HANDLE = "handle";
+
+ /**
+ * 调用epmet-user服务查询数据失败
+ */
+ String SELECT_USERINFO_EXCEPTION = "获取用户昵称、头像失败";
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
index b862ba1085..9f2e75ed7f 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectTraceController.java
@@ -9,6 +9,7 @@ import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.service.ProjectProcessService;
+import com.epmet.service.ProjectSatisfactionDetailService;
import com.epmet.service.ProjectTraceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@@ -33,6 +34,9 @@ public class ProjectTraceController {
@Autowired
private ProjectProcessService projectProcessService;
+ @Autowired
+ private ProjectSatisfactionDetailService projectSatisfactionDetailService;
+
/**
* 待处理项目列表
*
@@ -137,7 +141,6 @@ public class ProjectTraceController {
return new Result();
}
-
/**
* @param formDTO
* @return
@@ -150,5 +153,18 @@ public class ProjectTraceController {
ValidatorUtils.validateEntity(formDTO);
return new Result>().ok(projectProcessService.progressList(formDTO));
}
+
+ /**
+ * @param formDTO
+ * @return
+ * @Author sun
+ * @Description 项目跟踪-项目满意度评价列表
+ **/
+ @PostMapping("evaluationlist")
+ @RequirePermission(requirePermission = RequirePermissionEnum.WORK_PROJECT_TRACE_DETAIL)
+ public Result> evaluationList(@LoginUser TokenDto tokenDTO, @RequestBody EvaluationListFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO);
+ return new Result>().ok(projectSatisfactionDetailService.evaluationList(formDTO));
+ }
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java
index aacb3e4d87..514c7060b1 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionDetailDao.java
@@ -18,8 +18,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.result.EvaluationListResultDTO;
import com.epmet.entity.ProjectSatisfactionDetailEntity;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* 项目满意度调查记录表
@@ -29,5 +33,12 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ProjectSatisfactionDetailDao extends BaseDao {
-
+
+ /**
+ * @param projectId
+ * @return
+ * @Author sun
+ * @Description 根据项目Id查询项目评价列表数据
+ **/
+ List getEvaluationListByProjectId(@Param("projectId") String projectId);
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
index cc2404269e..11f0f28937 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
@@ -1,8 +1,15 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.UserResiInfoListFormDTO;
+import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.fallback.EpmetUserFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
/**
* @Description 调用epmet-user服务
@@ -11,6 +18,12 @@ import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallBack.class)
public interface EpmetUserFeignClient {
-
-
+ /**
+ * @param userResiInfoListFormDTO
+ * @return com.epmet.commons.tools.utils.Result>
+ * @Author sun
+ * @Description 根据userId集合查询用户信息
+ **/
+ @PostMapping("/epmetuser/userresiinfo/getuserresiinfolist")
+ Result> getUserResiInfoList(@RequestBody UserResiInfoListFormDTO userResiInfoListFormDTO);
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java
index cfb62dcabf..88e9590eaf 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/feign/fallback/EpmetUserFeignClientFallBack.java
@@ -1,8 +1,15 @@
package com.epmet.feign.fallback;
+import com.epmet.commons.tools.constant.ServiceConstant;
+import com.epmet.commons.tools.utils.ModuleUtils;
+import com.epmet.commons.tools.utils.Result;
+import com.epmet.dto.form.UserResiInfoListFormDTO;
+import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.feign.EpmetUserFeignClient;
import org.springframework.stereotype.Component;
+import java.util.List;
+
/**
* @Description 调用epmet-user服务
* @Author sun
@@ -10,4 +17,8 @@ import org.springframework.stereotype.Component;
@Component
public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient {
+ @Override
+ public Result> getUserResiInfoList(UserResiInfoListFormDTO userResiInfoListFormDTO) {
+ return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserResiInfoList", userResiInfoListFormDTO);
+ }
}
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java
index a1fef8ff1c..94decfd804 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionDetailService.java
@@ -20,6 +20,8 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.ProjectSatisfactionDetailDTO;
+import com.epmet.dto.form.EvaluationListFormDTO;
+import com.epmet.dto.result.EvaluationListResultDTO;
import com.epmet.entity.ProjectSatisfactionDetailEntity;
import java.util.List;
@@ -92,4 +94,12 @@ public interface ProjectSatisfactionDetailService extends BaseService evaluationList(EvaluationListFormDTO formDTO);
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java
index 8a0e4705a8..7ad9452c05 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java
+++ b/epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionDetailServiceImpl.java
@@ -20,12 +20,20 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
+import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.commons.tools.constant.NumConstant;
+import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
-import com.epmet.commons.tools.constant.FieldConstant;
+import com.epmet.constant.ProjectConstant;
import com.epmet.dao.ProjectSatisfactionDetailDao;
import com.epmet.dto.ProjectSatisfactionDetailDTO;
+import com.epmet.dto.form.EvaluationListFormDTO;
+import com.epmet.dto.form.UserResiInfoListFormDTO;
+import com.epmet.dto.result.EvaluationListResultDTO;
+import com.epmet.dto.result.UserResiInfoResultDTO;
import com.epmet.entity.ProjectSatisfactionDetailEntity;
+import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.redis.ProjectSatisfactionDetailRedis;
import com.epmet.service.ProjectSatisfactionDetailService;
import org.apache.commons.lang3.StringUtils;
@@ -33,9 +41,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* 项目满意度调查记录表
@@ -48,6 +58,8 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl page(Map params) {
@@ -101,4 +113,38 @@ public class ProjectSatisfactionDetailServiceImpl extends BaseServiceImpl evaluationList(EvaluationListFormDTO formDTO) {
+ //1:根据项目Id查询项目评价列表,按时间倒序
+ List evaluationList = baseDao.getEvaluationListByProjectId(formDTO.getProjectId());
+ if (null == evaluationList || evaluationList.size() < NumConstant.ONE) {
+ return new ArrayList<>();
+ }
+ //2:调用epmet-user服务 获取用户头像 昵称
+ //2.1:遍历获取所有的userId
+ List userIds = evaluationList.stream().map(EvaluationListResultDTO::getUserId).collect(Collectors.toList());
+ //2.2:获取所有用户的头像 昵称
+ UserResiInfoListFormDTO userResiInfoListFormDTO = new UserResiInfoListFormDTO();
+ userResiInfoListFormDTO.setUserIdList(userIds);
+ List userResiInfoList = epmetUserFeignClient.getUserResiInfoList(userResiInfoListFormDTO).getData();
+ if (null == userResiInfoList || userResiInfoList.size() < NumConstant.ONE) {
+ throw new RenException(ProjectConstant.SELECT_USERINFO_EXCEPTION);
+ }
+ //3:将每个用户的头像 昵称放到对应实体中返回给前台
+ List resultList = evaluationList.stream().flatMap(evaluation -> userResiInfoList.stream().filter(user ->
+ evaluation.getUserId().equals(user.getUserId())).map(userInfo -> {
+ EvaluationListResultDTO resultDTO = ConvertUtils.sourceToTarget(evaluation, EvaluationListResultDTO.class);
+ resultDTO.setUserNickName(null == userInfo.getShowName() ? "" : userInfo.getShowName());
+ resultDTO.setUserHeadPhoto(null == userInfo.getHeadPhoto() ? "" : userInfo.getHeadPhoto());
+ return resultDTO;
+ })).collect(Collectors.toList());
+ return resultList;
+ }
+
}
\ No newline at end of file
diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml
index a644923a30..e2ddbd3417 100644
--- a/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml
+++ b/epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionDetailDao.xml
@@ -16,5 +16,19 @@
+
+ SELECT
+ CREATED_BY AS "userId",
+ SATISFACTION AS "satisfaction",
+ UNIX_TIMESTAMP(CREATED_TIME) AS "evaluateTime",
+ `COMMENT` AS "evaluateContent"
+ FROM
+ project_satisfaction_detail
+ WHERE
+ DEL_FLAG = '0'
+ AND PROJECT_ID = #{projectId}
+ ORDER BY CREATED_TIME DESC
+
+
\ No newline at end of file