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 build, @Param("bo") CaiAnchorAdminVo bo); + + Page pageApp(@Param("build") Page build, @Param("query") AnchorListQuery query); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserMapper.java index 726debee..7d493d63 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserMapper.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.CaiUser; import com.ruoyi.cai.dto.admin.vo.CaiUserAdminVo; +import com.ruoyi.cai.dto.app.query.UserQuery; +import com.ruoyi.cai.dto.app.vo.UserListVo; import org.apache.ibatis.annotations.Param; /** @@ -15,4 +17,6 @@ import org.apache.ibatis.annotations.Param; public interface CaiUserMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("query") CaiUser query); + + Page pageApp(@Param("build") Page build, @Param("query") UserQuery query); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserOnlineMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserOnlineMapper.java new file mode 100644 index 00000000..279b9ece --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/CaiUserOnlineMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.cai.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.cai.domain.CaiUserOnline; + +/** + * 用户在线状态Mapper接口 + * + * @author 77 + * @date 2023-12-23 + */ +public interface CaiUserOnlineMapper extends BaseMapper { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAnchorService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAnchorService.java index 18ae1f44..0ffafaa9 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAnchorService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiAnchorService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; 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 com.ruoyi.common.core.domain.PageQuery; /** @@ -15,4 +17,8 @@ import com.ruoyi.common.core.domain.PageQuery; public interface CaiAnchorService extends IService { Page pageAdmin(PageQuery pageQuery, CaiAnchorAdminVo bo); + + Page pageApp(PageQuery pageQuery, AnchorListQuery query); + + CaiAnchor getByUserId(Long userId); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserOnlineService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserOnlineService.java new file mode 100644 index 00000000..12f91b28 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserOnlineService.java @@ -0,0 +1,14 @@ +package com.ruoyi.cai.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.cai.domain.CaiUserOnline; + +/** + * 用户在线状态Service接口 + * + * @author 77 + * @date 2023-12-23 + */ +public interface CaiUserOnlineService extends IService { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserService.java index 2d467cf5..0c5d4c36 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/CaiUserService.java @@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.cai.auth.LoginCaiUser; import com.ruoyi.cai.domain.CaiUser; 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.common.core.domain.PageQuery; /** @@ -20,4 +23,10 @@ public interface CaiUserService extends IService { void register(LoginCaiUser caiUser); Page pageAdmin(PageQuery pageQuery, CaiUser query); + + Page pageApp(PageQuery page, UserQuery query); + + UserInfoVo info(String userCode); + + CaiUser getByUserCode(String userCode); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAnchorServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAnchorServiceImpl.java index 4dbe66bd..07c00fa7 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAnchorServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiAnchorServiceImpl.java @@ -1,13 +1,15 @@ 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.dto.admin.vo.CaiAnchorAdminVo; +import com.ruoyi.cai.dto.app.query.AnchorListQuery; +import com.ruoyi.cai.dto.app.vo.AnchorListVo; import com.ruoyi.cai.mapper.CaiAnchorMapper; import com.ruoyi.cai.service.CaiAnchorService; import com.ruoyi.common.core.domain.PageQuery; -import com.ruoyi.common.core.page.TableDataInfo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -25,4 +27,17 @@ public class CaiAnchorServiceImpl extends ServiceImpl public Page pageAdmin(PageQuery pageQuery, CaiAnchorAdminVo bo) { return baseMapper.pageAdmin(pageQuery.build(),bo); } + + @Override + public Page pageApp(PageQuery pageQuery, AnchorListQuery query) { + if(query.getType() != null && query.getType() != 3){ + query.setCity(null); + } + return baseMapper.pageApp(pageQuery.build(),query); + } + + @Override + public CaiAnchor getByUserId(Long userId){ + return this.getOne(Wrappers.lambdaQuery(CaiAnchor.class).eq(CaiAnchor::getUserId,userId)); + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserOnlineServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserOnlineServiceImpl.java new file mode 100644 index 00000000..fc419d5c --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserOnlineServiceImpl.java @@ -0,0 +1,20 @@ +package com.ruoyi.cai.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.cai.domain.CaiUserOnline; +import com.ruoyi.cai.mapper.CaiUserOnlineMapper; +import com.ruoyi.cai.service.CaiUserOnlineService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * 用户在线状态Service业务层处理 + * + * @author 77 + * @date 2023-12-23 + */ +@RequiredArgsConstructor +@Service +public class CaiUserOnlineServiceImpl extends ServiceImpl implements CaiUserOnlineService { + +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java index 25f86f1f..0e2eafbe 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/CaiUserServiceImpl.java @@ -4,11 +4,17 @@ 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.auth.LoginCaiUser; +import com.ruoyi.cai.domain.CaiAnchor; import com.ruoyi.cai.domain.CaiUser; 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.mapper.CaiUserMapper; -import com.ruoyi.cai.service.CaiUserService; +import com.ruoyi.cai.service.*; import com.ruoyi.common.core.domain.PageQuery; +import com.ruoyi.common.helper.LoginHelper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** @@ -19,6 +25,18 @@ import org.springframework.stereotype.Service; */ @Service public class CaiUserServiceImpl extends ServiceImpl implements CaiUserService { + @Autowired + private CaiAnchorService anchorService; + @Autowired + private CaiUserFollowService userFollowService; + @Autowired + private CaiUserAlbumService caiUserAlbumService; + @Autowired + private CaiGuardTotalService guardTotalService; + @Autowired + private CaiDynamicService dynamicService; + @Autowired + private CaiUserGiftService userGiftService; @Override public CaiUser getByUsername(String username) { @@ -35,4 +53,47 @@ public class CaiUserServiceImpl extends ServiceImpl impl public Page pageAdmin(PageQuery pageQuery, CaiUser query) { return baseMapper.pageAdmin(pageQuery.build(),query); } + + @Override + public Page pageApp(PageQuery page, UserQuery query) { + return baseMapper.pageApp(page.build(),query); + } + + @Override + public UserInfoVo info(String userCode) { + Long currentUserId = LoginHelper.getUserId(); + CaiUser caiUser = this.getByUserCode(userCode); + if(caiUser == null){ + return null; + } + Long userId = caiUser.getId(); + CaiAnchor anchor = anchorService.getByUserId(userId); + UserInfoVo vo = new UserInfoVo(); + vo.setIsAnchor(caiUser.getIsAnchor()); + vo.setUsercode(caiUser.getUsercode()); + vo.setNickname(caiUser.getNickname()); + vo.setAvatar(caiUser.getAvatar()); + if(anchor != null){ + vo.setPrice(anchor.getPrice()); + vo.setServiceCount(anchor.getServiceCount()); + }else{ + vo.setPrice(null); + vo.setServiceCount(null); + } + vo.setFansNum(userFollowService.getFansNumByUserId(userId)); + vo.setStar(userFollowService.checkStar(currentUserId, userId)); + vo.setAlbumList(caiUserAlbumService.getUserAlbum(userId,caiUser.getIsAnchor())); + if(caiUser.getIsAnchor() == 1){ + vo.setGuardTotalList(guardTotalService.selectGuardTotalLimit(userId,10)); + vo.setDynamicList(dynamicService.selectDynamicList(userId,10)); + vo.setGiftList(userGiftService.selectGiftList(userId)); + } +// vo.setStatus(); + return vo; + } + + @Override + public CaiUser getByUserCode(String userCode){ + return this.getOne(Wrappers.lambdaQuery(CaiUser.class).eq(CaiUser::getUsercode,userCode).last("limit 1")); + } } diff --git a/ruoyi-cai/src/main/resources/mapper/cai/CaiAnchorMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/CaiAnchorMapper.xml index dba5bd7c..194b1182 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/CaiAnchorMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/CaiAnchorMapper.xml @@ -29,6 +29,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from cai_anchor t1 left join cai_user t2 on t1.user_id = t2.id + diff --git a/ruoyi-cai/src/main/resources/mapper/cai/CaiUserMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/CaiUserMapper.xml index b7cc1c23..19d84f56 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/CaiUserMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/CaiUserMapper.xml @@ -47,6 +47,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from cai_user t1 left join cai_user_info t2 on t1.id = t2.user_id + diff --git a/ruoyi-cai/src/main/resources/mapper/cai/CaiUserOnlineMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/CaiUserOnlineMapper.xml new file mode 100644 index 00000000..bc557574 --- /dev/null +++ b/ruoyi-cai/src/main/resources/mapper/cai/CaiUserOnlineMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index c6b34e56..e665d5a1 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -165,6 +165,12 @@ ip2region + + com.google.guava + guava + 23.0 + + diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanConvertUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanConvertUtil.java new file mode 100644 index 00000000..3204b560 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/BeanConvertUtil.java @@ -0,0 +1,102 @@ +package com.ruoyi.common.utils; + +import com.google.common.collect.Lists; +import org.springframework.beans.BeanUtils; + +import java.util.Collections; +import java.util.List; +import java.util.function.Supplier; + +/** + * bean工具 + * @Author: 004795 + * @Date: 2022/5/24 11:11 + */ +public class BeanConvertUtil extends BeanUtils { + + private BeanConvertUtil(){} + + @FunctionalInterface + public interface CallBack { + /** + * 回调方法 + * + * @param s 源对象 + * @param t 目标对象 + */ + void callBack(S s, T t); + } + + /** + * 转换list 对象 + * + * @param sources 源对象 + * @param targetSupplier 目标对象供应方 + * @param callBack 回调方法 + * @param 源对象类型 + * @param 目标对象类型 + * @Return 转换对象 + */ + public static List convertListTo(List sources, Supplier targetSupplier, CallBack callBack) { + if (null == sources || null == targetSupplier) { + return Collections.emptyList(); + } + List list = Lists.newArrayListWithCapacity(sources.size()); + for (S source : sources) { + T target = targetSupplier.get(); + copyProperties(source, target); + if (callBack != null) { + callBack.callBack(source, target); + } + list.add(target); + } + return list; + } + + /** + * 转换list 对象 + * + * @param sources 源对象 + * @param targetSupplier 目标对象供应方 + * @param 源对象类型 + * @param 目标对象类型 + */ + public static List convertListTo(List sources, Supplier targetSupplier) { + return convertListTo(sources, targetSupplier, null); + } + + /** + * 转换对象 + * + * @param source 源对象 + * @param targetSupplier 目标对象供应方 + * @param 源对象类型 + * @param 目标对象类型 + * @return 目标对象 + */ + public static T convertTo(S source, Supplier targetSupplier) { + return convertTo(source, targetSupplier, null); + } + + /** + * 转换对象 + * + * @param source 源对象 + * @param targetSupplier 目标对象供应方 + * @param callBack 回调方法 + * @param 源对象类型 + * @param 目标对象类型 + * @return 目标对象 + */ + public static T convertTo(S source, Supplier targetSupplier, CallBack callBack) { + if (null == source || null == targetSupplier) { + return null; + } + T target = targetSupplier.get(); + copyProperties(source, target); + if (callBack != null) { + callBack.callBack(source, target); + } + return target; + } +}