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 selectMarkupPsList(Page page, FlowerMarkupPsQueryDTO dto){ List ls = psMapper.selectMarkupPsList(page, dto); page.setRecords(ls); return page; } public void deleteMarkupPs(Long id){ psMapper.deleteById(id); spCgMapper.delete(new QueryWrapper().eq("partner_id", id)); spMapper.delete(new QueryWrapper().eq("partner_id", id)); markupCacheClient.deleteAllPsSp(id); markupCacheClient.deleteAllPsSpCg(id); } public void saveMarkupSpCgBatch(FlowerMarkupPsSpCgBatchSaveDTO dto){ List 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() .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() .eq("partner_id", partnerId).eq("category_id", categoryId)); if(cg != null){ BeanUtils.copyProperties(cg, dto); } return dto; } public Page selectMarkupSpCgList(Page page, FlowerMarkupPsSpCgQueryDTO dto){ List ll = spCgMapper.selectMarkupSpCgList(page, dto.getPartnerId(), dto); page.setRecords(ll); return page; } public void deleteMarkupSpCg(Long partnerId, Long categoryId){ spCgMapper.delete(new QueryWrapper() .eq("partner_id", partnerId).eq("category_id", categoryId)); markupCacheClient.deleteMarkupPsSpCg(partnerId, categoryId); } public void saveMarkupSp(FlowerMarkupPsSpSaveDTO dto){ FlowerMarkupPsSp sp = spMapper.selectOne(new QueryWrapper() .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() .eq("partner_id", partnerId).eq("flower_id", flowerId)); dto.setFee(sp != null ? sp.getFee() : null); return dto; } public Page selectMarkupSpList(Page page, FlowerMarkupPsSpQueryDTO dto){ List ll = spMapper.selectMarkupSpList(page, dto.getPartnerId(), dto); page.setRecords(ll); return page; } public void deleteMarkupSp(Long partnerId, Long flowerId){ spMapper.delete(new QueryWrapper() .eq("partner_id", partnerId).eq("flower_id", flowerId)); markupCacheClient.deleteMarkupPsSp(partnerId, flowerId); } }