feat: 获取分享列表接口

This commit is contained in:
landaiqing
2024-07-15 20:45:12 +08:00
parent 14530e56e7
commit 0af1bb572f
37 changed files with 838 additions and 361 deletions

View File

@@ -1,53 +1,53 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>schisandra-cloud-storage-share</name>
<modules>
<module>schisandra-cloud-storage-share-api</module>
<module>schisandra-cloud-storage-share-starter</module>
<module>schisandra-cloud-storage-share-infra</module>
<module>schisandra-cloud-storage-share-domain</module>
<module>schisandra-cloud-storage-share-common</module>
<module>schisandra-cloud-storage-share-application</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.4.2</spring-boot.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<spring-cloud.version>2020.0.6</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>schisandra-cloud-storage-share</name>
<modules>
<module>schisandra-cloud-storage-share-api</module>
<module>schisandra-cloud-storage-share-starter</module>
<module>schisandra-cloud-storage-share-infra</module>
<module>schisandra-cloud-storage-share-common</module>
<module>schisandra-cloud-storage-share-application</module>
<module>schisandra-cloud-storage-share-domain</module>
</modules>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<spring-boot.version>2.4.2</spring-boot.version>
<spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
<spring-cloud.version>2020.0.6</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.4.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>central</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>

View File

@@ -1,79 +1,79 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-application</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>schisandra-cloud-storage-share-application-controller</artifactId>
<packaging>jar</packaging>
<name>schisandra-cloud-storage-share-application-controller</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</path>
<!-- 必须要加, 否则生成不了 MapperImpl 实现类 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
</path>
<!-- 如果是 0.1.0 有可能出现生成了maptruct的实现类, 但该类只创建了对象, 没有进行赋值 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
<path>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-processor</artifactId>
<version>1.9.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-domain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-application</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>schisandra-cloud-storage-share-application-controller</artifactId>
<packaging>jar</packaging>
<name>schisandra-cloud-storage-share-application-controller</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</path>
<!-- 必须要加, 否则生成不了 MapperImpl 实现类 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
</path>
<!-- 如果是 0.1.0 有可能出现生成了maptruct的实现类, 但该类只创建了对象, 没有进行赋值 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
<path>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-processor</artifactId>
<version>1.9.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-domain</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,44 @@
package com.schisandra.share.application.config;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.util.List;
/**
* @Classname GlobalConfig
* @BelongsProject: schisandra-cloud-storage
* @BelongsPackage: com.schisandra.auth.application.common
* @Author: schisandra
* @CreateTime: 2024-02-16 15:57
* @Description: MVC全局处理
* @Version: 1.0
*/
@Configuration
public class GlobalConfig extends WebMvcConfigurationSupport {
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
converters.add(mappingJackson2HttpMessageConverter());
}
private MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(objectMapper);
return converter;
}
// @Override
// protected void addInterceptors(InterceptorRegistry registry) {
// registry.addInterceptor(new LoginInterceptor())
// .addPathPatterns("/**").excludePathPatterns("/oauth/**","/system/**","/auth/**","/ReactRotateCaptcha/**","/sms/sendByTemplate");
// }
}

View File

@@ -27,7 +27,6 @@ public class SchisandraShareCircleController {
@Resource
private SchisandraShareCircleDomainService schisandraShareCircleDomainService;
/**
* 新增分享圈
*/

View File

@@ -8,11 +8,10 @@ import com.schisandra.share.common.entity.Result;
import com.schisandra.share.domain.bo.SchisandraShareDetailBO;
import com.schisandra.share.domain.service.SchisandraShareDetailDomainService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 分享详情表 controller
@@ -28,6 +27,21 @@ public class SchisandraShareDetailController {
@Resource
private SchisandraShareDetailDomainService schisandraShareDetailDomainService;
/**
* @description: 查询分享列表
* @param: []
* @return: com.schisandra.share.common.entity.Result<java.util.List < com.schisandra.share.domain.bo.SchisandraShareCircleBO>>
* @author: landaiqing
* @date: 2024/7/15 下午7:09
*/
@PostMapping("/list")
public Result<List<SchisandraShareDetailDTO>> selectCircleList(@RequestParam("circleId") Long circleId) {
List<SchisandraShareDetailBO> resultList = schisandraShareDetailDomainService.list(circleId);
List<SchisandraShareDetailDTO> schisandraShareDetailDTOS = SchisandraShareDetailDTOConverter.INSTANCE.convertBOToDTOList(resultList);
return Result.ok(schisandraShareDetailDTOS);
}
/**
* 新增分享详情表
*/

View File

@@ -4,6 +4,7 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 分享详情表 dto
@@ -15,32 +16,32 @@ import java.util.Date;
public class SchisandraShareDetailDTO implements Serializable {
/**
*
*
*/
private Long id;
/**
*
*
*/
private Long circleId;
/**
*
*
*/
private Long userId;
/**
*
*
*/
private String title;
/**
*
*
*/
private String icon;
/**
*
*
*/
private String description;
@@ -60,12 +61,12 @@ public class SchisandraShareDetailDTO implements Serializable {
private Long likesCount;
/**
*
*
*/
private Long views;
/**
*
*
*/
private String extJson;
@@ -90,9 +91,15 @@ public class SchisandraShareDetailDTO implements Serializable {
private Date updateTime;
/**
*
*
*/
private Integer isDeleted;
List<SchisandraShareTagsDTO> tags;
private String nickname;
private String avatar;
}

View File

@@ -1,74 +1,74 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>schisandra-cloud-storage-share-domain</artifactId>
<packaging>jar</packaging>
<name>schisandra-cloud-storage-share-domain</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</path>
<!-- 必须要加, 否则生成不了 MapperImpl 实现类 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
</path>
<!-- 如果是 0.1.0 有可能出现生成了maptruct的实现类, 但该类只创建了对象, 没有进行赋值 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
<path>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-processor</artifactId>
<version>1.9.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-infra</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>schisandra-cloud-storage-share-domain</artifactId>
<packaging>jar</packaging>
<name>schisandra-cloud-storage-share-domain</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</path>
<!-- 必须要加, 否则生成不了 MapperImpl 实现类 -->
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
</path>
<!-- 如果是 0.1.0 有可能出现生成了maptruct的实现类, 但该类只创建了对象, 没有进行赋值 -->
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
<path>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-processor</artifactId>
<version>1.9.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-infra</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@@ -4,6 +4,8 @@ import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 分享详情表 bo
*
@@ -93,5 +95,11 @@ public class SchisandraShareDetailBO implements Serializable {
*/
private Integer isDeleted;
List<SchisandraShareTagsBO> tags;
private String nickname;
private String avatar;
}

View File

@@ -5,6 +5,8 @@ import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* 分享详情表 bo转换器
*
@@ -18,5 +20,6 @@ public interface SchisandraShareDetailBOConverter {
SchisandraShareDetail convertBOToEntity(SchisandraShareDetailBO schisandraShareDetailBO);
SchisandraShareDetailBO convertEntityToBO(SchisandraShareDetail schisandraShareDetail);
List<SchisandraShareDetailBO> convertEntityToBOList(List<SchisandraShareDetail> schisandraShareDetailList);
}

View File

@@ -5,6 +5,8 @@ import com.schisandra.share.infra.basic.entity.SchisandraShareDetailTag;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* 详情/标签映射表 bo转换器
*
@@ -18,5 +20,6 @@ public interface SchisandraShareDetailTagBOConverter {
SchisandraShareDetailTag convertBOToEntity(SchisandraShareDetailTagBO schisandraShareDetailTagBO);
SchisandraShareDetailTagBO convertEntityToBO(SchisandraShareDetailTag schisandraShareDetailTag);
List<SchisandraShareDetailTagBO> convertEntityToBOList(List<SchisandraShareDetailTag> schisandraShareDetailTagList);
}

View File

@@ -5,6 +5,8 @@ import com.schisandra.share.infra.basic.entity.SchisandraShareTags;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* 分享详情标签表 bo转换器
*
@@ -18,5 +20,6 @@ public interface SchisandraShareTagsBOConverter {
SchisandraShareTags convertBOToEntity(SchisandraShareTagsBO schisandraShareTagsBO);
SchisandraShareTagsBO convertEntityToBO(SchisandraShareTags schisandraShareTags);
List<SchisandraShareTagsBO> convertEntityToBOList(List<SchisandraShareTags> schisandraShareTagList);
}

View File

@@ -2,6 +2,8 @@ package com.schisandra.share.domain.service;
import com.schisandra.share.domain.bo.SchisandraShareCircleBO;
import java.util.List;
/**
* 分享圈 领域service
*

View File

@@ -2,6 +2,8 @@ package com.schisandra.share.domain.service;
import com.schisandra.share.domain.bo.SchisandraShareDetailBO;
import java.util.List;
/**
* 分享详情表 领域service
*
@@ -25,4 +27,5 @@ public interface SchisandraShareDetailDomainService {
*/
Boolean delete(SchisandraShareDetailBO schisandraShareDetailBO);
List<SchisandraShareDetailBO> list(Long circleId);
}

View File

@@ -1,6 +1,9 @@
package com.schisandra.share.domain.service;
import com.schisandra.share.domain.bo.SchisandraShareDetailTagBO;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetailTag;
import java.util.List;
/**
* 详情/标签映射表 领域service
@@ -24,5 +27,4 @@ public interface SchisandraShareDetailTagDomainService {
* 删除 详情/标签映射表 信息
*/
Boolean delete(SchisandraShareDetailTagBO schisandraShareDetailTagBO);
}

View File

@@ -10,6 +10,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
* 分享圈 领域service实现了

View File

@@ -1,15 +1,29 @@
package com.schisandra.share.domain.service.impl;
import com.schisandra.share.common.enums.IsDeletedFlagEnum;
import com.schisandra.share.domain.convert.SchisandraShareDetailBOConverter;
import com.schisandra.share.domain.bo.SchisandraShareDetailBO;
import com.schisandra.share.domain.bo.SchisandraShareDetailTagBO;
import com.schisandra.share.domain.bo.SchisandraShareTagsBO;
import com.schisandra.share.domain.convert.SchisandraShareDetailBOConverter;
import com.schisandra.share.domain.convert.SchisandraShareDetailTagBOConverter;
import com.schisandra.share.domain.convert.SchisandraShareTagsBOConverter;
import com.schisandra.share.domain.service.SchisandraShareDetailDomainService;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetailTag;
import com.schisandra.share.infra.basic.entity.SchisandraShareTags;
import com.schisandra.share.infra.basic.service.SchisandraShareDetailService;
import com.schisandra.share.infra.basic.service.SchisandraShareDetailTagService;
import com.schisandra.share.infra.basic.service.SchisandraShareTagsService;
import com.schisandra.share.infra.entity.AuthUserInfoEntity;
import com.schisandra.share.infra.rpc.UserRpc;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
/**
* 分享详情表 领域service实现了
@@ -23,6 +37,14 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
@Resource
private SchisandraShareDetailService schisandraShareDetailService;
@Resource
private SchisandraShareDetailTagService schisandraShareDetailTagService;
@Resource
private SchisandraShareTagsService schisandraShareTagsService;
@Resource
UserRpc userRpc;
@Override
public Boolean add(SchisandraShareDetailBO schisandraShareDetailBO) {
@@ -45,4 +67,35 @@ public class SchisandraShareDetailDomainServiceImpl implements SchisandraShareDe
return schisandraShareDetailService.update(schisandraShareDetail) > 0;
}
@Transactional
@Override
public List<SchisandraShareDetailBO> list(Long circleId) {
List<SchisandraShareDetail> schisandraShareDetails = schisandraShareDetailService.queryByCircleId(circleId);
List<SchisandraShareDetailBO> shareDetailBOList = SchisandraShareDetailBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetails);
LinkedList<SchisandraShareDetailBO> resultList = new LinkedList<>();
shareDetailBOList.forEach(shareDetailBO -> {
AuthUserInfoEntity userInfo = userRpc.getUserInfo(shareDetailBO.getUserId());
SchisandraShareDetailBO schisandraShareDetailBO = new SchisandraShareDetailBO();
schisandraShareDetailBO.setCircleId(shareDetailBO.getCircleId());
schisandraShareDetailBO.setIcon(shareDetailBO.getIcon());
schisandraShareDetailBO.setDescription(shareDetailBO.getDescription());
schisandraShareDetailBO.setTitle(shareDetailBO.getTitle());
schisandraShareDetailBO.setId(shareDetailBO.getId());
schisandraShareDetailBO.setLikesCount(shareDetailBO.getLikesCount());
schisandraShareDetailBO.setViews(shareDetailBO.getViews());
schisandraShareDetailBO.setAvatar(userInfo.getAvatar());
schisandraShareDetailBO.setNickname(userInfo.getNickName());
List<SchisandraShareDetailTag> schisandraShareDetailTags = schisandraShareDetailTagService.queryTagIdsByDetailId(shareDetailBO.getId());
List<SchisandraShareDetailTagBO> shareDetailTagBOList = SchisandraShareDetailTagBOConverter.INSTANCE.convertEntityToBOList(schisandraShareDetailTags);
List<Long> tagIds = shareDetailTagBOList.stream().map(SchisandraShareDetailTagBO::getTagId).collect(Collectors.toList());
List<SchisandraShareTags> shareTagList = schisandraShareTagsService.queryByIds(tagIds);
List<SchisandraShareTagsBO> shareTagsBOList = SchisandraShareTagsBOConverter.INSTANCE.convertEntityToBOList(shareTagList);
schisandraShareDetailBO.setTags(shareTagsBOList);
resultList.add(schisandraShareDetailBO);
});
return resultList;
}
}

View File

@@ -1,8 +1,8 @@
package com.schisandra.share.domain.service.impl;
import com.schisandra.share.common.enums.IsDeletedFlagEnum;
import com.schisandra.share.domain.convert.SchisandraShareDetailTagBOConverter;
import com.schisandra.share.domain.bo.SchisandraShareDetailTagBO;
import com.schisandra.share.domain.convert.SchisandraShareDetailTagBOConverter;
import com.schisandra.share.domain.service.SchisandraShareDetailTagDomainService;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetailTag;
import com.schisandra.share.infra.basic.service.SchisandraShareDetailTagService;
@@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 详情/标签映射表 领域service实现了
@@ -44,5 +45,4 @@ public class SchisandraShareDetailTagDomainServiceImpl implements SchisandraShar
schisandraShareDetailTag.setIsDeleted(IsDeletedFlagEnum.DELETED.getCode());
return schisandraShareDetailTagService.update(schisandraShareDetailTag) > 0;
}
}

View File

@@ -60,6 +60,11 @@
<artifactId>schisandra-cloud-storage-share-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra</groupId>
<artifactId>schisandra-cloud-storage-auth-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>

View File

@@ -2,6 +2,8 @@ package com.schisandra.share.infra.basic.service;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import java.util.List;
/**
* 分享详情表 表服务接口
*
@@ -43,4 +45,5 @@ public interface SchisandraShareDetailService {
boolean deleteById(Long id);
List<SchisandraShareDetail> queryByCircleId(Long circleId);
}

View File

@@ -2,6 +2,8 @@ package com.schisandra.share.infra.basic.service;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetailTag;
import java.util.List;
/**
* 详情/标签映射表 表服务接口
*
@@ -43,4 +45,5 @@ public interface SchisandraShareDetailTagService {
boolean deleteById(Long id);
List<SchisandraShareDetailTag> queryTagIdsByDetailId(Long detailId);
}

View File

@@ -2,6 +2,8 @@ package com.schisandra.share.infra.basic.service;
import com.schisandra.share.infra.basic.entity.SchisandraShareTags;
import java.util.List;
/**
* 分享详情标签表 表服务接口
*
@@ -43,4 +45,5 @@ public interface SchisandraShareTagsService {
boolean deleteById(Long id);
List<SchisandraShareTags> queryByIds(List<Long> tagIds);
}

View File

@@ -1,11 +1,13 @@
package com.schisandra.share.infra.basic.service.impl;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import com.schisandra.share.infra.basic.dao.SchisandraShareDetailDao;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetail;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareDetailTableDef;
import com.schisandra.share.infra.basic.service.SchisandraShareDetailService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 分享详情表 表服务实现类
@@ -49,7 +51,7 @@ public class SchisandraShareDetailServiceImpl implements SchisandraShareDetailSe
*/
@Override
public int update(SchisandraShareDetail schisandraShareDetail) {
return this.schisandraShareDetailDao.update(schisandraShareDetail,true);
return this.schisandraShareDetailDao.update(schisandraShareDetail, true);
}
/**
@@ -63,5 +65,10 @@ public class SchisandraShareDetailServiceImpl implements SchisandraShareDetailSe
return this.schisandraShareDetailDao.deleteById(id) > 0;
}
@Override
public List<SchisandraShareDetail> queryByCircleId(Long circleId) {
return this.schisandraShareDetailDao.selectListByCondition(SchisandraShareDetailTableDef.SCHISANDRA_SHARE_DETAIL.CIRCLE_ID.eq(circleId));
}
}

View File

@@ -1,11 +1,13 @@
package com.schisandra.share.infra.basic.service.impl;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetailTag;
import com.schisandra.share.infra.basic.dao.SchisandraShareDetailTagDao;
import com.schisandra.share.infra.basic.entity.SchisandraShareDetailTag;
import com.schisandra.share.infra.basic.entity.table.SchisandraShareDetailTagTableDef;
import com.schisandra.share.infra.basic.service.SchisandraShareDetailTagService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 详情/标签映射表 表服务实现类
@@ -49,7 +51,7 @@ public class SchisandraShareDetailTagServiceImpl implements SchisandraShareDetai
*/
@Override
public int update(SchisandraShareDetailTag schisandraShareDetailTag) {
return this.schisandraShareDetailTagDao.update(schisandraShareDetailTag,true);
return this.schisandraShareDetailTagDao.update(schisandraShareDetailTag, true);
}
/**
@@ -63,5 +65,10 @@ public class SchisandraShareDetailTagServiceImpl implements SchisandraShareDetai
return this.schisandraShareDetailTagDao.deleteById(id) > 0;
}
@Override
public List<SchisandraShareDetailTag> queryTagIdsByDetailId(Long detailId) {
return this.schisandraShareDetailTagDao.selectListByCondition(SchisandraShareDetailTagTableDef.SCHISANDRA_SHARE_DETAIL_TAG.DETAIL_ID.eq(detailId));
}
}

View File

@@ -1,11 +1,12 @@
package com.schisandra.share.infra.basic.service.impl;
import com.schisandra.share.infra.basic.entity.SchisandraShareTags;
import com.schisandra.share.infra.basic.dao.SchisandraShareTagsDao;
import com.schisandra.share.infra.basic.entity.SchisandraShareTags;
import com.schisandra.share.infra.basic.service.SchisandraShareTagsService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 分享详情标签表 表服务实现类
@@ -49,7 +50,7 @@ public class SchisandraShareTagsServiceImpl implements SchisandraShareTagsServic
*/
@Override
public int update(SchisandraShareTags schisandraShareTags) {
return this.schisandraShareTagsDao.update(schisandraShareTags,true);
return this.schisandraShareTagsDao.update(schisandraShareTags, true);
}
/**
@@ -63,5 +64,10 @@ public class SchisandraShareTagsServiceImpl implements SchisandraShareTagsServic
return this.schisandraShareTagsDao.deleteById(id) > 0;
}
@Override
public List<SchisandraShareTags> queryByIds(List<Long> tagIds) {
return this.schisandraShareTagsDao.selectListByIds(tagIds);
}
}

View File

@@ -0,0 +1,33 @@
package com.schisandra.share.infra.config;
import com.mybatisflex.core.audit.AuditManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Configuration;
/**
* @Classname MyBatisFlexConfiguration
* @BelongsProject: schisandra-cloud-storage
* @BelongsPackage: com.schisandra.oss.infra.common
* @Author: landaiqing
* @CreateTime: 2024-05-31 16:14
* @Description: Mybatis flex 配置类
* @Version: 1.0
*/
@Configuration
public class ShareMyBatisFlexConfiguration {
private static final Logger logger = LoggerFactory
.getLogger("mybatis-flex-sql");
public ShareMyBatisFlexConfiguration() {
//开启审计功能
AuditManager.setAuditEnable(true);
//设置 SQL 审计收集器
AuditManager.setMessageCollector(auditMessage ->
logger.info("{},{}ms", auditMessage.getFullSql()
, auditMessage.getElapsedTime())
);
}
}

View File

@@ -0,0 +1,74 @@
package com.schisandra.share.infra.entity;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* dto
*
* @author landaiqing
* @since 2024-05-23 20:00:28
*/
@Data
public class AuthUserInfoEntity implements Serializable {
/**
* 用户名
*/
private String userName;
/**
* 昵称
*/
private String nickName;
/**
* 邮箱
*/
private String email;
/**
* 手机号
*/
private String phone;
/**
* 性别
*/
private String gender;
/**
* 头像
*/
private String avatar;
/**
* 状态
*/
private Integer status;
/**
* 介绍
*/
private String introduce;
/**
* 博客
*/
private String blog;
/**
* 城市
*/
private String location;
/**
* 公司
*/
private String company;
}

View File

@@ -0,0 +1,46 @@
package com.schisandra.share.infra.rpc;
import com.schisandra.auth.api.SchisandraAuthFeignService;
import com.schisandra.auth.entity.Result;
import com.schisandra.auth.entity.SchisandraAuthUserDTO;
import com.schisandra.share.infra.entity.AuthUserInfoEntity;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @Classname UserRpc
* @BelongsProject: schisandra-cloud-storage
* @BelongsPackage: com.schisandra.share.infra.rpc
* @Author: landaiqing
* @CreateTime: 2024-07-15 09:48
* @Description: TODO
* @Version: 1.0
*/
@Component
public class UserRpc {
@Resource
private SchisandraAuthFeignService schisandraAuthFeignService;
public AuthUserInfoEntity getUserInfo(Long userId) {
Result<SchisandraAuthUserDTO> result = schisandraAuthFeignService.getUserInfo(userId);
AuthUserInfoEntity authUserInfoEntity = new AuthUserInfoEntity();
if (!result.getSuccess()) {
return authUserInfoEntity;
}
SchisandraAuthUserDTO data = result.getData();
authUserInfoEntity.setUserName(data.getUserName());
authUserInfoEntity.setNickName(data.getNickName());
authUserInfoEntity.setBlog(data.getBlog());
authUserInfoEntity.setCompany(data.getCompany());
authUserInfoEntity.setAvatar(data.getAvatar());
authUserInfoEntity.setEmail(data.getEmail());
authUserInfoEntity.setGender(data.getGender());
authUserInfoEntity.setIntroduce(data.getIntroduce());
authUserInfoEntity.setPhone(data.getPhone());
authUserInfoEntity.setStatus(data.getStatus());
return authUserInfoEntity;
}
}

View File

@@ -58,6 +58,11 @@
<artifactId>schisandra-cloud-storage-share-application-controller</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.schisandra.share</groupId>
<artifactId>schisandra-cloud-storage-share-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>

View File

@@ -3,7 +3,9 @@ package com.schisandra.share;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* 分享微服务启动类
@@ -14,6 +16,8 @@ import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan("com.schisandra")
@MapperScan("com.schisandra.**.dao")
@EnableFeignClients(basePackages = "com.schisandra")
@EnableTransactionManagement
public class ShareApplication {
public static void main(String[] args) {
SpringApplication.run(ShareApplication.class);