|
|
@ -18,6 +18,7 @@ |
|
|
|
package com.epmet.service.impl; |
|
|
|
|
|
|
|
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; |
|
|
|
import com.epmet.commons.tools.constant.StrConstant; |
|
|
|
import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
|
import com.epmet.commons.tools.exception.RenException; |
|
|
|
import com.epmet.commons.tools.scan.param.TextScanParamDTO; |
|
|
@ -27,19 +28,31 @@ import com.epmet.commons.tools.utils.ConvertUtils; |
|
|
|
import com.epmet.commons.tools.utils.Result; |
|
|
|
import com.epmet.commons.tools.utils.ScanContentUtils; |
|
|
|
import com.epmet.dao.IssueSuggestionDao; |
|
|
|
import com.epmet.dao.IssueVoteDetailDao; |
|
|
|
import com.epmet.dto.IssueDTO; |
|
|
|
import com.epmet.dto.IssueSuggestionDTO; |
|
|
|
import com.epmet.dto.IssueVoteDetailDTO; |
|
|
|
import com.epmet.dto.form.EvaluationListFormDTO; |
|
|
|
import com.epmet.dto.form.UserIssueSuggestionFormDTO; |
|
|
|
import com.epmet.dto.form.UserResiInfoListFormDTO; |
|
|
|
import com.epmet.dto.result.IssueSuggestionResDTO; |
|
|
|
import com.epmet.dto.result.SaveIssueSuggestionResultDTO; |
|
|
|
import com.epmet.dto.result.UserResiInfoResultDTO; |
|
|
|
import com.epmet.entity.IssueSuggestionEntity; |
|
|
|
import com.epmet.feign.EpmetUserFeignClient; |
|
|
|
import com.epmet.service.IssueService; |
|
|
|
import com.epmet.service.IssueSuggestionService; |
|
|
|
import com.github.pagehelper.PageHelper; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.apache.commons.collections4.CollectionUtils; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.beans.factory.annotation.Value; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.util.UUID; |
|
|
|
import java.util.*; |
|
|
|
import java.util.function.Function; |
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
/** |
|
|
|
* 居民端用户对议题建议或意见表 |
|
|
@ -56,6 +69,11 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl<IssueSuggestionD |
|
|
|
private String scanApiUrl; |
|
|
|
@Value("${openapi.scan.method.textSyncScan}") |
|
|
|
private String textSyncScanMethod; |
|
|
|
@Autowired |
|
|
|
private EpmetUserFeignClient epmetUserFeignClient; |
|
|
|
@Autowired |
|
|
|
private IssueVoteDetailDao issueVoteDetailDao; |
|
|
|
|
|
|
|
/** |
|
|
|
* @param formDTO |
|
|
|
* @author yinzuomei |
|
|
@ -75,6 +93,11 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl<IssueSuggestionD |
|
|
|
**/ |
|
|
|
@Override |
|
|
|
public SaveIssueSuggestionResultDTO saveIssueSuggestion(IssueSuggestionDTO dto) { |
|
|
|
//是否表决过
|
|
|
|
IssueVoteDetailDTO issueVoteDetailDTO = issueVoteDetailDao.selectUserIssueDet(dto.getCreatedBy(), dto.getIssueId()); |
|
|
|
if(null==issueVoteDetailDTO){ |
|
|
|
throw new RenException(EpmetErrorCode.VOTE_ISSUE_PLEASE.getCode()); |
|
|
|
} |
|
|
|
//校验建议内容
|
|
|
|
TextScanParamDTO textScanParamDTO = new TextScanParamDTO(); |
|
|
|
TextTaskDTO taskDTO = new TextTaskDTO(); |
|
|
@ -83,7 +106,7 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl<IssueSuggestionD |
|
|
|
textScanParamDTO.getTasks().add(taskDTO); |
|
|
|
Result<SyncScanResult> textSyncScanResult = ScanContentUtils.textSyncScan(scanApiUrl.concat(textSyncScanMethod), textScanParamDTO); |
|
|
|
if (!textSyncScanResult.success()) { |
|
|
|
log.error("居民端用户对议题发表建议,内容审核服务返回失败"); |
|
|
|
log.warn("居民端用户对议题发表建议,内容审核服务返回失败"); |
|
|
|
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode()); |
|
|
|
} else { |
|
|
|
if (!textSyncScanResult.getData().isAllPass()) { |
|
|
@ -106,4 +129,45 @@ public class IssueSuggestionServiceImpl extends BaseServiceImpl<IssueSuggestionD |
|
|
|
return resultDTO; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @param formDTO |
|
|
|
* @author yinzuomei |
|
|
|
* @description 议题建议列表 |
|
|
|
* @Date 2020/11/18 14:16 |
|
|
|
**/ |
|
|
|
@Override |
|
|
|
public List<IssueSuggestionResDTO> listIssueSug(EvaluationListFormDTO formDTO) { |
|
|
|
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize()); |
|
|
|
List<IssueSuggestionResDTO> list = baseDao.selectListIssueSugByIssueId(formDTO.getIssueId()); |
|
|
|
//用户信息公开的userId集合
|
|
|
|
Set<String> userIds = new HashSet<>(); |
|
|
|
list.forEach(issueSuggestion -> { |
|
|
|
if (issueSuggestion.getPublicFlag()) { |
|
|
|
userIds.add(issueSuggestion.getUserId()); |
|
|
|
} |
|
|
|
IssueVoteDetailDTO issueVoteDetailDTO = issueVoteDetailDao.selectUserIssueDet(issueSuggestion.getUserId(), formDTO.getIssueId()); |
|
|
|
issueSuggestion.setAititude(null != issueVoteDetailDTO ? issueVoteDetailDTO.getAttitude() : StrConstant.EPMETY_STR); |
|
|
|
}); |
|
|
|
//查询这部分人的基本信息
|
|
|
|
if (!CollectionUtils.isEmpty(userIds)) { |
|
|
|
Result<List<UserResiInfoResultDTO>> userInfoRes = epmetUserFeignClient.getUserResiInfoList(new UserResiInfoListFormDTO(new ArrayList<>(userIds))); |
|
|
|
if (userInfoRes.success() && !CollectionUtils.isEmpty(userInfoRes.getData())) { |
|
|
|
Map<String, UserResiInfoResultDTO> userBaseInfoMap = userInfoRes.getData().stream().collect(Collectors.toMap(UserResiInfoResultDTO::getUserId, Function.identity())); |
|
|
|
//赋值
|
|
|
|
list.forEach(issueSuggestionInfo -> { |
|
|
|
if (issueSuggestionInfo.getPublicFlag()) { |
|
|
|
UserResiInfoResultDTO userInfo = userBaseInfoMap.get(issueSuggestionInfo.getUserId()); |
|
|
|
if (null != userInfo && StringUtils.isNotBlank(userInfo.getHeadPhoto())) { |
|
|
|
issueSuggestionInfo.setHeadPhoto(userInfo.getHeadPhoto()); |
|
|
|
} |
|
|
|
if (null != userInfo && StringUtils.isNotBlank(userInfo.getShowName())) { |
|
|
|
issueSuggestionInfo.setUserShowName(userInfo.getShowName()); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
} |