zxl
2025-06-11 861582390dc7c395897159077a547d3e7078727c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
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);
    }
}