package com.gkhy.assess.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.gkhy.assess.common.enums.DeleteFlagEnum; import com.gkhy.assess.common.exception.ApiException; import com.gkhy.assess.system.domain.AssFaceRecord; import com.gkhy.assess.system.mapper.AssFaceRecordMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gkhy.assess.system.domain.vo.UploadObjectVO; import com.gkhy.assess.system.service.AssFaceRecordService; import com.gkhy.assess.system.service.AssProjectService; import com.gkhy.assess.system.service.SysCommonService; import com.gkhy.assess.system.utils.ShiroUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** *

* 现场勘验人员人脸识别记录表 服务实现类 *

* * @author kzy * @since 2023-12-12 10:46:54 */ @Service public class AssFaceRecordServiceImpl extends ServiceImpl implements AssFaceRecordService { @Autowired private SysCommonService commonService; @Autowired private AssProjectService projectService; @Override public int addFaceRecord(AssFaceRecord faceRecord) { int row=0; projectService.checkUserAllowed(faceRecord.getProjectId()); UploadObjectVO uploadObjectVO=commonService.doUpload(faceRecord.getFile()); faceRecord.setFacePath(uploadObjectVO.getPath()); AssFaceRecord existRecord=checkFaceUnique(faceRecord.getPersonId(),faceRecord.getProjectId()); if(existRecord!=null){ // throw new ApiException("已存在人脸识别记录"); existRecord.setFacePath(uploadObjectVO.getPath()); existRecord.setLocation(faceRecord.getLocation()); existRecord.setScene(faceRecord.getScene()); row =baseMapper.updateById(existRecord); }else{ faceRecord.setCreateBy(ShiroUtils.getSysUser().getUsername()); row=baseMapper.insert(faceRecord); } return row; } public AssFaceRecord checkFaceUnique(Long personId,Long projectId) { LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery() .eq(AssFaceRecord::getPersonId, personId) .eq(AssFaceRecord::getProjectId, projectId) .eq(AssFaceRecord::getDelFlag, DeleteFlagEnum.UN_DELETE); return getOne(lambdaQueryWrapper); } @Override public List faceRecordList(Long projectId,Integer scene) { projectService.checkUserAllowed(projectId); return baseMapper.faceRecordList(projectId,scene); } @Override public int editFaceRecord(AssFaceRecord faceRecord) { projectService.checkUserAllowed(faceRecord.getProjectId()); faceRecord.setUpdateBy(ShiroUtils.getSysUser().getUsername()); int row =baseMapper.updateById(faceRecord); return row; } @Override public int deleteById(Long faceId) { AssFaceRecord faceRecord=getById(faceId); projectService.checkUserAllowed(faceRecord.getProjectId()); faceRecord=new AssFaceRecord().setId(faceId) .setDelFlag(DeleteFlagEnum.DELETED.getCode()); faceRecord.setUpdateBy(ShiroUtils.getSysUser().getUsername()); return baseMapper.updateById(faceRecord); } }