From a30b615fc335f5760480a0170a8b617acb13e246 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=89=AF=28004796=29?= Date: Mon, 22 Jan 2024 10:23:59 +0800 Subject: [PATCH] 123 --- .../admin/{ => init}/ImController.java | 2 +- .../admin/{ => init}/MqControllerTest.java | 2 +- .../app/UserDynamicAppController.java | 9 ++++ .../cai/dto/app/vo/user/OnlineStatusVo.java | 8 +++- .../main/java/com/ruoyi/cai/job/ClearJob.java | 33 +++++++++++++++ .../cai/service/DynamicImagesService.java | 1 + .../com/ruoyi/cai/service/DynamicService.java | 4 ++ .../impl/DynamicImagesServiceImpl.java | 6 +++ .../cai/service/impl/DynamicServiceImpl.java | 41 +++++++++++++++++++ .../service/impl/UserOnlineServiceImpl.java | 1 + 10 files changed, 104 insertions(+), 3 deletions(-) rename ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/{ => init}/ImController.java (98%) rename ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/{ => init}/MqControllerTest.java (94%) create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/job/ClearJob.java diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/ImController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/init/ImController.java similarity index 98% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/ImController.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/init/ImController.java index 0ce65014..49611553 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/ImController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/init/ImController.java @@ -1,4 +1,4 @@ -package com.ruoyi.cai.controller.admin; +package com.ruoyi.cai.controller.admin.init; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/MqControllerTest.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/init/MqControllerTest.java similarity index 94% rename from ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/MqControllerTest.java rename to ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/init/MqControllerTest.java index abb2795c..d93368d6 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/MqControllerTest.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/init/MqControllerTest.java @@ -1,4 +1,4 @@ -package com.ruoyi.cai.controller.admin; +package com.ruoyi.cai.controller.admin.init; import com.ruoyi.cai.mq.AmqpProducer; import lombok.RequiredArgsConstructor; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java index 2a5d51cb..7eb99fbc 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java @@ -3,6 +3,7 @@ package com.ruoyi.cai.controller.app; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.cai.dto.app.query.DynamicAddReq; import com.ruoyi.cai.dto.app.query.DynamicQuery; +import com.ruoyi.cai.dto.app.query.IdRes; import com.ruoyi.cai.dto.app.vo.DynamicListVo; import com.ruoyi.cai.service.DynamicService; import com.ruoyi.common.annotation.Log; @@ -43,4 +44,12 @@ public class UserDynamicAppController { return R.ok(); } + @PostMapping("/delete") + @Operation(summary = "删除动态") + @Log(title = "删除动态", businessType = BusinessType.OTHER, isSaveDb = false) + public R delete(@RequestBody IdRes res){ + dynamicService.deleteDynamic(res.getId()); + return R.ok(); + } + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/OnlineStatusVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/OnlineStatusVo.java index 66035791..43248c66 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/OnlineStatusVo.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/user/OnlineStatusVo.java @@ -1,10 +1,16 @@ package com.ruoyi.cai.dto.app.vo.user; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @Data public class OnlineStatusVo { + @Schema(description = "用户状态 0=离线 1=空闲/在线 2=忙碌中 3=勿扰") private Integer status; - private Integer onlineStatus; + @Schema(description = "用户状态文字") private String statusMsg; + @Schema(description = "在线状态") + private Integer onlineStatus; + @Schema(description = "是否开启视频接听 1-开启 0-关闭") + private Integer openVideoStatus; } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/job/ClearJob.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/ClearJob.java new file mode 100644 index 00000000..2750b6e9 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/job/ClearJob.java @@ -0,0 +1,33 @@ +package com.ruoyi.cai.job; + +import com.ruoyi.cai.service.DynamicService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ClearJob { + + @Autowired + private DynamicService dynamicService; + + + @Scheduled(cron = "0 1 0 * * ? ") + public void persistentDb() { + try { + log.info("定时删除动态== 开始"); + dynamicService.clearDynamic(12); + log.info("定时删除动态== 结束"); + }catch (Exception e){ + log.error("定时删除动态== 异常",e); + } + try { + + }catch (Exception e){ + + } + + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicImagesService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicImagesService.java index cce252da..3233f342 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicImagesService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicImagesService.java @@ -11,4 +11,5 @@ import com.ruoyi.cai.domain.DynamicImages; */ public interface DynamicImagesService extends IService { + void removeByDynamicId(Long dynamicId); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java index 08938959..2c9fc253 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java @@ -30,4 +30,8 @@ public interface DynamicService extends IService { void saveDynamic(DynamicAddReq res); Page pageAdmin(PageQuery pageQuery, DynamicAdminVo bo); + + void deleteDynamic(Long id); + + void clearDynamic(Integer hours); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicImagesServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicImagesServiceImpl.java index 1c2a74c1..4e42a453 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicImagesServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicImagesServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.cai.domain.DynamicImages; import com.ruoyi.cai.mapper.DynamicImagesMapper; @@ -14,4 +15,9 @@ import org.springframework.stereotype.Service; */ @Service public class DynamicImagesServiceImpl extends ServiceImpl implements DynamicImagesService { + @Override + public void removeByDynamicId(Long dynamicId) { + this.remove(Wrappers.lambdaQuery(DynamicImages.class) + .eq(DynamicImages::getDynamicId,dynamicId)); + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java index 3d4871b6..af9160a8 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.cai.service.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -26,13 +27,16 @@ import com.ruoyi.cai.service.UserService; import com.ruoyi.cai.util.CaiFileUtils; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.utils.BeanConvertUtil; import com.ruoyi.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -174,4 +178,41 @@ public class DynamicServiceImpl extends ServiceImpl impl return page; } + @Override + @Transactional(rollbackFor = Exception.class) + public void deleteDynamic(Long id) { + Dynamic dynamic = this.getById(id); + if(dynamic == null){ + throw new ServiceException("动态不存在!"); + } + Long userId = LoginHelper.getUserId(); + if(!dynamic.getUserId().equals(userId)){ + throw new ServiceException("只能删除自己的动态哦"); + } + this.removeById(id); + dynamicImagesService.removeByDynamicId(id); + } + + + @Override + public void clearDynamic(Integer hours){ + int index = 0; + LocalDateTime deleteTimeFlag = LocalDateTime.now().plusHours(-hours); + while (true){ + List list = this.list(Wrappers.lambdaUpdate(Dynamic.class) + .eq(Dynamic::getAuditStatus, AuditStatusEnum.AUDITING.getCode()) + .lt(Dynamic::getCreateTime, deleteTimeFlag) + .isNull(Dynamic::getSort) + .last("limit 100")); + if(index > 500 || CollectionUtils.isEmpty(list)){ + break; + } + index++; + for (Dynamic dynamic : list) { + DynamicService dynamicService = SpringUtil.getBean(DynamicService.class); + dynamicService.deleteDynamic(dynamic.getId()); + } + } + } + } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserOnlineServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserOnlineServiceImpl.java index 7fdbb276..f8b16bef 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserOnlineServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UserOnlineServiceImpl.java @@ -52,6 +52,7 @@ public class UserOnlineServiceImpl extends ServiceImpl