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 implements MySubscribeService { private final MySubscribeMapper mySubscribeMapper; /** * 分页查询 * @param query * @return */ @Override public Result page(MySubscribeQuery query) { query.setUserId(UserContext.getCurrentUserId()); IPage 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 getSubscribesByUserId(String userId) { return baseMapper.getSubscribesByUserId(userId); } }