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.bo.ContactInfoBO;
import com.cloudroam.common.LocalUser;
import com.cloudroam.dto.contact.CreateOrUpdateContactDTO;
import com.cloudroam.dto.contact.QueryContactDTO;
import com.cloudroam.common.enumeration.DeletedEnum;
import com.cloudroam.mapper.ContactInfoMapperCustom;
import com.cloudroam.model.*;
import com.cloudroam.mapper.ContactInfoMapper;
import com.cloudroam.service.ContactInfoService;
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-08
*/
@Service
public class ContactInfoServiceImpl extends ServiceImpl implements ContactInfoService {
@Autowired
private ContactInfoMapperCustom contactInfoMapperCustom;
@Override
@Transactional
public List getContactList(QueryContactDTO dto) {
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("is_deleted", DeletedEnum.DELETED_NO.getCode());
if(StrUtil.isNotBlank(dto.getCompanyId())){
wrapper.eq("company_id",dto.getCompanyId());
}
if(StrUtil.isNotBlank(dto.getName())){
wrapper.like("name",dto.getName());
}
if(StrUtil.isNotBlank(dto.getPhone())){
wrapper.like("phone",dto.getPhone());
}
if(StrUtil.isNotBlank(dto.getTitle())){
wrapper.like("title",dto.getTitle());
}
return this.baseMapper.selectList(wrapper);
}
@Override
public IPage getContactInfoPage(QueryContactDTO dto) {
Page page=new Page(dto.getPage(),dto.getCount());
return contactInfoMapperCustom.getContactInfoPage(page,dto.getKeyword());
}
@Override
@Transactional
public boolean removeByIdLogic(String id) {
UserDO user = LocalUser.getLocalUser();
ContactInfoDO contactInfoDO=new ContactInfoDO();
contactInfoDO.setId(id);
contactInfoDO.setIsDeleted(DeletedEnum.DELETED_YES.getCode());
contactInfoDO.setDeleteTime(new Date());
contactInfoDO.setDeleteUserId(String.valueOf(user.getId()));
contactInfoDO.setDeleteUserName(user.getNickname());
return baseMapper.updateById(contactInfoDO)>0;
}
@Override
@Transactional
public boolean updateContactInfo(CreateOrUpdateContactDTO validator) {
UserDO user = LocalUser.getLocalUser();
ContactInfoDO contactInfoDO=new ContactInfoDO();
BeanUtils.copyProperties(validator,contactInfoDO);
contactInfoDO.setCreateTime(new Date());
contactInfoDO.setCreateUserId(String.valueOf(user.getId()));
contactInfoDO.setCreateUserName(user.getNickname());
contactInfoDO.setUpdateTime(new Date());
contactInfoDO.setUpdateUserId(String.valueOf(user.getId()));
contactInfoDO.setUpdateUserName(user.getNickname());
contactInfoDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
return baseMapper.updateById(contactInfoDO)>0;
}
@Override
@Transactional
public boolean CreateContactInfo(CreateOrUpdateContactDTO validator) {
UserDO user = LocalUser.getLocalUser();
ContactInfoDO contactInfoDO=new ContactInfoDO();
BeanUtils.copyProperties(validator,contactInfoDO);
contactInfoDO.setId(IdUtil.simpleUUID());
contactInfoDO.setCreateTime(new Date());
contactInfoDO.setCreateUserId(String.valueOf(user.getId()));
contactInfoDO.setCreateUserName(user.getNickname());
contactInfoDO.setUpdateTime(new Date());
contactInfoDO.setUpdateUserId(String.valueOf(user.getId()));
contactInfoDO.setUpdateUserName(user.getNickname());
contactInfoDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
return baseMapper.insert(contactInfoDO)>0;
}
}