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