package com.cloudroam.service.impl;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cloudroam.bo.SysDictItemBO;
import com.cloudroam.common.mybatis.LinPage;
import com.cloudroam.dto.sysDict.CreateOrUpdateSysDictItemDTO;
import com.cloudroam.dto.sysDict.QuerySysDictItemDTO;
import com.cloudroam.common.enumeration.DeletedEnum;
import com.cloudroam.mapper.SysDictItemMapperCustom;
import com.cloudroam.model.SysDictItemDO;
import com.cloudroam.mapper.SysDictItemMapper;
import com.cloudroam.service.SysDictItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
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.Date;
import java.util.List;
/**
*
* 数据字典详情 服务实现类
*
*
* @author generator@TaoJie
* @since 2023-08-03
*/
@Service
public class SysDictItemServiceImpl extends ServiceImpl implements SysDictItemService {
@Autowired
private SysDictItemMapper sysDictItemMapper;
@Autowired
private SysDictItemMapperCustom sysDictItemMapperCustom;
@Override
@Transactional
public boolean deleteBySysDictId(String sysDictId) {
SysDictItemDO sysDictItemDO=new SysDictItemDO();
QueryWrapper sysDictItemDOQueryWrapper=new QueryWrapper().eq("dict_id",sysDictId);
return sysDictItemMapper.delete(sysDictItemDOQueryWrapper)>0;
}
@Override
@Transactional
public boolean createSysDictItem(CreateOrUpdateSysDictItemDTO validator) {
SysDictItemDO sysDictItemDO=new SysDictItemDO();
BeanUtils.copyProperties(validator,sysDictItemDO);
sysDictItemDO.setId(IdUtil.simpleUUID());
sysDictItemDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
sysDictItemDO.setCreateTime(new Date());
sysDictItemDO.setUpdateTime(new Date());
return sysDictItemMapper.insert(sysDictItemDO)>0;
}
@Override
public IPage getSysDictItemPage(QuerySysDictItemDTO dto) {
LinPage pager = new LinPage<>(dto.getPage(), dto.getCount());
IPage iPage;
QueryWrapper wrapper=new QueryWrapper();
if(StrUtil.isNotBlank(dto.getDictId())){
wrapper.eq("dict_id",dto.getDictId());
}
if(StrUtil.isNotBlank(dto.getLabel())){
wrapper.like("label",dto.getLabel());
}
if(StrUtil.isNotBlank(dto.getValue())){
wrapper.eq("value",dto.getValue());
}
iPage=sysDictItemMapper.selectPage(pager,wrapper);
return iPage;
}
@Override
public List getSysDictItemList(QuerySysDictItemDTO dto) {
QueryWrapper queryWrapper=new QueryWrapper();
queryWrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
if(StrUtil.isNotBlank(dto.getDictId())){
queryWrapper.eq("dict_id",dto.getDictId());
}
if(StrUtil.isNotBlank(dto.getKeyword())){
queryWrapper.and(wrapper->wrapper.like("label",dto.getKeyword()).or().like("value",dto.getKeyword()));
}
queryWrapper.orderByAsc("dict_id","sort");
/*if(StrUtil.isNotBlank(dto.getLabel())){
wrapper.like("label",dto.getLabel());
}
if(StrUtil.isNotBlank(dto.getValue())){
wrapper.eq("value",dto.getValue());
}*/
return sysDictItemMapper.selectList(queryWrapper);
}
@Override
public List getSysDictItemWithDictList(QuerySysDictItemDTO dto) {
return sysDictItemMapperCustom.selectSysDictItemWithDictList(dto.getDictId(),dto.getKeyword(),dto.getDictType());
}
@Override
public boolean existsSysDictItemByName(CreateOrUpdateSysDictItemDTO validator) {
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
wrapper.eq("dict_id",validator.getDictId());
wrapper.eq("label",validator.getLabel());
if(StrUtil.isNotBlank(validator.getId())){
wrapper.ne("id",validator.getId());
}
return sysDictItemMapper.selectList(wrapper).size()>0;
}
@Override
public boolean existsSysDictItemByValue(CreateOrUpdateSysDictItemDTO validator) {
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
wrapper.eq("dict_id",validator.getDictId());
wrapper.eq("value",validator.getValue());
if(StrUtil.isNotBlank(validator.getId())){
wrapper.ne("id",validator.getId());
}
return sysDictItemMapper.selectList(wrapper).size()>0;
}
}