feat:验证码

This commit is contained in:
xiang
2026-05-05 21:23:11 +08:00
parent 66a69a4968
commit a1d42a4b27
5 changed files with 83 additions and 15 deletions

View File

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.collect.Lists;
import com.xiang.common.factory.JntyzxDingTalkFactory;
import com.xiang.common.pojo.jntyzx.zlb.*;
import com.xiang.common.service.ICodeService;
@@ -17,6 +18,7 @@ import com.xiang.common.utils.DateUtils;
import com.xiang.common.utils.OkHttpUtil;
import com.xiang.service.module.jntyzx.zlb.constants.ZlbUrlConstants;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -362,19 +364,54 @@ public class ZlbServiceImpl implements ZlbService {
//获取图片验证码
String s = client.postJson(ZlbUrlConstants.captchaUrl, null, "{}");
JSONObject jsonObject = JSON.parseObject(s);
String templateImage = JSON.toJSONString(jsonObject.get("templateImage"));
String templeCode = codeService.templateCodeResolve(templateImage);
String id = (String) jsonObject.get("id");
String captcha = JSON.toJSONString(jsonObject.get("captcha"));
String backgroundImage = JSON.toJSONString(JSON.parseObject(captcha).get("backgroundImage"));
String track = codeService.codeResolve(backgroundImage, templeCode);
String templateImage = JSON.toJSONString(JSON.parseObject(captcha).get("templateImage"));
List<String> trackList = codeService.codeResolve(backgroundImage, templateImage);
ZlbOrderInfo orderInfo = new ZlbOrderInfo();
orderInfo.setId(id);
//获取验证码轨迹
ZlbOrderInfo zlbOrderInfo = JSONObject.parseObject(track, ZlbOrderInfo.class);
zlbOrderInfo.setSiteOrderDetailsStr(siteOrderDetailsStr);
String jsonString = JSON.toJSONString(zlbOrderInfo);
List<ZlbOrderInfo.ZlbData.TrackList> trackListList = convert(trackList);
ZlbOrderInfo.ZlbData data = new ZlbOrderInfo.ZlbData();
// data.setBgImageWidth();
// data.setBgImageHeight();
// data.setStartTime();
// data.setStopTime();
data.setTrackList(trackListList);
orderInfo.setData(data);
orderInfo.setSiteOrderDetailsStr(siteOrderDetailsStr);
String jsonString = JSON.toJSONString(orderInfo);
log.info("json:\n {}", jsonString);
return jsonString;
}
private List<ZlbOrderInfo.ZlbData.TrackList> convert(List<String> trackList) {
List<ZlbOrderInfo.ZlbData.TrackList> result = Lists.newArrayList();
for (String track : trackList) {
String[] split = track.split(",");
String x = split[0];
String y = split[1];
ZlbOrderInfo.ZlbData.TrackList data = new ZlbOrderInfo.ZlbData.TrackList();
data.setX(Integer.valueOf(x));
data.setY(Integer.valueOf(y));
data.setT(1);
data.setType("click");
result.add(data);
ZlbOrderInfo.ZlbData.TrackList move = new ZlbOrderInfo.ZlbData.TrackList();
move.setX(Integer.valueOf(x));
move.setY(Integer.valueOf(y));
move.setT(1);
move.setType("move");
}
return result;
}
@Override
public void deleteRedis(String name) {
// 定义模糊匹配模式