You've already forked FrameTour-BE
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@ -1,5 +1,7 @@
|
||||
package com.ycwl.basic.service;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.ycwl.basic.exception.BaseException;
|
||||
import com.ycwl.basic.utils.OssUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -20,7 +22,12 @@ public class FileService {
|
||||
private OssUtil ossUtil;
|
||||
|
||||
public String uploadFile(MultipartFile file) throws IOException {
|
||||
return ossUtil.uploadFile(file.getInputStream(), Objects.requireNonNull(file.getOriginalFilename()));
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
if (StrUtil.isBlank(originalFilename)) {
|
||||
throw new BaseException("文件上传失败,文件名不能为空");
|
||||
}
|
||||
String fileName=System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf("."));
|
||||
return ossUtil.uploadFile(file.getInputStream(), fileName);
|
||||
}
|
||||
|
||||
public Boolean delete(String fileName) {
|
||||
|
@ -0,0 +1,52 @@
|
||||
package com.ycwl.basic.service.impl.mobile;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ycwl.basic.constant.BaseContextHandler;
|
||||
import com.ycwl.basic.mapper.pc.DeviceMapper;
|
||||
import com.ycwl.basic.mapper.pc.ScenicMapper;
|
||||
import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
|
||||
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
|
||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
||||
import com.ycwl.basic.service.mobile.AppScenicService;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/12/6 10:23
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class AppScenicServiceImpl implements AppScenicService {
|
||||
|
||||
@Autowired
|
||||
private ScenicMapper scenicMapper;
|
||||
@Autowired
|
||||
private DeviceMapper deviceMapper;
|
||||
|
||||
@Override
|
||||
public ApiResponse<PageInfo<ScenicAppVO>> pageQuery(ScenicReqQuery scenicReqQuery) {
|
||||
PageHelper.startPage(scenicReqQuery.getPageNum(), scenicReqQuery.getPageSize());
|
||||
List<ScenicAppVO> list = scenicMapper.appList(scenicReqQuery);
|
||||
PageInfo<ScenicAppVO> pageInfo = new PageInfo<>(list);
|
||||
return ApiResponse.success(pageInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse<ScenicDeviceCountVO> deviceCountByScenicId(Long scenicId) {
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
ScenicDeviceCountVO scenicDeviceCountVO=deviceMapper.deviceCountByScenicId(scenicId,userId);
|
||||
return ApiResponse.success(scenicDeviceCountVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse<ScenicRespVO> getDetails(Long id) {
|
||||
return scenicMapper.getAppById(id);
|
||||
}
|
||||
}
|
@ -2,26 +2,36 @@ package com.ycwl.basic.service.impl.pc;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ycwl.basic.constant.BaseContextHandler;
|
||||
import com.ycwl.basic.exception.BaseException;
|
||||
import com.ycwl.basic.mapper.pc.FaceMapper;
|
||||
import com.ycwl.basic.model.jwt.JwtInfo;
|
||||
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||
import com.ycwl.basic.service.pc.FaceService;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import com.ycwl.basic.utils.SnowFlakeUtil;
|
||||
import com.ycwl.basic.utils.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/12/2 16:39
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class FaceServiceImpl implements FaceService {
|
||||
@Autowired
|
||||
private FaceMapper faceMapper;
|
||||
@Autowired
|
||||
private OssUtil ossUtil;
|
||||
|
||||
@Override
|
||||
public ApiResponse<PageInfo<FaceRespVO>> pageQuery(FaceReqQuery faceReqQuery) {
|
||||
@ -77,4 +87,72 @@ public class FaceServiceImpl implements FaceService {
|
||||
}
|
||||
return ApiResponse.success(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResponse faceUPload(MultipartFile file) {
|
||||
//TODO 获取用户信息
|
||||
String userId = BaseContextHandler.getUserId();
|
||||
//1、上传人脸照片
|
||||
String facaeUrl = uploadFileALiOss(file, userId);
|
||||
//TODO 2、人脸照片有效性校验
|
||||
Boolean isValid=true;
|
||||
|
||||
|
||||
|
||||
if(isValid){
|
||||
//校验成功,保存用户人脸信息,将访问人脸照片访问地址响应给前端
|
||||
|
||||
FaceEntity faceEntity = new FaceEntity();
|
||||
faceEntity.setId(SnowFlakeUtil.getLongId());
|
||||
faceEntity.setMemberId(Long.parseLong(userId));
|
||||
faceEntity.setFaceUrl(facaeUrl);
|
||||
// faceEntity.setScore();
|
||||
// faceEntity.setMatchSampleIds();
|
||||
// faceEntity.setFirstMatchRate();
|
||||
// faceEntity.setMatchResult();
|
||||
//TODO 人脸数据存库
|
||||
faceMapper.add(faceEntity);
|
||||
|
||||
return ApiResponse.success(facaeUrl);
|
||||
}else {
|
||||
//校验失败,删除,提示重新上传
|
||||
ossUtil.deleteFile(facaeUrl);
|
||||
|
||||
throw new BaseException("人脸照片校验失败,请重新上传");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 阿里oss图片上传
|
||||
*
|
||||
* @param file file
|
||||
* @param userId 用户id
|
||||
* @return 地址
|
||||
*/
|
||||
private String uploadFileALiOss(MultipartFile file,String userId) {
|
||||
if (file.isEmpty()) {
|
||||
throw new RuntimeException("文件不存在!");
|
||||
}
|
||||
String originalFilename = file.getOriginalFilename();
|
||||
//获取文件名后缀
|
||||
String suffix = originalFilename.split("\\.")[1];
|
||||
if ("Jpeg".equals(suffix)) {
|
||||
suffix = "jpg";
|
||||
}
|
||||
//文件储存路径
|
||||
String filePath="";
|
||||
String dateStr = DateUtils.format(new Date(),"yyyy-MM-dd");
|
||||
|
||||
filePath=filePath+dateStr+"/";
|
||||
// 生成文件名
|
||||
String fileName= userId+"." + suffix;
|
||||
InputStream inputStream ;
|
||||
try {
|
||||
inputStream = file.getInputStream();
|
||||
} catch (IOException e) {
|
||||
log.error("文件上传失败!", e);
|
||||
return null;
|
||||
}
|
||||
return ossUtil.uploadFile(inputStream,filePath+fileName) ;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,20 @@
|
||||
package com.ycwl.basic.service.mobile;
|
||||
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.ycwl.basic.model.mobile.scenic.ScenicAppVO;
|
||||
import com.ycwl.basic.model.mobile.scenic.ScenicDeviceCountVO;
|
||||
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
|
||||
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
|
||||
/**
|
||||
* @Author:longbinbin
|
||||
* @Date:2024/12/6 10:23
|
||||
*/
|
||||
public interface AppScenicService {
|
||||
ApiResponse<PageInfo<ScenicAppVO>> pageQuery(ScenicReqQuery scenicReqQuery);
|
||||
|
||||
ApiResponse<ScenicDeviceCountVO> deviceCountByScenicId(Long scenicId);
|
||||
|
||||
ApiResponse<ScenicRespVO> getDetails(Long id);
|
||||
}
|
@ -5,6 +5,7 @@ import com.ycwl.basic.model.pc.face.entity.FaceEntity;
|
||||
import com.ycwl.basic.model.pc.face.req.FaceReqQuery;
|
||||
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
|
||||
import com.ycwl.basic.utils.ApiResponse;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -21,4 +22,5 @@ public interface FaceService {
|
||||
ApiResponse<Integer> deleteByIds(List<Long> ids);
|
||||
ApiResponse<Integer> update(FaceEntity face);
|
||||
|
||||
ApiResponse faceUPload(MultipartFile file);
|
||||
}
|
||||
|
Reference in New Issue
Block a user