package com.iailab.module.system.service.sms; import com.iailab.framework.common.pojo.PageResult; import com.iailab.module.system.controller.admin.sms.vo.log.SmsLogPageReqVO; import com.iailab.module.system.dal.dataobject.sms.SmsLogDO; import com.iailab.module.system.dal.dataobject.sms.SmsTemplateDO; import com.iailab.module.system.dal.mysql.sms.SmsLogMapper; import com.iailab.module.system.enums.sms.SmsReceiveStatusEnum; import com.iailab.module.system.enums.sms.SmsSendStatusEnum; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.Map; import java.util.Objects; /** * çŸä¿¡æ—¥å¿— Service 实现类 * * @author zzf */ @Slf4j @Service public class SmsLogServiceImpl implements SmsLogService { @Resource private SmsLogMapper smsLogMapper; @Override public Long createSmsLog(String mobile, Long userId, Integer userType, Boolean isSend, SmsTemplateDO template, String templateContent, Map<String, Object> templateParams) { SmsLogDO.SmsLogDOBuilder logBuilder = SmsLogDO.builder(); // æ ¹æ®æ˜¯å¦è¦å‘é€ï¼Œè®¾ç½®çŠ¶æ€ logBuilder.sendStatus(Objects.equals(isSend, true) ? SmsSendStatusEnum.INIT.getStatus() : SmsSendStatusEnum.IGNORE.getStatus()); // è®¾ç½®æ‰‹æœºç›¸å…³å—æ®µ logBuilder.mobile(mobile).userId(userId).userType(userType); // 设置模æ¿ç›¸å…³å—段 logBuilder.templateId(template.getId()).templateCode(template.getCode()).templateType(template.getType()); logBuilder.templateContent(templateContent).templateParams(templateParams) .apiTemplateId(template.getApiTemplateId()); // è®¾ç½®æ¸ é“ç›¸å…³å—æ®µ logBuilder.channelId(template.getChannelId()).channelCode(template.getChannelCode()); // è®¾ç½®æŽ¥æ”¶ç›¸å…³å—æ®µ logBuilder.receiveStatus(SmsReceiveStatusEnum.INIT.getStatus()); // æ’入数æ®åº“ SmsLogDO logDO = logBuilder.build(); smsLogMapper.insert(logDO); return logDO.getId(); } @Override public void updateSmsSendResult(Long id, Boolean success, String apiSendCode, String apiSendMsg, String apiRequestId, String apiSerialNo) { SmsSendStatusEnum sendStatus = success ? SmsSendStatusEnum.SUCCESS : SmsSendStatusEnum.FAILURE; smsLogMapper.updateById(SmsLogDO.builder().id(id) .sendStatus(sendStatus.getStatus()).sendTime(LocalDateTime.now()) .apiSendCode(apiSendCode).apiSendMsg(apiSendMsg) .apiRequestId(apiRequestId).apiSerialNo(apiSerialNo).build()); } @Override public void updateSmsReceiveResult(Long id, Boolean success, LocalDateTime receiveTime, String apiReceiveCode, String apiReceiveMsg) { SmsReceiveStatusEnum receiveStatus = Objects.equals(success, true) ? SmsReceiveStatusEnum.SUCCESS : SmsReceiveStatusEnum.FAILURE; smsLogMapper.updateById(SmsLogDO.builder().id(id).receiveStatus(receiveStatus.getStatus()) .receiveTime(receiveTime).apiReceiveCode(apiReceiveCode).apiReceiveMsg(apiReceiveMsg).build()); } @Override public PageResult<SmsLogDO> getSmsLogPage(SmsLogPageReqVO pageReqVO) { return smsLogMapper.selectPage(pageReqVO); } }