fix: 修改邮件模板是否默认问题
This commit is contained in:
parent
f748a66db3
commit
f5d535a3fb
|
@ -36,4 +36,9 @@ public class EmailTemplateAddDto {
|
|||
|
||||
@Schema(name = "type", title = "邮件类型")
|
||||
private String type;
|
||||
|
||||
@Schema(name = "isDefault", title = "是否默认")
|
||||
@NotNull(message = "是否默认不能为空")
|
||||
private Boolean isDefault;
|
||||
|
||||
}
|
||||
|
|
|
@ -24,5 +24,9 @@ public class EmailTemplateDto {
|
|||
|
||||
@Schema(name = "type", title = "邮件类型")
|
||||
private String type;
|
||||
|
||||
@Schema(name = "isDefault", title = "是否默认")
|
||||
private Boolean isDefault;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -40,4 +40,9 @@ public class EmailTemplateUpdateDto {
|
|||
|
||||
@Schema(name = "type", title = "邮件类型")
|
||||
private String type;
|
||||
|
||||
@Schema(name = "isDefault", title = "是否默认")
|
||||
@NotNull(message = "是否默认不能为空")
|
||||
private Boolean isDefault;
|
||||
|
||||
}
|
|
@ -35,6 +35,9 @@ public class EmailTemplateVo extends BaseUserVo {
|
|||
@Schema(name = "type", title = "邮件类型")
|
||||
private String type;
|
||||
|
||||
@Schema(name = "summary", title = "邮件类型详情")
|
||||
private String summary;
|
||||
|
||||
@Schema(name = "isDefault", title = "是否默认")
|
||||
private Boolean isDefault;
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@ import cn.bunny.dao.pojo.result.ResultCodeEnum;
|
|||
import cn.bunny.dao.vo.system.email.EmailTemplateVo;
|
||||
import cn.bunny.services.mapper.EmailTemplateMapper;
|
||||
import cn.bunny.services.service.EmailTemplateService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -18,11 +19,9 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|||
import jakarta.validation.Valid;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
@ -33,6 +32,7 @@ import java.util.Map;
|
|||
* @since 2024-10-10 21:24:08
|
||||
*/
|
||||
@Service
|
||||
@Transactional
|
||||
public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, EmailTemplate> implements EmailTemplateService {
|
||||
|
||||
/**
|
||||
|
@ -45,9 +45,22 @@ public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, E
|
|||
@Override
|
||||
public PageResult<EmailTemplateVo> getEmailTemplateList(Page<EmailTemplate> pageParams, EmailTemplateDto dto) {
|
||||
IPage<EmailTemplateVo> page = baseMapper.selectListByPage(pageParams, dto);
|
||||
List<EmailTemplateVo> emailTemplateVos = page.getRecords().stream()
|
||||
.map(emailTemplateVo -> {
|
||||
EmailTemplateVo vo = new EmailTemplateVo();
|
||||
BeanUtils.copyProperties(emailTemplateVo, vo);
|
||||
|
||||
// 查找枚举内容并设置详情
|
||||
List<EmailTemplateEnums> emailTemplateEnums = Arrays.stream(EmailTemplateEnums.values())
|
||||
.filter(enums -> enums.getType().equals(vo.getType()))
|
||||
.toList();
|
||||
vo.setSummary(emailTemplateEnums.get(0).getSummary());
|
||||
return vo;
|
||||
})
|
||||
.toList();
|
||||
|
||||
return PageResult.<EmailTemplateVo>builder()
|
||||
.list(page.getRecords())
|
||||
.list(emailTemplateVos)
|
||||
.pageNo(page.getCurrent())
|
||||
.pageSize(page.getSize())
|
||||
.total(page.getTotal())
|
||||
|
@ -61,9 +74,28 @@ public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, E
|
|||
*/
|
||||
@Override
|
||||
public void addEmailTemplate(@Valid EmailTemplateAddDto dto) {
|
||||
String type = dto.getType();
|
||||
|
||||
// 保存数据
|
||||
EmailTemplate emailTemplate = new EmailTemplate();
|
||||
BeanUtils.copyProperties(dto, emailTemplate);
|
||||
|
||||
// 判断当前类型是否已有默认,如果是不设置为默认直接保存
|
||||
if (!dto.getIsDefault()) {
|
||||
save(emailTemplate);
|
||||
return;
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<EmailTemplate> emailTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
emailTemplateLambdaQueryWrapper.eq(EmailTemplate::getType, type);
|
||||
emailTemplateLambdaQueryWrapper.eq(EmailTemplate::getIsDefault, Boolean.TRUE);
|
||||
List<EmailTemplate> emailTemplateList = list(emailTemplateLambdaQueryWrapper);
|
||||
|
||||
// 更新列表
|
||||
List<EmailTemplate> updateList = emailTemplateList.stream().map(template -> template.setIsDefault(false)).toList();
|
||||
if (!updateList.isEmpty()) {
|
||||
updateBatchById(updateList);
|
||||
}
|
||||
save(emailTemplate);
|
||||
}
|
||||
|
||||
|
@ -74,6 +106,8 @@ public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, E
|
|||
*/
|
||||
@Override
|
||||
public void updateEmailTemplate(@Valid EmailTemplateUpdateDto dto) {
|
||||
String type = dto.getType();
|
||||
|
||||
// 查询是否有这个模板
|
||||
List<EmailTemplate> emailTemplateList = list(Wrappers.<EmailTemplate>lambdaQuery().eq(EmailTemplate::getId, dto.getId()));
|
||||
if (emailTemplateList.isEmpty()) throw new AuthCustomerException(ResultCodeEnum.DATA_NOT_EXIST);
|
||||
|
@ -81,7 +115,21 @@ public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, E
|
|||
// 更新内容
|
||||
EmailTemplate emailTemplate = new EmailTemplate();
|
||||
BeanUtils.copyProperties(dto, emailTemplate);
|
||||
updateById(emailTemplate);
|
||||
|
||||
// 判断当前类型是否已有默认,如果是不设置为默认直接保存
|
||||
List<EmailTemplate> updateList = new ArrayList<>();
|
||||
if (dto.getIsDefault()) {
|
||||
LambdaQueryWrapper<EmailTemplate> emailTemplateLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
emailTemplateLambdaQueryWrapper.eq(EmailTemplate::getType, type);
|
||||
emailTemplateLambdaQueryWrapper.eq(EmailTemplate::getIsDefault, Boolean.TRUE);
|
||||
|
||||
// 更新数据列表
|
||||
List<EmailTemplate> checkEmailTemplateList = list(emailTemplateLambdaQueryWrapper);
|
||||
updateList = new ArrayList<>(checkEmailTemplateList.stream().map(template -> template.setIsDefault(false)).toList());
|
||||
}
|
||||
|
||||
updateList.add(emailTemplate);
|
||||
updateBatchById(updateList);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -112,3 +160,4 @@ public class EmailTemplateServiceImpl extends ServiceImpl<EmailTemplateMapper, E
|
|||
}).toList();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,6 +46,9 @@
|
|||
<if test="dto.type != null and dto.type != ''">
|
||||
and template.type like CONCAT('%',#{dto.type},'%')
|
||||
</if>
|
||||
<if test="dto.isDefault != null and dto.isDefault != ''">
|
||||
and template.isDefault = #{dto.isDefault}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
|
|
Loading…
Reference in New Issue