重构 文档下载

This commit is contained in:
付庆吉
2021-05-11 09:06:04 +08:00
parent 5614b2533c
commit 824d346434
4 changed files with 26 additions and 29 deletions

View File

@ -4,6 +4,7 @@ package com.chinaunicom.mall.ebtp.extend.bizbidshared.controller;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.chinaunicom.mall.ebtp.common.base.entity.BasePageResponse; import com.chinaunicom.mall.ebtp.common.base.entity.BasePageResponse;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse; import com.chinaunicom.mall.ebtp.common.base.entity.BaseResponse;
import com.chinaunicom.mall.ebtp.common.constant.EbtpRoleEnum;
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils; import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.chinaunicom.mall.ebtp.extend.bizbidshared.entity.BizBidShared; import com.chinaunicom.mall.ebtp.extend.bizbidshared.entity.BizBidShared;
import com.chinaunicom.mall.ebtp.extend.bizbidshared.entity.BizBidSharedVO; import com.chinaunicom.mall.ebtp.extend.bizbidshared.entity.BizBidSharedVO;
@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.stream.Collectors;
@RestController @RestController
@Api(tags = "") @Api(tags = "")
@ -51,7 +53,8 @@ public class BizBidSharedController {
if (StringUtils.isEmpty(bizBidShared.getId())) { if (StringUtils.isEmpty(bizBidShared.getId())) {
bizBidShared.setId(PropertyUtils.getSnowflakeId()); bizBidShared.setId(PropertyUtils.getSnowflakeId());
} }
bizBidShared.setSharedRole(StrUtil.join(",", bizBidShared.getSharedRoles())); bizBidShared.setSharedRole(StrUtil.join(",", bizBidShared.getRoles().stream().map(m -> EbtpRoleEnum.matchRole(m).getDesc()).collect(Collectors.toList())));
bizBidShared.setSharedRoles(StrUtil.join(",", bizBidShared.getRoles()));
boolean save = ibizBidSharedService.saveOrUpdate(bizBidShared); boolean save = ibizBidSharedService.saveOrUpdate(bizBidShared);
return BaseResponse.success(save); return BaseResponse.success(save);

View File

@ -44,6 +44,12 @@ public class BizBidShared extends BaseEntity implements Serializable {
@ApiModelProperty(value = "共享文档文件名") @ApiModelProperty(value = "共享文档文件名")
private String sharedName; private String sharedName;
/**
* 共享文档使用角色
*/
@ApiModelProperty(value = "共享文档使用角色")
private String sharedRoles;
/** /**
* 共享文档使用角色 * 共享文档使用角色
*/ */
@ -52,10 +58,9 @@ public class BizBidShared extends BaseEntity implements Serializable {
/** /**
* 共享文档使用角色list * 共享文档使用角色list
*/ */
@Transient @Transient
@TableField(exist = false) @TableField(exist = false)
private List<String> sharedRoles; private List<String> roles;
/** /**
* 共享文档ID * 共享文档ID
*/ */
@ -78,4 +83,7 @@ public class BizBidShared extends BaseEntity implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String fileSuffix; private String fileSuffix;
@TableField(exist = false)
private boolean isAllowDownload;
} }

View File

@ -1,15 +1,13 @@
package com.chinaunicom.mall.ebtp.extend.bizbidshared.service.impl; package com.chinaunicom.mall.ebtp.extend.bizbidshared.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.ebtp.mall.cloud.attachment.sdk.api.AttachmentClient; import com.chinaunicom.mall.ebtp.common.base.entity.BaseCacheUser;
import com.chinaunicom.ebtp.mall.cloud.attachment.sdk.model.AttachmentDetail; import com.chinaunicom.mall.ebtp.common.base.service.IBaseCacheUserService;
import com.chinaunicom.ebtp.mall.cloud.attachment.sdk.model.AttachmentEntity;
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
import com.chinaunicom.mall.ebtp.extend.bizbidshared.dao.BizBidSharedMapper; import com.chinaunicom.mall.ebtp.extend.bizbidshared.dao.BizBidSharedMapper;
import com.chinaunicom.mall.ebtp.extend.bizbidshared.entity.BizBidShared; import com.chinaunicom.mall.ebtp.extend.bizbidshared.entity.BizBidShared;
@ -18,10 +16,6 @@ import com.chinaunicom.mall.ebtp.extend.bizbidshared.service.IBizBidSharedServic
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/** /**
* 对数据表 biz_bid_shared 操作的 serviceImpl * 对数据表 biz_bid_shared 操作的 serviceImpl
* *
@ -31,10 +25,11 @@ import java.util.stream.Collectors;
public class BizBidSharedServiceImpl extends BaseServiceImpl<BizBidSharedMapper, BizBidShared> implements IBizBidSharedService { public class BizBidSharedServiceImpl extends BaseServiceImpl<BizBidSharedMapper, BizBidShared> implements IBizBidSharedService {
@Autowired @Autowired
private AttachmentClient attachmentClient; private IBaseCacheUserService cacheUserService;
@Override @Override
public IPage<BizBidShared> getList(BizBidSharedVO bizBidNotice) { public IPage<BizBidShared> getList(BizBidSharedVO bizBidNotice) {
BaseCacheUser user = cacheUserService.getCacheUser();
LambdaQueryWrapper<BizBidShared> wrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<BizBidShared> wrapper = Wrappers.lambdaQuery();
wrapper.like(StrUtil.isNotEmpty(bizBidNotice.getSharedName()), BizBidShared::getSharedName, bizBidNotice.getSharedName()) wrapper.like(StrUtil.isNotEmpty(bizBidNotice.getSharedName()), BizBidShared::getSharedName, bizBidNotice.getSharedName())
.like(StrUtil.isNotEmpty(bizBidNotice.getSharedRole()), BizBidShared::getSharedRole, bizBidNotice.getSharedRole()) .like(StrUtil.isNotEmpty(bizBidNotice.getSharedRole()), BizBidShared::getSharedRole, bizBidNotice.getSharedRole())
@ -46,14 +41,9 @@ public class BizBidSharedServiceImpl extends BaseServiceImpl<BizBidSharedMapper,
Page<BizBidShared> page = this.page(new Page<>(bizBidNotice.getPageNo(), bizBidNotice.getPageSize()), wrapper); Page<BizBidShared> page = this.page(new Page<>(bizBidNotice.getPageNo(), bizBidNotice.getPageSize()), wrapper);
List<String> collect = page.getRecords().stream().map(BizBidShared::getSharedFile).distinct().collect(Collectors.toList()); //是否可下载
Optional<AttachmentDetail> optional = attachmentClient.findByBusinessId(collect); page.getRecords().forEach(p -> p.setAllowDownload(p.getSharedRoles().contains(user.getCurrentRoleCode())));
optional.ifPresent(o -> {
page.getRecords().forEach(r -> {
Optional<AttachmentEntity> first = o.get(r.getSharedFile()).stream().findFirst();
first.ifPresent(f -> r.setFileName(f.getFilename()).setFileSuffix(FileUtil.getSuffix(f.getFilename())));
});
});
return page; return page;
} }

View File

@ -7,11 +7,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl; import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
import com.chinaunicom.mall.ebtp.common.constant.EbtpRoleEnum;
import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.dao.BizBidSharedRecordMapper; import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.dao.BizBidSharedRecordMapper;
import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.entity.BizBidSharedRecord; import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.entity.BizBidSharedRecord;
import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.entity.BizBidSharedRecordVO; import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.entity.BizBidSharedRecordVO;
import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.service.IBizBidSharedRecordService; import com.chinaunicom.mall.ebtp.extend.bizbidsharedrecord.service.IBizBidSharedRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
/** /**
@ -22,8 +22,6 @@ import org.springframework.stereotype.Service;
@Service @Service
public class BizBidSharedRecordServiceImpl extends BaseServiceImpl<BizBidSharedRecordMapper, BizBidSharedRecord> implements IBizBidSharedRecordService { public class BizBidSharedRecordServiceImpl extends BaseServiceImpl<BizBidSharedRecordMapper, BizBidSharedRecord> implements IBizBidSharedRecordService {
@Autowired
BizBidSharedRecordMapper bizBidSharedRecordMapper;
@Override @Override
public IPage<BizBidSharedRecord> getList(BizBidSharedRecordVO recordVO) { public IPage<BizBidSharedRecord> getList(BizBidSharedRecordVO recordVO) {
@ -38,13 +36,11 @@ public class BizBidSharedRecordServiceImpl extends BaseServiceImpl<BizBidSharedR
if (recordVO.getCreateDate() != null) { if (recordVO.getCreateDate() != null) {
wrapper.between(BizBidSharedRecord::getCreateDate, recordVO.getCreateDate(), recordVO.getCreateDate().plusDays(1L)); wrapper.between(BizBidSharedRecord::getCreateDate, recordVO.getCreateDate(), recordVO.getCreateDate().plusDays(1L));
} }
return this.page(new Page<>(recordVO.getPageNo(), recordVO.getPageSize()), wrapper); Page<BizBidSharedRecord> page = this.page(new Page<>(recordVO.getPageNo(), recordVO.getPageSize()), wrapper);
}
// @Override page.getRecords().forEach(p -> p.setRecordRole(EbtpRoleEnum.matchRole(p.getRecordRole()).getDesc()));
// public BizBidSharedRecord getByIdInfo(BizBidSharedRecord bizBidSharedRecord) { return page;
// return bizBidSharedRecordMapper.getByIdInfo(bizBidSharedRecord.getRecordId(), bizBidSharedRecord.getCurrent(), bizBidSharedRecord.getPageSize()); }
// }
} }