Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
4f5d632
feat: add resource API
lu-yg Sep 5, 2025
df6ba91
fix: modify source API
lu-yg Sep 5, 2025
0fef229
fix: modify source API
lu-yg Sep 5, 2025
ab24c40
fix: modify source API
lu-yg Sep 5, 2025
787d1d1
fix: modify source API
lu-yg Sep 5, 2025
5fed78f
fix: modify source API
lu-yg Sep 5, 2025
d483f04
fix: modify source API
lu-yg Sep 5, 2025
72e9c67
fix: modify source API
lu-yg Sep 5, 2025
1fe61d5
fix: modify source API
lu-yg Sep 5, 2025
fd74ac8
fix: modify source API
lu-yg Sep 5, 2025
398e5c0
feat: add scheduled tasks
lu-yg Sep 9, 2025
0b8105c
fix: modify resource download
lu-yg Sep 9, 2025
6c9c7e4
fix: modify resource group update
lu-yg Sep 9, 2025
6178ed2
fix: modify resource group update
lu-yg Sep 9, 2025
3d723ae
fix: modify resource group update
lu-yg Sep 9, 2025
797045c
Merge branch 'opentiny:develop' into feat/resourceManagement
lu-yg Sep 10, 2025
3e2e616
fix: modify resource download
lu-yg Sep 10, 2025
603f65d
fix: modify block group
lu-yg Sep 15, 2025
f8d37c0
fix: modify AI chat
lu-yg Sep 16, 2025
e7c73d8
Merge branch 'opentiny:develop' into feat/resourceManagement
lu-yg Sep 16, 2025
6c4f3ea
fix: modify AI chat
lu-yg Sep 16, 2025
35a0b45
fix: modify AI chat
lu-yg Sep 16, 2025
4d7848b
fix: modify AI chat
lu-yg Sep 16, 2025
ad807d9
fix: modify AI chat
lu-yg Sep 16, 2025
53313bf
fix: modify AI chat
lu-yg Sep 16, 2025
ca4ff1b
fix: modify AI chat
lu-yg Sep 16, 2025
bff65fe
fix: modify AI chat
lu-yg Sep 16, 2025
f1fe5d0
Merge branch 'opentiny:develop' into feat/resourceManagement
lu-yg Sep 17, 2025
4eaee7a
fix: modify resource upload
lu-yg Sep 17, 2025
d211902
fix: modify resource upload
lu-yg Sep 17, 2025
28bef56
fix: modify resource upload
lu-yg Sep 17, 2025
a93100a
fix: modify resource upload
lu-yg Sep 17, 2025
1014efc
fix: modify resource upload
lu-yg Sep 17, 2025
68193ce
fix: modify resource upload
lu-yg Sep 17, 2025
64a7397
fix: modify resource upload
lu-yg Sep 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,9 @@
import com.tinyengine.it.common.base.Result;
import com.tinyengine.it.common.context.LoginUserContext;
import com.tinyengine.it.common.exception.ExceptionEnum;
import com.tinyengine.it.common.exception.ServiceException;
import com.tinyengine.it.common.log.SystemControllerLog;
import com.tinyengine.it.common.utils.ImageThumbnailGenerator;
import com.tinyengine.it.common.utils.Utils;
import com.tinyengine.it.model.dto.ResourceRequestDto;
import com.tinyengine.it.model.entity.Resource;
import com.tinyengine.it.service.material.ResourceService;
import io.swagger.v3.oas.annotations.Operation;
Expand Down Expand Up @@ -293,30 +292,34 @@ public Result<Resource> detail(@PathVariable Integer id) {
/**
* 获取资源
*
* @param data the data
* @param name the name
* @param isResource the isResource
* @return the result
*/
@Operation(summary = "获取资源", description = "获取资源",
parameters = {
@Parameter(name = "data", description = "base64编码数据")}, responses = {
@Parameter(name = "name", description = "名称"),
@Parameter(name = "isResource", description = "isResource"),
}, responses = {
@ApiResponse(responseCode = "200", description = "图片流数据",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = Resource.class))),
content = @Content(mediaType = "image/*", schema = @Schema(implementation = Resource.class))),
@ApiResponse(responseCode = "400", description = "请求失败")
})
@SystemControllerLog(description = "获取资源")
@GetMapping("/resource/download")
public void getResource(@RequestParam("data") String data, HttpServletResponse response) throws Exception {
ResourceRequestDto param = Utils.decodeBase64ToObject(data, ResourceRequestDto.class);
Resource resource = resourceService.queryResourceByData(param);

boolean useOriginal = param.isResource();
String base64Data = useOriginal ? resource.getResourceData() : resource.getThumbnailData();
public void getResource(@RequestParam String name, @RequestParam boolean isResource,
HttpServletResponse response) throws Exception {
Resource resource = resourceService.queryResourceByName(name);
if(resource == null) {
throw new ServiceException(ExceptionEnum.CM009.getResultCode(),ExceptionEnum.CM009.getResultMsg());
}
String base64Data = isResource ? resource.getResourceData() : resource.getThumbnailData();
String cleanBase64 = ImageThumbnailGenerator.extractCleanBase64(base64Data);
byte[] imageBytes = Base64.getDecoder().decode(cleanBase64);

String detectedType = ImageThumbnailGenerator.extractContentType(base64Data);

String fileName = useOriginal ? resource.getName() : "thumbnail_" + resource.getName();
String fileName = isResource ? resource.getName() : "thumbnail_" + resource.getName();
// URL编码文件名
String encodedFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8)
.replace("+", "%20");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,5 @@
@Data
public class ResourceRequestDto {
private String name;
private String category;
private boolean isResource;
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

import com.baomidou.mybatisplus.extension.service.IService;
import com.tinyengine.it.common.base.Result;
import com.tinyengine.it.model.dto.ResourceRequestDto;
import com.tinyengine.it.model.entity.Resource;

import java.util.List;
Expand Down Expand Up @@ -45,12 +44,12 @@ public interface ResourceService extends IService<Resource> {
Result<Resource> queryResourceById(Integer id);

/**
* 根据data查询表t_resource信息
* 根据name查询表t_resource信息
*
* @param data the data
* @param name the name
* @return the resource
*/
Resource queryResourceByData(ResourceRequestDto data) throws Exception;
Resource queryResourceByName(String name) throws Exception;

/**
* 根据分组id和创建人查询表t_resource信息
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,18 @@
import com.tinyengine.it.common.exception.ServiceException;
import com.tinyengine.it.common.log.SystemServiceLog;
import com.tinyengine.it.common.utils.ImageThumbnailGenerator;
import com.tinyengine.it.common.utils.Utils;
import com.tinyengine.it.mapper.ResourceGroupResourceMapper;
import com.tinyengine.it.mapper.ResourceMapper;
import com.tinyengine.it.model.dto.ResourceRequestDto;
import com.tinyengine.it.model.entity.Resource;
import com.tinyengine.it.model.entity.ResourceGroupResource;
import com.tinyengine.it.service.material.ResourceService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;

Expand Down Expand Up @@ -82,18 +83,18 @@ public Result<Resource> queryResourceById(Integer id) {
}

/**
* 根据data查询表t_resource信息
* 根据name查询表t_resource信息
*
* @param data the data
* @param name the name
* @return the resource
*/
@Override
@SystemServiceLog(description = "根据data查询表t_resource信息")
public Resource queryResourceByData(ResourceRequestDto data) {
@SystemServiceLog(description = "根据name查询表t_resource信息")
public Resource queryResourceByName(String name) {

QueryWrapper<Resource> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", data.getName());
queryWrapper.eq("category", data.getCategory());
queryWrapper.eq("name", name);
queryWrapper.eq("app_id", loginUserContext.getAppId());

return this.baseMapper.selectOne(queryWrapper);
}
Expand Down Expand Up @@ -172,26 +173,18 @@ public Resource createResource(Resource resource) throws Exception {
*/
@Override
@SystemServiceLog(description = "图片上传")
public Resource resourceUpload(Resource resource) throws Exception {
ResourceRequestDto resourceParam = new ResourceRequestDto();
resourceParam.setName(resource.getName());
resourceParam.setCategory(resource.getCategory());
resourceParam.setResource(true);

String encodedResourceParam = Utils.encodeObjectToBase64(resourceParam);

ResourceRequestDto thumbnailParam = new ResourceRequestDto();
thumbnailParam.setName(resource.getName());
thumbnailParam.setCategory(resource.getCategory());
thumbnailParam.setResource(false);
String encodedThumbnailParam = Utils.encodeObjectToBase64(thumbnailParam);

public Resource resourceUpload(Resource resource) {
String imageName = Instant.now().toEpochMilli()+resource.getName();
resource.setName(imageName);
String resourceData = resource.getResourceData();
String tinyEngineUrl = System.getenv("TINY_ENGINE_URL");

if (!StringUtils.isEmpty(resourceData)) {
resource.setResourceUrl(String.format("%s?data=%s", tinyEngineUrl, encodedResourceParam));
resource.setThumbnailUrl(String.format("%s?data=%s", tinyEngineUrl, encodedThumbnailParam));
String encodedName = URLEncoder.encode(imageName, StandardCharsets.UTF_8);
String resourceUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + true;
String thumbnailUrl = tinyEngineUrl + "?name=" + encodedName + "&isResource=" + false;
resource.setResourceUrl(resourceUrl);
resource.setThumbnailUrl(thumbnailUrl);
resource.setThumbnailData(ImageThumbnailGenerator.createThumbnail(resource.getResourceData(), 200, 200));
}
QueryWrapper<Resource> queryWrapper = new QueryWrapper<>();
Expand Down
Loading