|
|
@@ -13,6 +13,7 @@ import com.yingyangfly.core.domain.Face;
|
|
|
import com.yingyangfly.core.mapper.FaceMapper;
|
|
|
import com.yingyangfly.core.service.FaceService;
|
|
|
import com.yingyangfly.core.util.OSSImageUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -35,6 +36,7 @@ public class FaceServiceImpl extends ServiceImpl<FaceMapper, Face> implements Fa
|
|
|
public List<Face> selectByUserId(Long UserId) {
|
|
|
LambdaQueryWrapper<Face> faceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
faceLambdaQueryWrapper.eq(Face::getUserId,UserId);
|
|
|
+ faceLambdaQueryWrapper.orderByDesc(Face::getCreateTime);
|
|
|
return list(faceLambdaQueryWrapper);
|
|
|
}
|
|
|
|
|
|
@@ -54,7 +56,7 @@ public class FaceServiceImpl extends ServiceImpl<FaceMapper, Face> implements Fa
|
|
|
face.setFaceStatus(0);
|
|
|
face.setUserId(UserId);
|
|
|
CreatePersonResult person = faceContrastServer.createPerson(String.valueOf(UserId), UserName, imageBase);
|
|
|
- if (person.isSuccess()){
|
|
|
+ if (person.isSuccess() && StringUtils.isNotEmpty(person.getFaceId())){
|
|
|
face.setFid(Long.parseLong(person.getFaceId()));
|
|
|
return save(face);
|
|
|
}else {
|
|
|
@@ -97,20 +99,70 @@ public class FaceServiceImpl extends ServiceImpl<FaceMapper, Face> implements Fa
|
|
|
|
|
|
/**
|
|
|
* 删除人脸
|
|
|
- * @param UserId
|
|
|
+ * @param userId
|
|
|
* @param faceId
|
|
|
* @return
|
|
|
* @throws TencentCloudSDKException
|
|
|
*/
|
|
|
- public Boolean deleteFace(Long UserId,Long faceId) throws TencentCloudSDKException {
|
|
|
- String[] faceIds = new String[]{String.valueOf(faceId)};
|
|
|
- DeleteFaceResponse deleteFaceResponse = faceContrastServer.deleteFaces(String.valueOf(UserId), faceIds);
|
|
|
- if (deleteFaceResponse.getSucDeletedNum()>0) {
|
|
|
- LambdaQueryWrapper<Face> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(Face::getFid,faceId);
|
|
|
- return remove(lambdaQueryWrapper);
|
|
|
+ public Boolean deleteFace(Long userId,Long faceId) throws TencentCloudSDKException {
|
|
|
+ LambdaQueryWrapper<Face> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(Face::getUserId,userId);
|
|
|
+ List<Face> list = list(lambdaQueryWrapper);
|
|
|
+ if (list.size() == 1) {
|
|
|
+ if (faceContrastServer.deletePerson(String.valueOf(userId))) {
|
|
|
+ LambdaQueryWrapper<Face> deleteLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ deleteLambdaQueryWrapper.eq(Face::getUserId,userId);
|
|
|
+ return remove(deleteLambdaQueryWrapper);
|
|
|
+ }else {
|
|
|
+ throw new RuntimeException("删除失败");
|
|
|
+ }
|
|
|
}else {
|
|
|
- throw new RuntimeException("删除失败");
|
|
|
+ String[] faceIds = new String[]{String.valueOf(faceId)};
|
|
|
+ DeleteFaceResponse deleteFaceResponse = faceContrastServer.deleteFaces(String.valueOf(userId), faceIds);
|
|
|
+ if (deleteFaceResponse.getSucDeletedNum()>0) {
|
|
|
+ LambdaQueryWrapper<Face> deleteLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ deleteLambdaQueryWrapper.eq(Face::getFid,faceId);
|
|
|
+ return remove(deleteLambdaQueryWrapper);
|
|
|
+ }else {
|
|
|
+ throw new RuntimeException("删除失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除人脸
|
|
|
+ * @param userId
|
|
|
+ * @param url
|
|
|
+ * @return
|
|
|
+ * @throws TencentCloudSDKException
|
|
|
+ */
|
|
|
+ public Boolean deleteFaceUrl(Long userId,String url) throws TencentCloudSDKException {
|
|
|
+ LambdaQueryWrapper<Face> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(Face::getUserId,userId);
|
|
|
+ List<Face> list = list(lambdaQueryWrapper);
|
|
|
+ if (list.size() == 1) {
|
|
|
+ if (faceContrastServer.deletePerson(String.valueOf(userId))) {
|
|
|
+ LambdaQueryWrapper<Face> deleteLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ deleteLambdaQueryWrapper.eq(Face::getUserId,userId);
|
|
|
+ return remove(deleteLambdaQueryWrapper);
|
|
|
+ }else {
|
|
|
+ throw new RuntimeException("删除失败");
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ LambdaQueryWrapper<Face> faceLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ faceLambdaQueryWrapper.eq(Face::getUserId,userId);
|
|
|
+ faceLambdaQueryWrapper.eq(Face::getFaceBase,url);
|
|
|
+ Face face = getOne(faceLambdaQueryWrapper);
|
|
|
+ String[] faceIds = new String[]{String.valueOf(face.getFid())};
|
|
|
+ DeleteFaceResponse deleteFaceResponse = faceContrastServer.deleteFaces(String.valueOf(userId), faceIds);
|
|
|
+ if (deleteFaceResponse.getSucDeletedNum()>0) {
|
|
|
+ LambdaQueryWrapper<Face> deleteLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ deleteLambdaQueryWrapper.eq(Face::getFid,face.getFid());
|
|
|
+ return remove(deleteLambdaQueryWrapper);
|
|
|
+ }else {
|
|
|
+ throw new RuntimeException("删除失败");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|