package cn.lili.modules.lmk.service.impl;
|
|
import cn.lili.common.security.context.UserContext;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import cn.lili.modules.lmk.domain.entity.MySubscribe;
|
import cn.lili.modules.lmk.mapper.MySubscribeMapper;
|
import cn.lili.modules.lmk.service.MySubscribeService;
|
import cn.lili.base.Result;
|
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import cn.lili.modules.lmk.domain.vo.MySubscribeVO;
|
import cn.lili.modules.lmk.domain.query.MySubscribeQuery;
|
import org.springframework.stereotype.Service;
|
import lombok.RequiredArgsConstructor;
|
import cn.lili.utils.PageUtil;
|
|
import java.util.List;
|
|
/**
|
* 我的关注 服务实现类
|
*
|
* @author xp
|
* @since 2025-05-27
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class MySubscribeServiceImpl extends ServiceImpl<MySubscribeMapper, MySubscribe> implements MySubscribeService {
|
|
private final MySubscribeMapper mySubscribeMapper;
|
|
/**
|
* 分页查询
|
* @param query
|
* @return
|
*/
|
@Override
|
public Result page(MySubscribeQuery query) {
|
query.setUserId(UserContext.getCurrentUserId());
|
IPage<MySubscribeVO> page = PageUtil.getPage(query, MySubscribeVO.class);
|
baseMapper.getPage(page, query);
|
return Result.ok().data(page.getRecords()).total(page.getTotal());
|
}
|
|
@Override
|
public Result subscribe(String userId) {
|
boolean exists = new LambdaQueryChainWrapper<>(baseMapper)
|
.eq(MySubscribe::getSubscribeUserId, userId)
|
.eq(MySubscribe::getUserId, UserContext.getCurrentUserId())
|
.exists();
|
if (!exists) {
|
MySubscribe mySubscribe = new MySubscribe();
|
mySubscribe.setUserId(UserContext.getCurrentUserId());
|
mySubscribe.setSubscribeUserId(userId);
|
baseMapper.insert(mySubscribe);
|
}
|
return Result.ok().data("关注成功");
|
}
|
|
@Override
|
public Result unSubscribe(String userId) {
|
new LambdaUpdateChainWrapper<>(baseMapper)
|
.eq(MySubscribe::getUserId, UserContext.getCurrentUserId())
|
.eq(MySubscribe::getSubscribeUserId, userId)
|
.remove();
|
return Result.ok().data("已取消关注");
|
}
|
|
@Override
|
public List<String> getSubscribesByUserId(String userId) {
|
return baseMapper.getSubscribesByUserId(userId);
|
}
|
}
|