Browse Source

打分情况处理未进群就打分的。

hotfix/yujt_opt
zhangyuan 5 years ago
parent
commit
7d9d044b71
  1. 9
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectDao.java
  2. 12
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectScoreDao.java
  3. 27
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/impl/PropertyProjectServiceImpl.java
  4. 38
      epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectDao.xml
  5. 17
      epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectScoreDao.xml

9
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectDao.java

@ -79,15 +79,6 @@ public interface PropertyProjectDao extends BaseDao<PropertyProjectEntity> {
*/
ProjectDetailResultDTO selectDetailByIdV2(ProjectDetailFormDTO dto);
/**
* 项目详情打分情况V2
*
* @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [params]
* @author zhangyuan
* @since 2019/10/11 14:54
*/
ProjectDetailResultDTO selectScoreByIdV2(ProjectDetailFormDTO dto);
/**
* 查询需要修改组织机构信息事件

12
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/dao/PropertyProjectScoreDao.java

@ -18,7 +18,9 @@
package com.elink.esua.epdc.modules.project.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectScoreFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.modules.project.entity.PropertyProjectScoreEntity;
import org.apache.ibatis.annotations.Mapper;
@ -49,4 +51,14 @@ public interface PropertyProjectScoreDao extends BaseDao<PropertyProjectScoreEnt
* @since 2019/10/11 14:54
*/
String selectAvaScore(ProjectScoreFormDTO dto);
/**
* 项目详情个人打分情况V2
*
* @return java.util.List<com.elink.esua.epdc.dto.project.PropertyProjectDTO>
* @params [params]
* @author zhangyuan
* @since 2019/10/11 14:54
*/
String selectScoreByIdV2(ProjectScoreFormDTO dto);
}

27
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/project/service/impl/PropertyProjectServiceImpl.java

@ -35,6 +35,7 @@ import com.elink.esua.epdc.dto.group.GroupDTO;
import com.elink.esua.epdc.dto.project.PropertyProjectDTO;
import com.elink.esua.epdc.dto.project.form.ProjectDetailFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectListFormDTO;
import com.elink.esua.epdc.dto.project.form.ProjectScoreFormDTO;
import com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO;
import com.elink.esua.epdc.dto.project.result.ProjectListResultDTO;
import com.elink.esua.epdc.modules.feign.AdminFeignClient;
@ -43,6 +44,7 @@ import com.elink.esua.epdc.modules.group.dao.GroupDao;
import com.elink.esua.epdc.modules.group.entity.GroupEntity;
import com.elink.esua.epdc.modules.group.service.GroupService;
import com.elink.esua.epdc.modules.project.dao.PropertyProjectDao;
import com.elink.esua.epdc.modules.project.dao.PropertyProjectScoreDao;
import com.elink.esua.epdc.modules.project.entity.PropertyProjectEntity;
import com.elink.esua.epdc.modules.project.service.PropertyProjectService;
import com.elink.esua.epdc.modules.rocketmq.dto.OrganizationModifyDTO;
@ -82,6 +84,9 @@ public class PropertyProjectServiceImpl extends BaseServiceImpl<PropertyProjectD
@Resource
private GroupDao groupDao;
@Resource
private PropertyProjectScoreDao propertyProjectScoreDao;
@Override
public PageData<PropertyProjectDTO> page(Map<String, Object> params) {
IPage<PropertyProjectEntity> page = getPage(params);
@ -209,17 +214,29 @@ public class PropertyProjectServiceImpl extends BaseServiceImpl<PropertyProjectD
@Override
public ProjectDetailResultDTO getProjectDetailByIdV2(ProjectDetailFormDTO dto) {
ProjectDetailResultDTO projectDetailResultDTO = baseDao.selectDetailByIdV2(dto);
// 没有打分的情况需要额外判断,MySQL 5.0.3之前的版本,sum函数返回的是DOUBLE类型
// 没有打分和没有进群的情况需要额外判断,MySQL 5.0.3之前的版本,sum函数返回的是DOUBLE类型
if (projectDetailResultDTO != null) {
// 处理mysql sum后出现的,0
projectDetailResultDTO.setUserScore(projectDetailResultDTO.getUserScore().replace(".0", ""));
if ("0".equals(projectDetailResultDTO.getUserScore())) {
ProjectDetailResultDTO score = baseDao.selectScoreByIdV2(dto);
// 由于存在未进群打分的情况,打分数据重新获取
ProjectScoreFormDTO scoreFormDTO = new ProjectScoreFormDTO();
scoreFormDTO.setUserId(dto.getUserId());
scoreFormDTO.setProjectId(dto.getId());
String score = propertyProjectScoreDao.selectScoreByIdV2(scoreFormDTO);
String avaScore = propertyProjectScoreDao.selectAvaScore(scoreFormDTO);
// 如果没有打分情况,赋""表示未打分
if (score == null) {
projectDetailResultDTO.setUserScore("");
} else {
// 处理mysql sum后出现的,0
projectDetailResultDTO.setUserScore(score.replace(".0", ""));
}
// 如果没有打分情况,赋""表示没有平均分
if (score == null) {
projectDetailResultDTO.setAvaScore("");
} else {
// 处理mysql sum后出现的,0
projectDetailResultDTO.setAvaScore(avaScore.replace(".0", ""));
}
}
return projectDetailResultDTO;
}

38
epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectDao.xml

@ -163,60 +163,24 @@
ELSE
0
END
) AS GROUP_MEMBER_FLAG,
SUM(
CASE
WHEN es.SCORE IS NOT NULL
AND es.USER_ID = #{userId} THEN
es.SCORE
ELSE
''
END) AS USER_SCORE,
IFNULL(
CONVERT (
avg(es.score),
DECIMAL (10, 1)
),
''
) AS AVA_SCORE
) AS GROUP_MEMBER_FLAG
FROM
epdc_property_project ep
LEFT JOIN epdc_group eg ON ep.id = eg.REFERENCE_BUSINESS_ID
LEFT JOIN epdc_user_group eu ON eg.id = eu.GROUP_ID
AND eu.DEL_FLAG = '0'
LEFT JOIN epdc_property_project_score es ON ep.id = es.PROJECT_ID
AND ep.PROPERTY_ID = es.PROPERTY_ID
AND es.DEL_FLAG = '0'
WHERE
ep.DEL_FLAG = '0'
AND eg.DEL_FLAG = '0'
<if test="id != null and id != ''">
AND ep.ID = #{id}
</if>
<if test="gridId != null and gridId != ''">
AND (ep.GRID_ID = #{gridId}
OR find_in_set(#{gridId},ep.ALL_DEPT_IDS))
</if>
GROUP BY
ep.ID
</select>
<select id="selectScoreByIdV2" resultType="com.elink.esua.epdc.dto.project.result.ProjectDetailResultDTO">
SELECT
es.SCORE as USER_SCORE
FROM
epdc_property_project ep
LEFT JOIN epdc_group eg ON ep.id = eg.REFERENCE_BUSINESS_ID
LEFT JOIN epdc_user_group eu ON eg.id = eu.GROUP_ID
AND eu.DEL_FLAG = '0'
LEFT JOIN epdc_property_project_score es ON ep.id = es.PROJECT_ID
AND ep.PROPERTY_ID = es.PROPERTY_ID
AND es.DEL_FLAG = '0'
WHERE
ep.id = #{id}
AND es.USER_ID = #{userId}
</select>
<select id="selectListOfOrganizationInfo" resultType="com.elink.esua.epdc.dto.project.PropertyProjectDTO">
SELECT
ID,

17
epdc-cloud-property/src/main/resources/mapper/project/PropertyProjectScoreDao.xml

@ -30,17 +30,26 @@
<select id="selectAvaScore" resultType="java.lang.String">
SELECT
IFNULL(
CONVERT (
avg(es.score),
DECIMAL (10, 1)
),
''
) AS AVA_SCORE
FROM
epdc_property_project_score es
WHERE
es.DEL_FLAG = '0'
AND es.PROPERTY_ID = #{projectId}
AND es.PROJECT_ID = #{projectId}
</select>
<select id="selectScoreByIdV2" resultType="java.lang.String">
SELECT
es.score AS USER_SCORE
FROM
epdc_property_project_score es
WHERE
es.DEL_FLAG = '0'
AND es.PROJECT_ID = #{projectId}
AND es.USER_ID = #{userId}
</select>
</mapper>
Loading…
Cancel
Save