From 4cc8fec86815049cb1744d35a0cca9101044687b Mon Sep 17 00:00:00 2001 From: zlg <482370576@qq.com> Date: Thu, 11 Jul 2024 14:56:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=83=AD=E5=8A=9B=E5=9B=BE=E5=92=8C?= =?UTF-8?q?=E5=92=96=E5=95=A1=E5=9B=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SchisandraAuthUserController.java | 18 ++ .../SchisandraAuthUserDomainService.java | 9 +- .../SchisandraAuthUserDomainServiceImpl.java | 6 +- .../com/schisandra/auth/AuthApplication.java | 2 + .../src/main/resources/application.yml | 6 + .../SchisandraOssMinioController.java | 35 +++- .../SchisandraOssTencentController.java | 19 ++- .../SchisandraUserOssController.java | 156 ++++++++++++++++++ .../SchisandraFileHeatmapDTOConverter.java | 22 +++ .../SchisandraUserOssDTOConverter.java | 26 +++ .../dto/SchisandraFileHeatmapDTO.java | 38 +++++ .../application/dto/SchisandraUserOssDTO.java | 73 ++++++++ .../domain/bo/SchisandraFileHeatmapBO.java | 37 +++++ .../oss/domain/bo/SchisandraUserOssBO.java | 72 ++++++++ .../SchisandraFileHeatmapBOConverter.java | 22 +++ .../convert/SchisandraUserOssBOConverter.java | 26 +++ .../oss/domain/redis/RedisUtil.java | 19 +++ .../SchisandraFileHeatmapDomainService.java | 28 ++++ .../SchisandraUserOssDomainService.java | 31 ++++ ...chisandraFileHeatmapDomainServiceImpl.java | 46 ++++++ .../SchisandraUserOssDomainServiceImpl.java | 57 +++++++ .../basic/dao/SchisandraFileHeatmapDao.java | 17 ++ .../infra/basic/dao/SchisandraUserOssDao.java | 17 ++ .../basic/entity/SchisandraFileHeatmap.java | 47 ++++++ .../infra/basic/entity/SchisandraUserOss.java | 89 ++++++++++ .../service/SchisandraFileHeatmapService.java | 46 ++++++ .../service/SchisandraUserOssService.java | 50 ++++++ .../SchisandraFileHeatmapServiceImpl.java | 67 ++++++++ .../impl/SchisandraUserOssServiceImpl.java | 75 +++++++++ .../mapper/SchisandraFileHeatmapDao.xml | 12 ++ .../resources/mapper/SchisandraUserOssDao.xml | 19 +++ 31 files changed, 1173 insertions(+), 14 deletions(-) create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml create mode 100644 schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java index c7aa739..ee90cf9 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-application/schisandra-cloud-storage-auth-application-controller/src/main/java/com/schisandra/auth/application/controller/SchisandraAuthUserController.java @@ -31,6 +31,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; +import org.springframework.cache.annotation.Cacheable; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -371,6 +372,23 @@ public class SchisandraAuthUserController { } return Result.ok(JSONObject.parseObject(result)); } + /** + * @description: 获取用户信息 + * @param: [userId] + * @return: com.schisandra.auth.common.entity.Result + * @author zlg + * @date: 2024/7/11 9:39 + */ + @GetMapping("getUserInfo") + public Result getUserInfo(@RequestParam("userId") Long userId) { + SchisandraAuthUserDTO schisandraAuthUserDTO = SchisandraAuthUserDTOConverter.INSTANCE.convertBOToDTO(schisandraAuthUserDomainService.queryById(userId)); + if ( schisandraAuthUserDTO== null) { + return Result.fail("该用户不存在"); + }else { + return Result.ok(schisandraAuthUserDTO); + } + } + } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java index a6d094a..92f3361 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/SchisandraAuthUserDomainService.java @@ -5,6 +5,9 @@ import com.schisandra.auth.common.entity.Result; import com.schisandra.auth.domain.bo.SchisandraAuthUserBO; import com.schisandra.auth.infra.basic.entity.SchisandraAuthUser; import me.zhyd.oauth.model.AuthUser; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; import java.util.HashMap; @@ -61,6 +64,7 @@ public interface SchisandraAuthUserDomainService { * @author schisandra * @date 2024/3/21 23:14 */ + @CachePut(value = "userInfo", key = "#schisandraAuthUserBO.id") Object update(SchisandraAuthUserBO schisandraAuthUserBO); /** @@ -70,6 +74,7 @@ public interface SchisandraAuthUserDomainService { * @author: landaiqing * @date: 2024/5/26 17:27 */ + Result insertAuthUserByOauth(AuthUser data, String type); /** @@ -79,7 +84,8 @@ public interface SchisandraAuthUserDomainService { * @author: landaiqing * @date: 2024/5/26 17:27 */ - SchisandraAuthUserBO queryById(SchisandraAuthUserBO schisandraAuthUserBO); + @Cacheable(value = "userInfo", key = "#userId") + SchisandraAuthUserBO queryById(Long userId); /** * @param schisandraAuthUserBO @@ -95,6 +101,7 @@ public interface SchisandraAuthUserDomainService { * @description 删除用户(物理) * @author msz */ + @CacheEvict(value = "userInfo",key = "id") Object deleteById(Long id); SchisandraAuthUser queryByPhone(String phone); diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java index cd28442..f0dd915 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-domain/src/main/java/com/schisandra/auth/domain/service/impl/SchisandraAuthUserDomainServiceImpl.java @@ -167,15 +167,15 @@ public class SchisandraAuthUserDomainServiceImpl implements SchisandraAuthUserDo /** - * @param schisandraAuthUserBO + * @param Long * @return * @description 查询用户信息 * @author msz * @date 2024/4/3 22:10 */ @Override - public SchisandraAuthUserBO queryById(SchisandraAuthUserBO schisandraAuthUserBO) { - SchisandraAuthUser schisandraAuthUser = schisandraAuthUserService.queryById(schisandraAuthUserBO.getId()); + public SchisandraAuthUserBO queryById(Long userId) { + SchisandraAuthUser schisandraAuthUser = schisandraAuthUserService.queryById(userId); SchisandraAuthUserBO schisandraAuthUserBO1 = SchisandraAuthUserBOConverter.INSTANCE.convertEntityToBO(schisandraAuthUser); return schisandraAuthUserBO1; } diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java index e52fdd4..951910c 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/java/com/schisandra/auth/AuthApplication.java @@ -3,6 +3,7 @@ package com.schisandra.auth; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -18,6 +19,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @MapperScan("com.schisandra.**.dao") @EnableFeignClients(basePackages = "com.schisandra") @EnableTransactionManagement +@EnableCaching public class AuthApplication { public static void main(String[] args) { SpringApplication.run(AuthApplication.class); diff --git a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml index 0a2aefd..5244454 100644 --- a/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml +++ b/schisandra-cloud-storage-auth/schisandra-cloud-storage-auth-starter/src/main/resources/application.yml @@ -27,6 +27,11 @@ spring: enabled: true config: enabled: true + #caffeine缓存 + cache: + type: caffeine + caffeine: + spec: maximumSize=10000,expireAfterAccess=60s # redis配置 redis: # Redis数据库索引(默认为0) @@ -108,3 +113,4 @@ rocketmq: producer: group: schisandra-cloud-storage-auth-group send-message-timeout: 6000 + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java index a4e7374..edbe938 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssMinioController.java @@ -5,6 +5,7 @@ import cn.hutool.extra.spring.SpringUtil; import com.alibaba.fastjson.JSON; import com.amazonaws.util.IOUtils; import com.google.common.base.Preconditions; +import com.google.gson.Gson; import com.schisandra.oss.application.convert.SchisandraOssMinioDTOConverter; import com.schisandra.oss.application.dto.SchisandraOssMinioDTO; import com.schisandra.oss.application.oss.core.minio.MinioOssClient; @@ -15,6 +16,7 @@ import com.schisandra.oss.domain.bo.SchisandraOssMinioBO; import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssMinioDomainService; import io.minio.errors.*; +import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -27,8 +29,8 @@ import java.io.InputStream; import java.net.URLEncoder; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; -import java.util.HashMap; -import java.util.List; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; /** @@ -48,7 +50,7 @@ public class SchisandraOssMinioController { private SchisandraOssMinioDomainService schisandraOssMinioDomainService; @Resource MinioOssConfiguration minioOssConfiguration; - + private final String USER_OSS_PREFIX = "oss:user:heat"; @Resource RedisUtil redisUtil; @@ -141,15 +143,30 @@ public class SchisandraOssMinioController { * @date: 2024/6/26 14:34 */ @PostMapping("uploadMinioFile") - public Result uploadMinioFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { + public Result uploadMinioFile(@RequestParam String userId, @RequestParam MultipartFile file, @RequestParam String fileName, @RequestParam String bucket) throws IOException { Preconditions.checkNotNull(userId, "不能为空"); Preconditions.checkNotNull(fileName, "不能为空"); Preconditions.checkNotNull(bucket, "不能为空"); - // 获取文件输入流 - InputStream is = file.getInputStream(); - MinioOssClient bean = SpringUtil.getBean(userId); - bean.getMinioOssConfig().setBucketName(bucket); - return Result.ok(bean.upLoad(is, fileName, true)); + //设置热力图 + Date date =new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = dateFormat.format(date); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,"2024-07-12"); + int count=1; + if (redisUtil.exist(key)){ + count= Integer.parseInt(redisUtil.get(key)); + redisUtil.set(key, String.valueOf(count+1)); + }else { + redisUtil.set(key, String.valueOf(1)); + } + return Result.ok(); +// +// // 获取文件输入流 +// InputStream is = file.getInputStream(); +// MinioOssClient bean = SpringUtil.getBean(userId); +// bean.getMinioOssConfig().setBucketName(bucket); +// return Result.ok(bean.upLoad(is, fileName, true)); + } diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java index 13e7e12..5f6f406 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraOssTencentController.java @@ -15,6 +15,7 @@ import com.schisandra.oss.application.oss.core.tencent.TencentOssClient; import com.schisandra.oss.application.oss.core.tencent.TencentOssConfiguration; import com.schisandra.oss.common.entity.Result; import com.schisandra.oss.domain.bo.SchisandraOssTencentBO; +import com.schisandra.oss.domain.redis.RedisUtil; import com.schisandra.oss.domain.service.SchisandraOssTencentDomainService; import io.minio.errors.*; import lombok.extern.slf4j.Slf4j; @@ -26,6 +27,8 @@ import java.io.IOException; import java.io.InputStream; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; /** @@ -43,7 +46,9 @@ public class SchisandraOssTencentController { private SchisandraOssTencentDomainService schisandraOssTencentDomainService; @Resource TencentOssConfiguration tencentOssConfiguration; - + private final String USER_OSS_PREFIX = "oss:user:heat"; + @Resource + RedisUtil redisUtil; @PostMapping("init") public void initTencent(@RequestParam String userId) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException { @@ -154,6 +159,18 @@ public class SchisandraOssTencentController { TencentOssClient bean = SpringUtil.getBean(userId); InputStream is = file.getInputStream(); bean.getTencentOssConfig().setBucketName(bucket); + //设置热力图 + Date date =new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String formattedDate = dateFormat.format(date); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId,formattedDate); + int count=1; + if (redisUtil.exist(key)){ + count= Integer.parseInt(redisUtil.get(key)); + redisUtil.set(key, String.valueOf(count+1)); + }else { + redisUtil.set(key, String.valueOf(1)); + } return Result.ok(bean.upLoadParts(is,target,file.getOriginalFilename())); } /** diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java new file mode 100644 index 0000000..b0f3125 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/controller/SchisandraUserOssController.java @@ -0,0 +1,156 @@ +package com.schisandra.oss.application.controller; + +import com.alibaba.fastjson.JSON; +import com.google.common.base.Preconditions; +import com.schisandra.oss.application.convert.SchisandraUserOssDTOConverter; +import com.schisandra.oss.application.dto.SchisandraUserOssDTO; +import com.schisandra.oss.common.entity.Result; +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import com.schisandra.oss.domain.redis.RedisUtil; +import com.schisandra.oss.domain.service.SchisandraUserOssDomainService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + * 用户对象存储映射表 controller + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@RestController +@RequestMapping("/oss/user/") +@Slf4j +public class SchisandraUserOssController { + + @Resource + private SchisandraUserOssDomainService schisandraUserOssDomainService; + private final String USER_OSS_PREFIX = "oss:user:heat"; + @Resource + RedisUtil redisUtil; + /** + * 新增用户对象存储映射表 + */ + @RequestMapping("add") + public Result add(@RequestBody SchisandraUserOssDTO schisandraUserOssDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraUserOssController.add.dto:{}", JSON.toJSONString(schisandraUserOssDTO)); + } + Preconditions.checkNotNull(schisandraUserOssDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getOssType(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIcon(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getName(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getBucketCount(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIsDeleted(), "不能为空"); + SchisandraUserOssBO SchisandraUserOssBO = SchisandraUserOssDTOConverter.INSTANCE.convertDTOToBO(schisandraUserOssDTO); + return Result.ok(schisandraUserOssDomainService.add(SchisandraUserOssBO)); + } catch (Exception e) { + log.error("SchisandraUserOssController.register.error:{}", e.getMessage(), e); + return Result.fail("新增用户对象存储映射表失败"); + } + + } + + /** + * 修改用户对象存储映射表 + */ + @RequestMapping("update") + public Result update(@RequestBody SchisandraUserOssDTO schisandraUserOssDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraUserOssController.update.dto:{}", JSON.toJSONString(schisandraUserOssDTO)); + } + Preconditions.checkNotNull(schisandraUserOssDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getOssType(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIcon(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getName(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getBucketCount(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIsDeleted(), "不能为空"); + SchisandraUserOssBO schisandraUserOssBO = SchisandraUserOssDTOConverter.INSTANCE.convertDTOToBO(schisandraUserOssDTO); + return Result.ok(schisandraUserOssDomainService.update(schisandraUserOssBO)); + } catch (Exception e) { + log.error("SchisandraUserOssController.update.error:{}", e.getMessage(), e); + return Result.fail("更新用户对象存储映射表信息失败"); + } + + } + + /** + * 删除用户对象存储映射表 + */ + @RequestMapping("delete") + public Result delete(@RequestBody SchisandraUserOssDTO schisandraUserOssDTO) { + + try { + if (log.isInfoEnabled()) { + log.info("SchisandraUserOssController.delete.dto:{}", JSON.toJSONString(schisandraUserOssDTO)); + } + Preconditions.checkNotNull(schisandraUserOssDTO.getId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUserId(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getOssType(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIcon(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getName(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getBucketCount(), "不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedBy(), "创建人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getCreatedTime(), "创建时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateBy(), "更新人不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getUpdateTime(), "更新时间不能为空"); + Preconditions.checkNotNull(schisandraUserOssDTO.getIsDeleted(), "不能为空"); + SchisandraUserOssBO schisandraUserOssBO = SchisandraUserOssDTOConverter.INSTANCE.convertDTOToBO(schisandraUserOssDTO); + return Result.ok(schisandraUserOssDomainService.delete(schisandraUserOssBO)); + } catch (Exception e) { + log.error("SchisandraUserOssController.delete.error:{}", e.getMessage(), e); + return Result.fail("删除用户对象存储映射表信息失败"); + } + + } + /** + * @description: 查询用户对象存储映射表 + * @param: [userId] + * @return: com.schisandra.oss.common.entity.Result + * @author zlg + * @date: 2024/7/11 14:41 + */ + @GetMapping("selectUserOSSType") + public Result selectUserOSSType(Long userId){ + Preconditions.checkNotNull(userId, "不能为空"); + List SchisandraUserOssDTOList=SchisandraUserOssDTOConverter.INSTANCE.convertBOListToDTOList(schisandraUserOssDomainService.queryOSSByUserId(userId)); + if (SchisandraUserOssDTOList.isEmpty()) { + return Result.fail("没有查询到用户对象存储映射表信息"); + }else { + return Result.ok(SchisandraUserOssDTOList); + } + } + /** + * @description: 查询用户文件热度 + * @param: [userId] + * @return: com.schisandra.oss.common.entity.Result + * @author zlg + * @date: 2024/7/11 14:41 + */ + @GetMapping("selectUserFileHeat") + public Result selectUserFileHeat(@RequestParam Long userId){ + Preconditions.checkNotNull(userId, "不能为空"); + String key = redisUtil.buildKey(USER_OSS_PREFIX+":"+userId); + return Result.ok(redisUtil.getDataFromDirectory(key)); + } + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java new file mode 100644 index 0000000..0fbbd82 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraFileHeatmapDTOConverter.java @@ -0,0 +1,22 @@ +package com.schisandra.oss.application.convert; + +import com.schisandra.oss.application.dto.SchisandraFileHeatmapDTO; +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 文件上传热力图表 dto转换器 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Mapper +public interface SchisandraFileHeatmapDTOConverter { + + SchisandraFileHeatmapDTOConverter INSTANCE = Mappers.getMapper(SchisandraFileHeatmapDTOConverter.class); + + SchisandraFileHeatmapBO convertDTOToBO(SchisandraFileHeatmapDTO schisandraFileHeatmapDTO); + SchisandraFileHeatmapDTO convertBOToDTO(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java new file mode 100644 index 0000000..7f1e0b3 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/convert/SchisandraUserOssDTOConverter.java @@ -0,0 +1,26 @@ +package com.schisandra.oss.application.convert; + +import com.schisandra.oss.application.dto.SchisandraUserOssDTO; +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 用户对象存储映射表 dto转换器 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Mapper +public interface SchisandraUserOssDTOConverter { + + SchisandraUserOssDTOConverter INSTANCE = Mappers.getMapper(SchisandraUserOssDTOConverter.class); + + SchisandraUserOssBO convertDTOToBO(SchisandraUserOssDTO schisandraUserOssDTO); + SchisandraUserOssDTO convertBOToDTO(SchisandraUserOssBO schisandraUserOssBO); + + List convertBOListToDTOList(List schisandraUserOssBOList); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java new file mode 100644 index 0000000..4a49997 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraFileHeatmapDTO.java @@ -0,0 +1,38 @@ +package com.schisandra.oss.application.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件上传热力图表 dto + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Data +public class SchisandraFileHeatmapDTO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private Date date; + + /** + * + */ + private Long count; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java new file mode 100644 index 0000000..3397d31 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-application/schisandra-cloud-storage-oss-application-controller/src/main/java/com/schisandra/oss/application/dto/SchisandraUserOssDTO.java @@ -0,0 +1,73 @@ +package com.schisandra.oss.application.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 用户对象存储映射表 dto + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Data +public class SchisandraUserOssDTO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private String ossType; + + /** + * + */ + private String icon; + + /** + * + */ + private String name; + + /** + * + */ + private Integer bucketCount; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * + */ + private Integer isDeleted; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java new file mode 100644 index 0000000..9d40a34 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraFileHeatmapBO.java @@ -0,0 +1,37 @@ +package com.schisandra.oss.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +/** + * 文件上传热力图表 bo + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Data +public class SchisandraFileHeatmapBO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private Date date; + + /** + * + */ + private Long count; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java new file mode 100644 index 0000000..0c3ca13 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/bo/SchisandraUserOssBO.java @@ -0,0 +1,72 @@ +package com.schisandra.oss.domain.bo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +/** + * 用户对象存储映射表 bo + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Data +public class SchisandraUserOssBO implements Serializable { + + /** + * + */ + private Long id; + + /** + * + */ + private Long userId; + + /** + * + */ + private String ossType; + + /** + * + */ + private String icon; + + /** + * + */ + private String name; + + /** + * + */ + private Integer bucketCount; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updateBy; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * + */ + private Integer isDeleted; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java new file mode 100644 index 0000000..f67cb41 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraFileHeatmapBOConverter.java @@ -0,0 +1,22 @@ +package com.schisandra.oss.domain.convert; + +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +/** + * 文件上传热力图表 bo转换器 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Mapper +public interface SchisandraFileHeatmapBOConverter { + + SchisandraFileHeatmapBOConverter INSTANCE = Mappers.getMapper(SchisandraFileHeatmapBOConverter.class); + + SchisandraFileHeatmap convertBOToEntity(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + SchisandraFileHeatmapBO convertEntityToBO(SchisandraFileHeatmap schisandraFileHeatmap); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java new file mode 100644 index 0000000..0fdbaeb --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/convert/SchisandraUserOssBOConverter.java @@ -0,0 +1,26 @@ +package com.schisandra.oss.domain.convert; + +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 用户对象存储映射表 bo转换器 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Mapper +public interface SchisandraUserOssBOConverter { + + SchisandraUserOssBOConverter INSTANCE = Mappers.getMapper(SchisandraUserOssBOConverter.class); + + SchisandraUserOss convertBOToEntity(SchisandraUserOssBO schisandraUserOssBO); + SchisandraUserOssBO convertEntityToBO(SchisandraUserOss schisandraUserOss); + + List convertEntityListToBOList(List schisandraUserOssList); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java index 28cf26a..1028900 100644 --- a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/redis/RedisUtil.java @@ -1,11 +1,14 @@ package com.schisandra.oss.domain.redis; +import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -26,6 +29,22 @@ public class RedisUtil { private static final String CACHE_KEY_SEPARATOR = ":"; + + public List getDataFromDirectory(String directory) { + Setkeys=redisTemplate.keys(directory+":*"); + List keysList=new ArrayList<>(); + keys.forEach(key->{ + HashMap map=new HashMap<>(); + String value= (String) redisTemplate.opsForValue().get(key); + String keyName=key.substring(key.lastIndexOf(":")+1); + map.put(keyName,value); + keysList.add(map); + }); + return keysList; + } + + + /** * 构建缓存key */ diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java new file mode 100644 index 0000000..4c8580a --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraFileHeatmapDomainService.java @@ -0,0 +1,28 @@ +package com.schisandra.oss.domain.service; + +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; + +/** + * 文件上传热力图表 领域service + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +public interface SchisandraFileHeatmapDomainService { + + /** + * 添加 文件上传热力图表 信息 + */ + Boolean add(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + + /** + * 更新 文件上传热力图表 信息 + */ + Boolean update(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + + /** + * 删除 文件上传热力图表 信息 + */ + Boolean delete(SchisandraFileHeatmapBO schisandraFileHeatmapBO); + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java new file mode 100644 index 0000000..7099ffd --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/SchisandraUserOssDomainService.java @@ -0,0 +1,31 @@ +package com.schisandra.oss.domain.service; + +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; + +import java.util.List; + +/** + * 用户对象存储映射表 领域service + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +public interface SchisandraUserOssDomainService { + + /** + * 添加 用户对象存储映射表 信息 + */ + Boolean add(SchisandraUserOssBO schisandraUserOssBO); + + /** + * 更新 用户对象存储映射表 信息 + */ + Boolean update(SchisandraUserOssBO schisandraUserOssBO); + + /** + * 删除 用户对象存储映射表 信息 + */ + Boolean delete(SchisandraUserOssBO schisandraUserOssBO); + + List queryOSSByUserId(Long userId); +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java new file mode 100644 index 0000000..1c6d89c --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraFileHeatmapDomainServiceImpl.java @@ -0,0 +1,46 @@ +package com.schisandra.oss.domain.service.impl; + +import com.schisandra.oss.common.enums.IsDeletedFlagEnum; +import com.schisandra.oss.domain.convert.SchisandraFileHeatmapBOConverter; +import com.schisandra.oss.domain.bo.SchisandraFileHeatmapBO; +import com.schisandra.oss.domain.service.SchisandraFileHeatmapDomainService; +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import com.schisandra.oss.infra.basic.service.SchisandraFileHeatmapService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 文件上传热力图表 领域service实现了 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Service +@Slf4j +public class SchisandraFileHeatmapDomainServiceImpl implements SchisandraFileHeatmapDomainService { + + @Resource + private SchisandraFileHeatmapService schisandraFileHeatmapService; + + @Override + public Boolean add(SchisandraFileHeatmapBO schisandraFileHeatmapBO) { + SchisandraFileHeatmap schisandraFileHeatmap = SchisandraFileHeatmapBOConverter.INSTANCE.convertBOToEntity(schisandraFileHeatmapBO); + return schisandraFileHeatmapService.insert(schisandraFileHeatmap) > 0; + } + + @Override + public Boolean update(SchisandraFileHeatmapBO schisandraFileHeatmapBO) { + SchisandraFileHeatmap schisandraFileHeatmap = SchisandraFileHeatmapBOConverter.INSTANCE.convertBOToEntity(schisandraFileHeatmapBO); + return schisandraFileHeatmapService.update(schisandraFileHeatmap) > 0; + } + + @Override + public Boolean delete(SchisandraFileHeatmapBO schisandraFileHeatmapBO) { + SchisandraFileHeatmap schisandraFileHeatmap = new SchisandraFileHeatmap(); + schisandraFileHeatmap.setId(schisandraFileHeatmapBO.getId()); + return schisandraFileHeatmapService.update(schisandraFileHeatmap) > 0; + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java new file mode 100644 index 0000000..2b14eaa --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-domain/src/main/java/com/schisandra/oss/domain/service/impl/SchisandraUserOssDomainServiceImpl.java @@ -0,0 +1,57 @@ +package com.schisandra.oss.domain.service.impl; + +import com.schisandra.oss.common.enums.IsDeletedFlagEnum; +import com.schisandra.oss.domain.convert.SchisandraUserOssBOConverter; +import com.schisandra.oss.domain.bo.SchisandraUserOssBO; +import com.schisandra.oss.domain.service.SchisandraUserOssDomainService; +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import com.schisandra.oss.infra.basic.service.SchisandraUserOssService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; + +/** + * 用户对象存储映射表 领域service实现了 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Service +@Slf4j +public class SchisandraUserOssDomainServiceImpl implements SchisandraUserOssDomainService { + + @Resource + private SchisandraUserOssService schisandraUserOssService; + + @Override + public Boolean add(SchisandraUserOssBO schisandraUserOssBO) { + SchisandraUserOss schisandraUserOss = SchisandraUserOssBOConverter.INSTANCE.convertBOToEntity(schisandraUserOssBO); + schisandraUserOss.setIsDeleted(IsDeletedFlagEnum.UN_DELETED.getCode()); + return schisandraUserOssService.insert(schisandraUserOss) > 0; + } + + @Override + public Boolean update(SchisandraUserOssBO schisandraUserOssBO) { + SchisandraUserOss schisandraUserOss = SchisandraUserOssBOConverter.INSTANCE.convertBOToEntity(schisandraUserOssBO); + return schisandraUserOssService.update(schisandraUserOss) > 0; + } + + @Override + public Boolean delete(SchisandraUserOssBO schisandraUserOssBO) { + SchisandraUserOss schisandraUserOss = new SchisandraUserOss(); + schisandraUserOss.setId(schisandraUserOssBO.getId()); + schisandraUserOss.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode()); + return schisandraUserOssService.update(schisandraUserOss) > 0; + } + + @Override + public List queryOSSByUserId(Long userId) { + List SchisandraUserOssBOList= SchisandraUserOssBOConverter + .INSTANCE.convertEntityListToBOList(schisandraUserOssService.queryOSSByUserId(userId)); + return SchisandraUserOssBOList; + } + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java new file mode 100644 index 0000000..a0ee045 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraFileHeatmapDao.java @@ -0,0 +1,17 @@ +package com.schisandra.oss.infra.basic.dao; + +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import com.mybatisflex.core.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + * 文件上传热力图表 表数据库访问层 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Repository +public interface SchisandraFileHeatmapDao extends BaseMapper { + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java new file mode 100644 index 0000000..2b06157 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/dao/SchisandraUserOssDao.java @@ -0,0 +1,17 @@ +package com.schisandra.oss.infra.basic.dao; + +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import com.mybatisflex.core.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + * 用户对象存储映射表 表数据库访问层 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Repository +public interface SchisandraUserOssDao extends BaseMapper { + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java new file mode 100644 index 0000000..33b16f7 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraFileHeatmap.java @@ -0,0 +1,47 @@ +package com.schisandra.oss.infra.basic.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 文件上传热力图表 实体类 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Data +@Table("schisandra_file_heatmap") +public class SchisandraFileHeatmap implements Serializable { + + /** + * + */ + @Id(value = "id", keyType = KeyType.Auto) + private Long id; + + /** + * + */ + @Column("user_id") + private Long userId; + + /** + * + */ + @Column("date") + private Date date; + + /** + * + */ + @Column("count") + private Long count; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java new file mode 100644 index 0000000..5071803 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/entity/SchisandraUserOss.java @@ -0,0 +1,89 @@ +package com.schisandra.oss.infra.basic.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 用户对象存储映射表 实体类 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Data +@Table("schisandra_user_oss") +public class SchisandraUserOss implements Serializable { + + /** + * + */ + @Id(value = "id", keyType = KeyType.Auto) + private Long id; + + /** + * + */ + @Column("user_id") + private Long userId; + + /** + * + */ + @Column("oss_type") + private String ossType; + + /** + * + */ + @Column("icon") + private String icon; + + /** + * + */ + @Column("name") + private String name; + + /** + * + */ + @Column("bucket_count") + private Integer bucketCount; + + /** + * 创建人 + */ + @Column("created_by") + private String createdBy; + + /** + * 创建时间 + */ + @Column("created_time") + private Date createdTime; + + /** + * 更新人 + */ + @Column("update_by") + private String updateBy; + + /** + * 更新时间 + */ + @Column("update_time") + private Date updateTime; + + /** + * + */ + @Column("is_deleted") + private Integer isDeleted; + +} + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java new file mode 100644 index 0000000..5644b8d --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraFileHeatmapService.java @@ -0,0 +1,46 @@ +package com.schisandra.oss.infra.basic.service; + +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; + +/** + * 文件上传热力图表 表服务接口 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +public interface SchisandraFileHeatmapService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraFileHeatmap queryById(Long id); + + /** + * 新增数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + int insert(SchisandraFileHeatmap schisandraFileHeatmap); + + /** + * 修改数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + int update(SchisandraFileHeatmap schisandraFileHeatmap); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java new file mode 100644 index 0000000..c33b4a4 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/SchisandraUserOssService.java @@ -0,0 +1,50 @@ +package com.schisandra.oss.infra.basic.service; + +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; + +import java.util.List; + +/** + * 用户对象存储映射表 表服务接口 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +public interface SchisandraUserOssService { + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + SchisandraUserOss queryById(Long id); + + /** + * 新增数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + int insert(SchisandraUserOss schisandraUserOss); + + /** + * 修改数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + int update(SchisandraUserOss schisandraUserOss); + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + boolean deleteById(Long id); + + List queryOSSByUserId(Long userId); + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java new file mode 100644 index 0000000..923692e --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraFileHeatmapServiceImpl.java @@ -0,0 +1,67 @@ +package com.schisandra.oss.infra.basic.service.impl; + +import com.schisandra.oss.infra.basic.entity.SchisandraFileHeatmap; +import com.schisandra.oss.infra.basic.dao.SchisandraFileHeatmapDao; +import com.schisandra.oss.infra.basic.service.SchisandraFileHeatmapService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * 文件上传热力图表 表服务实现类 + * + * @author landaiqing + * @since 2024-07-11 10:43:27 + */ +@Service("SchisandraFileHeatmapService") +public class SchisandraFileHeatmapServiceImpl implements SchisandraFileHeatmapService { + + @Resource + private SchisandraFileHeatmapDao schisandraFileHeatmapDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public SchisandraFileHeatmap queryById(Long id) { + return this.schisandraFileHeatmapDao.selectOneById(id); + } + + /** + * 新增数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + @Override + public int insert(SchisandraFileHeatmap schisandraFileHeatmap) { + return this.schisandraFileHeatmapDao.insertSelective(schisandraFileHeatmap); + } + + /** + * 修改数据 + * + * @param schisandraFileHeatmap 实例对象 + * @return 实例对象 + */ + @Override + public int update(SchisandraFileHeatmap schisandraFileHeatmap) { + return this.schisandraFileHeatmapDao.update(schisandraFileHeatmap,true); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.schisandraFileHeatmapDao.deleteById(id) > 0; + } + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java new file mode 100644 index 0000000..da0c96a --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/java/com/schisandra/oss/infra/basic/service/impl/SchisandraUserOssServiceImpl.java @@ -0,0 +1,75 @@ +package com.schisandra.oss.infra.basic.service.impl; + +import com.mybatisflex.core.query.QueryWrapper; +import com.schisandra.oss.infra.basic.entity.SchisandraUserOss; +import com.schisandra.oss.infra.basic.dao.SchisandraUserOssDao; +import com.schisandra.oss.infra.basic.entity.table.SchisandraUserOssTableDef; +import com.schisandra.oss.infra.basic.service.SchisandraUserOssService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 用户对象存储映射表 表服务实现类 + * + * @author landaiqing + * @since 2024-07-10 16:14:33 + */ +@Service("SchisandraUserOssService") +public class SchisandraUserOssServiceImpl implements SchisandraUserOssService { + + @Resource + private SchisandraUserOssDao schisandraUserOssDao; + + /** + * 通过ID查询单条数据 + * + * @param id 主键 + * @return 实例对象 + */ + @Override + public SchisandraUserOss queryById(Long id) { + return this.schisandraUserOssDao.selectOneById(id); + } + + /** + * 新增数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + @Override + public int insert(SchisandraUserOss schisandraUserOss) { + return this.schisandraUserOssDao.insertSelective(schisandraUserOss); + } + + /** + * 修改数据 + * + * @param schisandraUserOss 实例对象 + * @return 实例对象 + */ + @Override + public int update(SchisandraUserOss schisandraUserOss) { + return this.schisandraUserOssDao.update(schisandraUserOss,true); + } + + /** + * 通过主键删除数据 + * + * @param id 主键 + * @return 是否成功 + */ + @Override + public boolean deleteById(Long id) { + return this.schisandraUserOssDao.deleteById(id) > 0; + } + + @Override + public List queryOSSByUserId(Long userId) { + return this.schisandraUserOssDao.selectListByCondition(SchisandraUserOssTableDef.SCHISANDRA_USER_OSS.USER_ID.eq(userId)); + } + + +} diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml new file mode 100644 index 0000000..32e99d0 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraFileHeatmapDao.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml new file mode 100644 index 0000000..ed83a49 --- /dev/null +++ b/schisandra-cloud-storage-oss/schisandra-cloud-storage-oss-infra/src/main/resources/mapper/SchisandraUserOssDao.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + +