xin
2025-06-06 ba3ec5d7b984bab62c1d4d6085b5cfd0e3a642df
短信验证码
3 files modified
83 ■■■■ changed files
oying-system/src/main/java/com/oying/modules/security/rest/VerificationController.java 4 ●●●● patch | view | raw | blame | history
oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java 15 ●●●●● patch | view | raw | blame | history
oying-tools/src/main/java/com/oying/utils/WinnerLookEnum.java 64 ●●●● patch | view | raw | blame | history
oying-system/src/main/java/com/oying/modules/security/rest/VerificationController.java
@@ -43,8 +43,8 @@
        //创建验证码
        String verification = (int) ((Math.random() * 9 + 1) * 100000) + "";
        redisUtils.set(uuid, verification, time);
        String message = "您的验证码为:" + verification + ",请勿泄露于他人!";
        SendMessageUtils.sendMsg(properties.getUrlSendMsg(), phone, message, properties);
        SendMessageUtils.sendMsg(properties.getUrlSendMsg(), phone, SendMessageUtils.SIGN,
                SendMessageUtils.MESSAGE.replace("{code}", verification), properties);
        return ResponseEntity.ok(R.success(uuid));
    }
}
oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java
@@ -24,21 +24,24 @@
@Data
public class SendMessageUtils {
    public static void sendMsg(String url, String phone, String message, WinnerLookProperties properties) {
    public static final String SIGN = "【立研】";
    public static final String MESSAGE = "您的验证码为:{code},请勿泄露于他人!";
    public static void sendMsg(String url, String phone, String sign, String message, WinnerLookProperties properties) {
        Map<String, String> params = new HashMap<>();
        params.put("userCode", properties.getUserCode());
        params.put("userPass", properties.getUserPass());
        params.put("DesNo", phone);
        params.put("Msg", message + "【立研】");
        params.put("Msg", sign + message);
        params.put("smsType", "101");
        String str = HttpRequest.exchangeMsg(HttpMethod.POST, url, convert(params));
        if (ObjectUtils.isEmpty(extractWithRegex(str))) {
        String str = extractWithRegex(HttpRequest.exchangeMsg(HttpMethod.POST, url, convert(params)));
        if (ObjectUtils.isEmpty(str)) {
            log.error("短信调用异常 {}", str);
            throw new BadRequestException("短信调用异常");
        }
        int i = Integer.parseInt(str);
        long i = Long.parseLong(str);
        if (i < 0) {
            throw new BadRequestException(WinnerLookEnum.find(i));
            throw new BadRequestException(WinnerLookEnum.find(str));
        }
    }
oying-tools/src/main/java/com/oying/utils/WinnerLookEnum.java
@@ -6,42 +6,42 @@
@Getter
@AllArgsConstructor
public enum WinnerLookEnum {
    ONE(-1, "应用程序错误"),
    THREE(-3, "用户名或密码错误"),
    FOUR(-4, "短信内容和备案的模板不一样"),
    FIVE(-5, "签名不正确"),
    SEVEN(-7, "余额不足"),
    EIGHT(-8, "无可用通道或不在通道时间范围"),
    NINE(-9, "无效号码"),
    TEN(-10, "签名内容不符合长度"),
    ELEVEN(-11, "用户有效期过期"),
    TWELVE(-12, "黑名单"),
    SIXTEEN(-16, "接口请求过于频繁,余额接口 5s 秒一次,其他接口适当调整"),
    SEVENTEEN(-17, "非法 IP"),
    EIGHTEEN(-18, "Msg 内容格式错误"),
    NINETEEN(-19, "短信数量错误,小于 1 /大于 500(个性化)/大于 1000(群发)"),
    TWENTY(-20, "号码错误或者黑名单"),
    TWENTY_THREE(-23, "解密失败"),
    TWENTY_FOUR(-24, "短信包含用户敏感信息"),
    TWENTY_FIVE(-25, "用户被冻结"),
    TWENTY_SIX(-26, "无效数据"),
    TWENTY_SEVEN(-27, "请求参数错误"),
    TWENTY_EIGHT(-28, "无效数据"),
    FORTY_ONE(-41, "指定短信模板类型错误或短信类型参数错误"),
    FORTY_FOUR(-44, "自定义扩展号不符合规则(1-16 位数字)"),
    FORTY_SIX(-46, "用户黑名单"),
    FORTY_SEVEN(-47, "系统黑名单"),
    FORTY_EIGHT(-48, "号码超频拦截"),
    FIFTY_ONE(-51, "超过设置的每月短信条数的限制"),
    FIFTY_FIVE(-54, "短信包含系统敏感信息"),
    ZERO(0, "未知错误");
    ONE("-1", "应用程序错误"),
    THREE("-3", "用户名或密码错误"),
    FOUR("-4", "短信内容和备案的模板不一样"),
    FIVE("-5", "签名不正确"),
    SEVEN("-7", "余额不足"),
    EIGHT("-8", "无可用通道或不在通道时间范围"),
    NINE("-9", "无效号码"),
    TEN("-10", "签名内容不符合长度"),
    ELEVEN("-11", "用户有效期过期"),
    TWELVE("-12", "黑名单"),
    SIXTEEN("-16", "接口请求过于频繁,余额接口 5s 秒一次,其他接口适当调整"),
    SEVENTEEN("-17", "非法 IP"),
    EIGHTEEN("-18", "Msg 内容格式错误"),
    NINETEEN("-19", "短信数量错误,小于 1 /大于 500(个性化)/大于 1000(群发)"),
    TWENTY("-20", "号码错误或者黑名单"),
    TWENTY_THREE("-23", "解密失败"),
    TWENTY_FOUR("-24", "短信包含用户敏感信息"),
    TWENTY_FIVE("-25", "用户被冻结"),
    TWENTY_SIX("-26", "无效数据"),
    TWENTY_SEVEN("-27", "请求参数错误"),
    TWENTY_EIGHT("-28", "无效数据"),
    FORTY_ONE("-41", "指定短信模板类型错误或短信类型参数错误"),
    FORTY_FOUR("-44", "自定义扩展号不符合规则(1-16 位数字)"),
    FORTY_SIX("-46", "用户黑名单"),
    FORTY_SEVEN("-47", "系统黑名单"),
    FORTY_EIGHT("-48", "号码超频拦截"),
    FIFTY_ONE("-51", "超过设置的每月短信条数的限制"),
    FIFTY_FIVE("-54", "短信包含系统敏感信息"),
    ZERO("0", "未知错误");
    private final int key;
    private final String key;
    private final String value;
    public static String find(Integer key) {
    public static String find(String key) {
        for (WinnerLookEnum value : WinnerLookEnum.values()) {
            if (value.getKey() == key) {
            if (value.getKey().equals(key)) {
                return value.getValue();
            }
        }