This commit is contained in:
张良(004796)
2024-01-22 10:23:59 +08:00
parent caa4e22800
commit a30b615fc3
10 changed files with 104 additions and 3 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();
}
}

View File

@@ -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;
}

View 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){
}
}
}

View File

@@ -11,4 +11,5 @@ import com.ruoyi.cai.domain.DynamicImages;
*/
public interface DynamicImagesService extends IService<DynamicImages> {
void removeByDynamicId(Long dynamicId);
}

View File

@@ -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);
}

View File

@@ -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));
}
}

View File

@@ -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());
}
}
}
}

View File

@@ -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);