package com.simuwang.manage.service.impl; import cn.hutool.core.bean.BeanUtil; import com.simuwang.base.common.support.MybatisPage; import com.simuwang.base.mapper.daq.HostedEmailInfoMapper; import com.simuwang.base.pojo.dos.ChannelInfoDO; import com.simuwang.base.pojo.dos.ChannelPageInfoDO; import com.simuwang.base.pojo.dos.HostedEmailInfoDO; import com.simuwang.base.pojo.dto.query.HostedEmailPageQuery; import com.simuwang.base.pojo.vo.ChannelPageInfoVO; import com.simuwang.base.pojo.vo.HostedEmailInfoVO; import com.simuwang.manage.service.HostedEmailService; import com.simuwang.shiro.utils.UserUtils; import com.smppw.common.pojo.ResultVo; import com.smppw.common.pojo.enums.status.ResultCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @Service public class HostedEmailServiceImpl implements HostedEmailService { @Autowired private HostedEmailInfoMapper hostedEmailInfoMapper; @Override public ResultVo saveHostEmail(HostedEmailInfoVO hostedEmailInfoVO) { ResultVo vo = new ResultVo(ResultCode.SAVE_SUCCESS.getCode()); Integer userId = UserUtils.getLoginUser().getUserId(); HostedEmailInfoDO hostedEmailInfoDO = BeanUtil.copyProperties(hostedEmailInfoVO,HostedEmailInfoDO.class); hostedEmailInfoDO.setUpdateTime(new Date()); hostedEmailInfoDO.setUpdaterId(userId); hostedEmailInfoDO.setIsvalid(1); if(hostedEmailInfoDO.getId() == null){ //判断渠道是否已经存在 HostedEmailInfoDO oldHostedEmailInfoDO = hostedEmailInfoMapper.selectHostedEmailInfoDO(hostedEmailInfoDO.getEmail()); if(oldHostedEmailInfoDO != null){ vo.setCode(ResultCode.SAVE_FAILED.getCode()); vo.setMsg("托管邮箱已经存在无需添加"); vo.setData(false); return vo; } hostedEmailInfoDO.setCreatorId(userId); hostedEmailInfoDO.setCreateTime(new Date()); hostedEmailInfoMapper.saveHostedEmailInfoDO(hostedEmailInfoDO); }else{ hostedEmailInfoMapper.updateById(hostedEmailInfoDO); } vo.setData(true); return vo; } @Override public ResultVo deleteHostEmail(List idList) { ResultVo vo = new ResultVo(ResultCode.DELETE_SUCCESS.getCode()); Integer userId = UserUtils.getLoginUser().getUserId(); hostedEmailInfoMapper.deleteHostEmail(idList,userId); vo.setData(true); return vo; } @Override public MybatisPage searchHostEmailPage(HostedEmailPageQuery hostedEmailPageQuery) { List dataList = hostedEmailInfoMapper.searchHostEmailPage(hostedEmailPageQuery); List voList = dataList.stream().filter(Objects::nonNull).map(HostedEmailInfoDO::toVO).collect(Collectors.toList()); long total = hostedEmailInfoMapper.countHostEmailPage(hostedEmailPageQuery); return MybatisPage.of(total, voList); } }