123
This commit is contained in:
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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<Void> delete(@RequestBody IdRes res){
|
||||
dynamicService.deleteDynamic(res.getId());
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
33
ruoyi-cai/src/main/java/com/ruoyi/cai/job/ClearJob.java
Normal file
33
ruoyi-cai/src/main/java/com/ruoyi/cai/job/ClearJob.java
Normal file
@@ -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){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -11,4 +11,5 @@ import com.ruoyi.cai.domain.DynamicImages;
|
||||
*/
|
||||
public interface DynamicImagesService extends IService<DynamicImages> {
|
||||
|
||||
void removeByDynamicId(Long dynamicId);
|
||||
}
|
||||
|
||||
@@ -30,4 +30,8 @@ public interface DynamicService extends IService<Dynamic> {
|
||||
void saveDynamic(DynamicAddReq res);
|
||||
|
||||
Page<DynamicAdminVo> pageAdmin(PageQuery pageQuery, DynamicAdminVo bo);
|
||||
|
||||
void deleteDynamic(Long id);
|
||||
|
||||
void clearDynamic(Integer hours);
|
||||
}
|
||||
|
||||
@@ -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<DynamicImagesMapper, DynamicImages> implements DynamicImagesService {
|
||||
@Override
|
||||
public void removeByDynamicId(Long dynamicId) {
|
||||
this.remove(Wrappers.lambdaQuery(DynamicImages.class)
|
||||
.eq(DynamicImages::getDynamicId,dynamicId));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<DynamicMapper, Dynamic> 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<Dynamic> 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -52,6 +52,7 @@ public class UserOnlineServiceImpl extends ServiceImpl<UserOnlineMapper, UserOnl
|
||||
}
|
||||
}
|
||||
OnlineStatusVo vo = new OnlineStatusVo();
|
||||
vo.setOpenVideoStatus(openVideoStatus);
|
||||
vo.setStatus(status);
|
||||
vo.setOnlineStatus(onlineStatus);
|
||||
vo.setStatusMsg(statusMsg);
|
||||
|
||||
Reference in New Issue
Block a user