1.模糊好友搜索

2.新增七牛云上传
This commit is contained in:
乾乾
2025-03-15 14:41:07 +08:00
parent ec9c409aa1
commit 5229211089
7 changed files with 128 additions and 3 deletions

View File

@@ -63,6 +63,17 @@
<groupId>com.squareup.okio</groupId>
<artifactId>okio</artifactId>
</dependency>
<!-- 七牛云依赖 -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<exclusions>
<exclusion>
<artifactId>okhttp</artifactId>
<groupId>com.squareup.okhttp3</groupId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>

View File

@@ -0,0 +1,52 @@
package com.hula.common.storage;
import com.alibaba.fastjson.JSONObject;
import com.hula.common.storage.engine.QiNiuStorage;
import com.hula.core.user.service.ConfigService;
import jakarta.annotation.PostConstruct;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.Map;
@Component
@RequiredArgsConstructor
public class StorageDriver {
private final ConfigService configService;
/**
* 当前存储引擎
*/
private String engine;
/**
* 存储引擎配置
*/
private Map<String, String> config = new HashMap<>();
@PostConstruct
public void init() {
this.engine = configService.get("storageDefault");
config.put("storagePrefix", configService.get("qnStorageName"));
config.put("qnUploadUrl", configService.get("qnUploadUrl"));
config.put("qnAccessKey", configService.get("qnAccessKey"));
config.put("qnSecretKey", configService.get("qnSecretKey"));
config.put("qnStorageName", configService.get("qnStorageName"));
}
public Map<String, String> getConfig() {
return config;
}
public JSONObject getToken() {
switch (this.engine) {
case "qiniu" -> {
return new QiNiuStorage(this.getConfig()).upToken();
}
}
return null;
}
}

View File

@@ -0,0 +1,42 @@
package com.hula.common.storage.engine;
import com.alibaba.fastjson.JSONObject;
import com.qiniu.util.Auth;
import java.util.Map;
/**
* 七牛云存储
*/
public class QiNiuStorage {
/**
* 存储配置
*/
private final Map<String, String> config;
/**
* 构造方法
*/
public QiNiuStorage(Map<String, String> config) {
this.config = config;
}
/**
* 鉴权令牌
*
* @author 乾乾
* @return JSONObject
*/
public JSONObject upToken() {
String domain = this.config.getOrDefault("qnUploadUrl", "");
String accessKey = this.config.getOrDefault("qnAccessKey", "");
String secretKey = this.config.getOrDefault("qnSecretKey", "");
String bucket = this.config.getOrDefault("qnStorageName", "");
JSONObject jsonObject = new JSONObject();
jsonObject.put("domain", domain);
jsonObject.put("token", Auth.create(accessKey, secretKey).uploadToken(bucket));
jsonObject.put("storagePrefix", config.get("storagePrefix"));
return jsonObject;
}
}

View File

@@ -1,5 +1,7 @@
package com.hula.core.user.controller;
import com.alibaba.fastjson.JSONObject;
import com.hula.common.storage.StorageDriver;
import com.hula.core.user.domain.vo.req.oss.UploadUrlReq;
import com.hula.core.user.domain.vo.resp.config.Init;
import com.hula.core.user.service.ConfigService;
@@ -9,6 +11,7 @@ import com.hula.domain.vo.res.OssResp;
import com.hula.utils.RequestHolder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.v3.oas.annotations.Operation;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.GetMapping;
@@ -26,6 +29,9 @@ public class RootController {
@Resource
private OssService ossService;
@Resource
private StorageDriver storageDriver;
@Resource
private ConfigService configService;
@@ -35,6 +41,13 @@ public class RootController {
return ApiResult.success(ossService.getUploadUrl(RequestHolder.get().getUid(), req));
}
@Operation(summary = "获取七牛云上传token")
@GetMapping("ossToken")
public ApiResult<JSONObject> token() {
return ApiResult.success(storageDriver.getToken());
}
@GetMapping("config/init")
@ApiOperation("获取系统全局配置")
public ApiResult<Init> init() {

View File

@@ -93,6 +93,6 @@ public class UserDao extends ServiceImpl<UserMapper, User> {
}
public List<ChatMemberListResp> getFriend(String key) {
return baseMapper.getFriend(key);
return baseMapper.getFriend("%" + key + "%");
}
}

View File

@@ -11,6 +11,6 @@
<select id="getFriend" resultType="com.hula.core.chat.domain.vo.response.ChatMemberListResp">
SELECT id AS uid, name, avatar, account_code
FROM user
WHERE account_code = #{key}
WHERE account_code like #{key}
</select>
</mapper>

View File

@@ -21,6 +21,7 @@
<hutool.version>5.8.27</hutool.version>
<mysql-connector.version>8.2.0</mysql-connector.version>
<jjwt.version>0.9.1</jjwt.version>
<qiniu.version>7.15.1</qiniu.version>
<logstash-logback.version>7.2</logstash-logback.version>
<minio.version>8.4.5</minio.version>
<jaxb-api.version>2.3.1</jaxb-api.version>
@@ -168,7 +169,7 @@
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!-- 阿里云OSS -->
<!-- minio OSS -->
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
@@ -179,6 +180,12 @@
<artifactId>redisson-spring-boot-starter</artifactId>
<version>${redisson-spring-boot-starter.version}</version>
</dependency>
<!-- 七牛云OSS -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>${qiniu.version}</version>
</dependency>
<!-- maven模块版本 -->
<dependency>
<groupId>org.apache.maven</groupId>