package com.cloudroam.service.impl;
import cn.hutool.core.util.IdUtil;
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.EmailTaskSettingBO;
import com.cloudroam.common.LocalUser;
import com.cloudroam.dto.emailTask.CreateOrUpdateEmailTaskDTO;
import com.cloudroam.dto.emailTask.QueryEmailTaskDTO;
import com.cloudroam.common.enumeration.DeletedEnum;
import com.cloudroam.common.enumeration.EmailTaskTagEnum;
import com.cloudroam.mapper.EmailTaskSettingMapperCustom;
import com.cloudroam.model.EmailSmtpSettingDO;
import com.cloudroam.model.EmailTaskSettingDO;
import com.cloudroam.mapper.EmailTaskSettingMapper;
import com.cloudroam.model.UserDO;
import com.cloudroam.service.EmailTaskSettingService;
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-15
*/
@Service
public class EmailTaskSettingServiceImpl extends ServiceImpl implements EmailTaskSettingService {
@Autowired
private EmailTaskSettingMapperCustom emailTaskSettingMapperCustom;
@Override
public EmailTaskSettingDO getEmailTaskSettingByTag(EmailTaskTagEnum emailTaskTagEnum) {
QueryWrapper wrapper = new QueryWrapper<>();
if(null!=emailTaskTagEnum){
wrapper.eq("task_tag",emailTaskTagEnum.getCode());
}
List emailTaskSettingDOS = this.baseMapper.selectList(wrapper);
if(null!=emailTaskSettingDOS && emailTaskSettingDOS.size()>0){
return emailTaskSettingDOS.get(0);
}
return null;
}
@Override
@Transactional
public boolean createEmailTask(CreateOrUpdateEmailTaskDTO validator) {
UserDO user = LocalUser.getLocalUser();
EmailTaskSettingDO emailTaskSettingDO=new EmailTaskSettingDO();
BeanUtils.copyProperties(validator,emailTaskSettingDO);
emailTaskSettingDO.setId(IdUtil.simpleUUID());
emailTaskSettingDO.setCreateTime(new Date());
emailTaskSettingDO.setCreateUserId(String.valueOf(user.getId()));
emailTaskSettingDO.setCreateUserName(user.getNickname());
emailTaskSettingDO.setUpdateTime(new Date());
emailTaskSettingDO.setUpdateUserId(String.valueOf(user.getId()));
emailTaskSettingDO.setUpdateUserName(user.getNickname());
emailTaskSettingDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
return baseMapper.insert(emailTaskSettingDO)>0;
}
@Override
@Transactional
public boolean updateEmailTaskSetting(CreateOrUpdateEmailTaskDTO validator) {
UserDO user = LocalUser.getLocalUser();
EmailTaskSettingDO emailTaskSettingDO=new EmailTaskSettingDO();
BeanUtils.copyProperties(validator,emailTaskSettingDO);
emailTaskSettingDO.setCreateTime(new Date());
emailTaskSettingDO.setCreateUserId(String.valueOf(user.getId()));
emailTaskSettingDO.setCreateUserName(user.getNickname());
emailTaskSettingDO.setUpdateTime(new Date());
emailTaskSettingDO.setUpdateUserId(String.valueOf(user.getId()));
emailTaskSettingDO.setUpdateUserName(user.getNickname());
emailTaskSettingDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
return baseMapper.updateById(emailTaskSettingDO)>0;
}
@Override
@Transactional
public boolean removeByIdLogic(String id) {
UserDO user = LocalUser.getLocalUser();
EmailTaskSettingDO emailTaskSettingDO=new EmailTaskSettingDO();
emailTaskSettingDO.setId(id);
emailTaskSettingDO.setIsDeleted(DeletedEnum.DELETED_YES.getCode());
emailTaskSettingDO.setDeleteTime(new Date());
emailTaskSettingDO.setDeleteUserId(String.valueOf(user.getId()));
emailTaskSettingDO.setDeleteUserName(user.getNickname());
return baseMapper.updateById(emailTaskSettingDO)>0;
}
@Override
public IPage getEmailTaskSettingPage(QueryEmailTaskDTO dto) {
Page page = new Page(dto.getPage(), dto.getCount());
return emailTaskSettingMapperCustom.getEmailTaskSettingPage(page, dto.getKeyword(),
dto.getTaskName(),dto.getTaskStopFlag(), dto.getTaskHour(),dto.getTaskDesc());
}
}