Cui Zhi Feng
2024-09-03 ea67d330a0ff2065985bb15410c5436db7f1bd15
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
package com.mzl.flower.service.flower;
 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.flower.*;
import com.mzl.flower.dto.response.flower.*;
import com.mzl.flower.entity.flower.*;
import com.mzl.flower.entity.partner.Partner;
import com.mzl.flower.mapper.flower.FlowerMarkupPsMapper;
import com.mzl.flower.mapper.flower.FlowerMarkupPsSpCgMapper;
import com.mzl.flower.mapper.flower.FlowerMarkupPsSpMapper;
import com.mzl.flower.service.BaseService;
import lombok.extern.slf4j.Slf4j;
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.List;
 
@Slf4j
@Service
@Transactional
public class FlowerMarkupPsService extends BaseService {
 
    @Autowired
    private FlowerMarkupPsMapper psMapper;
 
    @Autowired
    private FlowerMarkupPsSpCgMapper spCgMapper;
 
    @Autowired
    private FlowerMarkupPsSpMapper spMapper;
 
    public Long saveMarkupPs(FlowerMarkupPsSaveDTO dto){
        FlowerMarkupPs g = new FlowerMarkupPs();
 
        if(dto.getPartnerId() == null){
            throw new ValidationException("请选择合伙人");
        }
        Partner p =partnerMapper.selectById(dto.getPartnerId());
        g.setId(p.getId());
        g.setName(p.getName());
        g.setTel(p.getContactTel());
        g.create(SecurityUtils.getUserId());
 
        psMapper.insert(g);
 
        return g.getId();
    }
 
    public Page<FlowerMarkupPsDTO> selectMarkupPsList(Page page, FlowerMarkupPsQueryDTO dto){
        List<FlowerMarkupPsDTO> ls = psMapper.selectMarkupPsList(page, dto);
 
        page.setRecords(ls);
        return page;
    }
 
    public void deleteMarkupPs(Long id){
        psMapper.deleteById(id);
        spCgMapper.delete(new QueryWrapper<FlowerMarkupPsSpCg>().eq("partner_id", id));
        spMapper.delete(new QueryWrapper<FlowerMarkupPsSp>().eq("partner_id", id));
        markupCacheClient.deleteAllPsSp(id);
        markupCacheClient.deleteAllPsSpCg(id);
    }
 
    public void saveMarkupSpCgBatch(FlowerMarkupPsSpCgBatchSaveDTO dto){
        List<Long> categoryIds = dto.getCategoryIds();
        if(categoryIds == null || categoryIds.size() == 0){
            throw new ValidationException("分类列表不能为空");
        }
        for(Long categoryId : categoryIds) {
            FlowerMarkupPsSpCgSaveDTO cg = new FlowerMarkupPsSpCgSaveDTO();
            BeanUtils.copyProperties(dto, cg);
 
            cg.setCategoryId(categoryId);
 
            saveMarkupSpCg(cg);
        }
    }
 
    public void saveMarkupSpCg(FlowerMarkupPsSpCgSaveDTO dto){
        Long cId = dto.getCategoryId();
        FlowerMarkupPsSpCg cg = spCgMapper.selectOne(new QueryWrapper<FlowerMarkupPsSpCg>()
                .eq("partner_id", dto.getPartnerId()).eq("category_id", cId));
        if(cg == null){
            cg = new FlowerMarkupPsSpCg();
            BeanUtils.copyProperties(dto, cg);
            cg.setPartnerId(dto.getPartnerId());
            cg.create(SecurityUtils.getUserId());
            spCgMapper.insert(cg);
        } else {
            BeanUtils.copyProperties(dto, cg);
            cg.update(SecurityUtils.getUserId());
            spCgMapper.updateById(cg);
        }
        markupCacheClient.addMarkupPsSpCg(dto.getPartnerId(), cId, cg);
    }
 
    public FlowerMarkupPsSpCgDTO getMarkupSpCg(Long partnerId, Long categoryId){
        FlowerMarkupPsSpCgDTO dto = new FlowerMarkupPsSpCgDTO();
        dto.setCategoryId(categoryId);
 
        FlowerMarkupPsSpCg cg = spCgMapper.selectOne(new QueryWrapper<FlowerMarkupPsSpCg>()
                .eq("partner_id", partnerId).eq("category_id", categoryId));
        if(cg != null){
            BeanUtils.copyProperties(cg, dto);
        }
 
        return dto;
    }
 
    public Page<FlowerMarkupPsSpCgListDTO> selectMarkupSpCgList(Page page, FlowerMarkupPsSpCgQueryDTO dto){
        List<FlowerMarkupPsSpCgListDTO> ll = spCgMapper.selectMarkupSpCgList(page, dto.getPartnerId(), dto);
 
        page.setRecords(ll);
        return page;
    }
 
    public void deleteMarkupSpCg(Long partnerId, Long categoryId){
        spCgMapper.delete(new QueryWrapper<FlowerMarkupPsSpCg>()
                .eq("partner_id", partnerId).eq("category_id", categoryId));
        markupCacheClient.deleteMarkupPsSpCg(partnerId, categoryId);
    }
 
    public void saveMarkupSp(FlowerMarkupPsSpSaveDTO dto){
        FlowerMarkupPsSp sp = spMapper.selectOne(new QueryWrapper<FlowerMarkupPsSp>()
                .eq("partner_id", dto.getPartnerId()).eq("flower_id", dto.getFlowerId()));
        if(sp == null){
            sp = new FlowerMarkupPsSp();
            sp.setFlowerId(dto.getFlowerId());
            sp.setFee(dto.getFee());
            sp.setPartnerId(dto.getPartnerId());
            sp.create(SecurityUtils.getUserId());
            spMapper.insert(sp);
        } else {
            sp.setFee(dto.getFee());
            sp.update(SecurityUtils.getUserId());
            spMapper.updateById(sp);
        }
 
        markupCacheClient.addMarkupPsSp(dto.getPartnerId(), dto.getFlowerId(), sp);
    }
 
    public FlowerMarkupSpDTO getMarkupSp(Long partnerId, Long flowerId){
        FlowerMarkupSpDTO dto = new FlowerMarkupSpDTO();
        dto.setFlowerId(flowerId);
 
        FlowerMarkupPsSp sp = spMapper.selectOne(new QueryWrapper<FlowerMarkupPsSp>()
                .eq("partner_id", partnerId).eq("flower_id", flowerId));
 
        dto.setFee(sp != null ? sp.getFee() : null);
 
        return dto;
    }
 
    public Page<FlowerMarkupPsSpListDTO> selectMarkupSpList(Page page, FlowerMarkupPsSpQueryDTO dto){
        List<FlowerMarkupPsSpListDTO> ll = spMapper.selectMarkupSpList(page, dto.getPartnerId(), dto);
 
        page.setRecords(ll);
        return page;
    }
 
    public void deleteMarkupSp(Long partnerId, Long flowerId){
        spMapper.delete(new QueryWrapper<FlowerMarkupPsSp>()
                .eq("partner_id", partnerId).eq("flower_id", flowerId));
        markupCacheClient.deleteMarkupPsSp(partnerId, flowerId);
    }
}