jiangping
2025-02-27 10c28ce3d0b384584c77ce9111a66a0641250752
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -42,6 +42,7 @@
import com.doumee.service.business.ProjectsService;
import com.doumee.service.system.SystemUserService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
@@ -69,6 +70,7 @@
 * @date 2023/05/04 18:18
 */
@Service
@Slf4j
public class BookingsServiceImpl implements BookingsService {
    @Value("${des_pwd}")
@@ -627,20 +629,31 @@
            //参会人员列表
            MPJLambdaWrapper<UserRel> urquery = new MPJLambdaWrapper<>();
            urquery.selectAll(UserRel.class);
            urquery.eq(UserRel::getObjType, MeetConstants.ONE);
            urquery.eq(UserRel::getIsdeleted, MeetConstants.ZERO);
            urquery.eq(UserRel::getObjId, s.getId());
            urquery.select("(select REALNAME from system_user s where t.USER_ID = s.id and s.DELETED = 0  ) as realName");
            List<UserRel> userrelList = userRelJoinMapper.selectJoinList(UserRel.class, urquery);
            s.setSysList(userrelList);
            //会议室管理员
            MPJLambdaWrapper<UserRel> param = new MPJLambdaWrapper<>();
            urquery.selectAll(UserRel.class);
            urquery.eq(UserRel::getObjType, MeetConstants.ZERO);
            urquery.eq(UserRel::getIsdeleted, MeetConstants.ZERO);
            urquery.eq(UserRel::getObjId, s.getRoomId());
            List<UserRel> adminList = userRelJoinMapper.selectJoinList(UserRel.class, urquery);
            s.setAdminList(adminList);
            //服务项
            //查询是否有权限
            s.setHasRole(getHasRoleByParam(s,userInfo,adminList));
          /*  //服务项
            MPJLambdaWrapper<ProjectRel> prquery = new MPJLambdaWrapper<>();
            prquery.selectAll(ProjectRel.class);
            prquery.eq(ProjectRel::getIsdeleted, MeetConstants.ZERO);
            prquery.eq(ProjectRel::getObjId, s.getId());
            prquery.select("(select p.name from meeting_projects p where t.PROJECT_ID = p.id and p.ISDELETED = 0  ) as projectName");
            List<ProjectRel> prList = projectRelJoinMapper.selectJoinList(ProjectRel.class, prquery);
            s.setProjectList(prList);
            s.setProjectList(prList);*/
            s.setFlag(MeetConstants.ZERO);
            if (System.currentTimeMillis() > s.getStartTime().getTime()) {
@@ -650,7 +663,19 @@
        });
        return PageData.from(result);
    }
    public int getHasRoleByParam(Bookings s,LoginUserInfo userInfo,List<UserRel> adminList){
        if(Constants.equalsInteger(userInfo.getId(),s.getCreator())  ){
              return 1;
        }
        if(adminList!=null){
            for(UserRel u : adminList){
                if(Constants.equalsInteger(userInfo.getId(),u.getUserId())  ){
                    return 1;
                }
            }
        }
        return  0;
    }
    private void dealMeetingStatusByModel(Bookings s,Integer minute) {
        //会议状态: 1=未开始;2=进行中;3=已结束 ; 4=即将开始; 5=已撤销
        //status状态 0已预约 1已撤销 2已结束
@@ -1295,7 +1320,7 @@
                .eq(UserRel::getObjType,Constants.ZERO)
                .eq(UserRel::getUserId,businessOverDTO.getUserId()));
        if (!bookings.getCreator().equals(businessOverDTO.getUserId()) && userRelList <= 0) {
        if (!Constants.equalsInteger(bookings.getCreator(),businessOverDTO.getUserId()) && userRelList <= 0) {
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "非你的预约记录,无法进行该操作");
        }
        if(!Constants.equalsInteger(bookings.getStatus(),Constants.ZERO)){
@@ -1346,7 +1371,7 @@
        bookings.setEditDate(new Date());
        bookings.setEditor(businessOverDTO.getUserId());
        bookingsMapper.updateById(bookings);
       /* //更新已结束但未结束的会议信息为已结束
         //更新已结束但未结束的会议信息为已结束
        bookingsMapper.update(null,new UpdateWrapper<Bookings>()
                .lambda()
                .set(Bookings::getStatus,Constants.TWO)
@@ -1355,7 +1380,7 @@
                .apply(" ( END_TIME < now() or ( END_TIME > now() and START_TIME < now() and START_TIME_REAL is null  ) )")
                .eq(Bookings::getStatus,Constants.ZERO)
                .eq(Bookings::getRoomId,bookings.getRoomId())
        );*/
        );
    }
@@ -1390,23 +1415,6 @@
            response.setMultifileList(multifileList);
        }
/*        //查询会议列表
        List<MeetingListResponse> meetingList = bookingsMapper.meetingList(
                new QueryWrapper<Bookings>()
                .eq( "b.id", rooms.getId())
                .eq("b.ISDELETED",MeetConstants.ZERO)
                .eq("b.STATUS",MeetConstants.ZERO)
                .eq("a.ISDELETED",MeetConstants.ZERO)
                .eq("a.status",Constants.ZERO)
                .ne("a.status",Constants.TWO)
                .like("a.start_time",DateUtil.getCurrDate())
                .apply(" not exists ( select 1  from  meeting_book mb where mb.END_TIME < now() and  mb.id = a.id and START_TIME_REAL is null  )   ")
                .orderByAsc("a.start_time")
        );
        this.dealMeetingStatus(meetingList);
        response.setMeetingListResponseList(meetingList);*/
        MPJLambdaWrapper<Bookings> queryWrapper = new MPJLambdaWrapper<Bookings>()
                 .selectAll(Bookings.class)
                 .selectAs(Rooms::getName, Bookings::getRoomName)
@@ -1416,14 +1424,15 @@
                 .leftJoin(Rooms.class, Rooms::getId, Bookings::getRoomId)
                 .leftJoin(SystemUser.class, SystemUser::getId, Bookings::getCreator)
                 .eq(Bookings::getIsdeleted, MeetConstants.ZERO)
                 .eq(Bookings::getId, MeetConstants.ZERO)
                 .eq(Bookings::getStatus, MeetConstants.ZERO)
                 .eq(Rooms::getId, rooms.getId())
                .apply("to_days(t.start_time) = to_days(now())")//子查询当天的
                 .orderByDesc(Bookings::getStartTime);
                 .apply("to_days(t.start_time) = to_days(now()) and t.end_time > now()")//子查询当天的
                 .orderByAsc(Bookings::getStartTime);
        Integer minute =getNearStartMinut();
        List<Bookings> meetingList =bookingsMapper.selectJoinList(Bookings.class,queryWrapper);
        List<MeetingListResponse> rList= new ArrayList<>();
        if(meetingList!=null){
            response.setMeetingListResponseList(new ArrayList<>());
            log.error(JSONObject.toJSONString(meetingList));
            for(Bookings s : meetingList){
                dealMeetingStatusByModel(s,minute);
                MeetingListResponse d = new MeetingListResponse();
@@ -1440,9 +1449,10 @@
                d.setMeetingName(s.getName());
                d.setRemark(s.getRemark());
                d.setStartTime(s.getStartTime());
                response.getMeetingListResponseList().add(d);
                rList.add(d);
            }
        }
        response.setMeetingListResponseList(rList);
        return response;
    }