master
jia 2024-05-02 14:17:20 +08:00
parent e4cb5296c4
commit 0bfbfb510e
8 changed files with 72 additions and 87 deletions

View File

@ -4,55 +4,16 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="7a302432-88ff-4688-b881-940ab700167c" name="Changes" comment="拼团"> <list default="true" id="7a302432-88ff-4688-b881-940ab700167c" name="Changes" comment="OCR">
<change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/Project_Default.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/uiDesigner.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-common/src/main/java/com/bwie/common/domain/Team.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/pom.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/AuthenApp.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/controller/AuthenController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/service/AuthenService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/service/AuthenServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/util/AliveUtil.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/util/IdCheckUtil.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/util/OCRUtil.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/util/OSSupload.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/util/ThreadPoolExecutorConfig.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/AliveData.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/AliveMotions.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/AliveReq.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/AliveRes.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/AuthenReq.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/IdCheckReq.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/IdCheckResponse.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/IdData.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/OCRConfig.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/OCRReq.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/OCRResponse.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/resources/bootstrap.yml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/resources/mapper/SysMapper.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/TeamApp.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/controller/BackController.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/mapper/BackMapper.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/service/BackService.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/service/impl/BackServiceImpl.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/vo/AddGroup.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/vo/Goods.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/vo/GoodsSku.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/vo/GroupSku.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/vo/SkuBack.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/resources/mapper/BackMapper.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/encodings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-team/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/pom.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/controller/TeamController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/controller/TeamController.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/controller/AuthenController.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/controller/AuthenController.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/mapper/TeamMapper.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/mapper/TeamMapper.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/service/AuthenService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/service/AuthenService.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/service/TeamService.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/service/TeamService.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/service/AuthenServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/service/AuthenServiceImpl.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/service/TeamServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/java/com/bwie/team/service/impl/TeamServiceImpl.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/util/OCRUtil.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/util/OCRUtil.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/resources/bootstrap.yml" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/resources/bootstrap.yml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/AuthenReq.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/AuthenReq.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/resources/mapper/TeamMapper.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-team/src/main/resources/mapper/TeamMapper.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/OCRReq.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/OCRReq.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/bwie-xxl/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-xxl/pom.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/OCRResponse.java" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/bwie-authen/src/main/java/com/bwie/authen/vo/OCRResponse.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/bwie-modules/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/bwie-modules/pom.xml" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -222,7 +183,8 @@
<workItem from="1714355985326" duration="15054000" /> <workItem from="1714355985326" duration="15054000" />
<workItem from="1714393574470" duration="2656000" /> <workItem from="1714393574470" duration="2656000" />
<workItem from="1714440386335" duration="3954000" /> <workItem from="1714440386335" duration="3954000" />
<workItem from="1714526011728" duration="2486000" /> <workItem from="1714526011728" duration="11554000" />
<workItem from="1714610383772" duration="2746000" />
</task> </task>
<task id="LOCAL-00001" summary="拼团"> <task id="LOCAL-00001" summary="拼团">
<option name="closed" value="true" /> <option name="closed" value="true" />
@ -232,7 +194,23 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1713854151245</updated> <updated>1713854151245</updated>
</task> </task>
<option name="localTasksCounter" value="2" /> <task id="LOCAL-00002" summary="OCR">
<option name="closed" value="true" />
<created>1714529359654</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1714529359654</updated>
</task>
<task id="LOCAL-00003" summary="OCR">
<option name="closed" value="true" />
<created>1714529580181</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1714529580181</updated>
</task>
<option name="localTasksCounter" value="4" />
<servers /> <servers />
</component> </component>
<component name="TypeScriptGeneratedFilesManager"> <component name="TypeScriptGeneratedFilesManager">
@ -307,6 +285,7 @@
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<MESSAGE value="拼团" /> <MESSAGE value="拼团" />
<option name="LAST_COMMIT_MESSAGE" value="拼团" /> <MESSAGE value="OCR" />
<option name="LAST_COMMIT_MESSAGE" value="OCR" />
</component> </component>
</project> </project>

View File

@ -27,22 +27,20 @@ public class AuthenController {
} }
@PostMapping("ocrScan") @PostMapping("ocrScan")
public Result ocrScan(@RequestBody OCRReq ocrReq) throws IOException { public Result ocrScan(@RequestParam String side,@RequestParam("file") MultipartFile url) throws IOException {
Result result = authenService.ocrScan(ocrReq); Result result = authenService.ocrScan(side,url);
return result; return result;
} }
@PostMapping("commitAuthen") @PostMapping("commitAuthen")
public Result commitAuthen(@RequestBody AuthenReq authenReq) throws ExecutionException, InterruptedException { public Result commitAuthen(@RequestParam("face") MultipartFile img1,
Result result = authenService.commitAuthen(authenReq); @RequestParam("back") MultipartFile img2,
@RequestParam("file") MultipartFile movie,
AuthenReq authenReq) throws ExecutionException, InterruptedException {
Result result = authenService.commitAuthen(img1,img2,movie,authenReq);
return result; return result;
} }
@PostMapping("upload") @PostMapping("upload")
public Result upload(@RequestParam("file")MultipartFile multipartFile) throws IOException { public Result upload(@RequestParam("file")MultipartFile multipartFile) throws IOException {
String upload = authenService.upload(multipartFile); String upload = authenService.upload(multipartFile);

View File

@ -3,20 +3,15 @@ package com.bwie.authen.service;
import com.bwie.authen.vo.AliveReq; import com.bwie.authen.vo.AliveReq;
import com.bwie.authen.vo.AuthenReq; import com.bwie.authen.vo.AuthenReq;
import com.bwie.authen.vo.IdCheckReq; import com.bwie.authen.vo.IdCheckReq;
import com.bwie.authen.vo.OCRReq;
import com.bwie.common.result.Result; import com.bwie.common.result.Result;
import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Map;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
public interface AuthenService { public interface AuthenService {
Result ocrScan(OCRReq ocrReq) throws IOException; Result ocrScan(String side, MultipartFile url) throws IOException;
Result commitAuthen(MultipartFile img1, MultipartFile img2, MultipartFile movie, AuthenReq authenReq) throws ExecutionException, InterruptedException;
Result commitAuthen(AuthenReq authenReq) throws ExecutionException, InterruptedException;
@ -30,4 +25,7 @@ public interface AuthenService {
Result idCheck(IdCheckReq ocrReq); Result idCheck(IdCheckReq ocrReq);
Result alive(AliveReq ocrReq); Result alive(AliveReq ocrReq);
} }

View File

@ -9,12 +9,9 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException; import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.ThreadPoolExecutor;
import java.util.stream.Collectors;
@Service @Service
@Log4j2 @Log4j2
@ -35,27 +32,39 @@ public class AuthenServiceImpl implements AuthenService{
} }
@Override @Override
public Result ocrScan(OCRReq ocrReq) throws IOException { public Result ocrScan( String side, MultipartFile url) throws IOException {
OCRResponse send = ocrUtil.send(ocrReq); OCRResponse send = ocrUtil.send(side,url);
return Result.success(send); return Result.success(send);
} }
@Override @Override
public Result commitAuthen(AuthenReq authenReq) throws ExecutionException, InterruptedException { public Result commitAuthen(MultipartFile img1, MultipartFile img2, MultipartFile movie, AuthenReq authenReq) throws ExecutionException, InterruptedException {
ThreadPoolExecutor threadPoolExecutor = config.threadPoolExecutor(); ThreadPoolExecutor threadPoolExecutor = config.threadPoolExecutor();
CompletableFuture<Integer> f1 = CompletableFuture.supplyAsync(() -> { CompletableFuture<Integer> f1 = CompletableFuture.supplyAsync(() -> {
IdCheckReq idCheckReq = new IdCheckReq(); IdCheckReq idCheckReq = new IdCheckReq();
idCheckReq.setName(authenReq.getName()); idCheckReq.setName(authenReq.getName());
idCheckReq.setIdCardNo(authenReq.getIdCord()); idCheckReq.setIdCardNo(authenReq.getIdCord());
IdCheckResponse idcheck = idCheckUtil.idcheck(idCheckReq); IdCheckResponse idcheck = idCheckUtil.idcheck(idCheckReq);
return idcheck.getIdData().getResult(); Integer result = idcheck.getIdData().getResult();
if(result!=0){
return 1;
}
try {
OCRResponse send = ocrUtil.send("face", img1);
if(send.getNum().equals(authenReq.getIdCord())&&send.getName().equals(authenReq.getName())){
return 0;
}
} catch (IOException e) {
throw new RuntimeException(e);
}
return 1;
},threadPoolExecutor); },threadPoolExecutor);
CompletableFuture<? extends Serializable> f2= CompletableFuture.supplyAsync(() -> { CompletableFuture<? extends Serializable> f2= CompletableFuture.supplyAsync(() -> {
String upload = null; String upload = null;
try { try {
upload = osSupload.upload(authenReq.getMovie()); upload = osSupload.upload(movie);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
@ -76,13 +85,13 @@ public class AuthenServiceImpl implements AuthenService{
CompletableFuture<Integer> f3 = CompletableFuture.supplyAsync(() -> { CompletableFuture<Integer> f3 = CompletableFuture.supplyAsync(() -> {
String upload = null; String upload = null;
try { try {
upload = osSupload.upload(authenReq.getImg2()); upload = osSupload.upload(img2);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
String upload2 = null; String upload2 = null;
try { try {
upload2 = osSupload.upload(authenReq.getMovie()); upload2 = osSupload.upload(movie);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

View File

@ -7,8 +7,10 @@ import com.bwie.authen.vo.OCRReq;
import com.bwie.authen.vo.OCRResponse; import com.bwie.authen.vo.OCRResponse;
import com.bwie.common.result.Result;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.multipart.MultipartFile;
import java.io.File; import java.io.File;
@ -31,17 +33,17 @@ public class OCRUtil {
@Value("${ocr.path}") @Value("${ocr.path}")
private String path; private String path;
public OCRResponse send(OCRReq ocrReq) throws IOException { public OCRResponse send(String side, MultipartFile url) throws IOException {
// 对图像进行base64编码 // 对图像进行base64编码
String encode = Base64.encode(ocrReq.getUrl().getBytes()); String encode = Base64.encode(url.getBytes());
// 拼装请求body的json字符串 // 拼装请求body的json字符串
JSONObject requestObj = new JSONObject(); JSONObject requestObj = new JSONObject();
requestObj.put("image", encode); requestObj.put("image", encode);
requestObj.put("side", ocrReq.getSide()); // 假设ocrReq有getSide()方法返回要识别的身份证面(正/反) requestObj.put("side", side); // 假设ocrReq有getSide()方法返回要识别的身份证面(正/反)
// 如果API还有其他配置参数可以从ocrReq中获取并添加到requestObj中 // 如果API还有其他配置参数可以从ocrReq中获取并添加到requestObj中
String bodys = requestObj.toString(); String bodys = requestObj.toString();
@ -60,7 +62,7 @@ public class OCRUtil {
OCRResponse msgResponse = JSON.parseObject(result, OCRResponse.class); OCRResponse msgResponse = JSON.parseObject(result, OCRResponse.class);
// 检查是否成功而不是使用AssertAssert通常用于测试 // 检查是否成功而不是使用AssertAssert通常用于测试
if (!msgResponse.equals("true")) { if (!msgResponse.getSuccess().equals("true")) {
// 处理失败情况,例如记录日志或返回错误信息给调用者 // 处理失败情况,例如记录日志或返回错误信息给调用者
throw new RuntimeException("扫描失败" ); // 假设OCRResponse有一个getErrorMessage方法 throw new RuntimeException("扫描失败" ); // 假设OCRResponse有一个getErrorMessage方法
} }

View File

@ -9,10 +9,8 @@ import org.springframework.web.multipart.MultipartFile;
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
public class AuthenReq { public class AuthenReq {
private String motions; private String motions;
private MultipartFile img1;
private MultipartFile img2;
private MultipartFile movie;
private String name; private String name;
private String idCord; private String idCord;
@ -28,4 +26,5 @@ public class AuthenReq {
} }

View File

@ -5,11 +5,11 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
public class OCRReq { public class OCRReq {
private String side; private String side;
private MultipartFile url; private MultipartFile url;
} }

View File

@ -13,7 +13,7 @@ public class OCRResponse {
private String sex; private String sex;
private String num; private String num;
private String birth; private String birth;
private boolean success; private String success;