k94314517
2024-05-15 13b58d0fc355b6256d165cc2ae6a571ffa8e778d
代码初始化
已删除1个文件
已修改9个文件
222 ■■■■ 文件已修改
server/meeting/meeting_admin/src/main/java/com/doumee/api/business/BookingsController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/ApiController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/NoticeApi.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java 73 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/UtilApi.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/MeetingListResponse.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/meeting/meeting_admin/src/main/java/com/doumee/api/business/BookingsController.java
@@ -87,8 +87,7 @@
    @PostMapping("/updateById")
    @RequiresPermissions("business:bookings:update")
    public ApiResponse updateById(@RequestBody Bookings bookings) {
        LoginUserInfo user = getLoginUser(null);
        bookings.setCreator(user.getId());
        bookings.setLoginUserInfo(getLoginUser(null));
        bookingsService.updateById(bookings);
        return ApiResponse.success(null);
    }
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/ApiController.java
ÎļþÒÑɾ³ý
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/MeetingApi.java
@@ -1,10 +1,13 @@
package com.doumee.cloud.web;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.doumee.api.BaseController;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.QrCodeUtils;
import com.doumee.dao.business.model.Bookings;
@@ -38,9 +41,9 @@
@Api(tags = "2、预定会议业务")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/meeting")
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/meeting")
@Slf4j
public class MeetingApi extends ApiController{
public class MeetingApi extends BaseController {
    @Autowired
    private BookingsService bookingsService;
@@ -52,13 +55,14 @@
    @ApiOperation(value = "当月会议表", notes = "当月会议表")
    @GetMapping("/monthMeeting")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "yearMonth", value = "年月  yyyy-MM", required = true)
    })
    public ApiResponse<List<MonthDataResponse>> monthDay(@RequestParam String yearMonth) {
    public ApiResponse<List<MonthDataResponse>> monthDay(@RequestParam String yearMonth
            ,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo user = getLoginUser(token);
        List<String> dataList = DateUtil.getDayByMonth(yearMonth);
        List<MonthDataResponse> monthDataResponseList = new ArrayList<>();
        List<Bookings> bookings = bookingsService.getMyBookings(getMemberId(),yearMonth);
        List<Bookings> bookings = bookingsService.getMyBookings(user.getId(),yearMonth);
        for (String str:dataList) {
            MonthDataResponse  monthDataResponse = new MonthDataResponse();
            monthDataResponse.setWeekMsg(DateUtil.getWeek(DateUtil.StringToDate(str,"yyyy-MM-dd")).getChineseName());
@@ -72,11 +76,10 @@
    @ApiOperation("我的会议列表")
    @PostMapping("/myMeetingPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<IPage<MeetingListResponse>> myMeetingPage(@RequestBody PageWrap<MeetingPageRequest> pageWrap) {
        pageWrap.getModel().setUserId(getMemberId());
    public ApiResponse<IPage<MeetingListResponse>> myMeetingPage(@RequestBody PageWrap<MeetingPageRequest> pageWrap
            ,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo user = getLoginUser(token);
        pageWrap.getModel().setUserId(user.getId());
        IPage<MeetingListResponse> page = bookingsService.getMyMeetingPage(pageWrap);
        return ApiResponse.success("查询成功",page);
    }
@@ -85,7 +88,6 @@
    @ApiOperation("会议详情")
    @GetMapping("/meetingDetail")
    @ApiImplicitParams({
//            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议主键", required = true),
    })
    public ApiResponse<MeetingDetailResponse> meetingDetail(@RequestParam Integer id) {
@@ -93,7 +95,7 @@
    }
    @ApiOperation("获取会议开门二维码")
   /* @ApiOperation("获取会议开门二维码")
    @GetMapping("/getQrCode")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
@@ -116,7 +118,7 @@
        response.setContentType("image/jpeg");
        String content =bookingsService.getQrCode(id,memberId);
        QrCodeUtils.encode(content,null, response.getOutputStream(), true);
    }
    }*/
/*
    @LoginRequired
@@ -134,23 +136,21 @@
    @ApiOperation("会议预约")
    @PostMapping("/reservationMeeting")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<Integer> reservationMeeting(@RequestBody BookingsRequest bookingsRequest) {
        bookingsRequest.setCreator(getMemberId());
        bookingsRequest.setEditor(getMemberId());
    public ApiResponse<Integer> reservationMeeting(@RequestBody BookingsRequest bookingsRequest ,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo user = getLoginUser(token);
        bookingsRequest.setCreator(user.getId());
        bookingsRequest.setEditor(user.getId());
        return ApiResponse.success("操作成功",bookingsService.reservationMeeting(bookingsRequest));
    }
    @ApiOperation("取消会议预约")
    @GetMapping("/reservationCancel")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议主键", required = true),
    })
    public ApiResponse reservationCancel(@RequestParam Integer id) {
        bookingsService.reservationCancel(id,getMemberId());
    public ApiResponse reservationCancel(@RequestParam Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo user = getLoginUser(token);
        bookingsService.reservationCancel(id,user.getId());
        return ApiResponse.success("操作成功");
    }
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/NoticeApi.java
@@ -1,7 +1,9 @@
package com.doumee.cloud.web;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
@@ -16,9 +18,9 @@
@Api(tags = "消息通知信业务")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/notice")
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/notice")
@Slf4j
public class NoticeApi extends ApiController{
public class NoticeApi extends BaseController {
    @Autowired
    private NoticesService noticeService;
@@ -31,8 +33,10 @@
     */
    @ApiOperation(value = "查询用户通知", notes = "小程序端")
    @PostMapping("/findNoticePage")
    public ApiResponse<PageData<Notices>> findNoticePage(@RequestBody PageWrap<Notices> pageWrap){
        pageWrap.getModel().setUserId(getMemberId());
    public ApiResponse<PageData<Notices>> findNoticePage(@RequestBody PageWrap<Notices> pageWrap
            ,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        LoginUserInfo user = getLoginUser(token);
        pageWrap.getModel().setUserId(user.getId());
        return ApiResponse.success("查询成功",noticeService.findPage(pageWrap));
    }
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/RoomsApi.java
@@ -1,10 +1,13 @@
package com.doumee.cloud.web;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.doumee.api.BaseController;
import com.doumee.config.Jwt.JwtTokenUtil;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.QrCodeUtils;
import com.doumee.dao.business.model.RoomTime;
import com.doumee.dao.web.request.RoomTimeRequest;
@@ -33,9 +36,9 @@
@Api(tags = "3、会议室业务")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/rooms")
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/rooms")
@Slf4j
public class RoomsApi extends ApiController{
public class RoomsApi extends BaseController {
    @Autowired
    private RoomsService roomsService;
@@ -43,57 +46,48 @@
    @Autowired
    private RoomTimeService roomTimeService;
    @ApiOperation("获取会议室开门二维码")
    @GetMapping("/getQrCode")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议室主键", required = true),
    })
    public ApiResponse<String> getQrCode(@RequestParam Integer id) {
        return ApiResponse.success("查询成功", roomsService.getQrCode(id,getMemberId()));
    }
//    @ApiOperation("获取会议室开门二维码")
//    @GetMapping("/getQrCode")
//    @ApiImplicitParams({
//            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
//            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议室主键", required = true),
//    })
//    public ApiResponse<String> getQrCode(@RequestParam Integer id) {
//        return ApiResponse.success("查询成功", roomsService.getQrCode(id,getMemberId()));
//    }
    @ApiOperation("获取会议室开门二维码-图片流")
    @GetMapping("/getQrCodeImg")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议室主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public void getQrCodeImg(@RequestParam Integer id,@RequestParam String token, HttpServletResponse response) throws  Exception {
        Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId();
        response.setHeader("Cache-Control", "no-store, no-cache");
        response.setContentType("image/jpeg");
        String content =roomsService.getQrCode(id,memberId);
        QrCodeUtils.encode(content,null, response.getOutputStream(), true);
    }
//    @ApiOperation("获取会议室开门二维码-图片流")
//    @GetMapping("/getQrCodeImg")
//    @ApiImplicitParams({
//            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "会议室主键", required = true),
//            @ApiImplicitParam(paramType = "query", dataType = "String", name = "token", value = "用户token值", required = true),
//    })
//    public void getQrCodeImg(@RequestParam Integer id,@RequestParam String token, HttpServletResponse response) throws  Exception {
//        Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId();
//        response.setHeader("Cache-Control", "no-store, no-cache");
//        response.setContentType("image/jpeg");
//        String content =roomsService.getQrCode(id,memberId);
//        QrCodeUtils.encode(content,null, response.getOutputStream(), true);
//    }
    @ApiOperation("会议室列表")
    @GetMapping("/roomsList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<List<RoomsResponse>> roomsList() {
    public ApiResponse<List<RoomsResponse>> roomsList(@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success("查询成功",roomsService.getRoomsList());
    }
    @ApiOperation("会议室时间开放列表")
    @PostMapping("/getRoomUseTime")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<List<RoomTime>> getRoomUseTime(@RequestBody RoomTimeRequest roomTimeRequest) {
    public ApiResponse<List<RoomTime>> getRoomUseTime(@RequestBody RoomTimeRequest roomTimeRequest,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success("查询成功",roomTimeService.getRoomUseTime(roomTimeRequest));
    }
    @ApiOperation("我的会议室列表")
    @PostMapping("/myRoomsPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<IPage<RoomsResponse>> myRoomsPage(@RequestBody PageWrap<RoomsRequest> pageWrap) {
        pageWrap.getModel().setUserId(getMemberId());
    public ApiResponse<IPage<RoomsResponse>> myRoomsPage(@RequestBody PageWrap<RoomsRequest> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo user = getLoginUser(token);
        pageWrap.getModel().setUserId(user.getId());
        IPage<RoomsResponse> page = roomsService.getRoomsPage(pageWrap);
        return ApiResponse.success("查询成功",page);
    }
@@ -102,10 +96,9 @@
    @ApiOperation("会议室详情")
    @GetMapping("/getRoomDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "roomId", value = "会议室主键", required = true),
    })
    public ApiResponse<RoomsResponse> getRoomDetail(@RequestParam Integer roomId) {
    public ApiResponse<RoomsResponse> getRoomDetail(@RequestParam Integer roomId,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success("查询成功",roomsService.getRoomDetail(roomId));
    }
server/meeting/meeting_admin/src/main/java/com/doumee/cloud/web/UtilApi.java
@@ -1,8 +1,10 @@
package com.doumee.cloud.web;
import com.doumee.api.BaseController;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.business.UtilService;
import io.swagger.annotations.Api;
@@ -29,9 +31,9 @@
@Api(tags = "99、帮助业务")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/util")
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/util")
@Slf4j
public class UtilApi extends ApiController{
public class UtilApi extends BaseController {
    @Autowired
    private UtilService utilService;
@@ -78,7 +80,5 @@
        }
    }
}
server/meeting/meeting_service/src/main/java/com/doumee/dao/business/BookingsMapper.java
@@ -22,7 +22,7 @@
    @Select(" select a.id , b.`NAME` as roomName , a.`NAME` as meetingName  ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate ," +
    @Select(" select a.id , b.`NAME` as roomName , a.`NAME` as meetingName  ,date_format(a.START_TIME,'%Y-%m-%d') as meetingDate , a.START_TIME as startTime, a.status ," +
            " CONCAT(date_format(a.START_TIME,'%H:%i') , ' ~ ',date_format(a.END_TIME,'%H:%i')) as meetingTime,  c.REALNAME as bookingUser ," +
            " CASE  WHEN a.START_TIME > now() and a.`STATUS` = 0  THEN 1  WHEN a.END_TIME < now()  or a.`STATUS` = 1  THEN 3 ELSE 2  END meetingStatus , b.IMGURL as imgUrl " +
            " from meeting_book a inner join meeting_rooms b  on a.ROOM_ID = b.ID  " +
server/meeting/meeting_service/src/main/java/com/doumee/dao/web/response/MeetingListResponse.java
@@ -6,6 +6,7 @@
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * Created by IntelliJ IDEA.
@@ -32,6 +33,13 @@
    @ApiModelProperty(value = "会议时间 ( a ~ b)")
    private String meetingTime;
    @ApiModelProperty(value = "会议开始时间",hidden = true)
    private Date startTime;
    @ApiModelProperty(value = "状态 0已预约 1已撤销 ",hidden = true)
    private Integer status;
    @ApiModelProperty(value = "会议预约人")
    private String bookingUser;
@@ -41,7 +49,7 @@
    @ApiModelProperty(value = "前缀")
    private String prefixUrl;
    @ApiModelProperty(value = "会议状态: 1=未开始;2=进行中;3=已结束")
    @ApiModelProperty(value = "会议状态: 1=未开始;2=进行中;3=已结束 ; 4=即将开始; 5=已撤销")
    private Integer meetingStatus;
}
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -120,7 +120,7 @@
    @Override
    @Transactional(rollbackFor = {BusinessException.class, Exception.class})
    public Integer create(Bookings bookings) {
        LoginUserInfo user = new LoginUserInfo();
        LoginUserInfo user = bookings.getLoginUserInfo();
        user.setId(bookings.getCreator());
        isCreateParamValid(bookings, user);
        bookings.setCreateDate(new Date());
@@ -778,6 +778,18 @@
        String path = systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(MeetConstants.FTP, MeetConstants.PROJECTS).getCode();
        page.getRecords().forEach(i -> {
            i.setPrefixUrl(path);
            if(i.getMeetingStatus().equals(Constants.ZERO)){
                if(i.getStatus()==Constants.ONE){
                    i.setMeetingStatus(5);
                }else{
                    //开始前5分钟 å¤§äºŽå½“前时间 åˆ™æ˜¾ç¤ºå³å°†å¼€å§‹
                    if(DateUtil.afterMinutesDate(i.getStartTime(),-5).getTime()>System.currentTimeMillis()){
                        i.setMeetingStatus(4);
                    }
                }
            }
        });
        return page;
    }
server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -2839,9 +2839,9 @@
    public static void main(String[] args) {
        try {
            Date date = getISO8601DateByStr("2024-04-15T07:46:36.014+08:00");
            Date date1 = getISO8601DateByStr("2024-06-14T08:46:36.014+08:00");
            System.out.println(daysBetweenDates11(date1,date)+1);
//            Date date = getISO8601DateByStr("2024-04-15T07:46:36.014+08:00");
//            Date date1 = getISO8601DateByStr("2024-06-14T08:46:36.014+08:00");
            System.out.println(DateUtil.afterMinutesDate(-5));
        } catch (Exception ex) {
            ex.printStackTrace();
@@ -3098,6 +3098,18 @@
    }
    /**
     * X åˆ†é’ŸåŽæ—¶é—´
     * @param minutes
     * @return
     */
    public static Date afterMinutesDate(Date date,Integer minutes){
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.MINUTE,minutes);
        return cal.getTime();
    }
    /**
     * LocalDateTime to date
     * @param now
     * @return