Commit 4605d357 by lijinqi

1.算力资源 展示字段修改、筛选条件修改

2.用户资源管理 展示字段修改、筛选条件修改
3.pdf预览接口修
parent c44ab6a2
......@@ -57,7 +57,7 @@ public class ApiOrderController {
@Operation(summary = "开具发票")
public CommonResult<Boolean> issueInvoice(@RequestBody ApiOrderSaveReqVO saveVO){
if(ObjectUtil.isEmpty(saveVO.getInvoiceUrl())){
throw new ServiceException("没有接收到发票图片!");
throw new ServiceException("没有接收到发票文件地址!");
}
if(saveVO.getInvoiceStatus().equals(INVOICED.getStatus())){
throw new ServiceException("该订单已经开具发票");
......
package com.luhu.computility.module.apihub.controller.app.apiorder;
import cn.hutool.core.collection.CollectionUtil;
import com.luhu.computility.framework.common.exception.ServiceException;
import com.luhu.computility.framework.common.pojo.CommonResult;
import com.luhu.computility.framework.common.pojo.PageResult;
import com.luhu.computility.framework.common.util.object.BeanUtils;
import com.luhu.computility.framework.security.core.util.SecurityFrameworkUtils;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateRespVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderInvoiceReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderRespVO;
import com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO;
......@@ -28,6 +30,8 @@ import javax.validation.Valid;
import java.util.List;
import static com.luhu.computility.framework.common.pojo.CommonResult.success;
import static com.luhu.computility.module.trade.enums.order.TradeOrderInvoiceStatusEnum.INVOICED;
import static com.luhu.computility.module.trade.enums.order.TradeOrderInvoiceStatusEnum.INVOICING;
@Tag(name = "用户端 - api订单")
@RestController
......@@ -124,4 +128,17 @@ public class AppApiOrderController {
}*/
@PostMapping("/invoiceRequest")
@Operation(summary = "申请开票")
public CommonResult<Boolean> invoiceRequest(@RequestBody AppApiOrderInvoiceReqVO reqVO){
Integer invoiceStatus = reqVO.getInvoiceStatus();
if(invoiceStatus.equals(INVOICING.getStatus())){
throw new ServiceException("该订单已申请开票,请耐心等待");
}
if(invoiceStatus.equals(INVOICED.getStatus())){
throw new ServiceException("该订单已开票,请勿重复申请");
}
return success(apiOrderService.updateRequestInvoice(reqVO));
}
}
\ No newline at end of file
package com.luhu.computility.module.apihub.controller.app.apiorder.vo;
import lombok.Data;
/**
* @Author: jony
* @Date : 2025/9/10 09:53
* @VERSION v1.0
*/
@Data
public class AppApiOrderInvoiceReqVO {
private Long id;
//发票图片链接
private String invoiceUrl;
//开票状态
private Integer invoiceStatus;
}
......@@ -4,6 +4,7 @@ import java.util.*;
import javax.validation.*;
import com.luhu.computility.module.apihub.controller.admin.apiorder.vo.*;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderInvoiceReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderRespVO;
import com.luhu.computility.module.apihub.dal.dataobject.apiorder.ApiOrderDO;
......@@ -94,4 +95,12 @@ public interface ApiOrderService {
boolean updateInvoice(ApiOrderSaveReqVO saveReqVO);
/**
* 用户申请开票 api
*
* @param reqVO
* @return
*/
boolean updateRequestInvoice(AppApiOrderInvoiceReqVO reqVO);
}
\ No newline at end of file
......@@ -6,6 +6,7 @@ import com.luhu.computility.framework.common.util.json.JsonUtils;
import com.luhu.computility.framework.common.util.string.StrUtils;
import com.luhu.computility.module.apihub.config.ApiOrderProperties;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderCreateReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderInvoiceReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderPageReqVO;
import com.luhu.computility.module.apihub.controller.app.apiorder.vo.AppApiOrderRespVO;
import com.luhu.computility.module.apihub.dal.dataobject.api.ApiDO;
......@@ -46,6 +47,9 @@ import static com.luhu.computility.framework.common.util.servlet.ServletUtils.ge
import static com.luhu.computility.module.apihub.enums.ApiOrderStatus.PAID;
import static com.luhu.computility.module.apihub.enums.ErrorCodeConstants.*;
import static com.luhu.computility.module.trade.enums.order.TradeOrderInvoiceStatusEnum.INVOICED;
import static com.luhu.computility.module.trade.enums.order.TradeOrderInvoiceStatusEnum.INVOICING;
import static com.luhu.computility.module.trade.enums.order.TradeOrderStatusEnum.CANCELED;
import static com.luhu.computility.module.trade.enums.order.TradeOrderStatusEnum.UNPAID;
import static org.apache.commons.lang3.ObjectUtils.notEqual;
/**
......@@ -287,4 +291,19 @@ public class ApiOrderServiceImpl implements ApiOrderService {
}
@Override
public boolean updateRequestInvoice(AppApiOrderInvoiceReqVO reqVO) {
ApiOrderDO apiOrderDO = apiOrderMapper.selectById(reqVO.getId());
Integer status = apiOrderDO.getStatus();//订单状态
if(status.equals(UNPAID.getStatus())){
throw new ServiceException("未支付的订单不能申请开票");
} else if (status.equals(CANCELED.getStatus())) {
throw new ServiceException("已取消的订单不能申请开票!");
}
apiOrderDO.setInvoiceStatus(INVOICING.getStatus());
apiOrderMapper.updateById(apiOrderDO);
return true;
}
}
\ No newline at end of file
......@@ -17,8 +17,16 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.annotation.security.PermitAll;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import static com.luhu.computility.framework.common.pojo.CommonResult.success;
@Tag(name = "用户 App - 文件存储")
......@@ -60,4 +68,35 @@ public class AppFileController {
return success(fileService.createFile(createReqVO));
}
@GetMapping("/preview")
@Operation(summary = "PDF 文件预览")
@PermitAll
public void previewPdf(HttpServletResponse response, String url) throws IOException {
if (url == null || url.isEmpty()) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return;
}
// 设置响应头(浏览器内嵌预览)
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=\"" + URLEncoder.encode("preview.pdf", StandardCharsets.UTF_8.name()) + "\"");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
// 用 HttpURLConnection 读取远程 PDF 流
try (InputStream inputStream = new URL(url).openStream();
OutputStream os = response.getOutputStream()) {
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.flush();
} catch (IOException e) {
response.setStatus(HttpServletResponse.SC_BAD_GATEWAY); // 502,云端文件无法访问
}
}
}
......@@ -279,6 +279,7 @@ computility:
ignore-urls:
- /jmreport/* # 积木报表,无法携带租户编号
- /admin-api/infra/file/preview
- /app-api/infra/file/preview
- /open-api/external/**
ignore-visit-urls:
- /admin-api/system/user/profile/**
......
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