97 lines
3.5 KiB
Java
97 lines
3.5 KiB
Java
package com.xiang.common.service;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.TypeReference;
|
|
import com.google.common.collect.Maps;
|
|
import com.xiang.common.enums.YcCodeTypeEnum;
|
|
import com.xiang.common.pojo.code.YcCodeBaseResponse;
|
|
import com.xiang.common.pojo.code.YcCodeDataResp;
|
|
import com.xiang.common.pojo.code.YcCodeRequest;
|
|
import com.xiang.common.utils.HttpService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Objects;
|
|
|
|
@Service
|
|
@Slf4j
|
|
public class CodeServiceImpl implements ICodeService {
|
|
|
|
// 云码平台接口api
|
|
private static final String YUN_CODE_API_URL = "http://api.jfbym.com/api/YmServer/customApi";
|
|
|
|
@Override
|
|
public String templateCodeResolve(String image) {
|
|
YcCodeBaseResponse<YcCodeDataResp> resp = baseCodeResolve(YcCodeTypeEnum.YC_10118.getType(), image, null);
|
|
if (Objects.isNull(resp)) {
|
|
return null;
|
|
}
|
|
Integer code = resp.getCode();
|
|
if (200 == code) {
|
|
String data = resp.getData().getData();
|
|
StringBuilder result = new StringBuilder();
|
|
for (int i = 0; i < data.length(); i++) {
|
|
result.append(data.charAt(i)).append(",");
|
|
}
|
|
return result.substring(0, result.length() - 1);
|
|
}
|
|
return null;
|
|
|
|
}
|
|
|
|
@Override
|
|
public List<String> codeResolve(String image, String templateImage) {
|
|
HashMap<String, String> header = Maps.newHashMap();
|
|
header.put("Content-Type", "application/json");
|
|
YcCodeRequest ycCodeRequest = new YcCodeRequest();
|
|
ycCodeRequest.setImage(image);
|
|
ycCodeRequest.setToken("9LQ1ATKVEeO8Arhq-HavXzpHvkzdZz_r7ydmqlYhp9c");
|
|
ycCodeRequest.setLabelImage(templateImage);
|
|
ycCodeRequest.setType(YcCodeTypeEnum.YC_310700.getType());
|
|
|
|
String resp = HttpService.doPost(YUN_CODE_API_URL, header, JSON.toJSONString(ycCodeRequest));
|
|
YcCodeBaseResponse<YcCodeDataResp> response = JSON.parseObject(resp, new TypeReference<YcCodeBaseResponse<YcCodeDataResp>>() {
|
|
});
|
|
if (Objects.isNull(response)) {
|
|
return null;
|
|
}
|
|
Integer code = response.getCode();
|
|
if (10000 == code) {
|
|
YcCodeDataResp data = response.getData();
|
|
if (Objects.isNull(data)) {
|
|
return null;
|
|
}
|
|
Integer dataCode = data.getCode();
|
|
if (0 == dataCode) {
|
|
String dataData = data.getData();
|
|
if (StringUtils.isNotBlank(dataData)) {
|
|
String[] split = dataData.split("\\|");
|
|
return Arrays.asList(split);
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public YcCodeBaseResponse<YcCodeDataResp> baseCodeResolve(Integer type, String image, String extra) {
|
|
|
|
HashMap<String, String> header = Maps.newHashMap();
|
|
header.put("Content-Type", "application/json");
|
|
|
|
YcCodeRequest ycCodeRequest = new YcCodeRequest();
|
|
ycCodeRequest.setImage(image);
|
|
ycCodeRequest.setToken("9LQ1ATKVEeO8Arhq-HavXzpHvkzdZz_r7ydmqlYhp9c");
|
|
ycCodeRequest.setType(type);
|
|
ycCodeRequest.setExtra(extra);
|
|
|
|
String resp = HttpService.doPost(YUN_CODE_API_URL, header, JSON.toJSONString(ycCodeRequest));
|
|
return JSON.parseObject(resp, new TypeReference<YcCodeBaseResponse<YcCodeDataResp>>() {
|
|
});
|
|
}
|
|
}
|