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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cloudroam.common.LocalUser;
import com.cloudroam.dto.company.CreateOrUpdateCompanyInfoDTO;
import com.cloudroam.dto.company.QueryCompanyDTO;
import com.cloudroam.common.enumeration.DeletedEnum;
import com.cloudroam.mapper.CompanyInfoMapperCustom;
import com.cloudroam.model.CompanyInfoDO;
import com.cloudroam.mapper.CompanyInfoMapper;
import com.cloudroam.model.UserDO;
import com.cloudroam.service.CompanyInfoService;
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 java.util.Date;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author generator@TaoJie
* @since 2023-08-08
*/
@Service
public class CompanyInfoServiceImpl extends ServiceImpl implements CompanyInfoService {
@Autowired
private CompanyInfoMapperCustom companyInfoMapperCustom;
@Override
public List getCompanyList(QueryCompanyDTO dto) {
CompanyInfoDO companyInfoDO=new CompanyInfoDO();
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted", DeletedEnum.DELETED_NO.getCode());
if(StrUtil.isNotBlank(dto.getShortName())){
wrapper.like("short_name",dto.getShortName());
}
if(StrUtil.isNotBlank(dto.getName())){
wrapper.like("name",dto.getName());
}
if(StrUtil.isNotBlank(dto.getAddress())){
wrapper.like("address",dto.getAddress());
}
return this.baseMapper.selectList(wrapper);
}
@Override
public IPage getCompanyPage(QueryCompanyDTO dto) {
/*LinPage pager = new LinPage<>(dto.getPage(), dto.getCount());
QueryWrapper queryWrapper=new QueryWrapper<>();
queryWrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
if(StrUtil.isNotBlank(dto.getKeyword())){
queryWrapper.and(wrapper ->
wrapper.like("name", dto.getKeyword())
.or()
.like("short_name", dto.getKeyword())
.or()
.like("address", dto.getKeyword())
);
}
queryWrapper.orderByDesc("create_time");
return this.baseMapper.selectPage(pager,queryWrapper);*/
Page page=new Page(dto.getPage(),dto.getCount());
return companyInfoMapperCustom.getCompanyInfoPage(page,dto.getKeyword());
}
@Override
public boolean removeByIdLogic(String id) {
UserDO user = LocalUser.getLocalUser();
CompanyInfoDO companyInfoDO=new CompanyInfoDO();
companyInfoDO.setId(id);
companyInfoDO.setIsDeleted(DeletedEnum.DELETED_YES.getCode());
companyInfoDO.setDeleteTime(new Date());
companyInfoDO.setDeleteUserId(String.valueOf(user.getId()));
companyInfoDO.setDeleteUserName(user.getNickname());
return this.baseMapper.updateById(companyInfoDO)>0;
}
@Override
public boolean createCompanyInfo(CreateOrUpdateCompanyInfoDTO validator) {
UserDO user = LocalUser.getLocalUser();
CompanyInfoDO companyInfoDO=new CompanyInfoDO();
BeanUtils.copyProperties(validator,companyInfoDO);
companyInfoDO.setId(IdUtil.simpleUUID());
companyInfoDO.setCreateTime(new Date());
companyInfoDO.setCreateUserId(String.valueOf(user.getId()));
companyInfoDO.setCreateUserName(user.getNickname());
companyInfoDO.setUpdateTime(new Date());
companyInfoDO.setUpdateUserId(String.valueOf(user.getId()));
companyInfoDO.setUpdateUserName(user.getNickname());
companyInfoDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
return baseMapper.insert(companyInfoDO)>0;
}
@Override
public boolean updateCompanyInfo(CreateOrUpdateCompanyInfoDTO validator) {
UserDO user = LocalUser.getLocalUser();
CompanyInfoDO companyInfoDO=new CompanyInfoDO();
BeanUtils.copyProperties(validator,companyInfoDO);
companyInfoDO.setUpdateTime(new Date());
companyInfoDO.setUpdateUserId(String.valueOf(user.getId()));
companyInfoDO.setUpdateUserName(user.getNickname());
companyInfoDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
return baseMapper.updateById(companyInfoDO)>0;
}
}