package com.gkhy.assess.system.service.impl;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.common.utils.StringUtils;
import com.gkhy.assess.system.domain.SysUser;
import com.gkhy.assess.system.domain.SysUserFace;
import com.gkhy.assess.system.domain.vo.UploadObjectVO;
import com.gkhy.assess.system.mapper.SysUserFaceMapper;
import com.gkhy.assess.system.mapper.SysUserMapper;
import com.gkhy.assess.system.service.SysCommonService;
import com.gkhy.assess.system.service.SysUserFaceService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.system.service.SysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
*
* 用户人脸数据表 服务实现类
*
*
* @author kzy
* @since 2024-01-09 17:10:01
*/
@Service
public class SysUserFaceServiceImpl extends ServiceImpl implements SysUserFaceService {
@Autowired
private SysCommonService commonService;
@Autowired
private SysUserService userService;
@Override
@Transactional(rollbackFor = RuntimeException.class)
public UploadObjectVO addUserFace(SysUserFace userFace) {
// SysUserFace oldUserFace=baseMapper.getFaceByUserId(userFace.getUserId());
UploadObjectVO uploadObjectVO =commonService.doUpload(userFace.getFile());
/*if(oldUserFace==null){
baseMapper.insert(userFace);
}else{
baseMapper.updateById(new SysUserFace().setId(oldUserFace.getId()).setFaceBase(userFace.getFaceBase()));
}*/
boolean res=userService.updateById(new SysUser().setId(userFace.getUserId()).setIdPhoto(uploadObjectVO.getPath()));
if(!res){
throw new ApiException("人脸数据上传失败");
}
SysUser sysUser=userService.getById(userFace.getUserId());
userService.delCacheByUsername(sysUser.getUsername(),sysUser.getIdentity());
if(StringUtils.isNotBlank(sysUser.getPhone())) {
userService.delCacheByUsername(sysUser.getPhone(), sysUser.getIdentity());
}
return uploadObjectVO;
}
@Override
public SysUserFace getFaceByUserId(Long userId) {
return baseMapper.getFaceByUserId(userId);
}
}