From 0f06295fc5b6d11a913e512a818ed33063b683b6 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Thu, 4 Apr 2024 15:52:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(search):=20search=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E6=90=AD=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/dataSources.xml | 13 ++++ .../atguigu/ssyx/{ => common}/CodeGet.java | 2 +- .../src/main/resources/application-dev.yml | 6 -- .../controller/FileUploadController.java | 27 +++++++ .../product/service/FileUploadService.java | 13 ++++ .../service/impl/FileUploadServiceImpl.java | 58 ++++++++++++++ .../src/main/resources/application-dev.yml | 6 -- service/service-search/pom.xml | 6 +- .../ssyx/search/ServiceSearchApplication.java | 19 +++++ .../search/controller/SkuApiController.java | 9 +++ .../ssyx/search/repository/SkuRepository.java | 7 ++ .../ssyx/search/service/SkuService.java | 4 + .../search/service/impl/SkuServiceImpl.java | 8 ++ .../src/main/resources/application-dev.yml | 16 ++-- .../src/main/resources/application.yml | 77 +++++++++++-------- .../src/main/resources/application-dev.yml | 6 -- 16 files changed, 218 insertions(+), 59 deletions(-) rename common/service-util/src/main/java/com/atguigu/ssyx/{ => common}/CodeGet.java (98%) create mode 100644 service/service-product/src/main/java/com/atguigu/ssyx/product/controller/FileUploadController.java create mode 100644 service/service-product/src/main/java/com/atguigu/ssyx/product/service/FileUploadService.java create mode 100644 service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/FileUploadServiceImpl.java create mode 100644 service/service-search/src/main/java/com/atguigu/ssyx/search/ServiceSearchApplication.java create mode 100644 service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java create mode 100644 service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java create mode 100644 service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java create mode 100644 service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 3dab06b..2f95d82 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -44,5 +44,18 @@ $ProjectFileDir$ + + redis + true + true + jdbc.RedisDriver + jdbc:redis://47.120.65.66:6379/0 + + + + + + $ProjectFileDir$ + \ No newline at end of file diff --git a/common/service-util/src/main/java/com/atguigu/ssyx/CodeGet.java b/common/service-util/src/main/java/com/atguigu/ssyx/common/CodeGet.java similarity index 98% rename from common/service-util/src/main/java/com/atguigu/ssyx/CodeGet.java rename to common/service-util/src/main/java/com/atguigu/ssyx/common/CodeGet.java index 665de88..46b171a 100644 --- a/common/service-util/src/main/java/com/atguigu/ssyx/CodeGet.java +++ b/common/service-util/src/main/java/com/atguigu/ssyx/common/CodeGet.java @@ -1,4 +1,4 @@ -package com.atguigu.ssyx; +package com.atguigu.ssyx.common; import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.generator.AutoGenerator; diff --git a/service/service-acl/src/main/resources/application-dev.yml b/service/service-acl/src/main/resources/application-dev.yml index 5f1e5ac..e5bc728 100644 --- a/service/service-acl/src/main/resources/application-dev.yml +++ b/service/service-acl/src/main/resources/application-dev.yml @@ -14,12 +14,6 @@ bunny: discovery: namespace: ssyx - redis: - host: 47.120.65.66 - port: 6379 - database: 2 - password: "02120212" - minio: endpointUrl: "http://129.211.31.58:9000" bucket-name: ssyx diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/controller/FileUploadController.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/controller/FileUploadController.java new file mode 100644 index 0000000..c4521da --- /dev/null +++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/controller/FileUploadController.java @@ -0,0 +1,27 @@ +package com.atguigu.ssyx.product.controller; + +import com.atguigu.ssyx.common.result.Result; +import com.atguigu.ssyx.product.service.FileUploadService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +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.multipart.MultipartFile; + +@Api(tags = "文件上传接口") +@RestController +@RequestMapping("admin/product") +public class FileUploadController { + @Autowired + private FileUploadService fileUploadService; + + @ApiOperation(value = "文件上传") + @PostMapping("fileUpload") + public Result fileUpload(@RequestBody MultipartFile file) { + String filename = fileUploadService.uploadFile(file); + return Result.success(filename); + } +} \ No newline at end of file diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/FileUploadService.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/FileUploadService.java new file mode 100644 index 0000000..4822e1a --- /dev/null +++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/FileUploadService.java @@ -0,0 +1,13 @@ +package com.atguigu.ssyx.product.service; + +import org.springframework.web.multipart.MultipartFile; + +public interface FileUploadService { + /** + * 文件上传 + * + * @param file 上传的文件 + * @return 文件路径 + */ + String uploadFile(MultipartFile file); +} diff --git a/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/FileUploadServiceImpl.java b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/FileUploadServiceImpl.java new file mode 100644 index 0000000..e00268b --- /dev/null +++ b/service/service-product/src/main/java/com/atguigu/ssyx/product/service/impl/FileUploadServiceImpl.java @@ -0,0 +1,58 @@ +package com.atguigu.ssyx.product.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.atguigu.ssyx.common.properties.MinioProperties; +import com.atguigu.ssyx.product.service.FileUploadService; +import io.minio.BucketExistsArgs; +import io.minio.MakeBucketArgs; +import io.minio.MinioClient; +import io.minio.PutObjectArgs; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Date; +import java.util.UUID; + + +@Service +@Slf4j +public class FileUploadServiceImpl implements FileUploadService { + @Autowired + private MinioProperties properties; + @Autowired + private MinioClient minioClient; + + /** + * 文件上传 + * + * @param file 上传的文件 + * @return 文件路径 + */ + @Override + public String uploadFile(MultipartFile file) { + String bucketName = properties.getBucketName(); + String dir = DateUtil.format(new Date(), "yyyy-MM-dd"); + String uuid = UUID.randomUUID().toString(); + String filename = dir + "/" + uuid + "-" + file.getOriginalFilename(); + + try { + boolean bucketExists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build()); + if (!bucketExists) { + log.warn("minio桶不存在:{}", bucketName); + minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build()); + } + + // 存入图片 + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(filename) + .stream(file.getInputStream(), file.getSize(), -1).build()); + + return properties.getEndpointUrl() + "/" + properties.getBucketName() + "/" + filename; + } catch (Exception e) { + throw new RuntimeException(e); + } + } +} diff --git a/service/service-product/src/main/resources/application-dev.yml b/service/service-product/src/main/resources/application-dev.yml index 642acdd..f955656 100644 --- a/service/service-product/src/main/resources/application-dev.yml +++ b/service/service-product/src/main/resources/application-dev.yml @@ -14,12 +14,6 @@ bunny: discovery: namespace: ssyx - redis: - host: 47.120.65.66 - port: 6379 - database: 2 - password: "02120212" - minio: endpointUrl: "http://129.211.31.58:9000" bucket-name: ssyx diff --git a/service/service-search/pom.xml b/service/service-search/pom.xml index 7d73f9f..3748cb6 100644 --- a/service/service-search/pom.xml +++ b/service/service-search/pom.xml @@ -22,7 +22,11 @@ org.springframework.boot spring-boot-starter-data-elasticsearch - + + + org.springframework.boot + spring-boot-starter-data-redis + diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/ServiceSearchApplication.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/ServiceSearchApplication.java new file mode 100644 index 0000000..ef6e58d --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/ServiceSearchApplication.java @@ -0,0 +1,19 @@ +package com.atguigu.ssyx.search; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@SpringBootApplication(exclude = DataSourceAutoConfiguration.class) +@ComponentScan(basePackages = {"com.atguigu.ssyx"}) +@EnableDiscoveryClient +@EnableFeignClients +public class ServiceSearchApplication { + public static void main(String[] args) { + SpringApplication.run(ServiceSearchApplication.class, args); + } +} diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java new file mode 100644 index 0000000..b1d7d32 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/controller/SkuApiController.java @@ -0,0 +1,9 @@ +package com.atguigu.ssyx.search.controller; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api/search/sku") +public class SkuApiController { +} diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java new file mode 100644 index 0000000..718fb65 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/repository/SkuRepository.java @@ -0,0 +1,7 @@ +package com.atguigu.ssyx.search.repository; + +import com.atguigu.ssyx.model.search.SkuEs; +import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; + +public interface SkuRepository extends ElasticsearchRepository { +} diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java new file mode 100644 index 0000000..529a69b --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/SkuService.java @@ -0,0 +1,4 @@ +package com.atguigu.ssyx.search.service; + +public interface SkuService { +} diff --git a/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java new file mode 100644 index 0000000..c883203 --- /dev/null +++ b/service/service-search/src/main/java/com/atguigu/ssyx/search/service/impl/SkuServiceImpl.java @@ -0,0 +1,8 @@ +package com.atguigu.ssyx.search.service.impl; + +import com.atguigu.ssyx.search.service.SkuService; +import org.springframework.stereotype.Service; + +@Service +public class SkuServiceImpl implements SkuService { +} diff --git a/service/service-search/src/main/resources/application-dev.yml b/service/service-search/src/main/resources/application-dev.yml index 642acdd..87baa8f 100644 --- a/service/service-search/src/main/resources/application-dev.yml +++ b/service/service-search/src/main/resources/application-dev.yml @@ -1,14 +1,16 @@ server: - port: 8203 + port: 8208 bunny: - datasource: - host: 106.15.251.123 - port: 3305 - sqlData: shequ-product - username: root + rabbitmq: + host: 116.196.101.14 + port: 5672 + username: bunny password: "02120212" + elasticsearch: + uris: http://192.168.1.4:9200 + nacos: server-addr: z-bunny.cn:8848 discovery: @@ -17,7 +19,7 @@ bunny: redis: host: 47.120.65.66 port: 6379 - database: 2 + database: 3 password: "02120212" minio: diff --git a/service/service-search/src/main/resources/application.yml b/service/service-search/src/main/resources/application.yml index 8d33931..c74c324 100644 --- a/service/service-search/src/main/resources/application.yml +++ b/service/service-search/src/main/resources/application.yml @@ -1,17 +1,39 @@ server: - port: 8203 + port: 8208 spring: application: - name: service-product + name: service-search profiles: active: dev - datasource: - type: com.zaxxer.hikari.HikariDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://${bunny.datasource.host}:${bunny.datasource.port}/${bunny.datasource.sqlData}?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8&allowPublicKeyRetrieval=true - username: ${bunny.datasource.username} - password: ${bunny.datasource.password} + redis: + host: ${bunny.redis.host} + port: ${bunny.redis.port} + database: ${bunny.redis.database} + password: ${bunny.redis.password} + lettuce: + pool: + max-active: 20 #最大连接数 + max-wait: -1 #最大阻塞等待时间(负数表示没限制) + max-idle: 5 #最大空闲 + min-idle: 0 #最小空闲 + + elasticsearch: + rest: + uris: ${bunny.elasticsearch.uris} + + rabbitmq: + host: ${bunny.rabbitmq.host} + port: ${bunny.rabbitmq.port} + username: ${bunny.rabbitmq.username} + password: ${bunny.rabbitmq.password} + publisher-confirm-type: CORRELATED + publisher-returns: true + listener: + simple: + prefetch: 1 + concurrency: 3 + acknowledge-mode: manual cloud: sentinel: @@ -26,23 +48,21 @@ spring: date-format: yyyy-MM-dd HH:mm:ss time-zone: GMT+8 +bunny: + minio: + endpointUrl: ${bunny.minio.endpointUrl} + accessKey: ${bunny.minio.accessKey} + secretKey: ${bunny.minio.secretKey} + bucket-name: ${bunny.minio.bucket-name} -mybatis-plus: - type-aliases-package: com.atguigu.model # 配置每个包前缀 - mapper-locations: classpath:mapper/*.xml - configuration: - map-underscore-to-camel-case: true - auto-mapping-behavior: full - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 - global-config: - db-config: - # 设置表名前缀,不用在每个tableName添加前缀 - # table-prefix: t_ - # 全局配置主键值方式 - id-type: assign_id - logic-not-delete-value: 0 # 未删除默认为0 - logic-delete-value: 1 # 删除 - logic-delete-field: deleted # 全局配置逻辑删除 +feign: + sentinel: + enabled: true + client: + config: + default: #配置全局的feign的调用超时时间 如果 有指定的服务配置 默认的配置不会生效 + connectTimeout: 30000 # 指定的是 消费者 连接服务提供者的连接超时时间 是否能连接 单位是毫秒 + readTimeout: 50000 # 指定的是调用服务提供者的 服务 的超时时间() 单位是毫秒 logging: level: @@ -52,11 +72,4 @@ logging: pattern: dateformat: HH:mm:ss:SSS file: - path: "logs/${spring.application.name}" - -bunny: - minio: - endpointUrl: ${bunny.minio.endpointUrl} - accessKey: ${bunny.minio.accessKey} - secretKey: ${bunny.minio.secretKey} - bucket-name: ${bunny.minio.bucket-name} \ No newline at end of file + path: "logs/${spring.application.name}" \ No newline at end of file diff --git a/service/service-sys/src/main/resources/application-dev.yml b/service/service-sys/src/main/resources/application-dev.yml index f56edaf..0b0222f 100644 --- a/service/service-sys/src/main/resources/application-dev.yml +++ b/service/service-sys/src/main/resources/application-dev.yml @@ -14,12 +14,6 @@ bunny: discovery: namespace: ssyx - redis: - host: 47.120.65.66 - port: 6379 - database: 2 - password: "02120212" - minio: endpointUrl: "http://129.211.31.58:9000" bucket-name: ssyx