package com.fdkankan.fusion.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.fdkankan.fusion.common.ResultCode;
import com.fdkankan.fusion.entity.FusionMeter;
import com.fdkankan.fusion.entity.Model;
import com.fdkankan.fusion.exception.BusinessException;
import com.fdkankan.fusion.entity.CaseView;
import com.fdkankan.fusion.mapper.ICaseViewMapper;
import com.fdkankan.fusion.service.ICaseViewService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.fusion.service.IModelService;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Case;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
*
* 服务实现类
*
*
* @author
* @since 2022-08-02
*/
@Service
public class CaseViewServiceImpl extends ServiceImpl implements ICaseViewService {
@Override
public List allList(Integer caseId,Integer fusionId, String num,String smallImgH, String smallImgW){
if(caseId == null && StringUtils.isEmpty(num) && fusionId == null){
throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
}
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
if(caseId != null){
wrapper.eq(CaseView::getCaseId,caseId);
}
if(StringUtils.isNotBlank(num)){
wrapper.eq(CaseView::getNum,num);
}
if(fusionId!=null){
wrapper.eq(CaseView::getFusionId,fusionId);
}
wrapper.eq(CaseView::getBindHide,0);
wrapper.orderByAsc(CaseView::getSort);
wrapper.orderByDesc(CaseView::getCreateTime);
List list = list(wrapper);
list.forEach(entity ->entity.setViewImgSmall(String.format(entity.getViewImgSmall(),smallImgH,smallImgW )));
return list;
}
@Override
public CaseView add(CaseView caseView) {
if(caseView.getCaseId() == null || ((StringUtils.isEmpty(caseView.getNum()) || caseView.getNumType() == null) && caseView.getFusionId() == null)
|| StringUtils.isEmpty(caseView.getViewImg()) || StringUtils.isEmpty(caseView.getViewTitle())
|| StringUtils.isEmpty(caseView.getViewPoint())) {
throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
}
String ImageSmall = caseView.getViewImg() ;
caseView.setViewImgSmall(ImageSmall);
this.save(caseView);
return caseView;
}
@Override
public void updateNameOrSort(CaseView caseView) {
if(caseView.getViewId() == null || (caseView.getSort() == null && StringUtils.isEmpty(caseView.getViewTitle()))) {
throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
}
LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(CaseView::getViewId,caseView.getViewId());
if(caseView.getSort() != null){
updateWrapper.set(CaseView::getSort,caseView.getSort());
}
if(StringUtils.isNotBlank(caseView.getViewTitle())){
updateWrapper.set(CaseView::getViewTitle,caseView.getViewTitle());
}
this.update(updateWrapper);
}
@Override
public void deleteByNumList(Integer caseId, List delNumList,Integer type) {
if(delNumList.size()<=0){
return;
}
LambdaQueryWrapper queryW = new LambdaQueryWrapper<>();
queryW.eq(CaseView::getCaseId,caseId);
queryW.in(CaseView::getNum,delNumList);
queryW.eq(CaseView::getNumType,type);
this.remove(queryW);
}
@Override
public void deleteByCaseId(Integer caseId) {
LambdaQueryWrapper queryW = new LambdaQueryWrapper<>();
queryW.eq(CaseView::getCaseId,caseId);
this.remove(queryW);
}
@Override
public void deleteByNum(String num) {
LambdaQueryWrapper queryW = new LambdaQueryWrapper<>();
queryW.eq(CaseView::getNum,num);
this.remove(queryW);
}
@Override
public void hideOrShow(String num,Integer hide) {
LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(CaseView::getNum,num);
wrapper.set(CaseView::getBindHide,hide);
this.update(wrapper);
}
@Override
public List getByCaseId(Integer oldCaseId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseView::getCaseId,oldCaseId);
return this.list(wrapper);
}
@Override
public List getByFusionId(Integer oldFusionId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseView::getFusionId,oldFusionId);
return this.list(wrapper);
}
}