提交 6696ba96 编写于 作者: 喷火的神灵's avatar 喷火的神灵 🎱

粉丝关注功能实现

上级 06567dd0
package cn.tedu.youbiliprojectbackend.modules.user.personal.controller;
import cn.tedu.youbiliprojectbackend.common.web.response.RestBean;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterUserInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.service.IPersonalService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user/personal/")
public class personalController {
@Autowired
IPersonalService service;
@GetMapping("{userId}/get-center")
public RestBean<Object> getUserInfo(@PathVariable Long userId){
PersonalCenterInfoVO centerInfo = service.getCenterInfoById(userId);
return RestBean.success(centerInfo);
}
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.dao.persist.mapper;
import cn.tedu.youbiliprojectbackend.modules.user.account.pojo.entity.Account;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.CenterVideoInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterUserInfoVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
public interface PersonalMapper extends BaseMapper<Account> {
List<CenterVideoInfoVO> selectVideoInfoByUserId(Long id);
List<CenterVideoInfoVO> selectFavoriteInfoByUserId(Long id);
List<CenterVideoInfoVO> selectHistoryInfoByUserId(Long id);
PersonalCenterUserInfoVO selectUserInfoByUserId(Long id);
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.dao.persist.repository;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.CenterVideoInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterUserInfoVO;
import java.util.List;
public interface IPersonalRepository {
List<CenterVideoInfoVO> selectVideoInfoByUserId(Long id);
PersonalCenterUserInfoVO selectUserInfoByUserId(Long id);
List<CenterVideoInfoVO> selectFavoriteInfoByUserId(Long id);
List<CenterVideoInfoVO> selectHistoryInfoByUserId(Long id);
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.dao.persist.repository.impl;
import cn.tedu.youbiliprojectbackend.modules.user.personal.dao.persist.mapper.PersonalMapper;
import cn.tedu.youbiliprojectbackend.modules.user.personal.dao.persist.repository.IPersonalRepository;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.CenterVideoInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterUserInfoVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public class PersonalRepository implements IPersonalRepository {
@Autowired
PersonalMapper mapper;
@Override
public List<CenterVideoInfoVO> selectVideoInfoByUserId(Long id) {
return mapper.selectVideoInfoByUserId(id);
}
@Override
public PersonalCenterUserInfoVO selectUserInfoByUserId(Long id) {
return mapper.selectUserInfoByUserId(id);
}
@Override
public List<CenterVideoInfoVO> selectFavoriteInfoByUserId(Long id) {
return mapper.selectFavoriteInfoByUserId(id);
}
@Override
public List<CenterVideoInfoVO> selectHistoryInfoByUserId(Long id) {
return mapper.selectHistoryInfoByUserId(id);
}
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CenterVideoInfoVO implements Serializable {
private String nickname;
private String imgUrl;
private String videoImgUrl;
private String title;
private Long likeCount;
private String categoryName;
private Long commentCount;
private String description;
private String viewCount;
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class PersonalCenterInfoVO implements Serializable {
private String imgUrl;
private String nickname;
private Long fans;//粉丝数量
private Long follows; //关注数量;
private Long totalLikes;//总点赞数
private String birthday;//生日
private Long accountLevel;//账户等级
private List<CenterVideoInfoVO> videoList;
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class PersonalCenterUserInfoVO implements Serializable {
private String imgUrl;
private String nickname;
private Long fans;//粉丝数量
private Long follows; //关注数量;
private Long totalLikes;//总点赞数
private String birthday;//生日
private Long accountLevel;//账户等级
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.service;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterUserInfoVO;
public interface IPersonalService {
PersonalCenterInfoVO getCenterInfoById(Long id);
}
package cn.tedu.youbiliprojectbackend.modules.user.personal.service.impl;
import cn.tedu.youbiliprojectbackend.modules.user.personal.dao.persist.repository.IPersonalRepository;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.CenterVideoInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.pojo.vo.PersonalCenterUserInfoVO;
import cn.tedu.youbiliprojectbackend.modules.user.personal.service.IPersonalService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Slf4j
@Service
public class PersonalService implements IPersonalService {
@Autowired
IPersonalRepository repository;
/*
* 获取个人中心展示内容功能
* */
@Override
public PersonalCenterInfoVO getCenterInfoById(Long id) {
//响应VO
PersonalCenterInfoVO infoVO = new PersonalCenterInfoVO();
//用户信息
PersonalCenterUserInfoVO userInfo = repository.selectUserInfoByUserId(id);
//用户发布视频信息
List<CenterVideoInfoVO> videoList = repository.selectVideoInfoByUserId(id);
//用户收藏视频信息
List<CenterVideoInfoVO> favoriteInfoByUserId = repository.selectFavoriteInfoByUserId(id);
//用户历史记录信息
List<CenterVideoInfoVO> historyInfoByUserId = repository.selectHistoryInfoByUserId(id);
//解决视频个数<3,展示错位的问题
List<CenterVideoInfoVO> list = new ArrayList<>(9);
list.addAll(videoList);
for (int i = videoList.size(); i < 3; i++) {
list.add(null);
}
list.addAll(favoriteInfoByUserId);
for (int i = favoriteInfoByUserId.size(); i < 3; i++) {
list.add(null);
}
list.addAll(historyInfoByUserId);
for (int i = historyInfoByUserId.size(); i < 3; i++) {
list.add(null);
}
// set响应VO
BeanUtils.copyProperties(userInfo,infoVO);
infoVO.setVideoList(list);
return infoVO;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册