From 59d048e1a65133b0e4e451d8f86934db45d1a8ef Mon Sep 17 00:00:00 2001
From: dute7liang <383200134@qq.com>
Date: Sat, 23 Dec 2023 22:34:25 +0800
Subject: [PATCH] init
---
ruoyi-cai/pom.xml | 5 -
.../app/CaiAnchorAppController.java | 30 ++++++
.../controller/app/CaiAppUserController.java | 19 ----
...troller.java => CaiAuthAppController.java} | 2 +-
.../controller/app/CaiUserAppController.java | 42 ++++++++
.../java/com/ruoyi/cai/domain/CaiAnchor.java | 10 +-
.../com/ruoyi/cai/domain/CaiUserOnline.java | 42 ++++++++
.../cai/dto/app/query/AnchorListQuery.java | 17 +++
.../ruoyi/cai/dto/app/query/UserQuery.java | 12 +++
.../ruoyi/cai/dto/app/vo/AnchorListVo.java | 34 ++++++
.../ruoyi/cai/dto/app/vo/DynamicImageVo.java | 41 +++++++
.../com/ruoyi/cai/dto/app/vo/DynamicVo.java | 42 ++++++++
.../ruoyi/cai/dto/app/vo/GuardTotalVo.java | 24 +++++
.../com/ruoyi/cai/dto/app/vo/UserGiftVo.java | 21 ++++
.../com/ruoyi/cai/dto/app/vo/UserInfoVo.java | 45 ++++++++
.../com/ruoyi/cai/dto/app/vo/UserListVo.java | 39 +++++++
.../com/ruoyi/cai/mapper/CaiAnchorMapper.java | 4 +
.../com/ruoyi/cai/mapper/CaiUserMapper.java | 4 +
.../ruoyi/cai/mapper/CaiUserOnlineMapper.java | 14 +++
.../ruoyi/cai/service/CaiAnchorService.java | 6 ++
.../cai/service/CaiUserOnlineService.java | 14 +++
.../com/ruoyi/cai/service/CaiUserService.java | 9 ++
.../service/impl/CaiAnchorServiceImpl.java | 17 ++-
.../impl/CaiUserOnlineServiceImpl.java | 20 ++++
.../cai/service/impl/CaiUserServiceImpl.java | 63 ++++++++++-
.../resources/mapper/cai/CaiAnchorMapper.xml | 18 ++++
.../resources/mapper/cai/CaiUserMapper.xml | 15 +++
.../mapper/cai/CaiUserOnlineMapper.xml | 16 +++
ruoyi-common/pom.xml | 6 ++
.../ruoyi/common/utils/BeanConvertUtil.java | 102 ++++++++++++++++++
30 files changed, 705 insertions(+), 28 deletions(-)
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAnchorAppController.java
delete mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAppUserController.java
rename ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/{CaiAppAuthController.java => CaiAuthAppController.java} (97%)
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserOnline.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AnchorListQuery.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/UserQuery.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/AnchorListVo.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicImageVo.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicVo.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GuardTotalVo.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserListVo.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserOnlineMapper.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserOnlineService.java
create mode 100644 ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserOnlineServiceImpl.java
create mode 100644 ruoyi-cai/src/main/resources/mapper/cai/CaiUserOnlineMapper.xml
create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanConvertUtil.java
diff --git a/ruoyi-cai/pom.xml b/ruoyi-cai/pom.xml
index cff188b3..601f539e 100644
--- a/ruoyi-cai/pom.xml
+++ b/ruoyi-cai/pom.xml
@@ -26,10 +26,5 @@
com.ruoyi
ruoyi-system
-
- com.google.guava
- guava
- 23.0
-
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAnchorAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAnchorAppController.java
new file mode 100644
index 00000000..de3a6d70
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAnchorAppController.java
@@ -0,0 +1,30 @@
+package com.ruoyi.cai.controller.app;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.cai.dto.app.query.AnchorListQuery;
+import com.ruoyi.cai.dto.app.vo.AnchorListVo;
+import com.ruoyi.cai.service.CaiAnchorService;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RestController
+@RequestMapping("/cai/anchor")
+public class CaiAnchorAppController {
+
+ @Autowired
+ private CaiAnchorService anchorService;
+
+ @GetMapping("/page")
+ public TableDataInfo page(PageQuery page, AnchorListQuery query){
+ Page res = anchorService.pageApp(page,query);
+ return TableDataInfo.build(res);
+ }
+
+
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAppUserController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAppUserController.java
deleted file mode 100644
index 45f37d04..00000000
--- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAppUserController.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.ruoyi.cai.controller.app;
-
-import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.helper.LoginHelper;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping("/cai/user")
-public class CaiAppUserController {
-
- @GetMapping("/info")
- public R info(String user){
- LoginUser loginUser = LoginHelper.getLoginUser();
- return R.ok(loginUser);
- }
-}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAppAuthController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAuthAppController.java
similarity index 97%
rename from ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAppAuthController.java
rename to ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAuthAppController.java
index de436996..b5c76705 100644
--- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAppAuthController.java
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiAuthAppController.java
@@ -18,7 +18,7 @@ import java.util.Map;
@RestController
@RequestMapping("/cai/auth")
@SaIgnore
-public class CaiAppAuthController {
+public class CaiAuthAppController {
@Autowired
private CaiLoginManager caiLoginManager;
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java
new file mode 100644
index 00000000..5bf7e300
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/CaiUserAppController.java
@@ -0,0 +1,42 @@
+package com.ruoyi.cai.controller.app;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.service.CaiUserService;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.domain.model.LoginUser;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.helper.LoginHelper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/cai/user")
+public class CaiUserAppController {
+
+ @Autowired
+ private CaiUserService caiUserService;
+
+ @GetMapping("/current/info")
+ public R currentInfo(){
+ LoginUser loginUser = LoginHelper.getLoginUser();
+ return R.ok(loginUser);
+ }
+
+ @GetMapping("/page")
+ public TableDataInfo page(PageQuery page, UserQuery query){
+ Page res = caiUserService.pageApp(page,query);
+ return TableDataInfo.build(res);
+ }
+
+ @GetMapping("/info")
+ public R info(String usercode){
+ UserInfoVo res = caiUserService.info(usercode);
+ return R.ok(res);
+ }
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAnchor.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAnchor.java
index a331b94f..298d3ff0 100644
--- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAnchor.java
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiAnchor.java
@@ -28,7 +28,15 @@ public class CaiAnchor implements Serializable{
/**
* 用户ID
*/
- private Integer userId;
+ private Long userId;
+ /**
+ * 技能ID
+ */
+ private Integer skillId;
+ /**
+ * 价格,默认50彩币
+ */
+ private Long price;
/**
* 开启视频接听 0 未开启 1 已开启
*/
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserOnline.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserOnline.java
new file mode 100644
index 00000000..669604f5
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/CaiUserOnline.java
@@ -0,0 +1,42 @@
+package com.ruoyi.cai.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 用户在线状态对象 cai_user_online
+ *
+ * @author 77
+ * @date 2023-12-23
+ */
+@Data
+@TableName("cai_user_online")
+public class CaiUserOnline implements Serializable {
+
+ private static final long serialVersionUID=1L;
+
+ /**
+ * 用户ID
+ */
+ @TableId(value = "user_id")
+ private Integer userId;
+ /**
+ * 在线状态:0=离线,1=在线
+ */
+ private Integer status;
+ /**
+ * 状态更新时间13位时间戳
+ */
+ private Long receiveTime;
+ /**
+ * 最后在线时间
+ */
+ private LocalDateTime lastLiveTime;
+
+ private LocalDateTime createTime;
+
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AnchorListQuery.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AnchorListQuery.java
new file mode 100644
index 00000000..9d535bfc
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/AnchorListQuery.java
@@ -0,0 +1,17 @@
+package com.ruoyi.cai.dto.app.query;
+
+import lombok.Data;
+
+@Data
+public class AnchorListQuery {
+
+ /**
+ * 0-默认查询
+ * 1-活跃查询
+ * 2-新人查询
+ * 3-同城查询
+ */
+ private Integer type;
+
+ private String city;
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/UserQuery.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/UserQuery.java
new file mode 100644
index 00000000..fc385b1e
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/UserQuery.java
@@ -0,0 +1,12 @@
+package com.ruoyi.cai.dto.app.query;
+
+import lombok.Data;
+
+@Data
+public class UserQuery {
+
+ private String nickname;
+ private String usercode;
+
+ private Integer gender;
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/AnchorListVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/AnchorListVo.java
new file mode 100644
index 00000000..ae3dc90f
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/AnchorListVo.java
@@ -0,0 +1,34 @@
+package com.ruoyi.cai.dto.app.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class AnchorListVo {
+ /**
+ * 头像
+ */
+ private String avatar;
+
+ /**
+ * 性别 0 未知 1 女 2 男
+ */
+ private Integer gender;
+ /**
+ * 城市
+ */
+ private Long city;
+ /**
+ * 昵称
+ */
+ private String nickname;
+ /**
+ * 用户号/ID号
+ */
+ private String usercode;
+ /**
+ * 用户评分
+ */
+ private BigDecimal giveScore;
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicImageVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicImageVo.java
new file mode 100644
index 00000000..7b8be320
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicImageVo.java
@@ -0,0 +1,41 @@
+package com.ruoyi.cai.dto.app.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class DynamicImageVo {
+
+ private Integer id;
+ /**
+ * 用户ID
+ */
+ private Integer userId;
+ /**
+ * 动态ID
+ */
+ private Long dynamicId;
+ /**
+ * 物理路径
+ */
+ private String url;
+ /**
+ * 宽度
+ */
+ private Long width;
+ /**
+ * 高度
+ */
+ private Long height;
+ /**
+ * 图片大小
+ */
+ private Long size;
+ /**
+ * 类型
+ */
+ private String exts;
+
+ private LocalDateTime createTime;
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicVo.java
new file mode 100644
index 00000000..2f9f0dee
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/DynamicVo.java
@@ -0,0 +1,42 @@
+package com.ruoyi.cai.dto.app.vo;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+public class DynamicVo {
+ /**
+ *
+ */
+ private Long id;
+ /**
+ * 用户ID
+ */
+ private Integer userId;
+ /**
+ * 内容
+ */
+ private String content;
+ /**
+ * 城市ID
+ */
+ private Integer cityId;
+ /**
+ * 是否有附件 0 没有 1 有
+ */
+ private Integer isAttach;
+ /**
+ * 状态 0 审核中 1可用 2 不可用
+ */
+ private Integer status;
+ /**
+ * 排序字段
+ */
+ private Long sort;
+
+ private LocalDateTime createTime;
+
+ private List imageList;
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GuardTotalVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GuardTotalVo.java
new file mode 100644
index 00000000..d5a1b30d
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/GuardTotalVo.java
@@ -0,0 +1,24 @@
+package com.ruoyi.cai.dto.app.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class GuardTotalVo implements Serializable {
+ /**
+ * 被守护人的user_id(大咖)
+ */
+ private Long fromUserId;
+ /**
+ * 守护人的user_id
+ */
+ private Long toUserId;
+
+ private String userAvatar;
+ /**
+ * 累计守护符个数
+ */
+ private Long guardNum;
+
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java
new file mode 100644
index 00000000..5fae2691
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserGiftVo.java
@@ -0,0 +1,21 @@
+package com.ruoyi.cai.dto.app.vo;
+
+import lombok.Data;
+
+@Data
+public class UserGiftVo {
+
+ /**
+ * 接受者
+ */
+ private Long toUid;
+ /**
+ * 礼物ID
+ */
+ private Long giftId;
+ /**
+ * 礼物数量
+ */
+ private Long giftCount;
+
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java
new file mode 100644
index 00000000..15ddfc0e
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserInfoVo.java
@@ -0,0 +1,45 @@
+package com.ruoyi.cai.dto.app.vo;
+
+import lombok.Data;
+
+import java.util.Collections;
+import java.util.List;
+
+@Data
+public class UserInfoVo {
+
+ private Long userId;
+ /**
+ * 是否是播主 0 否 1 是
+ */
+ private Integer isAnchor;
+ private String usercode;
+ private String nickname;
+ private String avatar;
+ /**
+ * 价格,默认50彩币
+ */
+ private Long price;
+ /**
+ * 接单次数
+ */
+ private Long serviceCount;
+
+ private Long fansNum;
+
+ private Boolean star;
+
+ // TODO
+ private String status;
+
+ private List albumList = Collections.emptyList();
+
+ private List guardTotalList = Collections.emptyList();
+
+ private List dynamicList = Collections.emptyList();
+
+ private List giftList = Collections.emptyList();
+
+
+
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserListVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserListVo.java
new file mode 100644
index 00000000..ca8fd629
--- /dev/null
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/vo/UserListVo.java
@@ -0,0 +1,39 @@
+
+package com.ruoyi.cai.dto.app.vo;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+public class UserListVo {
+
+ /**
+ * 头像
+ */
+ private String avatar;
+
+ /**
+ * 性别 0 未知 1 女 2 男
+ */
+ private Integer gender;
+ /**
+ * 城市
+ */
+ private Long city;
+ /**
+ * 昵称
+ */
+ private String nickname;
+ /**
+ * 用户号/ID号
+ */
+ private String usercode;
+
+ private Integer age;
+ /**
+ * 最后在线时间
+ */
+ private LocalDateTime lastLiveTime;
+}
diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAnchorMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAnchorMapper.java
index 9b7ab4e0..0dbe7d4c 100644
--- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAnchorMapper.java
+++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiAnchorMapper.java
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.CaiAnchor;
import com.ruoyi.cai.dto.admin.vo.CaiAnchorAdminVo;
+import com.ruoyi.cai.dto.app.query.AnchorListQuery;
+import com.ruoyi.cai.dto.app.vo.AnchorListVo;
import org.apache.ibatis.annotations.Param;
/**
@@ -15,4 +17,6 @@ import org.apache.ibatis.annotations.Param;
public interface CaiAnchorMapper extends BaseMapper {
Page pageAdmin(@Param("build") Page