feat:验证码(选择图形验证码)接口开发

This commit is contained in:
xiang
2025-09-04 23:06:30 +08:00
parent 95252f3775
commit c0080ddec7
19 changed files with 637 additions and 51 deletions

View File

@@ -1,41 +0,0 @@
package com.xiang.xservice.auth.server.controller;
import com.xiang.xservice.auth.service.enums.CaptchaTypeEnum;
import com.xiang.xservice.auth.service.service.CaptchaGenerateFactory;
import com.xiang.xservice.basic.common.resp.Result;
import com.xiang.xservice.basic.utils.RandomCodeUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequiredArgsConstructor
public class CaptchaImageController {
private final CaptchaGenerateFactory captchaGenerateFactory;
@PostMapping("/public/captchaImage")
public Result<String> getCaptchaImage() {
try {
String randomCode = RandomCodeUtils.getNumberRandomCode(1);
String captchaImage;
if (StringUtils.isBlank(randomCode)) {
captchaImage = captchaGenerateFactory.get(CaptchaTypeEnum.NORMAL_CAPTCHA_IMAGE.getType()).getCaptchaImage();
} else {
try {
int i = Integer.parseInt(randomCode);
captchaImage = captchaGenerateFactory.get(i).getCaptchaImage();
} catch (Exception e) {
captchaImage = captchaGenerateFactory.get(CaptchaTypeEnum.NORMAL_CAPTCHA_IMAGE.getType()).getCaptchaImage();
}
}
return Result.success(captchaImage);
} catch (Exception e) {
log.error("获取验证码失败", e);
}
return Result.error();
}
}

View File

@@ -0,0 +1,59 @@
package com.xiang.xservice.auth.server.controller;
import com.xiang.xservice.auth.api.dto.req.CaptchaImageRequest;
import com.xiang.xservice.auth.api.dto.resp.CaptchaDTO;
import com.xiang.xservice.auth.service.enums.CaptchaTypeEnum;
import com.xiang.xservice.auth.service.service.ValidCodeGenerateFactory;
import com.xiang.xservice.basic.common.resp.Result;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@RequiredArgsConstructor
public class ValidationCodeController {
private final ValidCodeGenerateFactory validCodeGenerateFactory;
@PostMapping("/public/captchaImage")
public Result<CaptchaDTO> getCaptchaImage(@RequestBody @NotNull(message = "请求参数不能为空") @Valid CaptchaImageRequest request) {
try {
// String randomCode = RandomCodeUtils.getNumberRandomCode(1);
String randomCode = "1";
CaptchaDTO captchaImage;
if (StringUtils.isBlank(randomCode)) {
captchaImage = validCodeGenerateFactory.get(CaptchaTypeEnum.NORMAL_CAPTCHA_IMAGE.getType()).getCaptchaImage(request);
} else {
try {
int i = Integer.parseInt(randomCode);
captchaImage = validCodeGenerateFactory.get(i).getCaptchaImage(request);
} catch (Exception e) {
log.error("获取验证码失败,获取默认验证码", e);
captchaImage = validCodeGenerateFactory.get(CaptchaTypeEnum.NORMAL_CAPTCHA_IMAGE.getType()).getCaptchaImage(request);
}
}
return Result.success(captchaImage);
} catch (Exception e) {
log.error("获取验证码失败", e);
}
return Result.error();
}
@PostMapping("/public/getSmsCode")
public Result<Void> getSmsCode(@RequestBody @NotNull(message = "请求参数不能为空") @Valid CaptchaImageRequest request) {
try {
validCodeGenerateFactory.get(CaptchaTypeEnum.NUMBER_CAPTCHA_CODE.getType()).getCaptchaImage(request);
return Result.success();
} catch (Exception e) {
log.error("获取验证码失败", e);
}
return Result.error();
}
}