Commit 41cbe53e by lijinqi

spu详情添加费用描述+购买协议接口

parent b9d8636c
...@@ -26,6 +26,11 @@ import javax.annotation.security.PermitAll; ...@@ -26,6 +26,11 @@ import javax.annotation.security.PermitAll;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List; import java.util.List;
import static com.luhu.computility.framework.common.pojo.CommonResult.success; import static com.luhu.computility.framework.common.pojo.CommonResult.success;
...@@ -120,4 +125,31 @@ public class FileController { ...@@ -120,4 +125,31 @@ public class FileController {
return success(BeanUtils.toBean(pageResult, FileRespVO.class)); return success(BeanUtils.toBean(pageResult, FileRespVO.class));
} }
@GetMapping("/preview")
@Operation(summary = "购买PDF 文件预览")
@PermitAll
public void previewPdf(HttpServletResponse response) throws IOException {
// 假设 path = /data/xxx.pdf
File file = new File("/data/buy.pdf");
if (!file.exists()) {
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
return;
}
// 设置 PDF 预览
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=\"" + file.getName() + "\"");
// 输出文件流
try (InputStream inputStream = new FileInputStream(file);
OutputStream os = response.getOutputStream()) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.flush();
}
}
} }
...@@ -27,7 +27,6 @@ public class ProductSkuRespVO { ...@@ -27,7 +27,6 @@ public class ProductSkuRespVO {
@Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png")
private String picUrl; private String picUrl;
@Schema(description = "费用描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "元/年") @Schema(description = "费用描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "元/年")
private String feeInfo; private String feeInfo;
......
...@@ -30,6 +30,17 @@ public class ProductSkuSaveReqVO { ...@@ -30,6 +30,17 @@ public class ProductSkuSaveReqVO {
@Schema(description = "条形码", example = "15156165456") @Schema(description = "条形码", example = "15156165456")
private String barCode; private String barCode;
@Schema(description = "费用描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "元/年")
private String feeInfo;
@Schema(description = "有效期", requiredMode = Schema.RequiredMode.REQUIRED, example = "365")
private Integer expDuration;
@Schema(description = "鉴权信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
private String auth;
@Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png") @Schema(description = "图片地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png")
@NotNull(message = "图片地址不能为空") @NotNull(message = "图片地址不能为空")
private String picUrl; private String picUrl;
......
...@@ -59,13 +59,10 @@ public class AppMemberUserController { ...@@ -59,13 +59,10 @@ public class AppMemberUserController {
appEnterpriseUserInfoRespVO.setEnterpriseName(enterprise.getEnterpriseName()); appEnterpriseUserInfoRespVO.setEnterpriseName(enterprise.getEnterpriseName());
appEnterpriseUserInfoRespVO.setCheckStatus(enterprise.getStatus()); appEnterpriseUserInfoRespVO.setCheckStatus(enterprise.getStatus());
appEnterpriseUserInfoRespVO.setCheckStatusName(EnterpriseCheckStatus.getByValue(enterprise.getStatus()).getRemark()); appEnterpriseUserInfoRespVO.setCheckStatusName(EnterpriseCheckStatus.getByValue(enterprise.getStatus()).getRemark());
} else { } else {
appEnterpriseUserInfoRespVO.setCheckStatus(EnterpriseCheckStatus.UNSUBMIT.getValue()); appEnterpriseUserInfoRespVO.setCheckStatus(EnterpriseCheckStatus.UNSUBMIT.getValue());
appEnterpriseUserInfoRespVO.setCheckStatusName(EnterpriseCheckStatus.UNSUBMIT.getRemark()); appEnterpriseUserInfoRespVO.setCheckStatusName(EnterpriseCheckStatus.UNSUBMIT.getRemark());
} }
return success(appEnterpriseUserInfoRespVO); return success(appEnterpriseUserInfoRespVO);
} }
......
...@@ -278,6 +278,7 @@ computility: ...@@ -278,6 +278,7 @@ computility:
enable: true enable: true
ignore-urls: ignore-urls:
- /jmreport/* # 积木报表,无法携带租户编号 - /jmreport/* # 积木报表,无法携带租户编号
- /admin-api/infra/file/preview
ignore-visit-urls: ignore-visit-urls:
- /admin-api/system/user/profile/** - /admin-api/system/user/profile/**
- /admin-api/system/auth/** - /admin-api/system/auth/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment