|
@@ -12,16 +12,19 @@ import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
|
|
|
import com.aliyuncs.exceptions.ClientException;
|
|
|
import com.aliyuncs.profile.DefaultProfile;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.google.common.base.Joiner;
|
|
|
+import com.usky.common.core.bean.CommonPage;
|
|
|
import com.usky.common.core.exception.BusinessException;
|
|
|
import com.usky.common.core.util.DateUtils;
|
|
|
import com.usky.common.security.utils.SecurityUtils;
|
|
|
-import com.usky.meeting.domain.MeetingAttendee;
|
|
|
-import com.usky.meeting.domain.MeetingInfo;
|
|
|
-import com.usky.meeting.domain.SysUser;
|
|
|
+import com.usky.meeting.domain.*;
|
|
|
+import com.usky.meeting.mapper.MeetingFloorMapper;
|
|
|
import com.usky.meeting.mapper.MeetingInfoMapper;
|
|
|
+import com.usky.meeting.mapper.MeetingRoomMapper;
|
|
|
import com.usky.meeting.repository.DmUserRepository;
|
|
|
import com.usky.meeting.repository.MeetingAttendeeRepository;
|
|
|
import com.usky.meeting.repository.MeetingInfoRepository;
|
|
@@ -32,8 +35,10 @@ import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
import com.usky.meeting.service.SysUserService;
|
|
|
import com.usky.meeting.service.dto.DmMeetingDto;
|
|
|
import com.usky.meeting.service.dto.DmUserDto;
|
|
|
+import com.usky.meeting.service.vo.MeetingInfoRequestVO;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import net.bytebuddy.dynamic.scaffold.MethodRegistry;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -74,6 +79,10 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
|
|
|
private UserRepository userRepository;
|
|
|
@Autowired
|
|
|
private MeetingAttendeeService meetingAttendeeService;
|
|
|
+ @Autowired
|
|
|
+ private MeetingRoomMapper meetingRoomMapper;
|
|
|
+ @Autowired
|
|
|
+ private MeetingFloorMapper meetingFloorMapper;
|
|
|
|
|
|
@Override
|
|
|
public Map<String, Object> meetingSummary(Integer tenantId) {
|
|
@@ -273,6 +282,103 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
|
|
|
return resources;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public CommonPage<MeetingInfo> meetingInfoList(MeetingInfoRequestVO requestVO){
|
|
|
+ Page<MeetingInfo> page = new Page<>(requestVO.getCurrent(),requestVO.getSize());
|
|
|
+
|
|
|
+ List<String> initiatorIdList = new ArrayList<>();
|
|
|
+ if(StringUtils.isNotBlank(requestVO.getName())){
|
|
|
+ LambdaQueryWrapper<SysUser> sysUserQuery = Wrappers.lambdaQuery();
|
|
|
+ sysUserQuery.like(SysUser::getNickName,requestVO.getName())
|
|
|
+ .eq(SysUser::getTenantId,SecurityUtils.getTenantId());
|
|
|
+ List<SysUser> userList = sysUserService.list(sysUserQuery);
|
|
|
+ if(userList.size() > 0){
|
|
|
+ for (int i = 0; i < userList.size(); i++) {
|
|
|
+ initiatorIdList.add(userList.get(i).getUserId().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ LambdaQueryWrapper<MeetingInfo> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.like(StringUtils.isNotBlank(requestVO.getRoomName()),MeetingInfo::getRoomName,requestVO.getRoomName())
|
|
|
+ .in(CollectionUtils.isNotEmpty(initiatorIdList),MeetingInfo::getInitiatorId,initiatorIdList)
|
|
|
+ .eq(null != requestVO.getMeetingStatus(),MeetingInfo::getMeetingStatus,requestVO.getMeetingStatus())
|
|
|
+ .eq(null != requestVO.getApproveStatus(),MeetingInfo::getApproveStatus,requestVO.getApproveStatus())
|
|
|
+ .between(StringUtils.isNotBlank(requestVO.getStartDate()) && StringUtils.isNotBlank(requestVO.getEndDate()),MeetingInfo::getStartDate,requestVO.getStartDate(),requestVO.getEndDate())
|
|
|
+ .between(StringUtils.isNotBlank(requestVO.getStartDate()) && StringUtils.isNotBlank(requestVO.getEndDate()),MeetingInfo::getEndDate,requestVO.getStartDate(),requestVO.getEndDate())
|
|
|
+ .eq(MeetingInfo::getTenantId,SecurityUtils.getTenantId())
|
|
|
+ .orderByDesc(MeetingInfo::getMeetingId);
|
|
|
+ page = this.page(page,queryWrapper);
|
|
|
+ if(page.getRecords().size() > 0){
|
|
|
+ List<Long> roomIdList = new ArrayList<>();
|
|
|
+ List<Long> initIdList = new ArrayList<>();
|
|
|
+ for (int i = 0; i < page.getRecords().size(); i++) {
|
|
|
+ if(!roomIdList.contains(page.getRecords().get(i).getRoomId())){
|
|
|
+ roomIdList.add(page.getRecords().get(i).getRoomId());
|
|
|
+ }
|
|
|
+ if(!initIdList.contains(page.getRecords().get(i).getInitiatorId())){
|
|
|
+ initIdList.add(Long.valueOf(page.getRecords().get(i).getInitiatorId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //房间以及对应楼层信息
|
|
|
+ if(roomIdList.size() > 0){
|
|
|
+ LambdaQueryWrapper<MeetingRoom> meetingRoomQuery = Wrappers.lambdaQuery();
|
|
|
+ meetingRoomQuery.in(MeetingRoom::getRoomId,roomIdList)
|
|
|
+ .eq(MeetingRoom::getTenantId,SecurityUtils.getTenantId())
|
|
|
+ .eq(MeetingRoom::getStatus,0);
|
|
|
+ List<MeetingRoom> meetingRoomList = meetingRoomMapper.selectList(meetingRoomQuery);
|
|
|
+
|
|
|
+ List<Long> floorIdList = new ArrayList<>();
|
|
|
+ if(meetingRoomList.size() > 0){
|
|
|
+ for (int i = 0; i < meetingRoomList.size(); i++) {
|
|
|
+ if(!floorIdList.contains(meetingRoomList.get(i).getFloorId())){
|
|
|
+ floorIdList.add(meetingRoomList.get(i).getFloorId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<MeetingFloor> floorWrapper = Wrappers.lambdaQuery();
|
|
|
+ floorWrapper.in(MeetingFloor::getFloorId,floorIdList)
|
|
|
+ .eq(MeetingFloor::getTenantId,SecurityUtils.getTenantId());
|
|
|
+ List<MeetingFloor> meetingFloorList = meetingFloorMapper.selectList(floorWrapper);
|
|
|
+ for (int i = 0; i < page.getRecords().size(); i++) {
|
|
|
+ for (int j = 0; j < meetingRoomList.size(); j++) {
|
|
|
+ if(page.getRecords().get(i).getRoomId().equals(meetingRoomList.get(j).getRoomId())){
|
|
|
+ page.getRecords().get(i).setRoomInfo(meetingRoomList.get(j));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (int j = 0; j < meetingFloorList.size(); j++) {
|
|
|
+ if(page.getRecords().get(i).getRoomInfo().getFloorId().equals(meetingFloorList.get(j).getFloorId())){
|
|
|
+ page.getRecords().get(i).getRoomInfo().setMeetingFloor(meetingFloorList.get(j));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //发起人信息
|
|
|
+ if(initIdList.size() > 0){
|
|
|
+ LambdaQueryWrapper<SysUser> initIdQuery = Wrappers.lambdaQuery();
|
|
|
+ initIdQuery.in(SysUser::getUserId,initIdList)
|
|
|
+ .eq(SysUser::getTenantId,SecurityUtils.getTenantId());
|
|
|
+ List<SysUser> userList = sysUserService.list(initIdQuery);
|
|
|
+ if(userList.size() > 0){
|
|
|
+ for (int i = 0; i < page.getRecords().size(); i++) {
|
|
|
+ for (int j = 0; j < userList.size(); j++) {
|
|
|
+ if(page.getRecords().get(i).getInitiatorId().equals(userList.get(j).getUserId().toString())){
|
|
|
+ page.getRecords().get(i).setInitiatorUser(userList.get(j));
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return new CommonPage<>(page.getRecords(),page.getTotal(),requestVO.getSize(),requestVO.getCurrent());
|
|
|
+ }
|
|
|
+
|
|
|
public void send(DmMeetingDto resources) throws ClientException {
|
|
|
if (StringUtils.isNotBlank(resources.getSendType())) {
|
|
|
if (resources.getSendType().equals("短信")) {
|