修改vlog
This commit is contained in:
parent
00104f0580
commit
378aa9df54
@ -37,7 +37,7 @@ public class UsersVO {
|
||||
private Integer totalLikeMeCounts;
|
||||
//private Token shopToken;
|
||||
|
||||
private boolean IsFollowed; // 关注状态
|
||||
private String FollowStatus; // 关注状态
|
||||
private boolean isFollowed; // 关注状态
|
||||
private String followStatus; // 关注状态
|
||||
|
||||
}
|
||||
|
@ -32,4 +32,14 @@ public enum UserInfoModifyType {
|
||||
GraceException.display(ResponseStatusEnum.USER_INFO_UPDATED_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
public static UserInfoModifyType getTypeByValue(Integer type) {
|
||||
for (UserInfoModifyType modifyType : UserInfoModifyType.values()) {
|
||||
if (modifyType.type.equals(type)) {
|
||||
return modifyType;
|
||||
}
|
||||
}
|
||||
GraceException.display(ResponseStatusEnum.USER_INFO_UPDATED_ERROR);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.wzj.soopin.content.mapper.mapper;
|
||||
|
||||
import com.wzj.soopin.content.domain.po.UserMember;
|
||||
import com.wzj.soopin.content.domain.po.Users;
|
||||
import com.wzj.soopin.content.domain.vo.UsersVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -9,7 +10,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
* 短视频用户与商城会员数据处理层
|
||||
*/
|
||||
@Mapper
|
||||
public interface UserMemberMapper extends BaseMapperPlus<Users, UsersVO> {
|
||||
public interface UserMemberMapper extends BaseMapperPlus<UserMember, UserMember> {
|
||||
|
||||
Users getUserByMemberId(String memberId);
|
||||
}
|
||||
|
@ -36,4 +36,6 @@ public interface UsersMapper extends BaseMapper<Users> {
|
||||
Users selectByPrimaryKey(String userId);
|
||||
|
||||
void updateByPrimaryKeySelective(Users users);
|
||||
|
||||
int inset(Users user);
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.wzj.soopin.content.mapper.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.wzj.soopin.content.domain.po.Vlog;
|
||||
import com.wzj.soopin.content.domain.vo.IndexVlogVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
@ -12,7 +14,7 @@ import java.util.Map;
|
||||
//public interface VlogMapper extends MyMapper<Vlog> {
|
||||
//}
|
||||
@Repository
|
||||
public interface VlogMapper {
|
||||
public interface VlogMapper extends BaseMapper<Vlog> {
|
||||
// public List<IndexVlogVO> updateVlogStatus(@Param("paramMap") Map<String, Object> map);
|
||||
/**
|
||||
* 通用动态更新方法
|
||||
|
@ -13,5 +13,7 @@ public interface MessageRepository {
|
||||
// 通过实现Repository,自定义条件查询
|
||||
List<MessageMO> findAllByToUserIdEqualsOrderByCreateTimeDesc(String toUserId,
|
||||
Pageable pageable);
|
||||
|
||||
void save(MessageMO messageMO);
|
||||
// void deleteAllByFromUserIdAndToUserIdAndMsgType();
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.wzj.soopin.content.service;
|
||||
|
||||
import com.wzj.soopin.content.domain.vo.FansVO;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import com.wzj.soopin.content.utils.PagedGridResult;
|
||||
|
||||
public interface FansService {
|
||||
|
||||
@ -23,14 +22,14 @@ public interface FansService {
|
||||
/**
|
||||
* 查询我关注的博主列表
|
||||
*/
|
||||
public TableDataInfo<FansVO> queryMyFollows(String myId,
|
||||
Integer page,
|
||||
Integer pageSize);
|
||||
public PagedGridResult queryMyFollows(String myId,
|
||||
Integer page,
|
||||
Integer pageSize);
|
||||
|
||||
/**
|
||||
* 查询我的粉丝列表
|
||||
*/
|
||||
public TableDataInfo<FansVO> queryMyFans(String myId,
|
||||
Integer page,
|
||||
Integer pageSize);
|
||||
public PagedGridResult queryMyFans(String myId,
|
||||
Integer page,
|
||||
Integer pageSize);
|
||||
}
|
||||
|
@ -1,8 +1,7 @@
|
||||
package com.wzj.soopin.content.service.impl;
|
||||
|
||||
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
|
||||
import com.wzj.soopin.content.domain.bo.CommentBO;
|
||||
import com.wzj.soopin.content.domain.po.Comment;
|
||||
@ -18,7 +17,6 @@ import com.wzj.soopin.content.service.VlogService;
|
||||
import com.wzj.soopin.content.utils.PagedGridResult;
|
||||
import com.wzj.soopin.content.utils.Sid;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -27,53 +25,39 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class CommentServiceImpl extends BaseInfoProperties implements CommentService {
|
||||
//
|
||||
@Autowired
|
||||
private CommentMapper commentMapper;
|
||||
//
|
||||
@Autowired
|
||||
private CommentMapperCustom commentMapperCustom;
|
||||
//
|
||||
@Autowired
|
||||
private VlogService vlogService;
|
||||
@Autowired
|
||||
private MsgService msgService;
|
||||
//
|
||||
@Autowired
|
||||
private Sid sid;
|
||||
//
|
||||
|
||||
@Override
|
||||
public CommentVO createComment(CommentBO commentBO) {
|
||||
|
||||
String commentId = sid.nextShort();
|
||||
|
||||
Comment comment = new Comment();
|
||||
comment.setId(commentId);
|
||||
|
||||
comment.setVlogId(commentBO.getVlogId());
|
||||
comment.setVlogerId(commentBO.getVlogerId());
|
||||
|
||||
comment.setCommentUserId(commentBO.getCommentUserId());
|
||||
comment.setFatherCommentId(commentBO.getFatherCommentId());
|
||||
comment.setContent(commentBO.getContent());
|
||||
|
||||
comment.setLikeCounts(0);
|
||||
comment.setCreateTime(new Date());
|
||||
|
||||
commentMapper.insert(comment);
|
||||
|
||||
// redis操作放在service中,评论总数的累加
|
||||
redis.increment(REDIS_VLOG_COMMENT_COUNTS + ":" + commentBO.getVlogId(), 1);
|
||||
|
||||
// 留言后的最新评论需要返回给前端进行展示
|
||||
CommentVO commentVO = new CommentVO();
|
||||
BeanUtils.copyProperties(comment, commentVO);
|
||||
|
||||
|
||||
|
||||
// 系统消息:评论/回复
|
||||
Vlog vlog = vlogService.getVlog(commentBO.getVlogId());
|
||||
Map msgContent = new HashMap();
|
||||
@ -86,33 +70,26 @@ public class CommentServiceImpl extends BaseInfoProperties implements CommentSer
|
||||
!commentBO.getFatherCommentId().equalsIgnoreCase("0") ) {
|
||||
type = MessageEnum.REPLY_YOU.type;
|
||||
}
|
||||
|
||||
msgService.createMsg(commentBO.getCommentUserId(),
|
||||
commentBO.getVlogerId(),
|
||||
type,
|
||||
msgContent);
|
||||
//
|
||||
//
|
||||
//
|
||||
return commentVO;
|
||||
}
|
||||
//
|
||||
@Override
|
||||
public PagedGridResult queryVlogComments(String vlogId,
|
||||
String userId,
|
||||
Integer page,
|
||||
Integer pageSize) {
|
||||
|
||||
@Override
|
||||
public PagedGridResult queryVlogComments(String vlogId, String userId, Integer page, Integer pageSize) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("vlogId", vlogId);
|
||||
|
||||
PageHelper.startPage(page, pageSize);
|
||||
|
||||
List<CommentVO> list = commentMapperCustom.getCommentList(map);
|
||||
|
||||
for (CommentVO cv:list) {
|
||||
Page<Comment> pageParam = new Page<>(page, pageSize);
|
||||
LambdaQueryWrapper<Comment> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Comment::getVlogId, vlogId);
|
||||
Page<Comment> commentPage = commentMapper.selectPage(pageParam, queryWrapper);
|
||||
List<Comment> commentList = commentPage.getRecords();
|
||||
List<CommentVO> list = commentList.stream().map(comment -> {
|
||||
CommentVO cv = new CommentVO();
|
||||
BeanUtils.copyProperties(comment, cv);
|
||||
String commentId = cv.getCommentId();
|
||||
|
||||
// 当前短视频的某个评论的点赞总数
|
||||
String countsStr = redis.getHashValue(REDIS_VLOG_COMMENT_LIKED_COUNTS, commentId);
|
||||
Integer counts = 0;
|
||||
@ -120,34 +97,28 @@ public class CommentServiceImpl extends BaseInfoProperties implements CommentSer
|
||||
counts = Integer.valueOf(countsStr);
|
||||
}
|
||||
cv.setLikeCounts(counts);
|
||||
|
||||
// 判断当前用户是否点赞过该评论
|
||||
String doILike = redis.hget(REDIS_USER_LIKE_COMMENT, userId + ":" + commentId);
|
||||
if (StringUtils.isNotBlank(doILike) && doILike.equalsIgnoreCase("1")) {
|
||||
cv.setIsLike(YesOrNo.YES.type);
|
||||
}
|
||||
}
|
||||
|
||||
return cv;
|
||||
}).collect(Collectors.toList());
|
||||
return setterPagedGrid(list, page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteComment(String commentUserId,
|
||||
String commentId,
|
||||
String vlogId) {
|
||||
|
||||
Comment pendingDelete = new Comment();
|
||||
pendingDelete.setId(commentId);
|
||||
pendingDelete.setCommentUserId(commentUserId);
|
||||
|
||||
commentMapper.delete(pendingDelete);
|
||||
|
||||
public void deleteComment(String commentUserId, String commentId, String vlogId) {
|
||||
LambdaQueryWrapper<Comment> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Comment::getId, commentId)
|
||||
.eq(Comment::getCommentUserId, commentUserId);
|
||||
commentMapper.delete(queryWrapper);
|
||||
// 评论总数的累减
|
||||
redis.decrement(REDIS_VLOG_COMMENT_COUNTS + ":" + vlogId, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Comment getComment(String id) {
|
||||
return commentMapper.selectByPrimaryKey(id);
|
||||
return commentMapper.selectById(id);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.wzj.soopin.content.service.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
|
||||
import com.wzj.soopin.content.domain.base.RabbitMQConfig;
|
||||
import com.wzj.soopin.content.domain.mo.MessageMO;
|
||||
@ -28,107 +30,70 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static com.wzj.soopin.content.domain.base.BaseInfoProperties.REDIS_FANS_AND_VLOGGER_RELATIONSHIP;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class FansServiceImpl extends BaseInfoProperties implements FansService {
|
||||
public class FansServiceImpl extends BaseInfoProperties implements FansService {
|
||||
|
||||
private final FansMapper fansMapper;
|
||||
|
||||
private final FansMapperCustom fansMapperCustom;
|
||||
//
|
||||
|
||||
private final MsgService msgService;
|
||||
|
||||
|
||||
private final RabbitTemplate rabbitTemplate;
|
||||
//
|
||||
@Autowired
|
||||
private Sid sid;
|
||||
//
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void doFollow(String myId, String vlogerId) {
|
||||
|
||||
String fid = sid.nextShort();
|
||||
|
||||
// Fans fans = new Fans();
|
||||
// fans.setId(fid);
|
||||
// fans.setFanId(myId);
|
||||
// fans.setVlogerId(vlogerId);
|
||||
// fans.setCreatedTime(new Date());
|
||||
|
||||
Fans fans = new Fans();
|
||||
fans.setId( fid);
|
||||
fans.setFanId( myId);
|
||||
fans.setVlogerId( vlogerId);
|
||||
Fans fans = new Fans();
|
||||
fans.setId(fid);
|
||||
fans.setFanId(myId);
|
||||
fans.setVlogerId(vlogerId);
|
||||
|
||||
// 判断对方是否关注我,如果关注我,那么双方都要互为朋友关系
|
||||
Fans vloger = queryFansRelationship(vlogerId, myId);
|
||||
System.out.println(vloger);
|
||||
if (vloger != null) {
|
||||
// fans.setIsFanFriendOfMine(YesOrNo.YES.type);
|
||||
fans.setIsFanFriendOfMine( YesOrNo.YES.type);
|
||||
fans.setIsFanFriendOfMine(YesOrNo.YES.type);
|
||||
vloger.setIsFanFriendOfMine(YesOrNo.YES.type);
|
||||
fansMapper.updateById(vloger);
|
||||
} else {
|
||||
// fans.setIsFanFriendOfMine(YesOrNo.NO.type);
|
||||
fans.setIsFanFriendOfMine(YesOrNo.NO.type);
|
||||
}
|
||||
fansMapper.insert(fans);
|
||||
|
||||
|
||||
// 系统消息:关注
|
||||
// msgService.createMsg(myId, vlogerId, MessageEnum.FOLLOW_YOU.type, null);
|
||||
//优化使用mQEXCHANGE_MSG
|
||||
|
||||
MessageMO messageMO = new MessageMO();
|
||||
|
||||
messageMO.setFromUserId(myId);
|
||||
messageMO.setToUserId(vlogerId);
|
||||
rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_MSG, "sys.msg."+ MessageEnum.FOLLOW_YOU.enValue, JsonUtils.objectToJson(messageMO));
|
||||
rabbitTemplate.convertAndSend(RabbitMQConfig.EXCHANGE_MSG, "sys.msg." + MessageEnum.FOLLOW_YOU.enValue, JsonUtils.objectToJson(messageMO));
|
||||
}
|
||||
|
||||
public Fans queryFansRelationship(String fanId, String vlogerId) {
|
||||
// Example example = new Example(Fans.class);
|
||||
// Example.Criteria criteria = example.createCriteria();
|
||||
// criteria.andEqualTo("vlogerId", vlogerId);
|
||||
// criteria.andEqualTo("fanId", fanId);
|
||||
|
||||
|
||||
Map<String, Object> mapexample = new HashMap<>();
|
||||
mapexample.put("vlogerId", vlogerId);
|
||||
mapexample.put("fanId", fanId);
|
||||
|
||||
List list = fansMapper.selectByExample(mapexample);
|
||||
|
||||
Fans fan = null;
|
||||
if (list != null && list.size() > 0 && !list.isEmpty()) {
|
||||
fan = (Fans)list.get(0);
|
||||
}
|
||||
|
||||
return fan;
|
||||
LambdaQueryWrapper<Fans> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Fans::getVlogerId, vlogerId)
|
||||
.eq(Fans::getFanId, fanId);
|
||||
|
||||
return fansMapper.selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void doCancel(String myId, String vlogerId) {
|
||||
|
||||
// 判断我们是否朋友关系,如果是,则需要取消双方的关系
|
||||
Fans fan = queryFansRelationship(myId, vlogerId);
|
||||
if (fan != null && fan.getIsFanFriendOfMine() == YesOrNo.YES.type) {
|
||||
// 抹除双方的朋友关系,自己的关系删除即可
|
||||
Fans pendingFan = queryFansRelationship(vlogerId, myId);
|
||||
pendingFan.setIsFanFriendOfMine(YesOrNo.NO.type);
|
||||
System.out.println(pendingFan.getIsFanFriendOfMine());
|
||||
fansMapper.updateByPrimaryKeySelective(pendingFan);
|
||||
fansMapper.updateById(pendingFan);
|
||||
}
|
||||
|
||||
// 删除自己的关注关联表记录
|
||||
String fanId = fan.getId();
|
||||
fansMapper.delete(fanId);
|
||||
LambdaQueryWrapper<Fans> deleteWrapper = new LambdaQueryWrapper<>();
|
||||
deleteWrapper.eq(Fans::getId, fan.getId());
|
||||
fansMapper.delete(deleteWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -138,46 +103,22 @@ public class FansServiceImpl extends BaseInfoProperties implements FansService
|
||||
}
|
||||
|
||||
@Override
|
||||
public PagedGridResult queryMyFollows(String myId,
|
||||
Integer page,
|
||||
Integer pageSize) {
|
||||
public PagedGridResult queryMyFollows(String myId, Integer page, Integer pageSize) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("myId", myId);
|
||||
|
||||
PageHelper.startPage(page, pageSize);
|
||||
|
||||
Page<VlogerVO> pageParam = new Page<>(page, pageSize);
|
||||
List<VlogerVO> list = fansMapperCustom.queryMyFollows(map);
|
||||
|
||||
return setterPagedGrid(list, page);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public PagedGridResult queryMyFans(String myId,
|
||||
Integer page,
|
||||
Integer pageSize) {
|
||||
|
||||
/**
|
||||
* <判断粉丝是否是我的朋友(互粉互关)>
|
||||
* 普通做法:
|
||||
* 多表关联+嵌套关联查询,这样会违反多表关联的规范,不可取,高并发下回出现性能问题
|
||||
*
|
||||
* 常规做法:
|
||||
* 1. 避免过多的表关联查询,先查询我的粉丝列表,获得fansList
|
||||
* 2. 判断粉丝关注我,并且我也关注粉丝 -> 循环fansList,获得每一个粉丝,再去数据库查询我是否关注他
|
||||
* 3. 如果我也关注他(粉丝),说明,我俩互为朋友关系(互关互粉),则标记flag为true,否则false
|
||||
*
|
||||
* 高端做法:
|
||||
* 1. 关注/取关的时候,关联关系保存在redis中,不要依赖数据库
|
||||
* 2. 数据库查询后,直接循环查询redis,避免第二次循环查询数据库的尴尬局面
|
||||
*/
|
||||
|
||||
|
||||
public PagedGridResult queryMyFans(String myId, Integer page, Integer pageSize) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("myId", myId);
|
||||
|
||||
PageHelper.startPage(page, pageSize);
|
||||
|
||||
Page<FansVO> pageParam = new Page<>(page, pageSize);
|
||||
List<FansVO> list = fansMapperCustom.queryMyFans(map);
|
||||
|
||||
for (FansVO f : list) {
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.wzj.soopin.content.service.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.google.common.collect.Maps;
|
||||
|
||||
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
|
||||
@ -20,10 +22,7 @@ import com.wzj.soopin.content.mapper.mapper.UserMemberMapper;
|
||||
import com.wzj.soopin.content.mapper.mapper.UsersMapper;
|
||||
import com.wzj.soopin.content.service.FansService;
|
||||
import com.wzj.soopin.content.service.UserService;
|
||||
import com.wzj.soopin.content.utils.DateUtil;
|
||||
import com.wzj.soopin.content.utils.DesensitizationUtil;
|
||||
import com.wzj.soopin.content.utils.GsonUtil;
|
||||
import com.wzj.soopin.content.utils.Sid;
|
||||
import com.wzj.soopin.content.utils.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -79,16 +78,13 @@ public class UserServiceImpl extends BaseInfoProperties implements UserService {
|
||||
|
||||
@Override
|
||||
public Users queryMobileIsExist(String mobile) {
|
||||
Example userExample = new Example(Users.class);
|
||||
Example.Criteria criteria = userExample.createCriteria();
|
||||
criteria.andEqualTo("mobile", mobile);
|
||||
Users user = usersMapper.selectOneByExample(userExample);
|
||||
return user;
|
||||
LambdaQueryWrapper<Users> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Users::getMobile, mobile);
|
||||
return usersMapper.selectOne(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Users createUser(String mobile) {
|
||||
// 获得全局唯一主键
|
||||
String userId = sid.nextShort();
|
||||
|
||||
Users user = new Users();
|
||||
@ -98,7 +94,6 @@ public class UserServiceImpl extends BaseInfoProperties implements UserService {
|
||||
user.setNickname("用户:" + DesensitizationUtil.commonDisplay(mobile));
|
||||
user.setImoocNum("用户:" + DesensitizationUtil.commonDisplay(mobile));
|
||||
user.setFace(USER_FACE1);
|
||||
|
||||
user.setBirthday(DateUtil.stringToDate("1999-01-01"));
|
||||
user.setSex(Sex.secret.type);
|
||||
user.setBgImg(USER_FACE1);
|
||||
@ -108,99 +103,75 @@ public class UserServiceImpl extends BaseInfoProperties implements UserService {
|
||||
user.setDistrict("");
|
||||
user.setDescription("这家伙很懒,什么都没留下~");
|
||||
user.setCanImoocNumBeUpdated(YesOrNo.YES.type);
|
||||
// user.setCreatedTime(new Date());
|
||||
// user.setUpdatedTime(new Date());
|
||||
|
||||
usersMapper.insert(user);
|
||||
|
||||
return user;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Users getUser(String userId) {
|
||||
Users users = usersMapper.selectByPrimaryKey(userId);
|
||||
return users;
|
||||
return usersMapper.selectById(userId);
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public Users updateUserInfo(UpdatedUserBO updatedUserBO) {
|
||||
|
||||
Users users = new Users();
|
||||
BeanUtils.copyProperties(updatedUserBO, users);
|
||||
usersMapper.updateByPrimaryKeySelective(users);
|
||||
usersMapper.updateById(users);
|
||||
return getUser(updatedUserBO.getId());
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public Users updateUserInfo(UpdatedUserBO updatedUserBO, Integer type) {
|
||||
if (type == UserInfoModifyType.NICKNAME.type) {
|
||||
usersMapper.updateNickname(updatedUserBO);
|
||||
}
|
||||
if (type == UserInfoModifyType.SEX.type) {
|
||||
usersMapper.updateSex(updatedUserBO);
|
||||
}
|
||||
if (type == UserInfoModifyType.BIRTHDAY.type) {
|
||||
usersMapper.updateBirthday(updatedUserBO);
|
||||
}
|
||||
if (type == UserInfoModifyType.LOCATION.type) {
|
||||
usersMapper.updateLocation(updatedUserBO);
|
||||
}
|
||||
if (type == UserInfoModifyType.DESC.type) {
|
||||
usersMapper.updateDescription(updatedUserBO);
|
||||
}
|
||||
if (type == UserInfoModifyType.IMOOCNUM.type) {
|
||||
if (updatedUserBO.getCanImoocNumBeUpdated() == YesOrNo.NO.type) {
|
||||
GraceException.display(ResponseStatusEnum.USER_INFO_CANT_UPDATED_IMOOCNUM_ERROR);
|
||||
}
|
||||
// 校验唯一性
|
||||
List<UsersVO> haveImooc = usersMapper.selectByImoocNum(updatedUserBO.getImoocNum());
|
||||
if (haveImooc != null && !haveImooc.isEmpty()) {
|
||||
GraceException.display(ResponseStatusEnum.USER_INFO_UPDATED_IMOOCNUM_EXIST_ERROR);
|
||||
}
|
||||
usersMapper.updateVnum(updatedUserBO);
|
||||
LambdaUpdateWrapper<Users> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(Users::getId, updatedUserBO.getId());
|
||||
|
||||
UserInfoModifyType modifyType = UserInfoModifyType.getTypeByValue(type);
|
||||
switch (modifyType) {
|
||||
case NICKNAME:
|
||||
updateWrapper.set(Users::getNickname, updatedUserBO.getNickname());
|
||||
break;
|
||||
case SEX:
|
||||
updateWrapper.set(Users::getSex, updatedUserBO.getSex());
|
||||
break;
|
||||
case BIRTHDAY:
|
||||
updateWrapper.set(Users::getBirthday, updatedUserBO.getBirthday());
|
||||
break;
|
||||
case LOCATION:
|
||||
updateWrapper.set(Users::getCountry, updatedUserBO.getCountry())
|
||||
.set(Users::getProvince, updatedUserBO.getProvince())
|
||||
.set(Users::getCity, updatedUserBO.getCity())
|
||||
.set(Users::getDistrict, updatedUserBO.getDistrict());
|
||||
break;
|
||||
case DESC:
|
||||
updateWrapper.set(Users::getDescription, updatedUserBO.getDescription());
|
||||
break;
|
||||
case IMOOCNUM:
|
||||
if (updatedUserBO.getCanImoocNumBeUpdated() == YesOrNo.NO.type) {
|
||||
GraceException.display(ResponseStatusEnum.USER_INFO_CANT_UPDATED_IMOOCNUM_ERROR);
|
||||
}
|
||||
// 校验唯一性
|
||||
LambdaQueryWrapper<Users> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Users::getImoocNum, updatedUserBO.getImoocNum());
|
||||
if (usersMapper.selectCount(queryWrapper) > 0) {
|
||||
GraceException.display(ResponseStatusEnum.USER_INFO_UPDATED_IMOOCNUM_EXIST_ERROR);
|
||||
}
|
||||
updateWrapper.set(Users::getImoocNum, updatedUserBO.getImoocNum());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
usersMapper.update(null, updateWrapper);
|
||||
return getUser(updatedUserBO.getId());
|
||||
|
||||
// Example example = new Example(Users.class);
|
||||
// Example.Criteria criteria = example.createCriteria();
|
||||
// if (type == UserInfoModifyType.NICKNAME.type) {
|
||||
// criteria.andEqualTo("nickname", updatedUserBO.getNickname());
|
||||
// Users user = usersMapper.selectOneByExample(example);
|
||||
// if (user != null) {
|
||||
// GraceException.display(ResponseStatusEnum.USER_INFO_UPDATED_NICKNAME_EXIST_ERROR);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (type == UserInfoModifyType.IMOOCNUM.type) {
|
||||
// criteria.andEqualTo("imoocNum", updatedUserBO.getImoocNum());
|
||||
// Users user = usersMapper.selectOneByExample(example);
|
||||
// if (user != null) {
|
||||
// GraceException.display(ResponseStatusEnum.USER_INFO_UPDATED_NICKNAME_EXIST_ERROR);
|
||||
// }
|
||||
//
|
||||
// Users tempUser = getUser(updatedUserBO.getId());
|
||||
// if (tempUser.getCanImoocNumBeUpdated() == YesOrNo.NO.type) {
|
||||
// GraceException.display(ResponseStatusEnum.USER_INFO_CANT_UPDATED_IMOOCNUM_ERROR);
|
||||
// }
|
||||
//
|
||||
// updatedUserBO.setCanImoocNumBeUpdated(YesOrNo.NO.type);
|
||||
// }
|
||||
//
|
||||
// return updateUserInfo(updatedUserBO);
|
||||
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
@Override
|
||||
public Map<String, Object> createUserNew(String mobile) {
|
||||
// 获得全局唯一主键
|
||||
String userId = sid.nextShort();
|
||||
// 创建短视频系统账号
|
||||
Users user = new Users();
|
||||
user.setId(userId);
|
||||
user.setPassword(passwordEncoder.encode(mobile));
|
||||
@ -218,15 +189,12 @@ public class UserServiceImpl extends BaseInfoProperties implements UserService {
|
||||
user.setDescription("这家伙很懒,什么都没留下~");
|
||||
user.setBgImg("");
|
||||
user.setCanImoocNumBeUpdated(YesOrNo.YES.type);
|
||||
// user.setCreatedTime(new Date());
|
||||
// user.setUpdatedTime(new Date());
|
||||
|
||||
int row = usersMapper.inset(user);
|
||||
int row = usersMapper.insert(user);
|
||||
|
||||
if (row > 0) {
|
||||
Map<String, Object> result = Maps.newHashMap();
|
||||
result.put("user", user);
|
||||
// 创建商城系统账号,获取商城系统token
|
||||
String url = "http://localhost:8888/buyer/passport/member/registerFromTik";
|
||||
MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
|
||||
param.add("userName", mobile);
|
||||
@ -328,104 +296,25 @@ public class UserServiceImpl extends BaseInfoProperties implements UserService {
|
||||
|
||||
@Override
|
||||
public List<UsersVO> searchByNickname(String nickname, Integer page, Integer pageSize, String currentUserId) {
|
||||
try {
|
||||
PageHelper.startPage(page, pageSize);
|
||||
List<UsersVO> userList = usersMapper.searchByNickname(nickname);
|
||||
Page<Users> pageParam = new Page<>(page, pageSize);
|
||||
LambdaQueryWrapper<Users> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.like(Users::getNickname, nickname);
|
||||
|
||||
if(currentUserId.isEmpty()){
|
||||
return userList;
|
||||
}
|
||||
Page<Users> usersPage = usersMapper.selectPage(pageParam, queryWrapper);
|
||||
List<Users> usersList = usersPage.getRecords();
|
||||
|
||||
// 提取模糊查询出的用户 ID 列表
|
||||
List<String> vlogerIds = userList.stream().map(UsersVO::getId).collect(Collectors.toList());
|
||||
log.info("用户列表" + vlogerIds);
|
||||
if (vlogerIds.isEmpty()) {
|
||||
log.info("没有查询到用户 ID,跳过关注关系查询");
|
||||
return userList;
|
||||
}
|
||||
//
|
||||
userList.forEach(usersVO -> {
|
||||
// 当前用户是否关注博主
|
||||
Boolean isFollowed = fansService.queryDoIFollowVloger(currentUserId,usersVO.getId());
|
||||
// 我的粉丝总数
|
||||
String myFansCountsStr = redis.get(REDIS_MY_FANS_COUNTS + ":" + usersVO.getId());
|
||||
// 获赞总数
|
||||
String likedVlogerCountsStr = redis.get(REDIS_VLOGER_BE_LIKED_COUNTS + ":" + usersVO.getId());
|
||||
List<UsersVO> usersVOList = usersList.stream().map(u -> {
|
||||
UsersVO userVO = new UsersVO();
|
||||
BeanUtils.copyProperties(u, userVO);
|
||||
|
||||
int fansCount = 0;
|
||||
int likeCount = 0;
|
||||
if (myFansCountsStr != null) {
|
||||
try {
|
||||
fansCount = Integer.parseInt(myFansCountsStr);
|
||||
} catch (NumberFormatException e) {
|
||||
// 可选:记录日志或处理异常
|
||||
fansCount = 0;
|
||||
}
|
||||
}
|
||||
if (likedVlogerCountsStr != null) {
|
||||
try {
|
||||
likeCount = Integer.parseInt(likedVlogerCountsStr);
|
||||
} catch (NumberFormatException e) {
|
||||
// 可选:记录日志或处理异常
|
||||
likeCount = 0;
|
||||
}
|
||||
}
|
||||
// 查询当前用户是否关注了该用户
|
||||
boolean doIFollowVloger = fansService.queryDoIFollowVloger(currentUserId, u.getId());
|
||||
userVO.setFollowed(doIFollowVloger);
|
||||
|
||||
usersVO.setMyFansCounts(fansCount);
|
||||
usersVO.setTotalLikeMeCounts(likeCount);
|
||||
return userVO;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if (isFollowed) {
|
||||
String relationship = redis.get(REDIS_FANS_AND_VLOGGER_RELATIONSHIP + ":" + usersVO.getId() + ":" + currentUserId);
|
||||
if (StringUtils.isNotBlank(relationship) && relationship.equalsIgnoreCase("1")) {
|
||||
usersVO.setFollowStatus("互相关注");
|
||||
}else {
|
||||
usersVO.setFollowStatus("已关注");
|
||||
}
|
||||
} else {
|
||||
usersVO.setFollowStatus("未关注");
|
||||
}
|
||||
});
|
||||
return userList;
|
||||
|
||||
//
|
||||
//
|
||||
//
|
||||
//
|
||||
// // 获取当前用户关注的
|
||||
// List<java.util.Map<String, Object>> followedRelations = fansMapper.getFollowedVlogerIds(currentUserId, vlogerIds);
|
||||
// log.info("获取当前用户关注的: {}", followedRelations);
|
||||
// // 构建 vlogerId 到 is_fan_friend_of_mine 的映射
|
||||
// java.util.Map<String, Integer> relationMap = followedRelations.stream()
|
||||
// .filter(Objects::nonNull) // 排除整个 map 为 null 的情况
|
||||
// .collect(Collectors.toMap(
|
||||
// map -> (String) map.get("vloger_id"),
|
||||
// map -> (Integer) map.get("is_fan_friend_of_mine")
|
||||
// ));
|
||||
// log.info("构造的 relationMap: {}", relationMap);
|
||||
// Set<String> followedVlogerIds = relationMap.keySet();
|
||||
//
|
||||
// // 遍历设置每个用户的关注状态及展示状态
|
||||
// userList.forEach(usersVO -> {
|
||||
// boolean isFollowed = followedVlogerIds.contains(usersVO.getId());
|
||||
// usersVO.setIsFollowed(isFollowed);
|
||||
// if (isFollowed) {
|
||||
// Integer isFanFriendOfMine = relationMap.get(usersVO.getId());
|
||||
// if (isFanFriendOfMine != null && isFanFriendOfMine == 1) {
|
||||
// usersVO.setFollowStatus("互相关注"); // 假设 UsersVO 有此方法设置展示状态
|
||||
// } else {
|
||||
// usersVO.setFollowStatus("已关注");
|
||||
// }
|
||||
// } else {
|
||||
// usersVO.setFollowStatus("未关注");
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// log.info("用户列表" + userList);
|
||||
// return userList;
|
||||
} catch (Exception e) {
|
||||
log.error("搜索用户时发生异常", e);
|
||||
throw new RuntimeException("搜索用户时发生异常", e);
|
||||
}
|
||||
return usersVOList;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,11 @@
|
||||
package com.wzj.soopin.content.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
|
||||
import com.wzj.soopin.content.domain.base.BaseInfoProperties;
|
||||
import com.wzj.soopin.content.domain.bo.VlogBO;
|
||||
import com.wzj.soopin.content.domain.po.MyLikedVlog;
|
||||
@ -21,246 +22,148 @@ import com.wzj.soopin.content.service.VlogService;
|
||||
import com.wzj.soopin.content.utils.PagedGridResult;
|
||||
import com.wzj.soopin.content.utils.Sid;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
public class VlogServiceImpl extends BaseInfoProperties implements VlogService {
|
||||
|
||||
@Autowired
|
||||
private VlogMapper vlogMapper;
|
||||
|
||||
@Autowired
|
||||
private VlogMapperCustom vlogMapperCustom;
|
||||
|
||||
@Autowired
|
||||
private MyLikedVlogMapper myLikedVlogMapper;
|
||||
|
||||
@Autowired
|
||||
private FansService fansService;
|
||||
@Autowired
|
||||
private MsgService msgService;
|
||||
|
||||
@Autowired
|
||||
private Sid sid;
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void updateVlogStatus(String fileId,Integer status,String reason) {
|
||||
// Example example = new Example(Vlog.class);
|
||||
// Example.Criteria criteria = example.createCriteria();
|
||||
// criteria.andEqualTo("fileId", fileId);
|
||||
//
|
||||
// Vlog pendingVlog = new Vlog();
|
||||
// pendingVlog.setStatus(status);
|
||||
// pendingVlog.setReason(reason);
|
||||
// vlogMapper.updateVlogStatus(fileId, example);
|
||||
|
||||
// 示例:更新 vlog 表
|
||||
Map<String, Object> updateFields = new HashMap<>();
|
||||
updateFields.put("status", status);
|
||||
updateFields.put("reason", reason);
|
||||
|
||||
vlogMapper.dynamicUpdate(
|
||||
"file_id", // 主键字段名
|
||||
fileId, // 主键值
|
||||
updateFields // 更新字段
|
||||
);
|
||||
public void updateVlogStatus(String fileId, Integer status, String reason) {
|
||||
LambdaUpdateWrapper<Vlog> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(Vlog::getFileId, fileId)
|
||||
.set(Vlog::getStatus, status)
|
||||
.set(Vlog::getReason, reason);
|
||||
vlogMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void updateVlogFirstImg(String fileId,String url,String fileUrl) {
|
||||
// Example example = new Example(Vlog.class);
|
||||
// Example.Criteria criteria = example.createCriteria();
|
||||
// criteria.andEqualTo("fileId", fileId);
|
||||
// Vlog pendingVlog = new Vlog();
|
||||
// pendingVlog.setFirstFrameImg(url);
|
||||
// pendingVlog.setUrl(fileUrl);
|
||||
//
|
||||
// vlogMapper.updateByExampleSelective(pendingVlog, example);
|
||||
// 示例:更新 vlog 表
|
||||
Map<String, Object> updateFields = new HashMap<>();
|
||||
updateFields.put("first_frame_img", url);
|
||||
updateFields.put("url", fileUrl);
|
||||
|
||||
vlogMapper.dynamicUpdate(
|
||||
"file_id", // 主键字段名
|
||||
fileId, // 主键值
|
||||
updateFields // 更新字段
|
||||
);
|
||||
|
||||
public void updateVlogFirstImg(String fileId, String url, String fileUrl) {
|
||||
LambdaUpdateWrapper<Vlog> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(Vlog::getFileId, fileId)
|
||||
.set(Vlog::getFirstFrameImg, url)
|
||||
.set(Vlog::getUrl, fileUrl);
|
||||
vlogMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void createVlog(VlogBO vlogBO) {
|
||||
|
||||
// String vid = sid.nextShort();
|
||||
//
|
||||
// Vlog vlog = new Vlog();
|
||||
// BeanUtils.copyProperties(vlogBO, vlog);
|
||||
//
|
||||
// vlog.setId(vid);
|
||||
//
|
||||
// vlog.setLikeCounts(0);
|
||||
// vlog.setCommentsCounts(0);
|
||||
// vlog.setStatus(0);
|
||||
// vlog.setIsPrivate(YesOrNo.NO.type);
|
||||
//
|
||||
// vlog.setCreatedTime(new Date());
|
||||
// vlog.setUpdatedTime(new Date());
|
||||
//
|
||||
// vlogMapper.insert(vlog);
|
||||
String vid = sid.nextShort();
|
||||
Map<String, Object> vlog = new HashMap<>();
|
||||
Vlog vlog = new Vlog();
|
||||
BeanUtils.copyProperties(vlogBO, vlog);
|
||||
|
||||
vlog.put("id", vid);
|
||||
vlog.put("vloger_id", vlogBO.getVlogerId());
|
||||
vlog.put("url", vlogBO.getUrl());
|
||||
vlog.put("title", vlogBO.getTitle());
|
||||
vlog.put("width", vlogBO.getWidth());
|
||||
vlog.put("height", vlogBO.getHeight());
|
||||
vlog.put("is_private", YesOrNo.NO.type);
|
||||
vlog.put("created_time", new Date());
|
||||
vlog.put("updated_time", new Date());
|
||||
vlog.put("city_code", vlogBO.getCityCode());
|
||||
vlog.put("file_id", vlogBO.getFileId());
|
||||
vlog.put("first_frame_img", vlogBO.getFirstFrameImg());
|
||||
vlog.setId(vid);
|
||||
vlog.setLikeCounts(0);
|
||||
vlog.setCommentsCounts(0);
|
||||
vlog.setStatus(0);
|
||||
vlog.setIsPrivate(YesOrNo.NO.type);
|
||||
|
||||
|
||||
vlogMapper.dynamicInsert(vlog);
|
||||
|
||||
//多条导入
|
||||
// List<Map<String, Object>> vlogList = new ArrayList<>();
|
||||
//
|
||||
// Map<String, Object> vlog1 = new HashMap<>();
|
||||
// vlog1.put("id", sid.nextShort());
|
||||
// vlog1.put("title", "视频1");
|
||||
// vlogList.add(vlog1);
|
||||
//
|
||||
// Map<String, Object> vlog2 = new HashMap<>();
|
||||
// vlog2.put("id", sid.nextShort());
|
||||
// vlog2.put("title", "视频2");
|
||||
// vlogList.add(vlog2);
|
||||
//
|
||||
// vlogMapper.dynamicBatchInsert(vlogList);
|
||||
vlogMapper.insert(vlog);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PagedGridResult getIndexVlogList(String userId,
|
||||
String search,
|
||||
String cityCode,
|
||||
String status,
|
||||
Integer page,
|
||||
Integer pageSize) {
|
||||
public PagedGridResult getIndexVlogList(String userId, String search, String cityCode, String status, Integer page, Integer pageSize) {
|
||||
Page<Vlog> pageParam = new Page<>(page, pageSize);
|
||||
LambdaQueryWrapper<Vlog> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
PageHelper.startPage(page, pageSize);
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
if (StringUtils.isNotBlank(search)) {
|
||||
map.put("search", search);
|
||||
queryWrapper.like(Vlog::getTitle, search);
|
||||
}
|
||||
if (StringUtils.isNotBlank(cityCode)) {
|
||||
map.put("cityCode", cityCode);
|
||||
queryWrapper.eq(Vlog::getCityCode, cityCode);
|
||||
}
|
||||
if (StringUtils.isNotBlank(status)) {
|
||||
map.put("status", status);
|
||||
queryWrapper.eq(Vlog::getStatus, status);
|
||||
}
|
||||
if(StringUtils.isNotBlank(userId)){
|
||||
// 从redis中获取举报信息
|
||||
|
||||
// Handle blocked videos
|
||||
if (StringUtils.isNotBlank(userId)) {
|
||||
String redisKey = REDIS_VIDEO_BLOCK + ":" + userId;
|
||||
Boolean hasKey = redis.keyIsExist(redisKey);
|
||||
if(hasKey){
|
||||
if (redis.keyIsExist(redisKey)) {
|
||||
List<String> blockVdList = new ArrayList<>();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
List<String> reports = redis.lrange(redisKey, 0, -1); // 查询用户的所有举报记录
|
||||
List<String> reports = redis.lrange(redisKey, 0, -1);
|
||||
|
||||
for (String report : reports) {
|
||||
try {
|
||||
Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
|
||||
// 处理举报信息
|
||||
String vlogId = (String) reportMap.get("vlogId");
|
||||
blockVdList.add(vlogId);
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
map.put("blockVd",blockVdList);
|
||||
if (!blockVdList.isEmpty()) {
|
||||
queryWrapper.notIn(Vlog::getId, blockVdList);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StringUtils.isNotBlank(userId)){
|
||||
// 从redis中获取拉黑信息
|
||||
|
||||
// Handle blocked users
|
||||
if (StringUtils.isNotBlank(userId)) {
|
||||
String redisKey = REDIS_USER_BLOCK + ":" + userId;
|
||||
Boolean hasKey = redis.keyIsExist(redisKey);
|
||||
if(hasKey){
|
||||
if (redis.keyIsExist(redisKey)) {
|
||||
List<String> blockUserList = new ArrayList<>();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
List<String> reports = redis.lrange(redisKey, 0, -1); // 查询用户的所有举报记录
|
||||
List<String> reports = redis.lrange(redisKey, 0, -1);
|
||||
|
||||
for (String report : reports) {
|
||||
try {
|
||||
Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
|
||||
// 处理拉黑信息
|
||||
String vlogerId = (String) reportMap.get("vlogerId");
|
||||
blockUserList.add(vlogerId);
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
map.put("blockUser",blockUserList);
|
||||
if (!blockUserList.isEmpty()) {
|
||||
queryWrapper.notIn(Vlog::getVlogerId, blockUserList);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<IndexVlogVO> list = vlogMapperCustom.getIndexVlogList(map);
|
||||
Page<Vlog> vlogPage = vlogMapper.selectPage(pageParam, queryWrapper);
|
||||
List<Vlog> vlogList = vlogPage.getRecords();
|
||||
|
||||
for (IndexVlogVO v : list) {
|
||||
String vlogerId = v.getVlogerId();
|
||||
String vlogId = v.getVlogId();
|
||||
List<IndexVlogVO> voList = vlogList.stream().map(v -> {
|
||||
IndexVlogVO vo = new IndexVlogVO();
|
||||
BeanUtils.copyProperties(v, vo);
|
||||
|
||||
if (StringUtils.isNotBlank(userId)) {
|
||||
// 用户是否关注该博主
|
||||
boolean doIFollowVloger = fansService.queryDoIFollowVloger(userId, vlogerId);
|
||||
v.setDoIFollowVloger(doIFollowVloger);
|
||||
|
||||
// 判断当前用户是否点赞过视频
|
||||
v.setDoILikeThisVlog(doILikeVlog(userId, vlogId));
|
||||
vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(userId, v.getVlogerId()));
|
||||
vo.setDoILikeThisVlog(doILikeVlog(userId, v.getId()));
|
||||
}
|
||||
|
||||
// 获得当前视频被点赞过的总数
|
||||
v.setLikeCounts(getVlogBeLikedCounts(vlogId));
|
||||
// 评论数
|
||||
v.setCommentsCounts(getVlogComment(vlogId));
|
||||
}
|
||||
vo.setLikeCounts(getVlogBeLikedCounts(v.getId()));
|
||||
vo.setCommentsCounts(getVlogComment(v.getId()));
|
||||
|
||||
// return list;
|
||||
return setterPagedGrid(list, page);
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
return setterPagedGrid(voList, page);
|
||||
}
|
||||
|
||||
private IndexVlogVO setterVO(IndexVlogVO v, String userId) {
|
||||
String vlogerId = v.getVlogerId();
|
||||
String vlogId = v.getVlogId();
|
||||
|
||||
if (StringUtils.isNotBlank(userId)) {
|
||||
// 用户是否关注该博主
|
||||
boolean doIFollowVloger = fansService.queryDoIFollowVloger(userId, vlogerId);
|
||||
v.setDoIFollowVloger(doIFollowVloger);
|
||||
|
||||
// 判断当前用户是否点赞过视频
|
||||
v.setDoILikeThisVlog(doILikeVlog(userId, vlogId));
|
||||
}
|
||||
|
||||
// 获得当前视频被点赞过的总数
|
||||
v.setLikeCounts(getVlogBeLikedCounts(vlogId));
|
||||
|
||||
return v;
|
||||
}
|
||||
//
|
||||
@Override
|
||||
public Integer getVlogBeLikedCounts(String vlogId) {
|
||||
String countsStr = redis.get(REDIS_VLOG_BE_LIKED_COUNTS + ":" + vlogId);
|
||||
@ -278,351 +181,177 @@ public class VlogServiceImpl extends BaseInfoProperties implements VlogService {
|
||||
return Integer.valueOf(countsStr);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
private boolean doILikeVlog(String myId, String vlogId) {
|
||||
|
||||
String doILike = redis.get(REDIS_USER_LIKE_VLOG + ":" + myId + ":" + vlogId);
|
||||
boolean isLike = false;
|
||||
if (StringUtils.isNotBlank(doILike) && doILike.equalsIgnoreCase("1")) {
|
||||
isLike = true;
|
||||
}
|
||||
return isLike;
|
||||
return StringUtils.isNotBlank(doILike) && doILike.equalsIgnoreCase("1");
|
||||
}
|
||||
//
|
||||
|
||||
@Override
|
||||
public IndexVlogVO getVlogDetailById(String userId, String vlogId) {
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("vlogId", vlogId);
|
||||
|
||||
List<IndexVlogVO> list = vlogMapperCustom.getVlogDetailById(map);
|
||||
|
||||
if (list != null && list.size() > 0 && !list.isEmpty()) {
|
||||
IndexVlogVO vlogVO = list.get(0);
|
||||
// return vlogVO;
|
||||
return setterVO(vlogVO, userId);
|
||||
Vlog vlog = vlogMapper.selectById(vlogId);
|
||||
if (vlog == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return null;
|
||||
IndexVlogVO vo = new IndexVlogVO();
|
||||
BeanUtils.copyProperties(vlog, vo);
|
||||
|
||||
if (StringUtils.isNotBlank(userId)) {
|
||||
vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(userId, vlog.getVlogerId()));
|
||||
vo.setDoILikeThisVlog(doILikeVlog(userId, vlogId));
|
||||
}
|
||||
|
||||
vo.setLikeCounts(getVlogBeLikedCounts(vlogId));
|
||||
vo.setCommentsCounts(getVlogComment(vlogId));
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void changeToPrivateOrPublic(String userId,
|
||||
String vlogId,
|
||||
Integer yesOrNo) {
|
||||
// Example example = new Example(Vlog.class);
|
||||
// Example.Criteria criteria = example.createCriteria();
|
||||
// criteria.andEqualTo("id", vlogId);
|
||||
// criteria.andEqualTo("vlogerId", userId);
|
||||
//
|
||||
// Vlog pendingVlog = new Vlog();
|
||||
// pendingVlog.setIsPrivate(yesOrNo);
|
||||
|
||||
Map<String, Object> updates = new HashMap<>();
|
||||
updates.put("is_private", 2);
|
||||
Map<String, Object> conditions = new HashMap<>();
|
||||
conditions.put("id", vlogId);
|
||||
conditions.put("vloger_id", userId);
|
||||
vlogMapper.updateVlogByConditions(
|
||||
updates,
|
||||
conditions
|
||||
);
|
||||
|
||||
public void changeToPrivateOrPublic(String userId, String vlogId, Integer yesOrNo) {
|
||||
LambdaUpdateWrapper<Vlog> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(Vlog::getId, vlogId)
|
||||
.eq(Vlog::getVlogerId, userId)
|
||||
.set(Vlog::getIsPrivate, yesOrNo);
|
||||
vlogMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void changeVlogStatus(String userId,
|
||||
String vlogId,
|
||||
Integer status) {
|
||||
Map<String, Object> updates = new HashMap<>();
|
||||
updates.put("status", status);
|
||||
Map<String, Object> conditions = new HashMap<>();
|
||||
conditions.put("id", vlogId);
|
||||
conditions.put("vloger_id", userId);
|
||||
vlogMapper.updateVlogByConditions(
|
||||
updates,
|
||||
conditions
|
||||
);
|
||||
|
||||
public void changeVlogStatus(String userId, String vlogId, Integer status) {
|
||||
LambdaUpdateWrapper<Vlog> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(Vlog::getId, vlogId)
|
||||
.eq(Vlog::getVlogerId, userId)
|
||||
.set(Vlog::getStatus, status);
|
||||
vlogMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PagedGridResult queryMyVlogList(String userId,
|
||||
String myId,
|
||||
Integer page,
|
||||
Integer pageSize,
|
||||
Integer yesOrNo) {
|
||||
public PagedGridResult queryMyVlogList(String userId, String myId, Integer page, Integer pageSize, Integer yesOrNo) {
|
||||
Page<Vlog> pageParam = new Page<>(page, pageSize);
|
||||
LambdaQueryWrapper<Vlog> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Vlog::getVlogerId, userId)
|
||||
.eq(Vlog::getIsPrivate, yesOrNo);
|
||||
|
||||
Page<Vlog> vlogPage = vlogMapper.selectPage(pageParam, queryWrapper);
|
||||
List<Vlog> vlogList = vlogPage.getRecords();
|
||||
|
||||
PageHelper.startPage(page, pageSize);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
// if (StringUtils.isNotBlank(search)) {
|
||||
// map.put("search", search);
|
||||
// }
|
||||
// if (StringUtils.isNotBlank(cityCode)) {
|
||||
// map.put("cityCode", cityCode);
|
||||
// }
|
||||
// if (StringUtils.isNotBlank(status)) {
|
||||
// map.put("status", status);
|
||||
// }
|
||||
List<IndexVlogVO> voList = vlogList.stream().map(v -> {
|
||||
IndexVlogVO vo = new IndexVlogVO();
|
||||
BeanUtils.copyProperties(v, vo);
|
||||
|
||||
map.put("vlogerId", userId);
|
||||
if (StringUtils.isNotBlank(myId)) {
|
||||
// 从redis中获取举报信息
|
||||
String redisKeyRp = REDIS_VIDEO_BLOCK + ":" + myId;
|
||||
Boolean hasKeyRp = redis.keyIsExist(redisKeyRp);
|
||||
if(hasKeyRp){
|
||||
List<String> blockVdList = new ArrayList<>();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
List<String> reports = redis.lrange(redisKeyRp, 0, -1); // 查询用户的所有举报记录
|
||||
|
||||
for (String report : reports) {
|
||||
try {
|
||||
Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
|
||||
// 处理举报信息
|
||||
String vlogId = (String) reportMap.get("vlogId");
|
||||
blockVdList.add(vlogId);
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
map.put("blockVd",blockVdList);
|
||||
if (StringUtils.isNotBlank(myId)) {
|
||||
vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(myId, v.getVlogerId()));
|
||||
vo.setDoILikeThisVlog(doILikeVlog(myId, v.getId()));
|
||||
}
|
||||
}
|
||||
|
||||
vo.setLikeCounts(getVlogBeLikedCounts(v.getId()));
|
||||
vo.setCommentsCounts(getVlogComment(v.getId()));
|
||||
|
||||
List<IndexVlogVO> list = vlogMapper.selectMyPublic(map);
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
for (IndexVlogVO v : list) {
|
||||
String vlogId = v.getVlogId();
|
||||
// 获得当前视频被点赞过的总数
|
||||
v.setLikeCounts(getVlogBeLikedCounts(vlogId));
|
||||
// 评论数
|
||||
v.setCommentsCounts(getVlogComment(vlogId));
|
||||
}
|
||||
return setterPagedGrid(list, page);
|
||||
return setterPagedGrid(voList, page);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void userLikeVlog(String userId, String vlogId) {
|
||||
|
||||
String rid = sid.nextShort();
|
||||
|
||||
MyLikedVlog likedVlog = new MyLikedVlog();
|
||||
likedVlog.setId(rid);
|
||||
likedVlog.setVlogId(vlogId);
|
||||
likedVlog.setUserId(userId);
|
||||
likedVlog.setCreatedTime(new Date());
|
||||
|
||||
myLikedVlogMapper.insert(likedVlog);
|
||||
// System.out.println(vlogId);
|
||||
//
|
||||
// Vlog vlog = new Vlog();
|
||||
// vlog.setId(vlogId);
|
||||
// Vlog vlog1 = vlogMapper.selectOne(vlog);
|
||||
// System.out.println(vlog1.toString());
|
||||
//// System.out.println(vlog1.getCreatedTime());
|
||||
|
||||
// Vlog vlog2 = vlogMapper.selectByPrimaryKey(vlogId);
|
||||
// System.out.println(vlog2.toString());
|
||||
|
||||
// Vlog vlog1 = vlogMapper.selectOne(new Vlog().setId(vlogId));
|
||||
// Vlog vlog = vlog1
|
||||
// System.out.println(vlog);
|
||||
|
||||
// 系统消息:点赞短视频
|
||||
Vlog vlog = this.getVlog(vlogId);
|
||||
Map msgContent = new HashMap();
|
||||
msgContent.put("vlogId", vlogId);
|
||||
msgContent.put("vlogCover", vlog.getCover());
|
||||
msgService.createMsg(userId,
|
||||
vlog.getVlogerId(),
|
||||
MessageEnum.LIKE_VLOG.type,
|
||||
msgContent);
|
||||
// 我喜欢的视频总数累加
|
||||
redis.increment(REDIS_VLOGER_BE_LIKED_COUNTS + ":" + userId, 1);
|
||||
// 视频被喜欢的总数累加
|
||||
redis.increment(REDIS_VLOG_BE_LIKED_COUNTS + ":" + vlogId, 1);
|
||||
// 保存用户和视频的喜欢关系
|
||||
redis.set(REDIS_USER_LIKE_VLOG + ":" + userId + ":" + vlogId, "1");
|
||||
}
|
||||
//
|
||||
|
||||
@Override
|
||||
public Vlog getVlog(String id) {
|
||||
// Vlog vlog = vlogMapper.selectByPrimaryKey(id);
|
||||
// return vlog;
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("vlogId", id);
|
||||
|
||||
List<IndexVlogVO> list = vlogMapper.getVlogDetailFromId(map);
|
||||
|
||||
if (list != null && list.size() > 0 && !list.isEmpty()) {
|
||||
IndexVlogVO result = list.get(0);
|
||||
Vlog vlogVO = new Vlog();
|
||||
BeanUtils.copyProperties(result, vlogVO);
|
||||
return vlogVO;
|
||||
}
|
||||
|
||||
return null;
|
||||
return vlogMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public void flushCounts(String vlogId, Integer counts) {
|
||||
//
|
||||
// Vlog vlog = new Vlog();
|
||||
// vlog.setId(vlogId);
|
||||
// vlog.setLikeCounts(counts);
|
||||
// int i = vlogMapper.updateByPrimaryKeySelective(vlog);
|
||||
|
||||
// 示例:更新 vlog 表
|
||||
Map<String, Object> updateFields = new HashMap<>();
|
||||
updateFields.put("like_counts", counts);
|
||||
|
||||
vlogMapper.dynamicUpdate(
|
||||
"id", // 主键字段名
|
||||
vlogId, // 主键值
|
||||
updateFields // 更新字段
|
||||
);
|
||||
|
||||
LambdaUpdateWrapper<Vlog> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(Vlog::getId, vlogId)
|
||||
.set(Vlog::getLikeCounts, counts);
|
||||
vlogMapper.update(null, updateWrapper);
|
||||
}
|
||||
|
||||
//
|
||||
@Transactional
|
||||
@Override
|
||||
public void userUnLikeVlog(String userId, String vlogId) {
|
||||
LambdaQueryWrapper<MyLikedVlog> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(MyLikedVlog::getUserId, userId)
|
||||
.eq(MyLikedVlog::getVlogId, vlogId);
|
||||
myLikedVlogMapper.delete(queryWrapper);
|
||||
|
||||
MyLikedVlog likedVlog = new MyLikedVlog();
|
||||
likedVlog.setVlogId(vlogId);
|
||||
likedVlog.setUserId(userId);
|
||||
|
||||
myLikedVlogMapper.deleteById(likedVlog);
|
||||
// 我喜欢的视频总数累减
|
||||
redis.decrement(REDIS_VLOGER_BE_LIKED_COUNTS + ":" + userId, 1);
|
||||
// 视频被喜欢的总数累减
|
||||
redis.decrement(REDIS_VLOG_BE_LIKED_COUNTS + ":" + vlogId, 1);
|
||||
// 删除用户和视频的喜欢关系
|
||||
redis.del(REDIS_USER_LIKE_VLOG + ":" + userId + ":" + vlogId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PagedGridResult getMyLikedVlogList(String userId,
|
||||
String myId,
|
||||
Integer page,
|
||||
Integer pageSize) {
|
||||
PageHelper.startPage(page, pageSize);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("userId", userId);
|
||||
String useWho;
|
||||
if (StringUtils.isNotBlank(myId)) {
|
||||
useWho = myId;
|
||||
}else{
|
||||
useWho = userId;
|
||||
}
|
||||
// 从redis中获取拉黑信息
|
||||
String redisKey = REDIS_USER_BLOCK + ":" + useWho;
|
||||
Boolean hasKey = redis.keyIsExist(redisKey);
|
||||
if(hasKey){
|
||||
List<String> blockUserList = new ArrayList<>();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
List<String> reports = redis.lrange(redisKey, 0, -1); // 查询用户的所有举报记录
|
||||
public PagedGridResult getMyLikedVlogList(String userId, String myId, Integer page, Integer pageSize) {
|
||||
Page<MyLikedVlog> pageParam = new Page<>(page, pageSize);
|
||||
LambdaQueryWrapper<MyLikedVlog> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(MyLikedVlog::getUserId, userId);
|
||||
|
||||
for (String report : reports) {
|
||||
try {
|
||||
Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
|
||||
// 处理拉黑信息
|
||||
String vlogerId = (String) reportMap.get("vlogerId");
|
||||
blockUserList.add(vlogerId);
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Page<MyLikedVlog> likedPage = myLikedVlogMapper.selectPage(pageParam, queryWrapper);
|
||||
List<MyLikedVlog> likedList = likedPage.getRecords();
|
||||
|
||||
List<IndexVlogVO> voList = likedList.stream().map(liked -> {
|
||||
Vlog vlog = vlogMapper.selectById(liked.getVlogId());
|
||||
if (vlog == null) {
|
||||
return null;
|
||||
}
|
||||
map.put("blockUser",blockUserList);
|
||||
System.out.println(blockUserList);
|
||||
}
|
||||
|
||||
// 从redis中获取举报信息
|
||||
String redisKeyRp = REDIS_VIDEO_BLOCK + ":" + useWho;
|
||||
Boolean hasKeyRp = redis.keyIsExist(redisKeyRp);
|
||||
if(hasKeyRp){
|
||||
List<String> blockVdList = new ArrayList<>();
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
List<String> reports = redis.lrange(redisKeyRp, 0, -1); // 查询用户的所有举报记录
|
||||
|
||||
for (String report : reports) {
|
||||
try {
|
||||
Map<String, Object> reportMap = objectMapper.readValue(report, new TypeReference<Map<String, Object>>() {});
|
||||
// 处理举报信息
|
||||
String vlogId = (String) reportMap.get("vlogId");
|
||||
blockVdList.add(vlogId);
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
map.put("blockVd",blockVdList);
|
||||
}
|
||||
|
||||
|
||||
List<IndexVlogVO> list = vlogMapperCustom.getMyLikedVlogList(map);
|
||||
|
||||
return setterPagedGrid(list, page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PagedGridResult getMyFollowVlogList(String myId,
|
||||
Integer page,
|
||||
Integer pageSize) {
|
||||
PageHelper.startPage(page, pageSize);
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("myId", myId);
|
||||
|
||||
List<IndexVlogVO> list = vlogMapperCustom.getMyFollowVlogList(map);
|
||||
|
||||
for (IndexVlogVO v : list) {
|
||||
String vlogerId = v.getVlogerId();
|
||||
String vlogId = v.getVlogId();
|
||||
IndexVlogVO vo = new IndexVlogVO();
|
||||
BeanUtils.copyProperties(vlog, vo);
|
||||
|
||||
if (StringUtils.isNotBlank(myId)) {
|
||||
// 用户必定关注该博主
|
||||
v.setDoIFollowVloger(true);
|
||||
|
||||
// 判断当前用户是否点赞过视频
|
||||
v.setDoILikeThisVlog(doILikeVlog(myId, vlogId));
|
||||
vo.setDoIFollowVloger(fansService.queryDoIFollowVloger(myId, vlog.getVlogerId()));
|
||||
vo.setDoILikeThisVlog(doILikeVlog(myId, vlog.getId()));
|
||||
}
|
||||
|
||||
// 获得当前视频被点赞过的总数
|
||||
v.setLikeCounts(getVlogBeLikedCounts(vlogId));
|
||||
}
|
||||
vo.setLikeCounts(getVlogBeLikedCounts(vlog.getId()));
|
||||
vo.setCommentsCounts(getVlogComment(vlog.getId()));
|
||||
|
||||
return setterPagedGrid(list, page);
|
||||
return vo;
|
||||
}).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
|
||||
return setterPagedGrid(voList, page);
|
||||
}
|
||||
//
|
||||
|
||||
@Override
|
||||
public PagedGridResult getMyFriendVlogList(String myId,
|
||||
Integer page,
|
||||
Integer pageSize) {
|
||||
|
||||
PageHelper.startPage(page, pageSize);
|
||||
|
||||
public PagedGridResult getMyFollowVlogList(String myId, Integer page, Integer pageSize) {
|
||||
Page<Vlog> pageParam = new Page<>(page, pageSize);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("myId", myId);
|
||||
|
||||
List<IndexVlogVO> list = vlogMapperCustom.getMyFriendVlogList(map);
|
||||
|
||||
for (IndexVlogVO v : list) {
|
||||
String vlogerId = v.getVlogerId();
|
||||
String vlogId = v.getVlogId();
|
||||
|
||||
if (StringUtils.isNotBlank(myId)) {
|
||||
// 用户必定关注该博主
|
||||
v.setDoIFollowVloger(true);
|
||||
|
||||
// 判断当前用户是否点赞过视频
|
||||
v.setDoILikeThisVlog(doILikeVlog(myId, vlogId));
|
||||
}
|
||||
|
||||
// 获得当前视频被点赞过的总数
|
||||
v.setLikeCounts(getVlogBeLikedCounts(vlogId));
|
||||
}
|
||||
|
||||
return setterPagedGrid(list, page);
|
||||
List<IndexVlogVO> voList = vlogMapperCustom.getMyFollowVlogList(map);
|
||||
|
||||
return setterPagedGrid(voList, page);
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public Vlog getVlog(String id) {
|
||||
// return null;
|
||||
// }
|
||||
@Override
|
||||
public PagedGridResult getMyFriendVlogList(String myId, Integer page, Integer pageSize) {
|
||||
Page<Vlog> pageParam = new Page<>(page, pageSize);
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("myId", myId);
|
||||
List<IndexVlogVO> voList = vlogMapperCustom.getMyFriendVlogList(map);
|
||||
|
||||
return setterPagedGrid(voList, page);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user