|
@@ -1,15 +1,27 @@
|
|
|
package com.redxun.knowledge.album.service;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.redxun.common.base.db.BaseDao;
|
|
|
import com.redxun.common.base.db.BaseService;
|
|
|
+import com.redxun.common.base.db.PageHelper;
|
|
|
import com.redxun.common.base.search.QueryFilter;
|
|
|
import com.redxun.common.service.impl.SuperServiceImpl;
|
|
|
import com.redxun.common.tool.IdGenerator;
|
|
|
import com.redxun.knowledge.album.entity.consts.AlbumConst;
|
|
|
import com.redxun.knowledge.album.entity.dao.*;
|
|
|
import com.redxun.knowledge.album.entity.dto.YelpDto;
|
|
|
+import com.redxun.knowledge.album.entity.enums.AlbumInfoEnum;
|
|
|
+import com.redxun.knowledge.album.entity.enums.AlbumVersionEnum;
|
|
|
+import com.redxun.knowledge.album.entity.enums.AlbumYelpEnum;
|
|
|
+import com.redxun.knowledge.album.entity.vo.AlbumApproveVo;
|
|
|
+import com.redxun.knowledge.album.entity.vo.AlbumInfoDetailVo;
|
|
|
+import com.redxun.knowledge.album.entity.vo.AlbumYelpInfoVo;
|
|
|
+import com.redxun.knowledge.album.entity.vo.AlbumYelpListPcVo;
|
|
|
+import com.redxun.knowledge.album.mapper.AlbumCategoryMapper;
|
|
|
+import com.redxun.knowledge.album.mapper.AlbumInfoMapper;
|
|
|
+import com.redxun.knowledge.album.mapper.AlbumVersionMapper;
|
|
|
import com.redxun.knowledge.album.mapper.AlbumYelpMapper;
|
|
|
import com.redxun.knowledge.common.UserService;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -18,6 +30,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -33,6 +46,15 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
@Resource
|
|
|
private AlbumYelpMapper albumYelpMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private AlbumInfoMapper albumInfoMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AlbumCategoryMapper albumCategoryMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private AlbumVersionMapper albumVersionMapper;
|
|
|
+
|
|
|
@Autowired
|
|
|
private AlbumYelpApprovalNodeServiceImpl albumYelpApprovalNodeService;
|
|
|
|
|
@@ -47,6 +69,33 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
return albumYelpMapper;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * PC端分页查询一级点评信息(最多返回两条回复)
|
|
|
+ * @param queryFilter
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public IPage query(QueryFilter queryFilter) {
|
|
|
+ Map<String, Object> params = PageHelper.constructParams(queryFilter);
|
|
|
+ queryFilter.getParams().put("createBy",userService.queryLoginUser());
|
|
|
+ IPage page = albumYelpMapper.findAllYelpInfo(queryFilter.getPage(), queryFilter.getParams(), params);
|
|
|
+ List<AlbumYelp> albumYelpList = page.getRecords();
|
|
|
+ List<AlbumYelpListPcVo> albumYelpListPcVoList = albumYelpList.parallelStream().map(albumYelp -> {
|
|
|
+ AlbumYelpListPcVo albumYelpListPcVo = new AlbumYelpListPcVo();
|
|
|
+ albumYelpListPcVo.setPkId(albumYelp.getPkId());
|
|
|
+ albumYelpListPcVo.setState(albumYelp.getState());
|
|
|
+ albumYelpListPcVo.setCreateName(userService.queryOsUserDto(albumYelp.getCreateBy()).getFullName());
|
|
|
+ albumYelpListPcVo.setCreatePhoto((String) userService.querySexAndPhoto(albumYelp.getCreateBy()).get("photo"));
|
|
|
+ albumYelpListPcVo.setContent(albumYelp.getContent());
|
|
|
+ albumYelpListPcVo.setCreateTime(albumYelp.getCreateTime());
|
|
|
+ // TODO: 2023/2/16 下级回复
|
|
|
+ return albumYelpListPcVo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ page.setRecords(albumYelpListPcVoList);
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 根据专辑Id删除点评信息
|
|
|
*
|
|
@@ -121,4 +170,102 @@ public class AlbumYelpServiceImpl extends SuperServiceImpl<AlbumYelpMapper, Albu
|
|
|
long total = page.getTotal();
|
|
|
return total;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据点评ID获取点评审核信息数据
|
|
|
+ * @param pkId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public AlbumYelpInfoVo info(String pkId) {
|
|
|
+ AlbumYelpInfoVo albumYelpInfoVo = new AlbumYelpInfoVo();
|
|
|
+ //点评基础信息及上级评论信息
|
|
|
+ AlbumYelp albumYelp = albumYelpMapper.selectById(pkId);
|
|
|
+ albumYelpInfoVo.setPkId(albumYelp.getPkId());
|
|
|
+ albumYelpInfoVo.setCreateName(userService.queryOsUserDto(albumYelp.getCreateBy()).getFullName());
|
|
|
+ albumYelpInfoVo.setCreatePhoto((String) userService.querySexAndPhoto(albumYelp.getCreateBy()).get("photo"));
|
|
|
+ albumYelpInfoVo.setContent(albumYelp.getContent());
|
|
|
+ albumYelpInfoVo.setCreateTime(albumYelp.getCreateTime());
|
|
|
+ albumYelpInfoVo.setState(albumYelp.getState());
|
|
|
+ albumYelpInfoVo.setStateName(AlbumYelpEnum.getMessage(albumYelp.getState()));
|
|
|
+ List<String> actionFlag = new ArrayList<>();
|
|
|
+ if (albumYelp.getState() == 0){
|
|
|
+ actionFlag.add("approve");
|
|
|
+ } else {
|
|
|
+ actionFlag.add("view");
|
|
|
+ }
|
|
|
+ albumYelpInfoVo.setActionFlag(actionFlag);
|
|
|
+ //上级点评
|
|
|
+ if (albumYelp.getYelpId() != null){
|
|
|
+ AlbumYelp albumYelpParent = albumYelpMapper.selectById(albumYelp.getYelpId());
|
|
|
+ AlbumYelpInfoVo albumYelpInfoVoParent = new AlbumYelpInfoVo();
|
|
|
+ albumYelpInfoVoParent.setCreateName(userService.queryOsUserDto(albumYelpParent.getCreateBy()).getFullName());
|
|
|
+ albumYelpInfoVo.setCreatePhoto((String) userService.querySexAndPhoto(albumYelpParent.getCreateBy()).get("photo"));
|
|
|
+ albumYelpInfoVo.setContent(albumYelpParent.getContent());
|
|
|
+ albumYelpInfoVo.setCreateTime(albumYelpParent.getCreateTime());
|
|
|
+ albumYelpInfoVo.setAlbumYelpInfoVo(albumYelpInfoVoParent);
|
|
|
+ }
|
|
|
+ //专辑信息
|
|
|
+ AlbumInfoDetailVo albumInfoDetailVo = new AlbumInfoDetailVo();
|
|
|
+ AlbumInfo albumInfo = albumInfoMapper.selectById(albumYelp.getAlbumId());
|
|
|
+ BeanUtils.copyProperties(albumInfo, albumInfoDetailVo);
|
|
|
+ //专辑负责人姓名
|
|
|
+ albumInfoDetailVo.setOwner(userService.queryOsUserDto(albumInfo.getOwnerId()).getFullName());
|
|
|
+ //所属公司名称
|
|
|
+ albumInfoDetailVo.setOwnerCompany(userService.findDeptByDeptId(albumInfo.getOwnerCompanyId()).getName());
|
|
|
+ //所属部门名称
|
|
|
+ albumInfoDetailVo.setOwnerDepartment(userService.findDeptByDeptId(albumInfo.getOwnerDepartmentId()).getName());
|
|
|
+ //分类名称
|
|
|
+ AlbumCategory albumCategory = albumCategoryMapper.selectById(albumInfo.getCategoryId());
|
|
|
+ if (albumCategory.getGrade() == 1) {
|
|
|
+ albumInfoDetailVo.setCategoryName(albumCategory.getName());
|
|
|
+ } else {
|
|
|
+ AlbumCategory albumCategoryParent = albumCategoryMapper.
|
|
|
+ selectOne(new LambdaQueryWrapper<AlbumCategory>().eq(AlbumCategory::getPkId, albumCategory.getParent()));
|
|
|
+ albumInfoDetailVo.setCategoryName(albumCategoryParent.getName() + "|" + albumCategory.getName());
|
|
|
+ }
|
|
|
+ //专辑状态名称
|
|
|
+ albumInfoDetailVo.setStateName(AlbumInfoEnum.getMessage(albumInfo.getState()));
|
|
|
+ //版本状态名称
|
|
|
+ QueryWrapper<AlbumVersion> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("ALBUM_ID", pkId);
|
|
|
+ queryWrapper.orderByDesc("CREATE_TIME_");
|
|
|
+ List<AlbumVersion> albumVersions = albumVersionMapper.selectList(queryWrapper);
|
|
|
+ //最新版本状态
|
|
|
+ albumInfoDetailVo.setVersionState(albumVersions.get(0).getState());
|
|
|
+ albumInfoDetailVo.setVersionStateName(AlbumVersionEnum.getMessage(albumVersions.get(0).getState()));
|
|
|
+ //专辑点评量(当前专辑中通过审核的点评量总和)
|
|
|
+ Integer countYelp = albumYelpMapper.selectCount(new LambdaQueryWrapper<AlbumYelp>().
|
|
|
+ eq(AlbumYelp::getAlbumId, pkId).
|
|
|
+ eq(AlbumYelp::getState, 1));
|
|
|
+ albumInfoDetailVo.setYelpTotal(countYelp);
|
|
|
+ albumYelpInfoVo.setAlbumInfoDetailVo(albumInfoDetailVo);
|
|
|
+ //审核流程
|
|
|
+ QueryWrapper<AlbumYelpApprove> queryWrapperApprove = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("YELP_ID", pkId);
|
|
|
+ queryWrapper.orderByAsc("SORT");
|
|
|
+ List<AlbumYelpApprove> albumApproveList = albumYelpApproveService.findAll(queryWrapperApprove);
|
|
|
+ List<AlbumApproveVo> albumApproveVoList = new ArrayList<>();
|
|
|
+ boolean flag = true;
|
|
|
+ for (int i = 0; i < albumApproveList.size(); i++) {
|
|
|
+ AlbumApproveVo albumApproveVo = new AlbumApproveVo();
|
|
|
+ BeanUtils.copyProperties(albumApproveList.get(i), albumApproveVo);
|
|
|
+ albumApproveVo.setComment(albumApproveList.get(i).getRemark());
|
|
|
+ if (albumApproveList.get(i).getResult() == null) {
|
|
|
+ if (flag) {
|
|
|
+ albumApproveVo.setApprovalStatus("提交审核");
|
|
|
+ flag = false;
|
|
|
+ } else {
|
|
|
+ albumApproveVo.setApprovalStatus("");
|
|
|
+ }
|
|
|
+ } else if (albumApproveList.get(i).getResult() == 0) {
|
|
|
+ albumApproveVo.setApprovalStatus("审核驳回");
|
|
|
+ flag = false;
|
|
|
+ } else if (albumApproveList.get(i).getResult() == 1) {
|
|
|
+ albumApproveVo.setApprovalStatus("审核通过");
|
|
|
+ }
|
|
|
+ albumApproveVoList.add(albumApproveVo);
|
|
|
+ }
|
|
|
+ albumYelpInfoVo.setFlows(albumApproveVoList);
|
|
|
+ return albumYelpInfoVo;
|
|
|
+ }
|
|
|
}
|