diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsInitConfig.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsInitConfig.java new file mode 100644 index 0000000..3d157dc --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsInitConfig.java @@ -0,0 +1,32 @@ +package com.schisandra.auth.application.config; + +import com.schisandra.auth.application.convert.SchisandraSmsConfigDTOConvert; +import com.schisandra.auth.application.dto.SchisandraSmsConfigDTO; +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.domain.service.SchisandraSmsConfigDomainService; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import org.dromara.sms4j.core.factory.SmsFactory; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.context.event.EventListener; + +import javax.annotation.Resource; +import java.util.List; +@Configuration +public class SmsInitConfig { + @Resource + SmsReadConfig smsReadConfig; + @Resource + SchisandraSmsConfigDomainService schisandraSmsConfigDomainService; + @EventListener + public void init(ContextRefreshedEvent event){ + List SchisandraSmsConfigBOs= schisandraSmsConfigDomainService.queryAll(); + List schisandraSmsConfigDTOS = SchisandraSmsConfigDTOConvert.INSTANCE.convertBOToDTOList(SchisandraSmsConfigBOs); + for (SchisandraSmsConfigDTO schisandraSmsConfig : schisandraSmsConfigDTOS){ + System.out.println(schisandraSmsConfig.toString()); + if (schisandraSmsConfig!=null){ + // 创建SmsBlend 短信实例 + SmsFactory.createSmsBlend(smsReadConfig); + }; + }} +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsReadConfig.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsReadConfig.java new file mode 100644 index 0000000..ac40ceb --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/config/SmsReadConfig.java @@ -0,0 +1,89 @@ +package com.schisandra.auth.application.config; + +import com.schisandra.auth.application.convert.SchisandraSmsConfigDTOConvert; +import com.schisandra.auth.application.dto.SchisandraSmsConfigDTO; +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.domain.service.SchisandraSmsConfigDomainService; +import com.schisandra.auth.infra.basic.dao.SchisandraSmsConfigDao; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import org.dromara.sms4j.aliyun.config.AlibabaConfig; +import org.dromara.sms4j.huawei.config.HuaweiConfig; +import org.dromara.sms4j.provider.config.BaseConfig; +import org.dromara.sms4j.tencent.config.TencentConfig; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @Classname SmsConfig + * @BelongsProject: schisandra-cloud-storage + * @BelongsPackage: com.schisandra.auth.common.config + * @Author: landaiqing + * @CreateTime: 2024-05-08 18:46 + * @Description: TODO + * @Version: 1.0 + */ +@Component +public class SmsReadConfig implements org.dromara.sms4j.core.datainterface.SmsReadConfig { + @Resource + SchisandraSmsConfigDomainService schisandraSmsConfigDomainService; + + @Override + public BaseConfig getSupplierConfig(String configId) { + return null; + + } + + @Override + public List getSupplierConfigList() { + List configs = new ArrayList<>(); + List SchisandraSmsConfigBOs= schisandraSmsConfigDomainService.queryAll(); + List schisandraSmsConfigDTOS = SchisandraSmsConfigDTOConvert.INSTANCE.convertBOToDTOList(SchisandraSmsConfigBOs); + for (SchisandraSmsConfigDTO schisandraSmsConfig : schisandraSmsConfigDTOS){ + if ("alibaba".equals(schisandraSmsConfig.getConfigId())) { + AlibabaConfig alibabaConfig = new AlibabaConfig(); + alibabaConfig.setConfigId(schisandraSmsConfig.getConfigId()); + alibabaConfig.setRequestUrl(schisandraSmsConfig.getRequestUrl()); + alibabaConfig.setAccessKeyId(schisandraSmsConfig.getAccessKeyId()); + alibabaConfig.setAccessKeySecret(schisandraSmsConfig.getAccessKeySecret()); + alibabaConfig.setSignature(schisandraSmsConfig.getSignature()); + alibabaConfig.setTemplateId(schisandraSmsConfig.getTemplateId()); + alibabaConfig.setTemplateName(schisandraSmsConfig.getTemplateName()); + alibabaConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId()); + configs.add(alibabaConfig); + } + if ("tencent".equals(schisandraSmsConfig.getConfigId())) { + TencentConfig tencentConfig=new TencentConfig(); + tencentConfig.setConfigId(schisandraSmsConfig.getConfigId()); + tencentConfig.setAccessKeyId(schisandraSmsConfig.getAccessKeyId()); + tencentConfig.setAccessKeySecret(schisandraSmsConfig.getAccessKeySecret()); + tencentConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId()); + tencentConfig.setService(schisandraSmsConfig.getSdkAppId()); + tencentConfig.setRequestUrl(schisandraSmsConfig.getRequestUrl()); + tencentConfig.setTerritory(schisandraSmsConfig.getRegion()); + tencentConfig.setAction(schisandraSmsConfig.getAction()); + tencentConfig.setSignature(schisandraSmsConfig.getSignature()); + tencentConfig.setTemplateId(schisandraSmsConfig.getTemplateId()); + tencentConfig.setVersion(schisandraSmsConfig.getVersion()); + tencentConfig.setConnTimeout(schisandraSmsConfig.getConnTimeout()); + tencentConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId()); + configs.add(tencentConfig); + } + if ("huawei".equals(schisandraSmsConfig.getConfigId())) { + HuaweiConfig huaweiConfig = new HuaweiConfig(); + huaweiConfig.setConfigId(schisandraSmsConfig.getConfigId()); + huaweiConfig.setSdkAppId(schisandraSmsConfig.getSdkAppId()); + huaweiConfig.setAccessKeySecret(schisandraSmsConfig.getAccessKeySecret()); + huaweiConfig.setAccessKeyId(schisandraSmsConfig.getAccessKeyId()); + huaweiConfig.setUrl(schisandraSmsConfig.getUrl()); + huaweiConfig.setSignature(schisandraSmsConfig.getSignature()); + huaweiConfig.setTemplateId(schisandraSmsConfig.getTemplateId()); + configs.add(huaweiConfig); + }} + return configs; + + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java new file mode 100644 index 0000000..11a3ca6 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/ReactRotateCaptchaController.java @@ -0,0 +1,107 @@ +package com.schisandra.auth.application.controller; + +import cn.hutool.core.lang.Assert; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.*; +import java.util.Base64; + + +@RestController +@RequestMapping("/ReactRotateCaptcha/") +@Slf4j +public class ReactRotateCaptchaController { + @PostMapping (value = "get", produces = MediaType.IMAGE_PNG_VALUE) + public ResponseEntity get(){ + //前端可以直接根据URL:/image/{图片id} 来获取图片 注意:资源文件ID最好进行加密和设置有效期 + // 在实际开发中 一般先通过图片id查看数据库有没有这条记录 + + String imageFilePath = "D:\\java_project\\schisandra-cloud-storage\\schisandra-cloud-storage-auth\\schisandra-cloud-storage-auth-application\\schisandra-cloud-storage-auth-application-controller\\src\\main\\java\\com\\schisandra\\auth\\application\\image\\test1.png"; + File file = new File(imageFilePath); + try { + BufferedImage bufferedImage = ImageIO.read(file); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + ImageIO.write(bufferedImage, "png", byteArrayOutputStream); + byte[] imageBytes = byteArrayOutputStream.toByteArray(); // 读取图片数据的字节数组 + // 将图片字节数组转换为Base64编码的字符串 + String base64Image = Base64.getEncoder().encodeToString(imageBytes); + System.out.println(base64Image); + // 创建包含Base64编码的响应体的ResponseEntity对象,并设置正确的媒体类型和内容长度 + return ResponseEntity.ok().contentType(MediaType.IMAGE_PNG) + .body(base64Image); + }catch (Exception e) { + e.printStackTrace(); + } + return ResponseEntity.ok().body(null); + } + + /** + * 请求图片地址, 返回的结果进行base64编码 + * @param imgUrl 图片地址 + * @return + */ +// public static String requestUrlToBase64(String imgUrl) { +// //读取图片字节数组 +// byte[] data = null; +// try { +// InputStream in = new FileInputStream(imgUrl); +//// System.out.println("文件大小(字节)=" + in.available()); +// data = new byte[in.available()]; +// in.read(data); +// in.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// //对字节数组进行Base64编码,得到Base64编码的字符串 +// return new String(Base64.encodeBase64(data)); +// +// } +// +// public static File convertBase64ToFile(String fileBase64String, String filePath, String fileName) { +// BufferedOutputStream bos = null; +// FileOutputStream fos = null; +// File file = null; +// try { +// File dir = new File(filePath); +// //判断文件目录是否存在 +// if (!dir.exists() && dir.isDirectory()) { +// dir.mkdirs(); +// } +// byte[] bfile = Base64.decodeBase64(fileBase64String); +// file = new File(filePath + File.separator + fileName); +// fos = new FileOutputStream(file); +// bos = new BufferedOutputStream(fos); +// bos.write(bfile); +// return file; +// } catch (Exception e) { +// e.printStackTrace(); +// } finally { +// if (bos != null) { +// try { +// bos.close(); +// } catch (IOException e1) { +// e1.printStackTrace(); +// } +// } +// if (fos != null) { +// try { +// fos.close(); +// } catch (IOException e1) { +// e1.printStackTrace(); +// } +// } +// } +// return null; +// } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SmsController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SmsController.java new file mode 100644 index 0000000..9bea211 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SmsController.java @@ -0,0 +1,51 @@ +package com.schisandra.auth.application.controller; + + +import com.schisandra.auth.common.entity.Result; +import com.schisandra.auth.common.redis.RedisUtil; +import com.schisandra.auth.common.utils.SmsCodeUtils; +import lombok.extern.slf4j.Slf4j; +import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.core.factory.SmsFactory; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +import static java.util.concurrent.TimeUnit.SECONDS; + +@RestController +@RequestMapping("/sms/") +@Slf4j +public class SmsController { + @Resource + private RedisUtil redisUtil; + + private final String authPhonePrefix="auth.phone"; +/** + * @description: 发送短信验证码 + * @param: [phone] + * @return: com.schisandra.auth.common.entity.Result + * @author zlg + * @date: 2024/5/8 22:53 + */ + @GetMapping("/sendByTemplate") + public Result sendByTemplate(String phone) { + String prefix = redisUtil.buildKey(authPhonePrefix, phone); + String code = SmsCodeUtils.generateValidateCode(4).toString(); + if (!redisUtil.exist(prefix)){ + SmsResponse smsResponse=SmsFactory.getBySupplier("alibaba").sendMessage(phone,code); + if (smsResponse.isSuccess()){ + redisUtil.setNx(prefix, code, 60L,SECONDS); + return Result.ok(); + }else { + return Result.fail(); + } + }else { + return Result.fail("发送频繁,请稍后重试"); + } + + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/convert/SchisandraSmsConfigDTOConvert.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/convert/SchisandraSmsConfigDTOConvert.java new file mode 100644 index 0000000..3484116 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/convert/SchisandraSmsConfigDTOConvert.java @@ -0,0 +1,43 @@ +package com.schisandra.auth.application.convert; + +import com.schisandra.auth.application.dto.SchisandraSmsConfigDTO; +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Mapper(componentModel = "spring") +public interface SchisandraSmsConfigDTOConvert { + + SchisandraSmsConfigDTOConvert INSTANCE = Mappers.getMapper(SchisandraSmsConfigDTOConvert.class); + + /** + * @description 将bo转换为实体 + * @param schisandraSmsConfigDTO + * @return com.schisandra.auth.infra.basic.entity.SchisandraAuthUser + * @author landaiqing + * @date 2024/3/21 23:13 + */ + SchisandraSmsConfigBO convertDTOToBO(SchisandraSmsConfigDTO schisandraSmsConfigDTO); + + /** + * @description 将实体转换为bo + * @param schisandraSmsConfigBO + * @return com.schisandra.auth.domain.bo.SchisandraAuthUserBO + * @author landaiqing + * @date 2024/3/21 23:13 + */ + SchisandraSmsConfigDTO convertBOToDTO(SchisandraSmsConfigBO schisandraSmsConfigBO); + + List convertBOToDTOList(List schisandraSmsConfigBO); + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/dto/SchisandraSmsConfigDTO.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/dto/SchisandraSmsConfigDTO.java new file mode 100644 index 0000000..33127cc --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/dto/SchisandraSmsConfigDTO.java @@ -0,0 +1,155 @@ +package com.schisandra.auth.application.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Data +public class SchisandraSmsConfigDTO implements Serializable { + + /** + * id + */ + private Integer id; + /** + * 配置id + */ + private String configId; + /** + * 请求地址 + */ + private String requestUrl; + /** + * 模板变量名称 + */ + private String templateName; + /** + * 接口名称 + */ + private String action; + /** + * 地域信息 + */ + private String region; + + private String accessKeyId; + + private String accessKeySecret; + /** + * 厂商名称标识 + */ + private String supplier; + /** + * 短信签名 + */ + private String signature; + + private String sdkAppId; + /** + * 模板ID + */ + private String templateId; + /** + * 权重 + */ + private Integer weight; + /** + * 短信重试次数,默认0次不重试 + */ + private Integer retryInterval; + /** + * 短信重试次数,默认0次不重试 + */ + private Integer maxRetries; + /** + * 厂商的发送数量上限,默认不设置上限 + */ + private Long maximum; + /** + * REST API Base URL + */ + private String baseUrl; + /** + * 请求域名 + */ + private String serverIp; + /** + * 请求端口 + */ + private Integer serverPort; + /** + * 国内短信签名通道号 + */ + private String sender; + /** + * 短信状态报告接收地 + */ + private String statusCallBack; + /** + * APP接入地址 + */ + private String url; + /** + * 模板短信请求地址 + */ + private String templateUrl; + /** + * 验证码短信请求地址 + */ + private String codeUrl; + /** + * 验证码验证请求地址 + */ + private String verifyUrl; + /** + * 是否需要支持短信上行。true:需要,false:不需要false + */ + private String needUp; + /** + * 请求超时时间 + */ + private Integer connTimeout; + /** + * 是否为简易模式 + */ + private String isSimple; + /** + * 短信发送后将向这个地址推送(运营商返回的)发送报告 + */ + private String callbackUrl; + /** + * 企业ID + */ + private Integer mchId; + + private String appKey; + + private Integer appId; + /** + * 版本号 + */ + private String version; + /** + * 单发链接 + */ + private String singleMsgUrl; + /** + * 群发链接 + */ + private String massMsgUrl; + /** + * 签名ID + */ + private String signatureId; + + + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/SmsCodeUtils.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/SmsCodeUtils.java new file mode 100644 index 0000000..c7f0b49 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-common/src/main/java/com/schisandra/auth/common/utils/SmsCodeUtils.java @@ -0,0 +1,32 @@ +package com.schisandra.auth.common.utils; + +import java.util.Random; + +public class SmsCodeUtils { + public static Integer generateValidateCode(int length){ + Integer code =null; + + //长度为4 + if(length == 4){ + //生成随机数,最大为9999 + code = new Random().nextInt(9999); + if(code < 1000){ + //保证随机数为4位数字 + code = code + 1000; + } + //长度为6 + }else if(length == 6){ + //生成随机数,最大为999999 + code = new Random().nextInt(999999); + if(code < 100000){ + //保证随机数为6位数字 + code = code + 100000; + } + //其他情况 + }else{ + throw new RuntimeException("只能生成4位或6位数字验证码"); + } + return code; + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java index 866b651..e9b5ba8 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraAuthPermissionBO.java @@ -13,7 +13,8 @@ import java.util.Date; * @since 2024-04-15 19:04:11 */ @Data -public class SchisandraAuthPermissionBO implements Serializable { +public class +SchisandraAuthPermissionBO implements Serializable { private Long id; diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraSmsConfigBO.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraSmsConfigBO.java new file mode 100644 index 0000000..7d574e5 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/bo/SchisandraSmsConfigBO.java @@ -0,0 +1,155 @@ +package com.schisandra.auth.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Data +public class SchisandraSmsConfigBO implements Serializable { + + /** + * id + */ + private Integer id; + /** + * 配置id + */ + private String configId; + /** + * 请求地址 + */ + private String requestUrl; + /** + * 模板变量名称 + */ + private String templateName; + /** + * 接口名称 + */ + private String action; + /** + * 地域信息 + */ + private String region; + + private String accessKeyId; + + private String accessKeySecret; + /** + * 厂商名称标识 + */ + private String supplier; + /** + * 短信签名 + */ + private String signature; + + private String sdkAppId; + /** + * 模板ID + */ + private String templateId; + /** + * 权重 + */ + private Integer weight; + /** + * 短信重试次数,默认0次不重试 + */ + private Integer retryInterval; + /** + * 短信重试次数,默认0次不重试 + */ + private Integer maxRetries; + /** + * 厂商的发送数量上限,默认不设置上限 + */ + private Long maximum; + /** + * REST API Base URL + */ + private String baseUrl; + /** + * 请求域名 + */ + private String serverIp; + /** + * 请求端口 + */ + private Integer serverPort; + /** + * 国内短信签名通道号 + */ + private String sender; + /** + * 短信状态报告接收地 + */ + private String statusCallBack; + /** + * APP接入地址 + */ + private String url; + /** + * 模板短信请求地址 + */ + private String templateUrl; + /** + * 验证码短信请求地址 + */ + private String codeUrl; + /** + * 验证码验证请求地址 + */ + private String verifyUrl; + /** + * 是否需要支持短信上行。true:需要,false:不需要false + */ + private String needUp; + /** + * 请求超时时间 + */ + private Integer connTimeout; + /** + * 是否为简易模式 + */ + private String isSimple; + /** + * 短信发送后将向这个地址推送(运营商返回的)发送报告 + */ + private String callbackUrl; + /** + * 企业ID + */ + private Integer mchId; + + private String appKey; + + private Integer appId; + /** + * 版本号 + */ + private String version; + /** + * 单发链接 + */ + private String singleMsgUrl; + /** + * 群发链接 + */ + private String massMsgUrl; + /** + * 签名ID + */ + private String signatureId; + + + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/convert/SchisandraSmsConfigBOConvert.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/convert/SchisandraSmsConfigBOConvert.java new file mode 100644 index 0000000..2a5a579 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/convert/SchisandraSmsConfigBOConvert.java @@ -0,0 +1,48 @@ +package com.schisandra.auth.domain.convert; + +import com.schisandra.auth.domain.bo.SchisandraAuthUserBO; +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.infra.basic.entity.SchisandraAuthUser; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import lombok.Data; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Mapper(componentModel = "spring") +public interface SchisandraSmsConfigBOConvert { + + SchisandraSmsConfigBOConvert INSTANCE = Mappers.getMapper(SchisandraSmsConfigBOConvert.class); + + /** + * @description 将bo转换为实体 + * @param schisandraSmsConfigBO + * @return com.schisandra.auth.infra.basic.entity.SchisandraAuthUser + * @author landaiqing + * @date 2024/3/21 23:13 + */ + SchisandraSmsConfig convertBOToEntity(SchisandraSmsConfigBO schisandraSmsConfigBO); + + /** + * @description 将实体转换为bo + * @param schisandraSmsConfig + * @return com.schisandra.auth.domain.bo.SchisandraAuthUserBO + * @author landaiqing + * @date 2024/3/21 23:13 + */ + SchisandraSmsConfigBO convertEntityToBO(SchisandraSmsConfig schisandraSmsConfig); + + List convertEntityToBOList(List schisandraSmsConfigs); + + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraSmsConfigDomainService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraSmsConfigDomainService.java new file mode 100644 index 0000000..68b55bf --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraSmsConfigDomainService.java @@ -0,0 +1,22 @@ +package com.schisandra.auth.domain.service; + + +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; + +import java.util.List; + +/** + * 用户领域service + * + * @author landaiqing + * @date 2024/3/21 + */ +public interface SchisandraSmsConfigDomainService { + + + + List queryAll(); + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraSmsConfigDomainServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraSmsConfigDomainServiceImpl.java new file mode 100644 index 0000000..1a5056d --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraSmsConfigDomainServiceImpl.java @@ -0,0 +1,26 @@ +package com.schisandra.auth.domain.service.impl; + +import com.schisandra.auth.domain.bo.SchisandraSmsConfigBO; +import com.schisandra.auth.domain.convert.SchisandraSmsConfigBOConvert; +import com.schisandra.auth.domain.service.SchisandraSmsConfigDomainService; +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import com.schisandra.auth.infra.basic.service.SchisandraSmsConfigService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +@Service +@Slf4j +public class SchisandraSmsConfigDomainServiceImpl implements SchisandraSmsConfigDomainService { + @Resource + private SchisandraSmsConfigService schisandraSmsConfigService; + @Override + public List queryAll() { + + List schisandraSmsConfigs = schisandraSmsConfigService.queryAll(); + return SchisandraSmsConfigBOConvert.INSTANCE.convertEntityToBOList(schisandraSmsConfigs); + + } + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/dao/SchisandraSmsConfigDao.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/dao/SchisandraSmsConfigDao.java new file mode 100644 index 0000000..fdd11b0 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/dao/SchisandraSmsConfigDao.java @@ -0,0 +1,86 @@ +package com.schisandra.auth.infra.basic.dao; + +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import org.apache.ibatis.annotations.Param; +import org.springframework.data.domain.Pageable; + +import java.util.List; + +/** + * (SchisandraSmsConfig)表数据库访问层 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +public interface SchisandraSmsConfigDao { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraSmsConfig queryById(Integer id); + + /** + * 查询指定行数据 + * + * @param schisandraSmsConfig 查询条件 + * @param pageable 分页对象 + * @return 对象列表 + */ + List queryAllByLimit(SchisandraSmsConfig schisandraSmsConfig, @Param("pageable") Pageable pageable); + + List queryAll(); + + /** + * 统计总行数 + * + * @param schisandraSmsConfig 查询条件 + * @return 总行数 + */ + long count(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 新增数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 影响行数 + */ + int insert(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 批量新增数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + */ + int insertBatch(@Param("entities") List entities); + + /** + * 批量新增或按主键更新数据(MyBatis原生foreach方法) + * + * @param entities List 实例对象列表 + * @return 影响行数 + * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参 + */ + int insertOrUpdateBatch(@Param("entities") List entities); + + /** + * 修改数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 影响行数 + */ + int update(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 影响行数 + */ + int deleteById(Integer id); + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/entity/SchisandraSmsConfig.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/entity/SchisandraSmsConfig.java new file mode 100644 index 0000000..4a264cc --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/entity/SchisandraSmsConfig.java @@ -0,0 +1,174 @@ +package com.schisandra.auth.infra.basic.entity; + +import lombok.Data; + +import java.util.Date; +import java.io.Serializable; + +/** + * (SchisandraSmsConfig)实体类 + * + * @author makejava + * @since 2024-05-08 20:09:54 + */ +@Data +public class SchisandraSmsConfig implements Serializable { + + /** + * id + */ + private Integer id; + /** + * 配置id + */ + private String configId; + /** + * 请求地址 + */ + private String requestUrl; + /** + * 模板变量名称 + */ + private String templateName; + /** + * 接口名称 + */ + private String action; + /** + * 地域信息 + */ + private String region; + + private String accessKeyId; + + private String accessKeySecret; + /** + * 厂商名称标识 + */ + private String supplier; + /** + * 短信签名 + */ + private String signature; + + private String sdkAppId; + /** + * 模板ID + */ + private String templateId; + /** + * 权重 + */ + private Integer weight; + /** + * 短信重试次数,默认0次不重试 + */ + private Integer retryInterval; + /** + * 短信重试次数,默认0次不重试 + */ + private Integer maxRetries; + /** + * 厂商的发送数量上限,默认不设置上限 + */ + private Long maximum; + /** + * REST API Base URL + */ + private String baseUrl; + /** + * 请求域名 + */ + private String serverIp; + /** + * 请求端口 + */ + private Integer serverPort; + /** + * 国内短信签名通道号 + */ + private String sender; + /** + * 短信状态报告接收地 + */ + private String statusCallBack; + /** + * APP接入地址 + */ + private String url; + /** + * 模板短信请求地址 + */ + private String templateUrl; + /** + * 验证码短信请求地址 + */ + private String codeUrl; + /** + * 验证码验证请求地址 + */ + private String verifyUrl; + /** + * 是否需要支持短信上行。true:需要,false:不需要false + */ + private String needUp; + /** + * 请求超时时间 + */ + private Integer connTimeout; + /** + * 是否为简易模式 + */ + private String isSimple; + /** + * 短信发送后将向这个地址推送(运营商返回的)发送报告 + */ + private String callbackUrl; + /** + * 企业ID + */ + private Integer mchId; + + private String appKey; + + private Integer appId; + /** + * 版本号 + */ + private String version; + /** + * 单发链接 + */ + private String singleMsgUrl; + /** + * 群发链接 + */ + private String massMsgUrl; + /** + * 签名ID + */ + private String signatureId; + /** + * 创建人 + */ + private String createdBy; + /** + * 创建时间 + */ + private Date createdTime; + /** + * 更新时间 + */ + private Date updateTime; + /** + * 更新人 + */ + private String updateBy; + /** + * 是否删除 0 未删除 1已删除 + */ + private Integer isDeleted; + + +} + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraSmsConfigService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraSmsConfigService.java new file mode 100644 index 0000000..1ab2f35 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/SchisandraSmsConfigService.java @@ -0,0 +1,60 @@ +package com.schisandra.auth.infra.basic.service; + +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; + +import java.util.List; + +/** + * (SchisandraSmsConfig)表服务接口 + * + * @author makejava + * @since 2024-05-08 20:09:55 + */ +public interface SchisandraSmsConfigService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraSmsConfig queryById(Integer id); + + List queryAll(); + + /** + * 分页查询 + * + * @param schisandraSmsConfig 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + Page queryByPage(SchisandraSmsConfig schisandraSmsConfig, PageRequest pageRequest); + + /** + * 新增数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + SchisandraSmsConfig insert(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 修改数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + SchisandraSmsConfig update(SchisandraSmsConfig schisandraSmsConfig); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Integer id); + +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraSmsConfigServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraSmsConfigServiceImpl.java new file mode 100644 index 0000000..66f2ba7 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/java/com/schisandra/auth/infra/basic/service/impl/SchisandraSmsConfigServiceImpl.java @@ -0,0 +1,88 @@ +package com.schisandra.auth.infra.basic.service.impl; + +import com.schisandra.auth.infra.basic.entity.SchisandraSmsConfig; +import com.schisandra.auth.infra.basic.dao.SchisandraSmsConfigDao; +import com.schisandra.auth.infra.basic.service.SchisandraSmsConfigService; +import org.springframework.stereotype.Service; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.PageRequest; + +import javax.annotation.Resource; +import java.util.List; + +/** + * (SchisandraSmsConfig)表服务实现类 + * + * @author makejava + * @since 2024-05-08 20:09:55 + */ +@Service("schisandraSmsConfigService") +public class SchisandraSmsConfigServiceImpl implements SchisandraSmsConfigService { + @Resource + private SchisandraSmsConfigDao schisandraSmsConfigDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public SchisandraSmsConfig queryById(Integer id) { + return this.schisandraSmsConfigDao.queryById(id); + } + + /** + * 分页查询 + * + * @param schisandraSmsConfig 筛选条件 + * @param pageRequest 分页对象 + * @return 查询结果 + */ + @Override + public Page queryByPage(SchisandraSmsConfig schisandraSmsConfig, PageRequest pageRequest) { + long total = this.schisandraSmsConfigDao.count(schisandraSmsConfig); + return new PageImpl<>(this.schisandraSmsConfigDao.queryAllByLimit(schisandraSmsConfig, pageRequest), pageRequest, total); + } + + @Override + public List queryAll() { + return this.schisandraSmsConfigDao.queryAll(); + } + + /** + * 新增数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + @Override + public SchisandraSmsConfig insert(SchisandraSmsConfig schisandraSmsConfig) { + this.schisandraSmsConfigDao.insert(schisandraSmsConfig); + return schisandraSmsConfig; + } + + /** + * 修改数据 + * + * @param schisandraSmsConfig 实例对象 + * @return 实例对象 + */ + @Override + public SchisandraSmsConfig update(SchisandraSmsConfig schisandraSmsConfig) { + this.schisandraSmsConfigDao.update(schisandraSmsConfig); + return this.queryById(schisandraSmsConfig.getId()); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Integer id) { + return this.schisandraSmsConfigDao.deleteById(id) > 0; + } +} diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/mapper/SchisandraSmsConfigDao.xml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/mapper/SchisandraSmsConfigDao.xml new file mode 100644 index 0000000..22e9dd8 --- /dev/null +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-infra/src/main/resources/mapper/SchisandraSmsConfigDao.xml @@ -0,0 +1,499 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + insert into schisandra_sms_config(config_id,request_url,template_name,'action',region,access_key_id,access_key_secret,supplier,signature,sdk_app_id,template_id,weight,retry_interval,max_retries,maximum,base_url,server_ip,server_port,sender,status_call_back,url,template_url,code_url,verify_url,need_up,conn_timeout,is_simple,callback_url,mch_id,app_key,app_id,version,single_msg_url,mass_msg_url,signature_Id,created_by,created_time,update_time,update_by,is_deleted) + values (#{configId},#{requestUrl},#{templateName},#{action},#{region},#{accessKeyId},#{accessKeySecret},#{supplier},#{signature},#{sdkAppId},#{templateId},#{weight},#{retryInterval},#{maxRetries},#{maximum},#{baseUrl},#{serverIp},#{serverPort},#{sender},#{statusCallBack},#{url},#{templateUrl},#{codeUrl},#{verifyUrl},#{needUp},#{connTimeout},#{isSimple},#{callbackUrl},#{mchId},#{appKey},#{appId},#{version},#{singleMsgUrl},#{massMsgUrl},#{signatureId},#{createdBy},#{createdTime},#{updateTime},#{updateBy},#{isDeleted}) + + + + insert into + schisandra_sms_config(config_id,request_url,template_name,'action',region,access_key_id,access_key_secret,supplier,signature,sdk_app_id,template_id,weight,retry_interval,max_retries,maximum,base_url,server_ip,server_port,sender,status_call_back,url,template_url,code_url,verify_url,need_up,conn_timeout,is_simple,callback_url,mch_id,app_key,app_id,version,single_msg_url,mass_msg_url,signature_Id,created_by,created_time,update_time,update_by,is_deleted) + values + + (#{entity.configId},#{entity.requestUrl},#{entity.templateName},#{entity.action},#{entity.region},#{entity.accessKeyId},#{entity.accessKeySecret},#{entity.supplier},#{entity.signature},#{entity.sdkAppId},#{entity.templateId},#{entity.weight},#{entity.retryInterval},#{entity.maxRetries},#{entity.maximum},#{entity.baseUrl},#{entity.serverIp},#{entity.serverPort},#{entity.sender},#{entity.statusCallBack},#{entity.url},#{entity.templateUrl},#{entity.codeUrl},#{entity.verifyUrl},#{entity.needUp},#{entity.connTimeout},#{entity.isSimple},#{entity.callbackUrl},#{entity.mchId},#{entity.appKey},#{entity.appId},#{entity.version},#{entity.singleMsgUrl},#{entity.massMsgUrl},#{entity.signatureId},#{entity.createdBy},#{entity.createdTime},#{entity.updateTime},#{entity.updateBy},#{entity.isDeleted}) + + + + + insert into + schisandra_sms_config(config_id,request_url,template_name,'action',region,access_key_id,access_key_secret,supplier,signature,sdk_app_id,template_id,weight,retry_interval,max_retries,maximum,base_url,server_ip,server_port,sender,status_call_back,url,template_url,code_url,verify_url,need_up,conn_timeout,is_simple,callback_url,mch_id,app_key,app_id,version,single_msg_url,mass_msg_url,signature_Id,created_by,created_time,update_time,update_by,is_deleted) + values + + (#{entity.configId},#{entity.requestUrl},#{entity.templateName},#{entity.action},#{entity.region},#{entity.accessKeyId},#{entity.accessKeySecret},#{entity.supplier},#{entity.signature},#{entity.sdkAppId},#{entity.templateId},#{entity.weight},#{entity.retryInterval},#{entity.maxRetries},#{entity.maximum},#{entity.baseUrl},#{entity.serverIp},#{entity.serverPort},#{entity.sender},#{entity.statusCallBack},#{entity.url},#{entity.templateUrl},#{entity.codeUrl},#{entity.verifyUrl},#{entity.needUp},#{entity.connTimeout},#{entity.isSimple},#{entity.callbackUrl},#{entity.mchId},#{entity.appKey},#{entity.appId},#{entity.version},#{entity.singleMsgUrl},#{entity.massMsgUrl},#{entity.signatureId},#{entity.createdBy},#{entity.createdTime},#{entity.updateTime},#{entity.updateBy},#{entity.isDeleted}) + + on duplicate key update + config_id = values(config_id)request_url = values(request_url)template_name = values(template_name)action = + values(action)region = values(region)access_key_id = values(access_key_id)access_key_secret = + values(access_key_secret)supplier = values(supplier)signature = values(signature)sdk_app_id = + values(sdk_app_id)template_id = values(template_id)weight = values(weight)retry_interval = + values(retry_interval)max_retries = values(max_retries)maximum = values(maximum)base_url = + values(base_url)server_ip = values(server_ip)server_port = values(server_port)sender = + values(sender)status_call_back = values(status_call_back)url = values(url)template_url = + values(template_url)code_url = values(code_url)verify_url = values(verify_url)need_up = + values(need_up)conn_timeout = values(conn_timeout)is_simple = values(is_simple)callback_url = + values(callback_url)mch_id = values(mch_id)app_key = values(app_key)app_id = values(app_id)version = + values(version)single_msg_url = values(single_msg_url)mass_msg_url = values(mass_msg_url)signature_Id = + values(signature_Id)created_by = values(created_by)created_time = values(created_time)update_time = + values(update_time)update_by = values(update_by)is_deleted = values(is_deleted) + + + + + update schisandra_sms_config + + + config_id = #{configId}, + + + request_url = #{requestUrl}, + + + template_name = #{templateName}, + + + `action` = #{action}, + + + region = #{region}, + + + access_key_id = #{accessKeyId}, + + + access_key_secret = #{accessKeySecret}, + + + supplier = #{supplier}, + + + signature = #{signature}, + + + sdk_app_id = #{sdkAppId}, + + + template_id = #{templateId}, + + + weight = #{weight}, + + + retry_interval = #{retryInterval}, + + + max_retries = #{maxRetries}, + + + maximum = #{maximum}, + + + base_url = #{baseUrl}, + + + server_ip = #{serverIp}, + + + server_port = #{serverPort}, + + + sender = #{sender}, + + + status_call_back = #{statusCallBack}, + + + url = #{url}, + + + template_url = #{templateUrl}, + + + code_url = #{codeUrl}, + + + verify_url = #{verifyUrl}, + + + need_up = #{needUp}, + + + conn_timeout = #{connTimeout}, + + + is_simple = #{isSimple}, + + + callback_url = #{callbackUrl}, + + + mch_id = #{mchId}, + + + app_key = #{appKey}, + + + app_id = #{appId}, + + + version = #{version}, + + + single_msg_url = #{singleMsgUrl}, + + + mass_msg_url = #{massMsgUrl}, + + + signature_Id = #{signatureId}, + + + created_by = #{createdBy}, + + + created_time = #{createdTime}, + + + update_time = #{updateTime}, + + + update_by = #{updateBy}, + + + is_deleted = #{isDeleted}, + + + where id = #{id} + + + + + delete + from schisandra_sms_config + where id = #{id} + + + + diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml index 4cdce4b..fe8dc08 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml @@ -72,7 +72,7 @@ sa-token: sms: # 标注从yml读取配置 - config-type: interface + config-type: yaml restricted: true accountMax: 10 minuteMax: 1