|
|
|
@ -1,10 +1,30 @@
|
|
|
|
|
package cn.iocoder.yudao.module.farm.service.discuss; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
|
import cn.hutool.core.util.ObjectUtil; |
|
|
|
|
import cn.iocoder.yudao.framework.common.page.PageUtil; |
|
|
|
|
import cn.iocoder.yudao.framework.common.page.PageVO; |
|
|
|
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
|
|
|
|
import cn.iocoder.yudao.module.farm.controller.admin.discuss.dto.DiscussDTO; |
|
|
|
|
import cn.iocoder.yudao.module.farm.controller.admin.discuss.dto.DiscussPageDTO; |
|
|
|
|
import cn.iocoder.yudao.module.farm.controller.admin.project.dto.ProjectListDTO; |
|
|
|
|
import cn.iocoder.yudao.module.farm.controller.admin.workHour.dto.WorkUserMsgDTO; |
|
|
|
|
import cn.iocoder.yudao.module.farm.controller.admin.workHour.vo.WorkHourBaseVO; |
|
|
|
|
import cn.iocoder.yudao.module.farm.dal.dataobject.workHour.WorkHourDO; |
|
|
|
|
import cn.iocoder.yudao.module.farm.dal.mysql.workHour.WorkHourMapper; |
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.CpUser.CpUserDO; |
|
|
|
|
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; |
|
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.CpUser.CpUserMapper; |
|
|
|
|
import cn.iocoder.yudao.module.system.dal.mysql.user.AdminUserMapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import com.zsw.base.R; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import javax.annotation.Resource; |
|
|
|
|
import org.springframework.validation.annotation.Validated; |
|
|
|
|
|
|
|
|
|
import java.util.*; |
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
|
import cn.iocoder.yudao.module.farm.controller.admin.discuss.vo.*; |
|
|
|
|
import cn.iocoder.yudao.module.farm.dal.dataobject.discuss.DiscussDO; |
|
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult; |
|
|
|
@ -26,6 +46,12 @@ public class DiscussServiceImpl implements DiscussService {
|
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private DiscussMapper discussMapper; |
|
|
|
|
@Resource |
|
|
|
|
private CpUserMapper cpUserMapper; |
|
|
|
|
@Resource |
|
|
|
|
private AdminUserMapper adminUserMapper; |
|
|
|
|
@Resource |
|
|
|
|
private WorkHourMapper workHourMapper; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public Long createDiscuss(DiscussCreateReqVO createReqVO) { |
|
|
|
@ -79,4 +105,61 @@ public class DiscussServiceImpl implements DiscussService {
|
|
|
|
|
return discussMapper.selectList(exportReqVO); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R<PageVO<DiscussDTO>> findDiscussList(DiscussPageDTO pageDTO) { |
|
|
|
|
PageUtil.startPage(pageDTO); |
|
|
|
|
LambdaQueryWrapperX<DiscussDO> queryWrapperX = new LambdaQueryWrapperX<>(); |
|
|
|
|
queryWrapperX.eqIfPresent(DiscussDO::getTaskId, pageDTO.getTaskId()); |
|
|
|
|
|
|
|
|
|
List<DiscussDO> discussList = discussMapper.selectList(queryWrapperX); |
|
|
|
|
if (ObjectUtil.isEmpty(discussList)){ |
|
|
|
|
return R.success(PageUtil.emptyPage(pageDTO, DiscussDTO.class)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
//活动创建人id
|
|
|
|
|
List<String> adminUserIdList = discussList.stream().map(DiscussDO::getCreator).collect(Collectors.toList()); |
|
|
|
|
//系统用户List
|
|
|
|
|
List<AdminUserDO> adminUserList = adminUserMapper.selectBatchIds(adminUserIdList); |
|
|
|
|
//系统用户名对应企业用户名
|
|
|
|
|
List<String> userNameList = adminUserList.stream().map(AdminUserDO::getUsername).collect(Collectors.toList()); |
|
|
|
|
//企业用户
|
|
|
|
|
List<CpUserDO> cpUserList = cpUserMapper.selectList(Wrappers.<CpUserDO>lambdaQuery()); |
|
|
|
|
|
|
|
|
|
//工时List
|
|
|
|
|
List<Long> workIdList = discussList.stream().map(DiscussDO::getId).collect(Collectors.toList()); |
|
|
|
|
List<WorkHourDO> workHourList = workHourMapper.selectList(Wrappers.<WorkHourDO>lambdaQuery().in(WorkHourDO::getProjectId, workIdList)); |
|
|
|
|
|
|
|
|
|
// key 系统用户id value cpUser
|
|
|
|
|
Map<Long, CpUserDO> map = new HashMap<>(); |
|
|
|
|
for (AdminUserDO adminUserDO : adminUserList) { |
|
|
|
|
for (CpUserDO cpUserDO : cpUserList) { |
|
|
|
|
if (adminUserDO.getUsername().equals(cpUserDO.getUserId())){ |
|
|
|
|
map.put(adminUserDO.getId(), cpUserDO); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<DiscussDTO> discussDTOList = BeanUtil.copyToList(discussList, DiscussDTO.class); |
|
|
|
|
for (DiscussDTO discussDTO : discussDTOList) { |
|
|
|
|
if (map.containsKey(Long.valueOf(discussDTO.getCreator()))){ |
|
|
|
|
CpUserDO cpUser = map.get(Long.valueOf(discussDTO.getCreator())); |
|
|
|
|
discussDTO.setPublishName(cpUser.getName()); |
|
|
|
|
discussDTO.setPublishIcon(cpUser.getAvatar()); |
|
|
|
|
discussDTO.setPublishTime(discussDTO.getCreateTime()); |
|
|
|
|
} |
|
|
|
|
List<WorkHourDO> workList = workHourList.stream().filter(item -> item.getDiscussId().equals(discussDTO.getId())).collect(Collectors.toList()); |
|
|
|
|
List<WorkUserMsgDTO> workUserMsgList = BeanUtil.copyToList(workList, WorkUserMsgDTO.class); |
|
|
|
|
for (WorkUserMsgDTO msg : workUserMsgList){ |
|
|
|
|
for (CpUserDO cpUserDO : cpUserList) { |
|
|
|
|
if (msg.getUserId().equals(cpUserDO.getId())){ |
|
|
|
|
msg.setUserName(cpUserDO.getName()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
discussDTO.setWorkList(workUserMsgList); |
|
|
|
|
} |
|
|
|
|
PageVO<DiscussDTO> returnList = PageUtil.convertPageInfo(discussDTOList); |
|
|
|
|
return R.success(returnList); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|