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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.metadata.IPage; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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 cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.IndexBannerVo;
import com.ruoyi.cai.dto.app.vo.UserInfoVo; import com.ruoyi.cai.dto.app.vo.UserInfoVo;
import com.ruoyi.cai.dto.app.vo.UserListVo; import com.ruoyi.cai.dto.app.vo.UserListVo;
import com.ruoyi.cai.service.CaiAnchorService; import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import com.ruoyi.cai.service.CaiBannerService; import com.ruoyi.cai.dto.app.vo.index.UserGiftIndexVo;
import com.ruoyi.cai.service.CaiUserService; import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
@@ -36,6 +36,10 @@ public class CaiIndexController {
private CaiUserService caiUserService; private CaiUserService caiUserService;
@Autowired @Autowired
private CaiBannerService bannerService; private CaiBannerService bannerService;
@Autowired
private CaiGuardTotalService guardTotalService;
@Autowired
private CaiUserGiftService userGiftService;
@GetMapping("/banner") @GetMapping("/banner")
@Operation(summary = "获取首页banner图") @Operation(summary = "获取首页banner图")
@@ -59,9 +63,24 @@ public class CaiIndexController {
} }
@GetMapping("/home/info") @GetMapping("/home/info")
@Operation(summary = "主页展示详情页") @Operation(summary = "获取指定用户主页信息")
public R<UserInfoVo> info(Long userId){ public R<UserInfoVo> info(Long userId){
UserInfoVo res = caiUserService.info(userId); UserInfoVo res = caiUserService.info(userId);
return R.ok(res); 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; private CaiUserFollowDynamicService userFollowDynamicService;
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "动态查询") @Operation(summary = "动态查询动态")
public TableDataInfo<DynamicListVo> page(PageQuery pageQuery, DynamicQuery query){ public TableDataInfo<DynamicListVo> page(PageQuery pageQuery, DynamicQuery query){
Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query); Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query);
return TableDataInfo.build(resp); 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@@ -6,7 +6,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
@Data @Data
public class GuardTotalVo implements Serializable { public class GuardTotalDTO implements Serializable {
/** /**
* 被守护人的user_id(大咖) * 被守护人的user_id(大咖)
*/ */
@@ -19,7 +19,9 @@ public class GuardTotalVo implements Serializable {
private Long toUserId; private Long toUserId;
@Schema(description = "用户头像") @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=同城") @Schema(description = "类型 1=最新(默认) 2=关注 3=同城")
private Integer type = 1; private Integer type = 1;
@Schema(description = "用户ID") @Schema(description = "用户ID,可过滤指定的女神")
private Long userId; private Long userId;
@Schema(description = "当前用户ID", accessMode = Schema.AccessMode.READ_ONLY) @Schema(description = "当前用户ID", accessMode = Schema.AccessMode.READ_ONLY)

View File

@@ -1,5 +1,8 @@
package com.ruoyi.cai.dto.app.vo; 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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@@ -40,24 +43,20 @@ public class UserInfoVo {
@Schema(description = "是否关注") @Schema(description = "是否关注")
private Boolean star; private Boolean star;
// TODO
@Schema(description = "用户状态") @Schema(description = "用户状态")
private String status; private OnlineStatusVo onlineStatus;
@Schema(description = "用户状态描述")
private String statusMsg;
@Schema(description = "相册集合") @Schema(description = "相册集合")
private List<String> albumList = Collections.emptyList(); private List<String> albumList = Collections.emptyList();
@Schema(description = "守护列表") @Schema(description = "守护列表")
private List<GuardTotalVo> guardTotalList = Collections.emptyList(); private GuardIndexVo guardIndexVo;
@Schema(description = "最近的动态图片") @Schema(description = "最近的动态图片")
private List<String> dynamicList = Collections.emptyList(); private List<String> dynamicList = Collections.emptyList();
@Schema(description = "礼物列表") @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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
@Data @Data
public class UserGiftVo { public class UserGiftIndexVo {
/** @Schema(description = "赠送着")
* 接受者 private Long fromUid;
*/ @Schema(description = "接收着")
private Long toUid; private Long toUid;
/**
* 礼物ID
*/
@Schema(description = "礼物ID") @Schema(description = "礼物ID")
private Long giftId; private Long giftId;
@Schema(description = "礼物名称") @Schema(description = "礼物名称")
@@ -21,9 +18,6 @@ public class UserGiftVo {
private String img; private String img;
@Schema(description = "礼物价格") @Schema(description = "礼物价格")
private String price; private String price;
/**
* 礼物数量
*/
@Schema(description = "礼物数量") @Schema(description = "礼物数量")
private Long count; 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 com.ruoyi.cai.dto.app.vo.DynamicListVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 主播动态Mapper接口 * 主播动态Mapper接口
* *
@@ -16,4 +18,6 @@ import org.apache.ibatis.annotations.Param;
public interface CaiDynamicMapper extends BaseMapper<CaiDynamic> { public interface CaiDynamicMapper extends BaseMapper<CaiDynamic> {
Page<DynamicListVo> pageApp(@Param("build") Page<Object> build, @Param("query") DynamicQuery query); 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; package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.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 org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -15,7 +17,12 @@ import java.util.List;
*/ */
public interface CaiGuardTotalMapper extends BaseMapper<CaiGuardTotal> { 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); 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.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.cai.domain.CaiUserGift; 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 org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@@ -15,7 +15,7 @@ import java.util.List;
*/ */
public interface CaiUserGiftMapper extends BaseMapper<CaiUserGift> { 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); 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> { 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); Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query);

View File

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

View File

@@ -1,12 +1,13 @@
package com.ruoyi.cai.service; package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiGuardTotal; import com.ruoyi.cai.domain.CaiGuardTotal;
import com.ruoyi.cai.dto.app.dto.GuardNum; import com.ruoyi.cai.dto.app.dto.GuardNum;
import com.ruoyi.cai.dto.app.query.GiveGuardReq; import com.ruoyi.cai.dto.app.query.GiveGuardReq;
import com.ruoyi.cai.dto.app.vo.GuardTotalVo; import com.ruoyi.cai.dto.app.vo.index.GuardIndexVo;
import com.ruoyi.cai.dto.app.vo.index.GuardListPageVo;
import java.util.List; import com.ruoyi.common.core.domain.PageQuery;
/** /**
* 守护用户累计Service接口 * 守护用户累计Service接口
@@ -16,9 +17,11 @@ import java.util.List;
*/ */
public interface CaiGuardTotalService extends IService<CaiGuardTotal> { 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); boolean giveGuard(GiveGuardReq query);
GuardNum getGuardNum(Long fromUserId, Long toUserId); 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.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiUserGift; import com.ruoyi.cai.domain.CaiUserGift;
import com.ruoyi.cai.dto.app.query.GiveGiftRes; 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; import java.util.List;
@@ -15,7 +15,7 @@ import java.util.List;
*/ */
public interface CaiUserGiftService extends IService<CaiUserGift> { public interface CaiUserGiftService extends IService<CaiUserGift> {
List<UserGiftVo> selectGiftList(Long userId); List<UserGiftIndexVo> selectGiftList(Long userId);
boolean giveGift(GiveGiftRes query); boolean giveGift(GiveGiftRes query);
} }

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiUserOnline; import com.ruoyi.cai.domain.CaiUserOnline;
import com.ruoyi.cai.dto.app.vo.user.OnlineStatusVo;
/** /**
* 用户在线状态Service接口 * 用户在线状态Service接口
@@ -11,4 +12,7 @@ import com.ruoyi.cai.domain.CaiUserOnline;
*/ */
public interface CaiUserOnlineService extends IService<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; private SystemConfigManager systemConfigManager;
@Override @Override
public List<DynamicVo> selectDynamicList(Long userId, Integer limit) { public List<String> selectDynamicImageList(Long userId, Integer limit) {
List<CaiDynamic> list = this.list(Wrappers.lambdaQuery(CaiDynamic.class) List<String> res = baseMapper.selectDynamicImageList(userId,limit);
.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));
}
}
return res; return res;
} }

View File

@@ -1,6 +1,7 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.CaiAnchor; import com.ruoyi.cai.domain.CaiAnchor;
import com.ruoyi.cai.domain.CaiConsumeLog; 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.domain.CaiUser;
import com.ruoyi.cai.dto.app.dto.GuardNum; import com.ruoyi.cai.dto.app.dto.GuardNum;
import com.ruoyi.cai.dto.app.query.GiveGuardReq; 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.enums.ConsumeLogType;
import com.ruoyi.cai.mapper.CaiGuardTotalMapper; import com.ruoyi.cai.mapper.CaiGuardTotalMapper;
import com.ruoyi.cai.service.CaiAccountService; import com.ruoyi.cai.service.CaiAccountService;
import com.ruoyi.cai.service.CaiAnchorService; import com.ruoyi.cai.service.CaiAnchorService;
import com.ruoyi.cai.service.CaiGuardTotalService; import com.ruoyi.cai.service.CaiGuardTotalService;
import com.ruoyi.cai.service.CaiUserService; import com.ruoyi.cai.service.CaiUserService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.helper.LoginHelper; import com.ruoyi.common.helper.LoginHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +26,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 守护用户累计Service业务层处理 * 守护用户累计Service业务层处理
@@ -32,7 +37,7 @@ import java.util.List;
@Service @Service
public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,CaiGuardTotal> implements CaiGuardTotalService { public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,CaiGuardTotal> implements CaiGuardTotalService {
private final Integer GUARD_UNIT_PRICE = 1314; private final Long GUARD_UNIT_PRICE = 1314L;
@Autowired @Autowired
private CaiUserService userService; private CaiUserService userService;
@Autowired @Autowired
@@ -41,8 +46,26 @@ public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,Ca
private CaiAnchorService anchorService; private CaiAnchorService anchorService;
@Override @Override
public List<GuardTotalVo> selectGuardTotalLimit(Long fromUserId,Integer limit) { public GuardIndexVo guardInfoVo(Long fromUserId, Long toUserId, Integer limit) {
return baseMapper.selectGuardTotal(fromUserId, 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 @Override
@@ -102,4 +125,9 @@ public class CaiGuardTotalServiceImpl extends ServiceImpl<CaiGuardTotalMapper,Ca
num.setDiffNum((upGuardNum - myGuardNum) < 0 ? 0 : (upGuardNum - myGuardNum)); num.setDiffNum((upGuardNum - myGuardNum) < 0 ? 0 : (upGuardNum - myGuardNum));
return num; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.*; import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.app.query.GiveGiftRes; 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.enums.ConsumeLogType;
import com.ruoyi.cai.mapper.CaiUserGiftMapper; import com.ruoyi.cai.mapper.CaiUserGiftMapper;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
@@ -36,7 +36,7 @@ public class CaiUserGiftServiceImpl extends ServiceImpl<CaiUserGiftMapper,CaiUse
@Override @Override
public List<UserGiftVo> selectGiftList(Long userId) { public List<UserGiftIndexVo> selectGiftList(Long userId) {
return baseMapper.selectGiftList(userId); return baseMapper.selectGiftList(userId);
} }

View File

@@ -1,7 +1,9 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.CaiUserOnline; 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.mapper.CaiUserOnlineMapper;
import com.ruoyi.cai.service.CaiUserOnlineService; import com.ruoyi.cai.service.CaiUserOnlineService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -17,4 +19,40 @@ import org.springframework.stereotype.Service;
@Service @Service
public class CaiUserOnlineServiceImpl extends ServiceImpl<CaiUserOnlineMapper,CaiUserOnline> implements CaiUserOnlineService { 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.query.UserQuery;
import com.ruoyi.cai.dto.app.vo.UserInfoVo; import com.ruoyi.cai.dto.app.vo.UserInfoVo;
import com.ruoyi.cai.dto.app.vo.UserListVo; 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.mapper.CaiUserMapper;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
@@ -37,6 +38,8 @@ public class CaiUserServiceImpl extends ServiceImpl<CaiUserMapper, CaiUser> impl
private CaiDynamicService dynamicService; private CaiDynamicService dynamicService;
@Autowired @Autowired
private CaiUserGiftService userGiftService; private CaiUserGiftService userGiftService;
@Autowired
private CaiUserOnlineService userOnlineService;
@Override @Override
public CaiUser getByUsername(String username) { public CaiUser getByUsername(String username) {
@@ -84,13 +87,18 @@ public class CaiUserServiceImpl extends ServiceImpl<CaiUserMapper, CaiUser> impl
vo.setStar(userFollowService.checkStar(currentUserId, userId)); vo.setStar(userFollowService.checkStar(currentUserId, userId));
vo.setAlbumList(caiUserAlbumService.getUserAlbum(userId,caiUser.getIsAnchor())); 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){ if(caiUser.getIsAnchor() == 1){
vo.setGuardTotalList(guardTotalService.selectGuardTotalLimit(userId,10)); vo.setGuardIndexVo(guardTotalService.guardInfoVo(currentUserId,userId,10));
// vo.setDynamicList(dynamicService.selectDynamicList(userId,10)); vo.setDynamicList(dynamicService.selectDynamicImageList(userId,10));
vo.setGiftList(userGiftService.selectGiftList(userId)); vo.setGiftList(userGiftService.selectGiftList(userId));
} }
return vo; return vo;
} }

View File

@@ -33,6 +33,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if> </if>
order by t1.create_time desc order by t1.create_time desc
</select> </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> </mapper>

View File

@@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
guard_value = guard_value + #{guardValue} guard_value = guard_value + #{guardValue}
where to_user_id = #{toUserId} and from_user_id = #{fromUserId} where to_user_id = #{toUserId} and from_user_id = #{fromUserId}
</update> </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 select t1.from_user_id,t1.to_user_id,t2.avatar,t1.guard_num
from cai_guard_total t1 from cai_guard_total t1
join cai_user t2 on t1.to_user_id = t2.id 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} limit #{limit}
</if> </if>
</select> </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> </mapper>

View File

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