From 02152d1a212b1621c5f6f3f612ac4ea6485dfc6a Mon Sep 17 00:00:00 2001 From: Echo <4759156@qq.com> Date: Fri, 12 Apr 2024 21:52:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=9A=E5=8A=A1=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E4=B8=BA2=E6=97=B6=E7=9A=84=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E3=80=90=E7=94=A8=E6=88=B7=E7=AD=BE=E5=90=8D?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yudao/module/infra/api/file/FileApi.java | 4 +++ .../module/infra/api/file/FileApiImpl.java | 5 +++ .../dal/mysql/file/BusinessFileMapper.java | 7 ++++ .../infra/service/file/FileService.java | 6 ++++ .../infra/service/file/FileServiceImpl.java | 36 ++++++++++++++++++- .../admin/user/UserProfileController.java | 7 ++++ .../system/service/user/AdminUserService.java | 7 ++++ .../service/user/AdminUserServiceImpl.java | 6 ++++ 8 files changed, 77 insertions(+), 1 deletion(-) diff --git a/yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApi.java b/yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApi.java index d0427bc7..f3982f37 100644 --- a/yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApi.java +++ b/yudao-module-infra/yudao-module-infra-api/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApi.java @@ -61,4 +61,8 @@ public interface FileApi { @Operation(summary = "保存文件,并返回文件的访问路径") CommonResult uploadBpmFileProcessInstanceId(@RequestBody FileCreateReqDTO createReqDTO); + @PostMapping(PREFIX + "/getUserSignImgPath") + @Operation(summary = "获取用户的签名图片地址") + CommonResult getUserSignImgPath(@RequestParam("userId") Long userId); + } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApiImpl.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApiImpl.java index 1d8398a8..ebf04cc8 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApiImpl.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/api/file/FileApiImpl.java @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.infra.api.file.dto.FileCreateReqDTO; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.BpmFileUploadReqVO; import cn.iocoder.yudao.module.infra.service.file.FileService; import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -37,4 +38,8 @@ public class FileApiImpl implements FileApi { createReqDTO.getContent())); } + @Override + public CommonResult getUserSignImgPath(@RequestParam Long userId){ + return success(fileService.getUserSignImgPath(userId)) ; + } } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/BusinessFileMapper.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/BusinessFileMapper.java index 99bec22c..f4b55ccd 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/BusinessFileMapper.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/file/BusinessFileMapper.java @@ -4,8 +4,10 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FilePageReqVO; +import cn.iocoder.yudao.module.infra.dal.dataobject.demo.demo02.Demo02CategoryDO; import cn.iocoder.yudao.module.infra.dal.dataobject.file.BpmFileDO; import cn.iocoder.yudao.module.infra.dal.dataobject.file.BusinessFileDO; +import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import org.apache.ibatis.annotations.Mapper; /** @@ -16,6 +18,11 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface BusinessFileMapper extends BaseMapperX { + default BusinessFileDO selectOneByBusinessInstanceId(String businessInstanceId) { + return selectOne(new LambdaQueryWrapperX() + .eq(BusinessFileDO:: getBusinessInstanceId, businessInstanceId)); + } + default PageResult selectPage(FilePageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .likeIfPresent(BusinessFileDO::getPath, reqVO.getPath()) diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java index 7a23f5ce..8fc56961 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileService.java @@ -103,4 +103,10 @@ public interface FileService { */ void uploadBusinessFileProcessInstanceId(BusinessFileUploadReqVO reqVO) throws Exception ; + /** + * 获取用户的签名图片地址 + * @param userId + */ + String getUserSignImgPath(Long userId) ; + } diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java index 7e30b564..430a1fdb 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/file/FileServiceImpl.java @@ -250,7 +250,31 @@ public class FileServiceImpl implements FileService { fileDo.setSize(content.length); fileDo.setUploadUserId(userId); fileDo.setBusinessType(businessType) ; - businessFileMapper.insert(fileDo); + + + //如果业务类型是2 ,说明是保存用户签名图片,那么将用户ID存入businessInstanceId中 + if( businessType == 2) { + //先查询当前用户,是否存有签名,如果没有新增,如果存在,则更新url,并删除infra_file_content中对应的记录 + BusinessFileDO businessFileDO = businessFileMapper.selectOneByBusinessInstanceId( userId.toString()) ; + if (businessFileDO == null) { + fileDo.setBusinessInstanceId(userId+"") ; + businessFileMapper.insert(fileDo); + }else { + client.delete(businessFileDO.getPath()); + businessFileDO.setConfigId(client.getId()); + businessFileDO.setName(name); + businessFileDO.setPath(path); + businessFileDO.setUrl(url); + businessFileDO.setType(type); + businessFileDO.setSize(content.length); + businessFileDO.setUploadUserId(userId); + businessFileDO.setBusinessType(businessType) ; + businessFileMapper.updateById(businessFileDO) ; + fileDo = businessFileDO ; + } + }else { + businessFileMapper.insert(fileDo); + } fileInfo[0] = name; fileInfo[1] = fileDo.getUrl(); @@ -301,4 +325,14 @@ public class FileServiceImpl implements FileService { // 调用 MyBatis Plus 的 update 方法执行批量更新 businessFileMapper.update(null, lambdaUpdateWrapper); } + + @Override + public String getUserSignImgPath(Long userId) { + BusinessFileDO businessFileDO = businessFileMapper.selectOneByBusinessInstanceId( userId.toString()) ; + if(businessFileDO != null) { + return businessFileDO.getUrl() ; + }else { + return "" ; + } + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java index 7ae72b84..26987649 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/UserProfileController.java @@ -97,4 +97,11 @@ public class UserProfileController { return success(avatar); } + @RequestMapping(value = "/geSignImgPath", + method = {RequestMethod.POST, RequestMethod.PUT}) // 解决 uni-app 不支持 Put 上传文件的问题 + @Operation(summary = "获取用户的签名图片地址") + public CommonResult geSignImgPath(@RequestParam("userId") Long userId) { + String path = userService.geSignImgPath(userId) ; + return success(path); + } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java index f1538311..4c23ecec 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserService.java @@ -234,4 +234,11 @@ public interface AdminUserService { * @param openId */ void emptyOpenId(String openId); + + /** + * 获取用户的签名图片地址 + * @param userId + * @return + */ + String geSignImgPath(Long userId) ; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java index cdbc4a26..5a812d0b 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java @@ -528,4 +528,10 @@ public class AdminUserServiceImpl implements AdminUserService { Integer age = nowDate.getYear() - date.getYear(); } + + @Override + public String geSignImgPath(Long userId) { + String path = fileApi.getUserSignImgPath(userId).getData(); + return path ; + } }