| 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.getCategoryId(); | 
|         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); | 
|     } | 
| } |