diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java index 1fb539577..003d62e82 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/controller/MeetingBookingController.java @@ -1,244 +1,244 @@ -//package com.bsd.pjcloud.integrated.controller; -// -//import cn.hutool.core.util.StrUtil; -//import cn.hutool.core.util.ArrayUtil; -//import cn.hutool.core.collection.CollUtil; -//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -//import com.baomidou.mybatisplus.core.toolkit.Wrappers; -//import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -//import com.bsd.pjcloud.common.core.util.R; -//import com.bsd.pjcloud.common.log.annotation.SysLog; -//import com.bsd.pjcloud.common.security.util.SecurityUtils; -//import com.bsd.pjcloud.integrated.entity.MeetingBookingEntity; -//import com.bsd.pjcloud.integrated.service.MeetingBookingService; -//import org.springframework.security.access.prepost.PreAuthorize; -//import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; -//import io.swagger.v3.oas.annotations.security.SecurityRequirement; -//import org.springdoc.core.annotations.ParameterObject; -//import org.springframework.http.HttpHeaders; -//import io.swagger.v3.oas.annotations.tags.Tag; -//import io.swagger.v3.oas.annotations.Operation; -//import lombok.RequiredArgsConstructor; -//import org.springframework.web.bind.annotation.*; -//import com.bsd.pjcloud.integrated.entity.MeetingRoomEntity; -//import com.bsd.pjcloud.integrated.service.MeetingRoomService; -//import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService; -//import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; -//import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto; -//import com.bsd.pjcloud.flow.task.entity.Process; -//import com.bsd.pjcloud.integrated.constant.IntegratedFlowConstant; -//import com.bsd.pjcloud.integrated.dto.flow.MeetingFlowDto; -//import cn.hutool.core.bean.BeanUtil; -//import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; -//import com.bsd.pjcloud.common.core.exception.ServiceException; -//import org.springframework.transaction.annotation.Transactional; -//import java.time.LocalDate; -//import java.time.LocalTime; -//import java.util.Map; -// -//import java.util.List; -//import java.util.Objects; -//import com.bsd.pjcloud.integrated.dto.meeting.MeetingBookingSaveDto; -//import com.bsd.pjcloud.integrated.vo.meeting.MeetingBookingPageVo; -//import java.util.HashMap; -// -///** -// * 会议室预约 -// * -// * @author zjf -// * @date 2025-05-20 10:51:29 -// */ -//@RestController -//@RequiredArgsConstructor -//@RequestMapping("/meetingBooking" ) -//@Tag(description = "meetingBooking" , name = "会议室预约管理" ) -//@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) -//public class MeetingBookingController { -// -// private final MeetingBookingService meetingBookingService; -// private final MeetingRoomService meetingRoomService; -// private final RemoteFlowApiFlowService remoteFlowApiFlowService; -// -// /** -// * 分页查询 -// * @param page 分页对象 -// * @param meetingBooking 会议室预约 -// * @return -// */ -// @Operation(summary = "分页查询", description = "分页查询") -// @GetMapping("/page") -// @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_view')") -// public R> getMeetingBookingPage(@ParameterObject Page page, @ParameterObject MeetingBookingEntity meetingBooking) { -// LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); -// wrapper.eq(StrUtil.isNotBlank(meetingBooking.getTitle()), MeetingBookingEntity::getTitle, meetingBooking.getTitle()); -// Page entityPage = meetingBookingService.pageScope(page, wrapper); -// -// // 批量查会议室名称,避免N+1 -// List roomIds = entityPage.getRecords().stream().map(MeetingBookingEntity::getRoomId).distinct().toList(); -// Map roomNameMap = new HashMap<>(); -// if (!roomIds.isEmpty()) { -// List rooms = meetingRoomService.listByIds(roomIds); -// for (MeetingRoomEntity room : rooms) { -// roomNameMap.put(room.getId(), room.getRoomName()); -// } -// } -// -// // 转VO -// List voList = entityPage.getRecords().stream().map(e -> { -// MeetingBookingPageVo vo = new MeetingBookingPageVo(); -// vo.setId(e.getId()); -// vo.setTitle(e.getTitle()); -// vo.setRoomId(e.getRoomId()); -// vo.setRoomName(roomNameMap.get(e.getRoomId())); -// vo.setBookingDate(e.getBookingDate()); -// vo.setStartTime(e.getStartTime()); -// vo.setEndTime(e.getEndTime()); -// vo.setApplicantId(e.getApplicantId()); -// vo.setAssigneeName(e.getAssigneeName()); -// vo.setCheckStatus(e.getCheckStatus()); -// vo.setCheckReason(e.getCheckReason()); -// vo.setCreateTime(e.getCreateTime()); -// vo.setCreateBy(e.getCreateBy()); -// vo.setDescription(e.getDescription()); -// return vo; -// }).toList(); -// -// Page voPage = new Page<>(entityPage.getCurrent(), entityPage.getSize(), entityPage.getTotal()); -// voPage.setRecords(voList); -// return R.ok(voPage); -// } -// -// -// /** -// * 通过id查询会议室预约 -// * @param id id -// * @return R -// */ -// @Operation(summary = "通过id查询" , description = "通过id查询" ) -// @GetMapping("/{id}" ) -// @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_view')" ) -// public R getById(@PathVariable("id" ) Long id) { -// return R.ok(meetingBookingService.getById(id)); -// } -// -// /** -// * 新增会议室预约(PC端,逻辑与手机端一致) -// * @param dto 预约参数 -// * @return R -// */ -// @Operation(summary = "新增会议室预约", description = "新增会议室预约") -// @SysLog("新增会议室预约") -// @PostMapping -// @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_add')") -// @Transactional -// public R save(@RequestBody MeetingBookingSaveDto dto) { -// // 1. 参数转换 -// MeetingBookingEntity meetingBooking = new MeetingBookingEntity(); -// meetingBooking.setTitle(dto.getTitle()); -// meetingBooking.setRoomId(dto.getRoomId()); -// meetingBooking.setDescription(dto.getDescription()); -// meetingBooking.setBookingDate(LocalDate.parse(dto.getBookingDate())); -// meetingBooking.setStartTime(LocalTime.parse(dto.getStartTime())); -// meetingBooking.setEndTime(LocalTime.parse(dto.getEndTime())); -// // 2. 验证会议室是否存在 -// MeetingRoomEntity room = meetingRoomService.getById(meetingBooking.getRoomId()); -// if (room == null) { -// return R.failed("会议室不存在"); -// } -// // 3. 验证会议室状态 -// if (!YesNoEnum.NO.getCode().equals(room.getStatus())) { -// return R.failed("会议室当前不可用"); -// } -// // 4. 校验时间 -// LocalDate bookingDate = meetingBooking.getBookingDate(); -// LocalTime startTime = meetingBooking.getStartTime(); -// LocalTime endTime = meetingBooking.getEndTime(); -// if (startTime == null || endTime == null || bookingDate == null) { -// return R.failed("预约日期和时间不能为空"); -// } -// if (startTime.isAfter(endTime)) { -// return R.failed("开始时间不能晚于结束时间"); -// } -// LocalTime availableStart = LocalTime.of(8, 0); -// LocalTime availableEnd = LocalTime.of(18, 0); -// if (startTime.isBefore(availableStart) || endTime.isAfter(availableEnd)) { -// return R.failed("预约时间必须在8:00-18:00之间"); -// } -// // 5. 检查时间段是否已被预约 -// var existingBookings = meetingBookingService.list( -// Wrappers.lambdaQuery() -// .eq(MeetingBookingEntity::getRoomId, meetingBooking.getRoomId()) -// .eq(MeetingBookingEntity::getBookingDate, bookingDate) -// .eq(MeetingBookingEntity::getCheckStatus, TaskCheckStatusEnum.RESULT.getCode()) -// ); -// for (MeetingBookingEntity booking : existingBookings) { -// LocalTime bookingStart = booking.getStartTime(); -// LocalTime bookingEnd = booking.getEndTime(); -// if (!(endTime.compareTo(bookingStart) <= 0 || startTime.compareTo(bookingEnd) >= 0)) { -// return R.failed("该时间段已被预约"); -// } -// } -// // 6. 设置预约人、部门 -// meetingBooking.setApplicantId(SecurityUtils.getUser().getId()); -// meetingBooking.setDeptId(SecurityUtils.getUser().getDeptId()); -// // 7. 发起流程 -// var processByBusinessKey = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_MEETING_BOOKING); -// if (!processByBusinessKey.isOk() || processByBusinessKey.getData() == null) { -// throw new ServiceException("流程配置获取失败: " + processByBusinessKey.getMsg()); -// } -// Process process = processByBusinessKey.getData(); -// MeetingFlowDto meetingFlowDto = new MeetingFlowDto(); -// meetingFlowDto.setRoomName(room.getRoomName()); -// meetingFlowDto.setApplicantName(SecurityUtils.getUser().getUsername()); -// meetingFlowDto.setMeetingTime(bookingDate + " " + startTime + "-" + endTime); -// Map stringObjectMap = BeanUtil.beanToMap(meetingFlowDto); -// ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto(); -// processInstanceParamDto.setFlowId(process.getFlowId()); -// processInstanceParamDto.setParamMap(stringObjectMap); -// var stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); -// meetingBooking.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); -// meetingBooking.setProcessInstanceId(stringR.getData()); -// boolean success = meetingBookingService.save(meetingBooking); -// return R.ok(success); -// } -// -// /** -// * 修改会议室预约 -// * @param meetingBooking 会议室预约 -// * @return R -// */ -// @Operation(summary = "修改会议室预约" , description = "修改会议室预约" ) -// @SysLog("修改会议室预约" ) -// @PutMapping -// @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_edit')" ) -// public R updateById(@RequestBody MeetingBookingEntity meetingBooking) { -// return R.ok(meetingBookingService.updateById(meetingBooking)); -// } -// -// /** -// * 通过id删除会议室预约 -// * @param ids id列表 -// * @return R -// */ -// @Operation(summary = "通过id删除会议室预约" , description = "通过id删除会议室预约" ) -// @SysLog("通过id删除会议室预约" ) -// @DeleteMapping -// @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_del')" ) -// public R removeById(@RequestBody Long[] ids) { -// return R.ok(meetingBookingService.removeBatchByIds(CollUtil.toList(ids))); -// } -// -// -// /** -// * 导出excel 表格 -// * @param meetingBooking 查询条件 -// * @param ids 导出指定ID -// * @return excel 文件流 -// */ -// @ResponseExcel -// @GetMapping("/export") -// @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_export')" ) -// public List export(MeetingBookingEntity meetingBooking,Long[] ids) { -// return meetingBookingService.list(Wrappers.lambdaQuery(meetingBooking).in(ArrayUtil.isNotEmpty(ids), MeetingBookingEntity::getId, ids)); -// } -//} \ No newline at end of file +package com.bsd.pjcloud.integrated.controller; + +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.common.security.util.SecurityUtils; +import com.bsd.pjcloud.integrated.entity.MeetingBookingEntity; +import com.bsd.pjcloud.integrated.service.MeetingBookingService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; +import com.bsd.pjcloud.integrated.entity.MeetingRoomEntity; +import com.bsd.pjcloud.integrated.service.MeetingRoomService; +import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService; +import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; +import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto; +import com.bsd.pjcloud.flow.task.entity.Process; +import com.bsd.pjcloud.integrated.constant.IntegratedFlowConstant; +import com.bsd.pjcloud.integrated.dto.flow.MeetingFlowDto; +import cn.hutool.core.bean.BeanUtil; +import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; +import com.bsd.pjcloud.common.core.exception.ServiceException; +import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDate; +import java.time.LocalTime; +import java.util.Map; + +import java.util.List; +import java.util.Objects; +import com.bsd.pjcloud.integrated.dto.meeting.MeetingBookingSaveDto; +import com.bsd.pjcloud.integrated.vo.meeting.MeetingBookingPageVo; +import java.util.HashMap; + +/** + * 会议室预约 + * + * @author zjf + * @date 2025-05-20 10:51:29 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/meetingBooking" ) +@Tag(description = "meetingBooking" , name = "会议室预约管理" ) +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class MeetingBookingController { + + private final MeetingBookingService meetingBookingService; + private final MeetingRoomService meetingRoomService; + private final RemoteFlowApiFlowService remoteFlowApiFlowService; + + /** + * 分页查询 + * @param page 分页对象 + * @param meetingBooking 会议室预约 + * @return + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_view')") + public R> getMeetingBookingPage(@ParameterObject Page page, @ParameterObject MeetingBookingEntity meetingBooking) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(StrUtil.isNotBlank(meetingBooking.getTitle()), MeetingBookingEntity::getTitle, meetingBooking.getTitle()); + Page entityPage = meetingBookingService.pageScope(page, wrapper); + + // 批量查会议室名称,避免N+1 + List roomIds = entityPage.getRecords().stream().map(MeetingBookingEntity::getRoomId).distinct().toList(); + Map roomNameMap = new HashMap<>(); + if (!roomIds.isEmpty()) { + List rooms = meetingRoomService.listByIds(roomIds); + for (MeetingRoomEntity room : rooms) { + roomNameMap.put(room.getId(), room.getRoomName()); + } + } + + // 转VO + List voList = entityPage.getRecords().stream().map(e -> { + MeetingBookingPageVo vo = new MeetingBookingPageVo(); + vo.setId(e.getId()); + vo.setTitle(e.getTitle()); + vo.setRoomId(e.getRoomId()); + vo.setRoomName(roomNameMap.get(e.getRoomId())); + vo.setBookingDate(e.getBookingDate()); + vo.setStartTime(e.getStartTime()); + vo.setEndTime(e.getEndTime()); + vo.setApplicantId(e.getApplicantId()); + vo.setAssigneeName(e.getAssigneeName()); + vo.setCheckStatus(e.getCheckStatus()); + vo.setCheckReason(e.getCheckReason()); + vo.setCreateTime(e.getCreateTime()); + vo.setCreateBy(e.getCreateBy()); + vo.setDescription(e.getDescription()); + return vo; + }).toList(); + + Page voPage = new Page<>(entityPage.getCurrent(), entityPage.getSize(), entityPage.getTotal()); + voPage.setRecords(voList); + return R.ok(voPage); + } + + + /** + * 通过id查询会议室预约 + * @param id id + * @return R + */ + @Operation(summary = "通过id查询" , description = "通过id查询" ) + @GetMapping("/{id}" ) + @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_view')" ) + public R getById(@PathVariable("id" ) Long id) { + return R.ok(meetingBookingService.getById(id)); + } + + /** + * 新增会议室预约(PC端,逻辑与手机端一致) + * @param dto 预约参数 + * @return R + */ + @Operation(summary = "新增会议室预约", description = "新增会议室预约") + @SysLog("新增会议室预约") + @PostMapping + @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_add')") + @Transactional + public R save(@RequestBody MeetingBookingSaveDto dto) { + // 1. 参数转换 + MeetingBookingEntity meetingBooking = new MeetingBookingEntity(); + meetingBooking.setTitle(dto.getTitle()); + meetingBooking.setRoomId(dto.getRoomId()); + meetingBooking.setDescription(dto.getDescription()); + meetingBooking.setBookingDate(LocalDate.parse(dto.getBookingDate())); + meetingBooking.setStartTime(LocalTime.parse(dto.getStartTime())); + meetingBooking.setEndTime(LocalTime.parse(dto.getEndTime())); + // 2. 验证会议室是否存在 + MeetingRoomEntity room = meetingRoomService.getById(meetingBooking.getRoomId()); + if (room == null) { + return R.failed("会议室不存在"); + } + // 3. 验证会议室状态 + if (!YesNoEnum.NO.getCode().equals(room.getStatus())) { + return R.failed("会议室当前不可用"); + } + // 4. 校验时间 + LocalDate bookingDate = meetingBooking.getBookingDate(); + LocalTime startTime = meetingBooking.getStartTime(); + LocalTime endTime = meetingBooking.getEndTime(); + if (startTime == null || endTime == null || bookingDate == null) { + return R.failed("预约日期和时间不能为空"); + } + if (startTime.isAfter(endTime)) { + return R.failed("开始时间不能晚于结束时间"); + } + LocalTime availableStart = LocalTime.of(8, 0); + LocalTime availableEnd = LocalTime.of(18, 0); + if (startTime.isBefore(availableStart) || endTime.isAfter(availableEnd)) { + return R.failed("预约时间必须在8:00-18:00之间"); + } + // 5. 检查时间段是否已被预约 + var existingBookings = meetingBookingService.list( + Wrappers.lambdaQuery() + .eq(MeetingBookingEntity::getRoomId, meetingBooking.getRoomId()) + .eq(MeetingBookingEntity::getBookingDate, bookingDate) + .eq(MeetingBookingEntity::getCheckStatus, TaskCheckStatusEnum.RESULT.getCode()) + ); + for (MeetingBookingEntity booking : existingBookings) { + LocalTime bookingStart = booking.getStartTime(); + LocalTime bookingEnd = booking.getEndTime(); + if (!(endTime.compareTo(bookingStart) <= 0 || startTime.compareTo(bookingEnd) >= 0)) { + return R.failed("该时间段已被预约"); + } + } + // 6. 设置预约人、部门 + meetingBooking.setApplicantId(SecurityUtils.getUser().getId()); + meetingBooking.setDeptId(SecurityUtils.getUser().getDeptId()); + // 7. 发起流程 + var processByBusinessKey = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_MEETING_BOOKING); + if (!processByBusinessKey.isOk() || processByBusinessKey.getData() == null) { + throw new ServiceException("流程配置获取失败: " + processByBusinessKey.getMsg()); + } + Process process = processByBusinessKey.getData(); + MeetingFlowDto meetingFlowDto = new MeetingFlowDto(); + meetingFlowDto.setRoomName(room.getRoomName()); + meetingFlowDto.setApplicantName(SecurityUtils.getUser().getUsername()); + meetingFlowDto.setMeetingTime(bookingDate + " " + startTime + "-" + endTime); + Map stringObjectMap = BeanUtil.beanToMap(meetingFlowDto); + ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto(); + processInstanceParamDto.setFlowId(process.getFlowId()); + processInstanceParamDto.setParamMap(stringObjectMap); + var stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); + meetingBooking.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); + meetingBooking.setProcessInstanceId(stringR.getData()); + boolean success = meetingBookingService.save(meetingBooking); + return R.ok(success); + } + + /** + * 修改会议室预约 + * @param meetingBooking 会议室预约 + * @return R + */ + @Operation(summary = "修改会议室预约" , description = "修改会议室预约" ) + @SysLog("修改会议室预约" ) + @PutMapping + @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_edit')" ) + public R updateById(@RequestBody MeetingBookingEntity meetingBooking) { + return R.ok(meetingBookingService.updateById(meetingBooking)); + } + + /** + * 通过id删除会议室预约 + * @param ids id列表 + * @return R + */ + @Operation(summary = "通过id删除会议室预约" , description = "通过id删除会议室预约" ) + @SysLog("通过id删除会议室预约" ) + @DeleteMapping + @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_del')" ) + public R removeById(@RequestBody Long[] ids) { + return R.ok(meetingBookingService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 导出excel 表格 + * @param meetingBooking 查询条件 + * @param ids 导出指定ID + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('integrated_meetingBooking_export')" ) + public List export(MeetingBookingEntity meetingBooking,Long[] ids) { + return meetingBookingService.list(Wrappers.lambdaQuery(meetingBooking).in(ArrayUtil.isNotEmpty(ids), MeetingBookingEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java index 9e5216281..a04f281d5 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java @@ -320,7 +320,8 @@ public class VisitorsServiceImpl extends ServiceImpl params,@RequestParam("clientIp") String clientIp); diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java index 3736a4217..193d6a0ba 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java @@ -31,6 +31,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.seata.spring.annotation.GlobalTransactional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.http.HttpHeaders; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -59,6 +60,9 @@ public class ThirdPartyOAth2Cotroller { @Autowired private RedisTemplate redisTemplate; + @Autowired + private StringRedisTemplate stringRedisTemplate; + private final RemoteUserTrustedDeviceService remoteUserTrustedDeviceService; // @Operation(summary = "浙政钉token" ) @@ -331,7 +335,7 @@ public class ThirdPartyOAth2Cotroller { if (null==type){ redisTemplate.opsForValue().set(CacheConstants.SMS_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES); }else { - redisTemplate.opsForValue().set(CacheConstants.SMS_VISITOR_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES); + stringRedisTemplate.opsForValue().set(CacheConstants.SMS_VISITOR_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES); } // redisTemplate.opsForValue().set(CacheConstants.SMS_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES);