This commit is contained in:
dute7liang
2023-12-30 19:24:56 +08:00
parent a6f7c6bd0e
commit abb61de844
54 changed files with 277 additions and 98 deletions

View File

@@ -19,7 +19,7 @@ import java.util.List;
*/
public interface CaiDynamicService extends IService<CaiDynamic> {
List<DynamicVo> selectDynamicList(Long userId, Integer limit);
List<String> selectDynamicImageList(Long userId, Integer limit);
Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query);

View File

@@ -14,4 +14,5 @@ import java.util.List;
public interface CaiGiftService extends IService<CaiGift> {
List<CaiGift> all();
}

View File

@@ -1,12 +1,13 @@
package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiGuardTotal;
import com.ruoyi.cai.dto.app.dto.GuardNum;
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
import com.ruoyi.cai.dto.app.vo.GuardTotalVo;
import java.util.List;
import com.ruoyi.cai.dto.app.vo.index.GuardIndexVo;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.common.core.domain.PageQuery;
/**
* 守护用户累计Service接口
@@ -16,9 +17,11 @@ import java.util.List;
*/
public interface CaiGuardTotalService extends IService<CaiGuardTotal> {
List<GuardTotalVo> selectGuardTotalLimit(Long fromUserId,Integer limit);
GuardIndexVo guardInfoVo(Long fromUserId,Long toUserId, Integer limit);
boolean giveGuard(GiveGuardReq query);
GuardNum getGuardNum(Long fromUserId, Long toUserId);
Page<GuardListPageVo> userGuardPage(PageQuery pageQuery, Long userId);
}

View File

@@ -3,7 +3,7 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiUserGift;
import com.ruoyi.cai.dto.app.query.GiveGiftRes;
import com.ruoyi.cai.dto.app.vo.UserGiftVo;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import java.util.List;
@@ -15,7 +15,7 @@ import java.util.List;
*/
public interface CaiUserGiftService extends IService<CaiUserGift> {
List<UserGiftVo> selectGiftList(Long userId);
List<UserGiftIndexVo> selectGiftList(Long userId);
boolean giveGift(GiveGiftRes query);
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiUserOnline;
import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo;
/**
* 用户在线状态Service接口
@@ -11,4 +12,7 @@ import com.ruoyi.cai.domain.CaiUserOnline;
*/
public interface CaiUserOnlineService extends IService<CaiUserOnline> {
CaiUserOnline getByUserId(Long userId);
OnlineStatusVo onlineStatus(Long userId, Integer openVideoStatus, Integer videoStatus, Integer isAnchor);
}

View File

@@ -50,24 +50,8 @@ public class CaiDynamicServiceImpl extends ServiceImpl<CaiDynamicMapper,CaiDynam
private SystemConfigManager systemConfigManager;
@Override
public List<DynamicVo> selectDynamicList(Long userId, Integer limit) {
List<CaiDynamic> list = this.list(Wrappers.lambdaQuery(CaiDynamic.class)
.eq(CaiDynamic::getUserId, userId)
.eq(CaiDynamic::getStatus, 1)
.orderByDesc(CaiDynamic::getCreateTime)
.last("limit "+ limit));
List<DynamicVo> res = BeanConvertUtil.convertListTo(list, DynamicVo::new);
List<Long> dynamicIds = res.stream().filter(i -> i.getIsAttach() == 1).map(DynamicVo::getId).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(dynamicIds)){
List<CaiDynamicImages> dynamicImages = dynamicImagesService.list(Wrappers.lambdaQuery(CaiDynamicImages.class)
.in(CaiDynamicImages::getDynamicId, dynamicIds));
Map<Long, List<CaiDynamicImages>> map =
dynamicImages.stream().collect(Collectors.groupingBy(CaiDynamicImages::getDynamicId));
for (DynamicVo re : res) {
List<CaiDynamicImages> images = map.get(re.getId());
re.setImageList(BeanConvertUtil.convertListTo(images, DynamicImageVo::new));
}
}
public List<String> selectDynamicImageList(Long userId, Integer limit) {
List<String> res = baseMapper.selectDynamicImageList(userId,limit);
return res;
}

View File

@@ -1,6 +1,7 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.CaiAnchor;
import com.ruoyi.cai.domain.CaiConsumeLog;
@@ -8,13 +9,16 @@ import com.ruoyi.cai.domain.CaiGuardTotal;
import com.ruoyi.cai.domain.CaiUser;
import com.ruoyi.cai.dto.app.dto.GuardNum;
import com.ruoyi.cai.dto.app.query.GiveGuardReq;
import com.ruoyi.cai.dto.app.vo.GuardTotalVo;
import com.ruoyi.cai.dto.app.dto.GuardTotalDTO;
import com.ruoyi.cai.dto.app.vo.index.GuardIndexVo;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.mapper.CaiGuardTotalMapper;
import com.ruoyi.cai.service.CaiAccountService;
import com.ruoyi.cai.service.CaiAnchorService;
import com.ruoyi.cai.service.CaiGuardTotalService;
import com.ruoyi.cai.service.CaiUserService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +26,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
* 守护用户累计Service业务层处理
@@ -32,7 +37,7 @@ import java.util.List;
@Service
public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,CaiGuardTotal> implements CaiGuardTotalService {
private final Integer GUARD_UNIT_PRICE = 1314;
private final Long GUARD_UNIT_PRICE = 1314L;
@Autowired
private CaiUserService userService;
@Autowired
@@ -41,8 +46,26 @@ public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,Ca
private CaiAnchorService anchorService;
@Override
public List<GuardTotalVo> selectGuardTotalLimit(Long fromUserId,Integer limit) {
return baseMapper.selectGuardTotal(fromUserId, limit);
public GuardIndexVo guardInfoVo(Long fromUserId, Long toUserId, Integer limit) {
GuardIndexVo vo = new GuardIndexVo();
vo.setGuardPrice(GUARD_UNIT_PRICE);
// 查询守护总数
Long count = baseMapper.guardCount(toUserId);
if(count > 0){
List<GuardTotalDTO> total = baseMapper.selectGuardTotal(toUserId, limit);
GuardTotalDTO maxUser = total.get(0);
vo.setUserList(total.stream().map(GuardTotalDTO::getAvatar).collect(Collectors.toList()));
vo.setNickname(maxUser.getNickname());
vo.setAvatar(maxUser.getAvatar());
vo.setUserId(maxUser.getToUserId());
vo.setGuardSymbolTotal(count);
// 获取总数总人数
vo.setGuardPersonTotal(baseMapper.guardPersonCount(toUserId));
// 获取差距
GuardNum guardNum = this.getGuardNum(fromUserId, toUserId);
vo.setDiffNum(guardNum.getDiffNum());
}
return vo;
}
@Override
@@ -102,4 +125,9 @@ public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,Ca
num.setDiffNum((upGuardNum - myGuardNum) < 0 ? 0 : (upGuardNum - myGuardNum));
return num;
}
@Override
public Page<GuardListPageVo> userGuardPage(PageQuery pageQuery,Long userId) {
return baseMapper.userGuardPage(pageQuery.build(),userId);
}
}

View File

@@ -3,7 +3,7 @@ package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.app.query.GiveGiftRes;
import com.ruoyi.cai.dto.app.vo.UserGiftVo;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.mapper.CaiUserGiftMapper;
import com.ruoyi.cai.service.*;
@@ -36,7 +36,7 @@ public class CaiUserGiftServiceImpl extends ServiceImpl<CaiUserGiftMapper,CaiUse
@Override
public List<UserGiftVo> selectGiftList(Long userId) {
public List<UserGiftIndexVo> selectGiftList(Long userId) {
return baseMapper.selectGiftList(userId);
}

View File

@@ -1,7 +1,9 @@
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.CaiUserOnline;
import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo;
import com.ruoyi.cai.mapper.CaiUserOnlineMapper;
import com.ruoyi.cai.service.CaiUserOnlineService;
import lombok.RequiredArgsConstructor;
@@ -17,4 +19,40 @@ import org.springframework.stereotype.Service;
@Service
public class CaiUserOnlineServiceImpl extends ServiceImpl<CaiUserOnlineMapper,CaiUserOnline> implements CaiUserOnlineService {
@Override
public CaiUserOnline getByUserId(Long userId){
return this.getOne(Wrappers.lambdaQuery(CaiUserOnline.class).eq(CaiUserOnline::getUserId,userId).last("limit 1"));
}
@Override
public OnlineStatusVo onlineStatus(Long userId,Integer openVideoStatus,Integer videoStatus,Integer isAnchor){
CaiUserOnline userOnline = this.getByUserId(userId);
Integer onlineStatus = userOnline.getStatus();
Integer status = 0;
String statusMsg = "离线";
if(isAnchor == 1){
if(openVideoStatus == 1 && videoStatus == 0 && onlineStatus == 1){
status = 1;
statusMsg = "空闲";
}else if(videoStatus == 1){
status = 2;
statusMsg = "忙碌中";
}else if(openVideoStatus == 0){
status = 3;
statusMsg = "勿扰";
}
}else{
if(onlineStatus == 1){
status = 1;
statusMsg = "在线";
}
}
OnlineStatusVo vo = new OnlineStatusVo();
vo.setStatus(status);
vo.setOnlineStatus(onlineStatus);
vo.setStatusMsg(statusMsg);
return vo;
}
}

View File

@@ -10,6 +10,7 @@ import com.ruoyi.cai.dto.admin.vo.CaiUserAdminVo;
import com.ruoyi.cai.dto.app.query.UserQuery;
import com.ruoyi.cai.dto.app.vo.UserInfoVo;
import com.ruoyi.cai.dto.app.vo.UserListVo;
import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo;
import com.ruoyi.cai.mapper.CaiUserMapper;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
@@ -37,6 +38,8 @@ public class CaiUserServiceImpl extends ServiceImpl<CaiUserMapper, CaiUser> impl
private CaiDynamicService dynamicService;
@Autowired
private CaiUserGiftService userGiftService;
@Autowired
private CaiUserOnlineService userOnlineService;
@Override
public CaiUser getByUsername(String username) {
@@ -84,13 +87,18 @@ public class CaiUserServiceImpl extends ServiceImpl<CaiUserMapper, CaiUser> impl
vo.setStar(userFollowService.checkStar(currentUserId, userId));
vo.setAlbumList(caiUserAlbumService.getUserAlbum(userId,caiUser.getIsAnchor()));
// 在线状态
// vo.setStatus();
OnlineStatusVo onlineStatusVo;
if(caiUser.getIsAnchor() == 1 && anchor != null){
onlineStatusVo = userOnlineService.onlineStatus(userId,anchor.getOpenVideoStatus(),anchor.getVideoStatus(),caiUser.getIsAnchor());
}else{
onlineStatusVo = userOnlineService.onlineStatus(userId,0,0,caiUser.getIsAnchor());
}
vo.setOnlineStatus(onlineStatusVo);
if(caiUser.getIsAnchor() == 1){
vo.setGuardTotalList(guardTotalService.selectGuardTotalLimit(userId,10));
// vo.setDynamicList(dynamicService.selectDynamicList(userId,10));
vo.setGuardIndexVo(guardTotalService.guardInfoVo(currentUserId,userId,10));
vo.setDynamicList(dynamicService.selectDynamicImageList(userId,10));
vo.setGiftList(userGiftService.selectGiftList(userId));
}
return vo;
}