package com.gkhy.assess.system.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gkhy.assess.common.enums.DeleteFlagEnum;
import com.gkhy.assess.common.enums.UserIdentityEnum;
import com.gkhy.assess.common.exception.ApiException;
import com.gkhy.assess.system.domain.AssAccessoryFile;
import com.gkhy.assess.system.domain.AssProject;
import com.gkhy.assess.system.domain.SysUser;
import com.gkhy.assess.system.domain.vo.UploadObjectVO;
import com.gkhy.assess.system.mapper.AssAccessoryFileMapper;
import com.gkhy.assess.system.mapper.AssProjectMapper;
import com.gkhy.assess.system.service.AssAccessoryFileService;
import com.gkhy.assess.system.service.AssProjectService;
import com.gkhy.assess.system.service.SysCommonService;
import com.gkhy.assess.system.utils.ShiroUtils;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
*
* 评估文件上传记录表 服务实现类
*
*
* @author kzy
* @since 2023-12-12 10:46:54
*/
@Service
public class AssAccessoryFileServiceImpl extends ServiceImpl implements AssAccessoryFileService {
@Autowired
private SysCommonService commonService;
@Autowired
private AssProjectService projectService;
@Override
public AssAccessoryFile uploadFile(Long projectId, Integer moduleType, MultipartFile file) {
if(projectId==null||moduleType==null||file==null){
throw new ApiException("参数或者上传文件不能为空");
}
projectService.checkUserAllowed(projectId);
UploadObjectVO uploadObjectVO = commonService.doUpload(file);
AssAccessoryFile accessoryFile=new AssAccessoryFile()
.setFileName(uploadObjectVO.getFilename())
.setOriginName(uploadObjectVO.getOriginName())
.setPath(uploadObjectVO.getPath())
.setProjectId(projectId)
.setModuleType(moduleType);
accessoryFile.setCreateBy(ShiroUtils.getSysUser().getName());
save(accessoryFile);
return accessoryFile;
}
@Override
public List getAccessoryFileByProjectId(Long projectId, Integer moduleType) {
projectService.checkUserAllowed(projectId);
return baseMapper.getAccessoryFileByProjectId(projectId,moduleType);
}
@Override
public Integer getAccessoryFileCountByProjectId(Long projectId, Integer moduleType) {
projectService.checkUserAllowed(projectId);
return baseMapper.getAccessoryFileCountByProjectId(projectId,moduleType);
}
@Override
public int deleteById(Long accessoryFileId) {
AssAccessoryFile accessoryFile=getById(accessoryFileId);
projectService.checkUserAllowed(accessoryFile.getProjectId());
return update(Wrappers.lambdaUpdate()
.eq(AssAccessoryFile::getId,accessoryFileId)
.set(AssAccessoryFile::getDelFlag, DeleteFlagEnum.DELETED.getCode())
.set(AssAccessoryFile::getUpdateBy,ShiroUtils.getSysUser().getName()))?1:0;
}
@Override
public int deleteByProjectId(Long projectId, Integer moduleType) {
projectService.checkUserAllowed(projectId);
return baseMapper.update(null,Wrappers.lambdaUpdate()
.set(AssAccessoryFile::getDelFlag,DeleteFlagEnum.DELETED.getCode())
.set(AssAccessoryFile::getUpdateBy,ShiroUtils.getSysUser().getName())
.eq(AssAccessoryFile::getProjectId,projectId)
.eq(AssAccessoryFile::getModuleType,moduleType));
}
}