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.log.OperationRecord;
|
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.mapper.log.OperationRecordMapper;
|
import com.mzl.flower.service.BaseService;
|
import com.mzl.flower.utils.IpUtil;
|
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 javax.servlet.http.HttpServletRequest;
|
import java.io.IOException;
|
import java.util.List;
|
|
@Slf4j
|
@Service
|
@Transactional
|
public class FlowerMarkupPsService extends BaseService {
|
|
@Autowired
|
private FlowerMarkupPsMapper psMapper;
|
|
@Autowired
|
private FlowerMarkupPsSpCgMapper spCgMapper;
|
|
@Autowired
|
private FlowerMarkupPsSpMapper spMapper;
|
|
@Autowired
|
private OperationRecordMapper operationRecordMapper;
|
|
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,HttpServletRequest request) throws IOException {
|
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,request);
|
}
|
}
|
|
public void saveMarkupSpCg(FlowerMarkupPsSpCgSaveDTO dto,HttpServletRequest request) throws IOException {
|
Long cId = dto.getCategoryId();
|
FlowerMarkupPsSpCg cg = spCgMapper.selectOne(new QueryWrapper<FlowerMarkupPsSpCg>()
|
.eq("partner_id", dto.getPartnerId()).eq("category_id", cId));
|
String content = "";
|
OperationRecord operationRecord = new OperationRecord();
|
if(cg == null){
|
cg = new FlowerMarkupPsSpCg();
|
BeanUtils.copyProperties(dto, cg);
|
cg.setPartnerId(dto.getPartnerId());
|
cg.create(SecurityUtils.getUserId());
|
spCgMapper.insert(cg);
|
content = "新增商品分类加价:商品分类Id:【" + cg.getCategoryId() + "】,A级:【"+cg.getLevelA()+"】,B级:【" + cg.getLevelB() + "】,C级:【" + cg.getLevelC() + "】" +
|
",D级:【"+dto.getLevelD()+"】,E级:【" + cg.getLevelE() + "】,O级:【" + cg.getLevelO() + "】";
|
operationRecord.setFunction("新增商品分类加价");
|
} else {
|
BeanUtils.copyProperties(dto, cg);
|
cg.update(SecurityUtils.getUserId());
|
spCgMapper.updateById(cg);
|
content = "修改商品分类加价:id:【"+cg.getId()+"】,商品分类Id:【" + cg.getCategoryId() + "】,A级:【"+cg.getLevelA()+"】,B级:【" + cg.getLevelB() + "】,C级:【" + cg.getLevelC() + "】" +
|
",D级:【"+dto.getLevelD()+"】,E级:【" + cg.getLevelE() + "】,O级:【" + cg.getLevelO() + "】";
|
operationRecord.setFunction("修改商品分类加价");
|
}
|
markupCacheClient.addMarkupPsSpCg(dto.getPartnerId(), cId, cg);
|
operationRecord.setContent(content);
|
operationRecord.create(SecurityUtils.getUserId());
|
operationRecord.setStatus("success");
|
operationRecord.setModule("markup_s_p");
|
operationRecord.setIpAddress(IpUtil.getIpAddress(request));
|
operationRecordMapper.insert(operationRecord);
|
}
|
|
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,HttpServletRequest request) throws IOException {
|
FlowerMarkupPsSp sp = spMapper.selectOne(new QueryWrapper<FlowerMarkupPsSp>()
|
.eq("partner_id", dto.getPartnerId()).eq("flower_id", dto.getFlowerId()));
|
String content = "";
|
OperationRecord operationRecord = new OperationRecord();
|
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);
|
content = "新增商品加价:商品id:【" + dto.getFlowerId() + "】,合伙人id:【"+dto.getPartnerId()+"】,金额:【" + dto.getFee() + "】";
|
operationRecord.setFunction("新增商品分类加价");
|
} else {
|
sp.setFee(dto.getFee());
|
sp.update(SecurityUtils.getUserId());
|
spMapper.updateById(sp);
|
content = "修改商品加价:id:【"+sp.getId()+"】,商品id:【" + dto.getFlowerId() + "】,合伙人id:【"+dto.getPartnerId()+"】,金额:【" + dto.getFee() + "】";
|
|
}
|
|
markupCacheClient.addMarkupPsSp(dto.getPartnerId(), dto.getFlowerId(), sp);
|
operationRecord.create(SecurityUtils.getUserId());
|
operationRecord.setStatus("success");
|
operationRecord.setModule("markup_s_p");
|
operationRecord.setContent(content);
|
operationRecord.setIpAddress(IpUtil.getIpAddress(request));
|
operationRecordMapper.insert(operationRecord);
|
}
|
|
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);
|
}
|
}
|