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.common.LocalUser;
import com.cloudroam.common.mybatis.LinPage;
import com.cloudroam.dto.sysDict.CreateOrUpdateSysDictDTO;
import com.cloudroam.dto.sysDict.QuerySysDictDTO;
import com.cloudroam.common.enumeration.DeletedEnum;
import com.cloudroam.model.SysDictDO;
import com.cloudroam.mapper.SysDictMapper;
import com.cloudroam.model.UserDO;
import com.cloudroam.service.SysDictService;
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 SysDictServiceImpl extends ServiceImpl implements SysDictService {
@Autowired
private SysDictMapper sysDictMapper;
@Override
@Transactional
public boolean createSysDict(CreateOrUpdateSysDictDTO validator) {
UserDO user = LocalUser.getLocalUser();
SysDictDO sysDictDO=new SysDictDO();
sysDictDO.setId(IdUtil.simpleUUID());
BeanUtils.copyProperties(validator,sysDictDO);
sysDictDO.setCreateTime(new Date());
sysDictDO.setUpdateTime(new Date());
sysDictDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
return sysDictMapper.insert(sysDictDO)>0;
}
@Override
@Transactional
public boolean updateSysDict(SysDictDO sysDictDO, CreateOrUpdateSysDictDTO validator) {
sysDictDO.setName(validator.getName());
sysDictDO.setRemark(validator.getRemark());
sysDictDO.setUpdateTime(new Date());
return sysDictMapper.updateById(sysDictDO)>0;
}
@Override
public IPage getSysDictPage(QuerySysDictDTO dto) {
LinPage pager = new LinPage<>(dto.getPage(), dto.getCount());
IPage iPage;
QueryWrapper sysDictDOQueryWrapper=new QueryWrapper();
sysDictDOQueryWrapper.eq("is_deleted",false);
if(StrUtil.isNotBlank(dto.getName())){
sysDictDOQueryWrapper.like("name",dto.getName());
}
if(StrUtil.isNotBlank(dto.getRemark())){
sysDictDOQueryWrapper.like("remark",dto.getRemark());
}
iPage=sysDictMapper.selectPage(pager,sysDictDOQueryWrapper);
return iPage;
}
@Override
public List getSysDictList(QuerySysDictDTO dto) {
QueryWrapper sysDictDOQueryWrapper=new QueryWrapper();
sysDictDOQueryWrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
if(StrUtil.isNotBlank(dto.getKeyword())){
sysDictDOQueryWrapper.and(wrapper->wrapper.like("name",dto.getKeyword()).or().like("remark",dto.getKeyword()));
}
/*if(StrUtil.isNotBlank(dto.getName())){
sysDictDOQueryWrapper.like("name",dto.getName());
}
if(StrUtil.isNotBlank(dto.getRemark())){
sysDictDOQueryWrapper.like("remark",dto.getRemark());
}*/
return sysDictMapper.selectList(sysDictDOQueryWrapper);
}
@Override
public boolean existsSysDictName(CreateOrUpdateSysDictDTO validator) {
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
wrapper.eq("name",validator.getName());
if(StrUtil.isNotBlank(validator.getId())){
wrapper.ne("id",validator.getId());
}
return sysDictMapper.selectList(wrapper).size()>0;
}
}