|
@@ -1,17 +1,14 @@
|
|
|
package com.cy.guoyan.admin.module.guoyan.service.researchtopicinfo;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
|
|
|
import com.cy.guoyan.admin.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|
|
import com.cy.guoyan.admin.framework.security.core.util.SecurityFrameworkUtils;
|
|
|
-import com.cy.guoyan.admin.module.infra.api.file.FileApi;
|
|
|
-import com.cy.guoyan.admin.module.infra.controller.admin.file.vo.file.FileRespVO;
|
|
|
+import com.cy.guoyan.admin.module.guoyan.dal.dataobject.researchtopiccategory.ResearchTopicCategoryDO;
|
|
|
+import com.cy.guoyan.admin.module.guoyan.dal.mysql.researchtopiccategory.ResearchTopicCategoryMapper;
|
|
|
import com.cy.guoyan.admin.module.infra.controller.admin.file.vo.file.FileVO;
|
|
|
import com.cy.guoyan.admin.module.infra.dal.dataobject.file.FileDO;
|
|
|
import com.cy.guoyan.admin.module.infra.dal.mysql.file.FileMapper;
|
|
|
-import com.cy.guoyan.admin.module.infra.service.file.FileService;
|
|
|
import com.cy.guoyan.admin.module.system.enums.common.JobTypeCodeConstants;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -21,20 +18,17 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
-import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import com.cy.guoyan.admin.module.guoyan.controller.admin.researchtopicinfo.vo.*;
|
|
|
import com.cy.guoyan.admin.module.guoyan.dal.dataobject.researchtopicinfo.ResearchTopicInfoDO;
|
|
|
import com.cy.guoyan.admin.framework.common.pojo.PageResult;
|
|
|
-import com.cy.guoyan.admin.framework.common.pojo.PageParam;
|
|
|
import com.cy.guoyan.admin.framework.common.util.object.BeanUtils;
|
|
|
|
|
|
import com.cy.guoyan.admin.module.guoyan.dal.mysql.researchtopicinfo.ResearchTopicInfoMapper;
|
|
|
|
|
|
import static com.cy.guoyan.admin.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static com.cy.guoyan.admin.framework.common.util.collection.CollectionUtils.convertList;
|
|
|
-import static com.cy.guoyan.admin.framework.common.util.collection.CollectionUtils.diffList;
|
|
|
import static com.cy.guoyan.admin.module.system.enums.ErrorCodeConstants.*;
|
|
|
|
|
|
/**
|
|
@@ -52,37 +46,57 @@ public class ResearchTopicInfoServiceImpl implements ResearchTopicInfoService {
|
|
|
@Resource
|
|
|
private FileMapper fileMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ResearchTopicCategoryMapper researchTopicCategoryMapper;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Long createResearchTopicInfo(ResearchTopicInfoSaveReqVO createReqVO) {
|
|
|
String nickname = String.valueOf(SecurityFrameworkUtils.getLoginUser().getInfo().get("nickname"));
|
|
|
- ResearchTopicInfoDO researchTopicInfo = BeanUtils.toBean(createReqVO, ResearchTopicInfoDO.class);
|
|
|
- researchTopicInfo.setCreatorName(nickname);
|
|
|
+ ResearchTopicInfoDO data = BeanUtils.toBean(createReqVO, ResearchTopicInfoDO.class);
|
|
|
+ data.setCreatorName(nickname);
|
|
|
DefaultIdentifierGenerator generator = new DefaultIdentifierGenerator();
|
|
|
- researchTopicInfo.setId(generator.nextId(null));
|
|
|
- researchTopicInfo.setAuditStatus("未审核");
|
|
|
- researchTopicInfo.setStatus("正常");
|
|
|
+ data.setId(generator.nextId(null));
|
|
|
+ data.setAuditStatus("未审核");
|
|
|
+ data.setStatus("正常");
|
|
|
if (createReqVO.getOriginalPubDate() != null) {
|
|
|
String year = createReqVO.getOriginalPubDate().substring(0, 4);
|
|
|
- researchTopicInfo.setOriginalPubYear(Integer.parseInt(year));
|
|
|
+ data.setOriginalPubYear(Integer.parseInt(year));
|
|
|
}
|
|
|
- researchTopicInfo.setImported("0");
|
|
|
+ data.setImported("0");
|
|
|
if (StringUtils.isNotBlank(createReqVO.getImage())) {
|
|
|
createReqVO.setImageDate(extractDate(createReqVO.getImage()));
|
|
|
}
|
|
|
|
|
|
- researchTopicInfoMapper.insert(researchTopicInfo);
|
|
|
+ researchTopicInfoMapper.insert(data);
|
|
|
if (createReqVO.getFileList() != null) {
|
|
|
createReqVO.getFileList().forEach(file -> {
|
|
|
file.setJobTypeCode(JobTypeCodeConstants.GUO_ZI_RESEARCH_TOPIC_INFO);
|
|
|
- file.setBusinessId(String.valueOf(researchTopicInfo.getId()));
|
|
|
+ file.setBusinessId(String.valueOf(data.getId()));
|
|
|
List<FileDO> fileDOList =BeanUtils.toBean(createReqVO.getFileList(), FileDO.class);
|
|
|
fileMapper.updateBatch(fileDOList);
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ if (StringUtils.isNotBlank(createReqVO.getTopicCategoryCode())) {
|
|
|
+ String topicCategoryCodeStr = createReqVO.getTopicCategoryCode();
|
|
|
+ List<String> codeList = Arrays.stream(topicCategoryCodeStr.split("\\."))
|
|
|
+ .filter(StringUtils::isNotBlank)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ List<ResearchTopicCategoryDO> categoryList =
|
|
|
+ researchTopicCategoryMapper.selectList(
|
|
|
+ new LambdaQueryWrapperX<ResearchTopicCategoryDO>()
|
|
|
+ .in(ResearchTopicCategoryDO::getCategoryCode, codeList));
|
|
|
+
|
|
|
+ categoryList.forEach(item ->
|
|
|
+ item.setArticleCount(
|
|
|
+ Optional.ofNullable(item.getArticleCount()).orElse(0) + 1));
|
|
|
+ researchTopicCategoryMapper.updateBatch(categoryList);
|
|
|
+ }
|
|
|
+
|
|
|
// 返回
|
|
|
- return researchTopicInfo.getId();
|
|
|
+ return data.getId();
|
|
|
}
|
|
|
|
|
|
@Override
|