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

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.metadata.IPage;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.controller;
package com.ruoyi.cai.controller.admin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

View File

@@ -8,9 +8,9 @@ import com.ruoyi.cai.dto.app.vo.AnchorListVo;
import com.ruoyi.cai.dto.app.vo.IndexBannerVo;
import com.ruoyi.cai.dto.app.vo.UserInfoVo;
import com.ruoyi.cai.dto.app.vo.UserListVo;
import com.ruoyi.cai.service.CaiAnchorService;
import com.ruoyi.cai.service.CaiBannerService;
import com.ruoyi.cai.service.CaiUserService;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -36,6 +36,10 @@ public class CaiIndexController {
private CaiUserService caiUserService;
@Autowired
private CaiBannerService bannerService;
@Autowired
private CaiGuardTotalService guardTotalService;
@Autowired
private CaiUserGiftService userGiftService;
@GetMapping("/banner")
@Operation(summary = "获取首页banner图")
@@ -59,9 +63,24 @@ public class CaiIndexController {
}
@GetMapping("/home/info")
@Operation(summary = "主页展示详情页")
@Operation(summary = "获取指定用户主页信息")
public R<UserInfoVo> info(Long userId){
UserInfoVo res = caiUserService.info(userId);
return R.ok(res);
}
@GetMapping("/userGuard/page")
@Operation(summary = "获取指定女神守护排行")
public TableDataInfo<GuardListPageVo> userGuardPage(PageQuery pageQuery,Long userId){
Page<GuardListPageVo> page = guardTotalService.userGuardPage(pageQuery, userId);
return TableDataInfo.build(page);
}
@GetMapping("/userGift/list")
@Operation(summary = "获取指定女神收到的礼物列表")
public R<List<UserGiftIndexVo>> userGiftList(Long userId){
List<UserGiftIndexVo> res = userGiftService.selectGiftList(userId);
return R.ok(res);
}
}

View File

@@ -27,7 +27,7 @@ public class CaiUserDynamicAppController {
private CaiUserFollowDynamicService userFollowDynamicService;
@GetMapping("/page")
@Operation(summary = "动态查询")
@Operation(summary = "动态查询动态")
public TableDataInfo<DynamicListVo> page(PageQuery pageQuery, DynamicQuery query){
Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query);
return TableDataInfo.build(resp);

View File

@@ -1,4 +1,4 @@
package com.ruoyi.cai.dto.app.vo;
package com.ruoyi.cai.dto.app.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -6,7 +6,7 @@ import lombok.Data;
import java.io.Serializable;
@Data
public class GuardTotalVo implements Serializable {
public class GuardTotalDTO implements Serializable {
/**
* 被守护人的user_id(大咖)
*/
@@ -19,7 +19,9 @@ public class GuardTotalVo implements Serializable {
private Long toUserId;
@Schema(description = "用户头像")
private String userAvatar;
private String avatar;
@Schema(description = "用户昵称")
private String nickname;
/**
* 累计守护符个数
*/

View File

@@ -11,7 +11,7 @@ public class DynamicQuery {
@Schema(description = "类型 1=最新(默认) 2=关注 3=同城")
private Integer type = 1;
@Schema(description = "用户ID")
@Schema(description = "用户ID,可过滤指定的女神")
private Long userId;
@Schema(description = "当前用户ID", accessMode = Schema.AccessMode.READ_ONLY)

View File

@@ -1,5 +1,8 @@
package com.ruoyi.cai.dto.app.vo;
import com.ruoyi.cai.dto.app.vo.index.GuardIndexVo;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@@ -40,24 +43,20 @@ public class UserInfoVo {
@Schema(description = "是否关注")
private Boolean star;
// TODO
@Schema(description = "用户状态")
private String status;
@Schema(description = "用户状态描述")
private String statusMsg;
private OnlineStatusVo onlineStatus;
@Schema(description = "相册集合")
private List<String> albumList = Collections.emptyList();
@Schema(description = "守护列表")
private List<GuardTotalVo> guardTotalList = Collections.emptyList();
private GuardIndexVo guardIndexVo;
@Schema(description = "最近的动态图片")
private List<String> dynamicList = Collections.emptyList();
@Schema(description = "礼物列表")
private List<UserGiftVo> giftList = Collections.emptyList();
private List<UserGiftIndexVo> giftList = Collections.emptyList();

View File

@@ -0,0 +1,28 @@
package com.ruoyi.cai.dto.app.vo.index;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Collections;
import java.util.List;
@Data
@Schema(description = "守护详情数据")
public class GuardIndexVo {
@Schema(description = "守护价格")
private Long guardPrice = 0L;
@Schema(description = "已有的人员列表")
private List<String> userList = Collections.emptyList();
@Schema(description = "距离上一个守护人数")
private Long diffNum = 0L;
@Schema(description = "最多的守护人昵称")
private String nickname;
@Schema(description = "最多的守护人头像")
private String avatar;
@Schema(description = "最多的守护人ID")
private Long userId;
@Schema(description = "总共的守护数")
private Long guardSymbolTotal = 0L;
@Schema(description = "总共的人数")
private Long guardPersonTotal = 0L;
}

View File

@@ -0,0 +1,21 @@
package com.ruoyi.cai.dto.app.vo.index;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
@Schema(description = "主播守护列表")
public class GuardListPageVo {
@Schema(description = "守护人ID")
private Long userId;
@Schema(description = "守护人昵称")
private String nickname;
@Schema(description = "守护人头像")
private String avatar;
@Schema(description = "守护人蜜瓜号")
private String usercode;
@Schema(description = "守护人累计守护个数")
private Long guardNum;
@Schema(description = "守护人累计守护值")
private Long guardValue;
}

View File

@@ -1,18 +1,15 @@
package com.ruoyi.cai.dto.app.vo;
package com.ruoyi.cai.dto.app.vo.index;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Data
public class UserGiftVo {
public class UserGiftIndexVo {
/**
* 接受者
*/
@Schema(description = "赠送着")
private Long fromUid;
@Schema(description = "接收着")
private Long toUid;
/**
* 礼物ID
*/
@Schema(description = "礼物ID")
private Long giftId;
@Schema(description = "礼物名称")
@@ -21,9 +18,6 @@ public class UserGiftVo {
private String img;
@Schema(description = "礼物价格")
private String price;
/**
* 礼物数量
*/
@Schema(description = "礼物数量")
private Long count;

View File

@@ -0,0 +1,10 @@
package com.ruoyi.cai.dto.app.vo.user;
import lombok.Data;
@Data
public class OnlineStatusVo {
private Integer status;
private Integer onlineStatus;
private String statusMsg;
}

View File

@@ -7,6 +7,8 @@ import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 主播动态Mapper接口
*
@@ -16,4 +18,6 @@ import org.apache.ibatis.annotations.Param;
public interface CaiDynamicMapper extends BaseMapper<CaiDynamic> {
Page<DynamicListVo> pageApp(@Param("build") Page<Object> build, @Param("query") DynamicQuery query);
List<String> selectDynamicImageList(@Param("userId") Long userId, @Param("limit") Integer limit);
}

View File

@@ -1,8 +1,10 @@
package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.CaiGuardTotal;
import com.ruoyi.cai.dto.app.vo.GuardTotalVo;
import com.ruoyi.cai.dto.app.dto.GuardTotalDTO;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -15,7 +17,12 @@ import java.util.List;
*/
public interface CaiGuardTotalMapper extends BaseMapper<CaiGuardTotal> {
List<GuardTotalVo> selectGuardTotal(@Param("fromUserId") Long fromUserId, @Param("limit") Integer limit);
List<GuardTotalDTO> selectGuardTotal(@Param("fromUserId") Long fromUserId, @Param("limit") Integer limit);
void incs(@Param("fromUserId") Long fromUserId, @Param("toUserId") Long toUserId, @Param("guardNum") Long guardNum, @Param("guardValue") Long guardValue);
Long guardCount(@Param("fromUserId") Long fromUserId);
Long guardPersonCount(@Param("fromUserId") Long fromUserId);
Page<GuardListPageVo> userGuardPage(@Param("build") Page<Object> build, @Param("userId") Long userId);
}

View File

@@ -2,7 +2,7 @@ package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cai.domain.CaiUserGift;
import com.ruoyi.cai.dto.app.vo.UserGiftVo;
import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -15,7 +15,7 @@ import java.util.List;
*/
public interface CaiUserGiftMapper extends BaseMapper<CaiUserGift> {
List<UserGiftVo> selectGiftList(@Param("userId") Long userId);
List<UserGiftIndexVo> selectGiftList(@Param("userId") Long userId);
long countGiftNum(@Param("fromUid") Long fromUid, @Param("toUid") Long toUid);
}

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

View File

@@ -33,6 +33,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
order by t1.create_time desc
</select>
<select id="selectDynamicImageList" resultType="java.lang.String">
select t2.url
from cai_dynamic t1
join cai_dynamic_images t2 on t1.id = t2.user_id
where t1.status = 1 and t1.user_id = #{userId}
limit #{limit}
</select>
</mapper>

View File

@@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
guard_value = guard_value + #{guardValue}
where to_user_id = #{toUserId} and from_user_id = #{fromUserId}
</update>
<select id="selectGuardTotal" resultType="com.ruoyi.cai.dto.app.vo.GuardTotalVo">
<select id="selectGuardTotal" resultType="com.ruoyi.cai.dto.app.dto.GuardTotalDTO">
select t1.from_user_id,t1.to_user_id,t2.avatar,t1.guard_num
from cai_guard_total t1
join cai_user t2 on t1.to_user_id = t2.id
@@ -29,6 +29,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
limit #{limit}
</if>
</select>
<select id="guardCount" resultType="java.lang.Long">
select ifnull(sum(guard_num),0)
from cai_guard_total t1
join cai_user t2 on t1.to_user_id = t2.id
where t1.from_user_id = #{fromUserId}
</select>
<select id="guardPersonCount" resultType="java.lang.Long">
select ifnull(count(1),0)
from cai_guard_total t1
join cai_user t2 on t1.to_user_id = t2.id
where t1.from_user_id = #{fromUserId}
</select>
<select id="userGuardPage" resultType="com.ruoyi.cai.dto.app.vo.index.GuardListPageVo">
select t1.to_user_id as user_id, t2.nickname,t2.avatar,t2.usercode,t1.guard_num,t1.guard_value
from cai_guard_total t1
join cai_user t2 on t1.to_user_id = t2.id
where t1.from_user_id = #{userId}
order by guard_num desc
</select>
</mapper>

View File

@@ -14,8 +14,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="giftAmount" column="gift_amount"/>
<result property="createTime" column="create_time"/>
</resultMap>
<select id="selectGiftList" resultType="com.ruoyi.cai.dto.app.vo.UserGiftVo">
select to_uid, gift_id,
<select id="selectGiftList" resultType="com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo">
select
from_uid,
to_uid,
gift_id,
t2.name,
t2.img,
t2.price,