package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.http.HttpStatus;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.core.page.PagePlus;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.oa.domain.bo.DevPeripheralUnitBo;
import com.ruoyi.oa.domain.vo.DevPeripheralUnitVo;
import com.ruoyi.oa.domain.DevPeripheralUnit;
import com.ruoyi.oa.mapper.DevPeripheralUnitMapper;
import com.ruoyi.oa.service.IDevPeripheralUnitService;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 外设å•å…ƒService业务层处ç†
*
* @author ruoyi
* @date 2021-12-06
*/
@Service
public class DevPeripheralUnitServiceImpl extends ServicePlusImpl<DevPeripheralUnitMapper, DevPeripheralUnit, DevPeripheralUnitVo> implements IDevPeripheralUnitService {
@Override
public DevPeripheralUnitVo queryById(Long id){
return getVoById(id);
}
@Override
public TableDataInfo<DevPeripheralUnitVo> queryPageList(DevPeripheralUnitBo bo) {
PagePlus<DevPeripheralUnit, DevPeripheralUnitVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
return PageUtils.buildDataInfo(result);
}
@Override
public List<DevPeripheralUnitVo> queryList(DevPeripheralUnitBo bo) {
return listVo(buildQueryWrapper(bo));
}
private LambdaQueryWrapper<DevPeripheralUnit> buildQueryWrapper(DevPeripheralUnitBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<DevPeripheralUnit> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getCode()), DevPeripheralUnit::getCode, bo.getCode());
lqw.like(StringUtils.isNotBlank(bo.getName()), DevPeripheralUnit::getName, bo.getName());
lqw.like(StringUtils.isNotBlank(bo.getModel()), DevPeripheralUnit::getModel, bo.getModel());
lqw.like(StringUtils.isNotBlank(bo.getManufacturer()), DevPeripheralUnit::getManufacturer, bo.getManufacturer());
lqw.like(StringUtils.isNotBlank(bo.getVendorCode()), DevPeripheralUnit::getVendorCode, bo.getVendorCode());
lqw.eq(StringUtils.isNotBlank(bo.getBaudRate()), DevPeripheralUnit::getBaudRate, bo.getBaudRate());
return lqw;
}
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(DevPeripheralUnitBo bo) {
List<DevPeripheralUnit> list = baseMapper.selectList(new QueryWrapper<DevPeripheralUnit>().lambda()
.eq(DevPeripheralUnit::getVendorCode, bo.getVendorCode()));
if (list.size() > 0) {
throw new ServiceException("厂商代ç é‡å¤", HttpStatus.HTTP_PARTIAL);
}
DevPeripheralUnit add = BeanUtil.toBean(bo, DevPeripheralUnit.class);
add.setVendorCode(add.getManufacturer());
validEntityBeforeSave(add);
boolean flag = save(add);
if (flag) {
bo.setId(add.getId());
}
return flag;
}
@Override
public Boolean updateByBo(DevPeripheralUnitBo bo) {
DevPeripheralUnit update = BeanUtil.toBean(bo, DevPeripheralUnit.class);
update.setVendorCode(update.getManufacturer());
validEntityBeforeSave(update);
return updateById(update);
}
/**
* ä¿å˜å‰çš„æ•°æ®æ ¡éªŒ
*
* @param entity 实体类数æ®
*/
private void validEntityBeforeSave(DevPeripheralUnit entity){
//TODO åšä¸€äº›æ•°æ®æ ¡éªŒ,如唯一约æŸ
}
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO åšä¸€äº›ä¸šåŠ¡ä¸Šçš„æ ¡éªŒ,åˆ¤æ–æ˜¯å¦éœ€è¦æ ¡éªŒ
}
return removeByIds(ids);
}
}