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.security.SecurityUtils; import com.mzl.flower.dto.request.flower.*; import com.mzl.flower.dto.response.flower.FlowerMarkupSpDTO; import com.mzl.flower.dto.response.flower.FlowerMarkupSpListDTO; import com.mzl.flower.entity.flower.FlowerMarkupSp; import com.mzl.flower.entity.partner.Partner; import com.mzl.flower.mapper.flower.FlowerMarkupSpMapper; import com.mzl.flower.service.BaseService; import lombok.extern.slf4j.Slf4j; 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 FlowerMarkupSpService extends BaseService { @Autowired private FlowerMarkupSpMapper spMapper; public void saveMarkupSp(FlowerMarkupSpSaveDTO dto){ FlowerMarkupSp sp = spMapper.selectOne(new QueryWrapper() .eq("partner_id", dto.getPartnerId()).eq("flower_id", dto.getFlowerId())); if(sp == null){ sp = new FlowerMarkupSp(); 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.addMarkupSp(dto.getPartnerId(), dto.getFlowerId(), sp); } public void saveMarkupSpBatch(FlowerMarkupSpSaveBatchDTO dto){ List flowerIds = dto.getFlowerIds(); if(flowerIds != null && flowerIds.size() > 0){ for(Long flowerId : flowerIds){ FlowerMarkupSpSaveDTO dt = new FlowerMarkupSpSaveDTO(); dt.setFlowerId(flowerId); dt.setPartnerId(dto.getPartnerId()); dt.setFee(dto.getFee()); saveMarkupSp(dt); } } } public FlowerMarkupSpDTO getMarkupSp(Long flowerId){ FlowerMarkupSpDTO dto = new FlowerMarkupSpDTO(); dto.setFlowerId(flowerId); Partner s = getCurrentPartner(); Long sId = s.getId(); FlowerMarkupSp sp = spMapper.selectOne(new QueryWrapper() .eq("partner_id", sId).eq("flower_id", flowerId)); dto.setFee(sp != null ? sp.getFee() : null); return dto; } public Page selectMarkupSpFlowerList(Page page, FlowerMarkupSpQueryDTO dto){ List ll = spMapper.selectMarkupSpFlowerList(page, dto.getPartnerId(), dto); if(ll != null && ll.size() > 0){ for(FlowerMarkupSpListDTO ss : ll){ ss.setPrice(getFinalPriceForPartner(dto.getPartnerId(), ss.getCategory(), ss.getFlowerId(), ss.getPrice(), ss.getLevel())); } } page.setRecords(ll); return page; } public Page selectMarkupSpList(Page page, FlowerMarkupSpQueryDTO dto){ List ll = spMapper.selectMarkupSpList(page, dto.getPartnerId(), dto); if(ll != null && ll.size() > 0){ for(FlowerMarkupSpListDTO ss : ll){ ss.setPrice(getFinalPriceForPartner(dto.getPartnerId(), ss.getCategory(), ss.getFlowerId(), ss.getPrice(), ss.getLevel())); } } page.setRecords(ll); return page; } public void deleteMarkupSp(Long flowerId){ Partner s = getCurrentPartner(); Long sId = s.getId(); spMapper.delete(new QueryWrapper() .eq("partner_id", sId).eq("flower_id", flowerId)); markupCacheClient.deleteMarkupSp(sId, flowerId); } }