添加各个接口

master
ShiSiWei 2023-11-03 15:48:06 +08:00
parent 658298b072
commit cffc10349c
5 changed files with 205 additions and 11 deletions

View File

@ -0,0 +1,71 @@
package com.four.system.Test;
import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
/**
* @BelongsProject: 0107day02
* @Author: tzz
*/
@Component
public class FastUtil {
private static final Logger log = LoggerFactory.getLogger(FastUtil.class);
@Resource
private FastFileStorageClient storageClient ;
/**
* /
*/
public String uploadFile(MultipartFile multipartFile) throws Exception{
long size = multipartFile.getSize();
String originalFilename = multipartFile.getOriginalFilename().
substring(multipartFile.getOriginalFilename().
lastIndexOf(".") + 1);
StorePath storePath = storageClient.uploadFile(multipartFile.getInputStream(),multipartFile.getSize(),originalFilename,null);
return storePath.getFullPath() ;
}
/**
*
* @param file
* @return
* @throws Exception
*/
public String uploadImage(MultipartFile file) throws Exception{
String originalFilename = file.getOriginalFilename().
substring(file.getOriginalFilename().
lastIndexOf(".") + 1);
StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(
file.getInputStream(),
file.getSize(),originalFilename , null);
return storePath.getFullPath() ;
}
/**
*
*/
public String deleteFile(String fileUrl) {
if (StringUtils.isEmpty(fileUrl)) {
log.info("fileUrl == >>文件路径为空...");
return "文件路径不能为空";
}
try {
StorePath storePath = StorePath.parseFromUrl(fileUrl);
storageClient.deleteFile(storePath.getGroup(), storePath.getPath());
} catch (Exception e) {
log.error(e.getMessage());
}
return "删除成功";
}
}

View File

@ -0,0 +1,79 @@
package com.four.system.controller;
import com.aliyun.facebody20191230.Client;
import com.aliyun.facebody20191230.models.SearchFaceAdvanceRequest;
import com.aliyun.facebody20191230.models.SearchFaceResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.tea.TeaModel;
import com.aliyun.teautil.Common;
import com.aliyun.teautil.models.RuntimeOptions;
import org.springframework.context.annotation.Configuration;
import java.io.InputStream;
import java.net.URL;
/**
* @author : tangzhaozhen
* @createTime : 2023/10/26 23:51
*/
@Configuration
public class SampleTest {
public static com.aliyun.facebody20191230.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
/*
com.aliyun.teaopenapi.models.Config
Config AccessKeyIdAccessKeySecretendpoint
*/
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setAccessKeyId("LTAI5tENBECpxHRiWzidh93H")
.setAccessKeySecret("MYHeKEYHsAZ1hDGDEKChnFNrglgJ24");
// 访问的域名
config.endpoint = "facebody.cn-shanghai.aliyuncs.com";
return new com.aliyun.facebody20191230.Client(config);
}
public static String getFaceLanding(String images) throws Exception {
// 创建AccessKey ID和AccessKey Secret请参考https://help.aliyun.com/document_detail/175144.html
// 如果您使用的是RAM用户的AccessKey还需要为子账号授予权限AliyunVIAPIFullAccess请参考https://help.aliyun.com/document_detail/145025.html
// 从环境变量读取配置的AccessKey ID和AccessKey Secret。运行代码示例前必须先配置环境变量。
String accessKeyId = "LTAI5tENBECpxHRiWzidh93H";
String accessKeySecret = "MYHeKEYHsAZ1hDGDEKChnFNrglgJ24";
Client client = SampleTest.createClient(accessKeyId, accessKeySecret);
//// 场景一,使用本地文件
// InputStream inputStream = new FileInputStream(new File("C:\\Users\\a2075\\Desktop\\SearchFace1.png"));
// // 场景二使用任意可访问的url
URL url = new URL(images);
InputStream inputStream = url.openConnection().getInputStream();
SearchFaceAdvanceRequest searchFaceAdvanceRequest = new SearchFaceAdvanceRequest()
.setDbName("four_aliyun")
.setLimit(1)
.setImageUrlObject(inputStream);
RuntimeOptions runtime = new RuntimeOptions();
try {
// 复制代码运行请自行打印 API 的返回值
SearchFaceResponse searchFaceResponse = client.searchFaceAdvance(searchFaceAdvanceRequest, runtime);
// 获取整体结果
System.out.println(Common.toJSONString(TeaModel.buildMap(searchFaceResponse)));
// 获取单个字段Confidence转换后的置信度
Float confidence = searchFaceResponse.getBody().getData().getMatchList().iterator().next().getFaceItems().iterator().next().getConfidence();
System.out.println("对比度为:"+confidence);
if (confidence > 75){
String entityId = searchFaceResponse.getBody().getData().getMatchList().iterator().next().getFaceItems().iterator().next().getEntityId();
System.out.println("confidence对比值为"+confidence);
System.out.println("entityId为"+entityId);
return entityId+"@qq.com";
}
} catch (TeaException teaException) {
// 获取整体报错信息
System.out.println(com.aliyun.teautil.Common.toJSONString(teaException));
// 获取单个字段
System.out.println(teaException.getCode());
return "500";
}
return "请先去录制人脸";
}
}

View File

@ -2,6 +2,8 @@ package com.four.system.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.four.common.core.domain.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
@ -27,10 +29,11 @@ import com.four.system.domain.SysUserRole;
import com.four.system.service.ISysDeptService;
import com.four.system.service.ISysRoleService;
import com.four.system.service.ISysUserService;
import org.springframework.web.multipart.MultipartFile;
/**
*
*
*
* @author ruoyi
*/
@RestController
@ -97,6 +100,19 @@ public class SysRoleController extends BaseController
}
/***
*
* @param file
* @return
*/
@PostMapping("/searchBaidu")
public R<?> searchBaidu(@RequestBody MultipartFile file){
String bodys = userService.searchBaidu(file);
return R.ok(bodys);
}
/**
*
*/
@ -119,6 +135,7 @@ public class SysRoleController extends BaseController
return toAjax(roleService.updateRole(role));
}
/**
*
*/

View File

@ -10,6 +10,7 @@ import com.four.system.domain.SysDoctor;
import com.four.system.domain.SysRegistrationInformation;
import org.apache.ibatis.annotations.Param;
import org.apache.poi.hpsf.Decimal;
import org.springframework.web.multipart.MultipartFile;
/**
*
@ -246,4 +247,7 @@ public interface ISysUserService
SysUser infoByUserEmail(String email);
List<SysRegistrationInformation> findRegistrationInfoUserId(Long registrationInformationId);
String searchBaidu(MultipartFile file);
}

View File

@ -8,6 +8,8 @@ import javax.validation.Validator;
import com.four.common.core.domain.R;
import com.four.common.core.web.domain.AjaxResult;
import com.four.system.Test.FastUtil;
import com.four.system.controller.SampleTest;
import com.four.system.domain.*;
import com.four.system.service.ISysConfigService;
import org.apache.poi.hpsf.Decimal;
@ -31,6 +33,7 @@ import com.four.system.mapper.SysUserMapper;
import com.four.system.mapper.SysUserPostMapper;
import com.four.system.mapper.SysUserRoleMapper;
import com.four.system.service.ISysUserService;
import org.springframework.web.multipart.MultipartFile;
import static com.four.common.core.utils.SpringUtils.getAopProxy;
@ -66,6 +69,9 @@ public class SysUserServiceImpl implements ISysUserService
@Autowired
protected Validator validator;
@Autowired
private FastUtil fastUtil;
/**
*
*
@ -206,16 +212,6 @@ public class SysUserServiceImpl implements ISysUserService
return UserConstants.UNIQUE;
}
// @Override
// public boolean checkEmailUnique() {
// Long userId = StringUtils.isNull(user.getUserId()) ? -1L : user.getUserId();
// SysUser info = userMapper.checkPhoneUnique(user.getPhonenumber());
// if (StringUtils.isNotNull(info) && info.getUserId().longValue() != userId.longValue())
// {
// return UserConstants.NOT_UNIQUE;
// }
// return UserConstants.UNIQUE;
// }
/**
* email
@ -642,5 +638,32 @@ public class SysUserServiceImpl implements ISysUserService
return userMapper.findRegistrationInfoUserId(registrationInformationId);
}
/**
*
* @param file
* @return
*/
@Override
public String searchBaidu(MultipartFile file) {
String uploadImageFile = "";
try {
uploadImageFile = fastUtil.uploadImage(file);
if(null != uploadImageFile){
String faceLanding = SampleTest.getFaceLanding("http://101.34.252.165:8888/" + uploadImageFile);
if(!faceLanding.equals("请先录制人脸")){
return faceLanding;
}
}
}catch (Exception e){
return "请重新识别";
}
return "请先实名认证";
}
/**
*
* @param file
* @return
*/
}