一. 附件关联业务
1. 导入依赖
<dependency>
<groupId>com.dragonsoft</groupId>
<artifactId>duceap-boot-starter-uploader</artifactId>
</dependency>
<!--flyway模块-->
<dependency>
<groupId>com.dragonsoft</groupId>
<artifactId>duceap-boot-starter-flyway</artifactId>
</dependency>
2. 配置文件
#设置文件上传大小,springboot默认的最大上传大小是1MB
spring.servlet.multipart.max-file-size=1024MB
spring.servlet.multipart.max-request-size=1024MB
#设置服务端存储路径
duceap.uploader.store.strategy=fileSystem
duceap.uploader.store.fileSystem.path=file:/D:/upload/
#flyway
duceap.flyway.enabled=false
#数据表空间
duceap.flyway.placeholders.TABLESPACE_DATA=USERS
##索引表空间
duceap.flyway.placeholders.TABLESPACE_INDEX=USERS
##大字段表空间
duceap.flyway.placeholders.TABLESPACE_LOB=USERS
#
##默认根据驱动名进行自动匹配
flyway.dbtype=oracle
#
##当没有配置flyway脚本扫描器类,默认加载此目录下flyway脚本
duceap.flyway.locations=classpath:/sql/SLXF
duceap.flyway.placeholderPrefix=#{
duceap.flyway.placeholderSuffix=}
duceap.flyway.outOfOrder=true
duceap.flyway.initOnMigrate=true
duceap.flyway.initVersion=0.5.0
duceap.flyway.ignoreFailedFutureMigration=false
3. 接口地址
前端直接调用
http://20.20.32.132:1645/xxxxx/api/file/upload
4. 上传成功后存表
T_UPLOADER_FILE
此时需要让他与业务数据关联起来
5. 当执行保存操作时关联
/**
* 将附件于业务关联
* @param requestFileVo
* @return
*/
@PostMapping(value = "/relatedBusiness")
public ResponseResult relatedBusiness(@RequestBody RequestFileVo requestFileVo) {
String busId = requestFileVo.getBusId();
List<ImageVo> imageVoList = requestFileVo.getImageVoList();
erticleService.updateFile(busId,requestFileVo.getFileId(),requestFileVo.getVideoId(),imageVoList);
return ResponseResult.newInstance("操作成功");
}
public class RequestFileVo {
private String busId;
private String fileId;
private String videoId;
private List<ImageVo> imageVoList;
}
@Transactional(rollbackFor = Exception.class)
public void updateFile(String busId,String fileId,String videoId, List<ImageVo> imageVoList){
//用于编辑操作时
erticleRepository.updateDelFile(busId);
if (org.apache.commons.collections.CollectionUtils.isNotEmpty(imageVoList)){
for (ImageVo image : imageVoList){
if(org.apache.commons.lang.StringUtils.isNotBlank(image.getId())){
List<String> imgList = Arrays.asList(image.getId().split(","));
for(String str : imgList){
erticleRepository.updateFile(busId,image.getType(),str);
}
}
}
}
if(!StringUtils.isEmpty(fileId)){
List<String> fileList = Arrays.asList(fileId.split(","));
for(String str : fileList){
erticleRepository.updateFile(busId,ErticleEnum.WZWD.getCode(),str);
}
}
if(!StringUtils.isEmpty(videoId)){
List<String> videoList = Arrays.asList(videoId.split(","));
for(String str : videoList){
erticleRepository.updateFile(busId,ErticleEnum.WZSP.getCode(),str);
}
}
}
/**
* 将业务与附件做关联
* @param
*/
@Modifying
@NativeQuery("UPDATE T_UPLOADER_FILE SET BUSINESS_ID = :businessId, BUSINESS_TYPE = :businessType WHERE ID = :fileId")
void updateFile(@Param("businessId") String businessId, @Param("businessType") String businessType, @Param("fileId") String fileId);
二. 权限配置
1. 导入依赖
<dependency>
<groupId>com.dragonsoft</groupId>
<artifactId>duceap-security-dcuc</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>
<!--flyway模块-->
<dependency>
<groupId>com.dragonsoft</groupId>
<artifactId>duceap-boot-starter-flyway</artifactId>
</dependency>
2. 配置文件
sql脚本文件位置建表语句
classpath:/sql/oracle.duceap.securityright
#flyway
duceap.flyway.enabled=false
#数据表空间
duceap.flyway.placeholders.TABLESPACE_DATA=USERS
##索引表空间
duceap.flyway.placeholders.TABLESPACE_INDEX=USERS
##大字段表空间
duceap.flyway.placeholders.TABLESPACE_LOB=USERS
#
##默认根据驱动名进行自动匹配
flyway.dbtype=oracle
#
##当没有配置flyway脚本扫描器类,默认加载此目录下flyway脚本
duceap.flyway.locations=classpath:/sql/oracle.duceap.securityright
duceap.flyway.placeholderPrefix=#{
duceap.flyway.placeholderSuffix=}
duceap.flyway.outOfOrder=true
duceap.flyway.initOnMigrate=true
duceap.flyway.initVersion=0.5.0
duceap.flyway.ignoreFailedFutureMigration=false
3. 接口方法
获得该用户的权限code
public List<String> getSecurityRights(){
List<String> stringList = new ArrayList<>();
SecurityUser currentUser = (SecurityUser) SessionUtils.getAttribute("securityUserSessionId");
List<SecurityRight> securityRightList = currentUser.getSecurityRightsByApplicationId("QX_SLXF_CJ");
if (CollectionUtil.isNotEmpty(securityRightList)){
for (SecurityRight securityRight : securityRightList){
stringList.add(securityRight.getCode());
}
}
return stringList;
}
如果没有权限只能查部分数据
public Page<AgentTask> getAgentTaskList(Searchable searchable) {
SecurityUser securityUser = SessionUtils.getUserInfo();
List<String> securityRights = slxfXxtjbEntityService.getSecurityRights();
if(!securityRights.contains(AutoEnum.GWJHGLQX.getCode())){//没有权限只能查自己创建的数据和负责人为自己的数据
searchable.addSearchFilter(SearchFilterHelper.or(
SearchFilterHelper.newCondition("createUser",SearchOperator.eq,securityUser.getName()),
SearchFilterHelper.newCondition("fzrId",SearchOperator.eq,securityUser.getId()),
SearchFilterHelper.newCondition("fzr",SearchOperator.eq,securityUser.getName())));
}
searchableInfo(searchable);
Page<AgentTask> page = this.paging(searchable);
return page;
}