陶杰
2024-08-22 ee9032d9baf5f33e376d2d2699136e0a7b26bec7
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
package com.mzl.flower.service.customer;
 
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mzl.flower.config.exception.ValidationException;
import com.mzl.flower.config.security.SecurityUtils;
import com.mzl.flower.dto.request.customer.CreateFollowDTO;
import com.mzl.flower.dto.response.customer.FollowDTO;
import com.mzl.flower.entity.customer.Follow;
import com.mzl.flower.mapper.customer.FollowMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.List;
 
@Service
@Transactional
public class FollowService {
 
    private final FollowMapper followMapper;
 
    public FollowService(FollowMapper followMapper) {
        this.followMapper = followMapper;
    }
 
    public void add(CreateFollowDTO dto) {
        String userId = SecurityUtils.getUserId();
        Follow follow = followMapper.selectOne(new LambdaQueryWrapper<Follow>()
                .eq(Follow::getUserId, userId)
                .eq(Follow::getSupplierId, dto.getSupplierId()));
        if(follow==null){
            follow = new Follow();
            follow.setUserId(userId);
            follow.setSupplierId(dto.getSupplierId());
            follow.create(userId);
            followMapper.insert(follow);
        }
    }
 
    public void delete(Long supplierId) {
        followMapper.delete(new LambdaQueryWrapper<Follow>()
                .eq(Follow::getSupplierId, supplierId)
                .eq(Follow::getUserId, SecurityUtils.getUserId()));
    }
 
    public Page<FollowDTO> myFollow(Page page, String userId) {
        List<FollowDTO> list= followMapper.myFollow(page,userId);
        page.setRecords(list);
        return page;
    }
 
    public Boolean followed(String userId, Long supplierId)  {
        int count = followMapper.selectCount(new LambdaQueryWrapper<Follow>()
                .eq(Follow::getUserId, userId)
                .eq(Follow::getSupplierId, supplierId));
        if(count>0){
            return true;
        }
        return false;
    }
}