From 502fcb307284f921e318b79f53e4ddaf683be055 Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Thu, 10 Apr 2025 17:44:57 +0800 Subject: [PATCH] =?UTF-8?q?feat(communityCenter):=20=E7=A4=BE=E5=8C=BA?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD=E8=AE=B0=E5=BD=95=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/dto/CommunityFilePageListRes.java | 6 ++++ .../domain/vo/CommunityFileVo.java | 18 +++++++---- .../domain/vo/DownloadFileUserVo.java | 2 +- .../mapper/CommunityFileLogMapper.java | 14 +++++++++ .../mapper/CommunityFileMapper.java | 3 +- .../service/CommunityFileLogService.java | 5 ++++ .../impl/CommunityFileLogServiceImpl.java | 11 +++++++ .../impl/CommunityFileServiceImpl.java | 30 +++++++++++++++++-- .../CommunityFileLogMapper.xml | 23 ++++++++++++++ .../communityCenter/CommunityFileMapper.xml | 18 ++++++----- 10 files changed, 114 insertions(+), 16 deletions(-) create mode 100644 mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileLogMapper.xml diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java index 93e53e9..3a0c1c5 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/dto/CommunityFilePageListRes.java @@ -31,6 +31,12 @@ public class CommunityFilePageListRes extends PageDomain { @NotNull(message = "社区id不能为空") private Long communityId; + /** + * 查询条件 + */ + @ApiModelProperty(value = "查询条件") + private String search; + } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java index 6cdb25b..1d9ecad 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/CommunityFileVo.java @@ -46,6 +46,12 @@ public class CommunityFileVo { @ApiModelProperty(value = "文件名称") private String fileName; + /** + * 文件大小 + */ + @ApiModelProperty(value = "文件大小") + private Long fileSize; + /** * 上传人 */ @@ -53,6 +59,13 @@ public class CommunityFileVo { private String uploadUserName; + /** + * 下载记录 + */ + @ApiModelProperty(value = "用户下载记录") + private DownloadFileUserVo downloadFileUser; + + /** * 上传时间 */ @@ -60,10 +73,5 @@ public class CommunityFileVo { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date createTime; - /** - * 下载记录 - */ - @ApiModelProperty(value = "用户下载记录") - private DownloadFileUserVo downloadFileUser; } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java index 81b0b03..aff1d59 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/domain/vo/DownloadFileUserVo.java @@ -16,7 +16,7 @@ import java.util.List; public class DownloadFileUserVo { @ApiModelProperty(value = "用户头像") - private List avatarUrlList; + private List avatarList; @ApiModelProperty(value = "下载用户数") private Integer count; diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java index 59ed934..7ba2ba7 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileLogMapper.java @@ -1,11 +1,25 @@ package com.mcwl.communityCenter.mapper; +import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mcwl.communityCenter.domain.CommunityFile; import com.mcwl.communityCenter.domain.CommunityFileLog; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface CommunityFileLogMapper extends BaseMapper { + @InterceptorIgnore(tenantLine = "true") + List getUserAvatarList(@Param("tenantId") + Long tenantId, + @Param("communityId") + Long communityId, + @Param("communityFileId") + Long communityFileId); + + @InterceptorIgnore(tenantLine = "true") + Integer getDownloadCount(Long tenantId, Long communityId, Long communityFileId); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java index 297388a..5d0b6bb 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/mapper/CommunityFileMapper.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mcwl.communityCenter.domain.Community; import com.mcwl.communityCenter.domain.CommunityFile; import com.mcwl.communityCenter.domain.dto.CommunityFilePageListRes; +import com.mcwl.communityCenter.domain.vo.CommunityFileVo; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -18,5 +19,5 @@ import java.util.Map; public interface CommunityFileMapper extends BaseMapper { @InterceptorIgnore(tenantLine = "true") - List getCommunityFileList(Page page, @Param("communityFilePageListRes") CommunityFilePageListRes communityFilePageListRes); + List getCommunityFileList(Page page, @Param("communityFilePageListRes") CommunityFilePageListRes communityFilePageListRes); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java index cadf0a3..b6b5c21 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/CommunityFileLogService.java @@ -4,6 +4,11 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.mcwl.communityCenter.domain.CommunityFile; import com.mcwl.communityCenter.domain.CommunityFileLog; +import java.util.List; + public interface CommunityFileLogService extends IService { + List getUserAvatarList(Long tenantId, Long communityId, Long communityFileId); + + Integer getDownloadCount(Long tenantId, Long communityId, Long communityFileId); } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java index 799372e..66b8d91 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileLogServiceImpl.java @@ -10,11 +10,22 @@ import com.mcwl.communityCenter.service.CommunityFileService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.Collections; +import java.util.List; + @Service @RequiredArgsConstructor public class CommunityFileLogServiceImpl extends ServiceImpl implements CommunityFileLogService { + @Override + public List getUserAvatarList(Long tenantId, Long communityId, Long communityFileId) { + return baseMapper.getUserAvatarList(tenantId, communityId, communityFileId); + } + @Override + public Integer getDownloadCount(Long tenantId, Long communityId, Long communityFileId) { + return baseMapper.getDownloadCount(tenantId, communityId, communityFileId); + } } diff --git a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java index be4fa90..66f53bf 100644 --- a/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java +++ b/mcwl-communityCenter/src/main/java/com/mcwl/communityCenter/service/impl/CommunityFileServiceImpl.java @@ -1,5 +1,6 @@ package com.mcwl.communityCenter.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,8 +11,12 @@ import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.obs.ObsUtils; import com.mcwl.communityCenter.domain.CommunityFile; import com.mcwl.communityCenter.domain.dto.*; +import com.mcwl.communityCenter.domain.vo.CommunityFileVo; +import com.mcwl.communityCenter.domain.vo.DownloadFileUserVo; import com.mcwl.communityCenter.mapper.CommunityFileMapper; +import com.mcwl.communityCenter.service.CommunityFileLogService; import com.mcwl.communityCenter.service.CommunityFileService; +import com.mcwl.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -23,6 +28,12 @@ import java.util.*; public class CommunityFileServiceImpl extends ServiceImpl implements CommunityFileService { private final ObsUtils obsUtils; + + private final ISysUserService userService; + + private final CommunityFileLogService communityFileLogService; + + @Override public void upload(CommunityUploadFileRes communityUploadFileRes) { Long tenantId = communityUploadFileRes.getTenantId(); @@ -47,11 +58,26 @@ public class CommunityFileServiceImpl extends ServiceImpl page = new Page<>(communityFilePageListRes.getPageNum(), communityFilePageListRes.getPageSize()); - List publishList = baseMapper.getCommunityFileList(page, communityFilePageListRes); + List communityFileList = baseMapper.getCommunityFileList(page, communityFilePageListRes); + for (CommunityFileVo communityFileVo : communityFileList) { + DownloadFileUserVo downloadFileUserVo = new DownloadFileUserVo(); + List avatarList = communityFileLogService.getUserAvatarList(communityFileVo.getTenantId(), + communityFileVo.getCommunityId(), + communityFileVo.getId()); + Integer count = communityFileLogService.getDownloadCount(communityFileVo.getTenantId(), + communityFileVo.getCommunityId(), + communityFileVo.getId()); + + downloadFileUserVo.setAvatarList(avatarList); + downloadFileUserVo.setCount(count); + + + communityFileVo.setDownloadFileUser(downloadFileUserVo); + } // 封装返回 TableDataInfo tableDataInfo = new TableDataInfo(); - tableDataInfo.setRows(publishList); + tableDataInfo.setRows(communityFileList); tableDataInfo.setTotal(page.getTotal()); tableDataInfo.setCode(HttpStatus.SUCCESS); tableDataInfo.setMsg("查询成功"); diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileLogMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileLogMapper.xml new file mode 100644 index 0000000..737917b --- /dev/null +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileLogMapper.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml index 9c7d051..e4d82ab 100644 --- a/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml +++ b/mcwl-communityCenter/src/main/resources/mapper/communityCenter/CommunityFileMapper.xml @@ -5,12 +5,16 @@ - + select cf.*, su.nick_name as upload_user_name + from cc_community_file cf left join sys_user su on cf.user_id = su.user_id + where cf.del_flag = '0' + and tenant_id = #{communityFilePageListRes.tenantId} + and community_id = #{communityFilePageListRes.communityId} + + and (cf.file_name like concat('%', #{communityFilePageListRes.search}, '%') + or su.nick_name like concat('%', #{communityFilePageListRes.search}, '%')) + + order by cf.create_time desc \ No newline at end of file