订单客户状态查询接口
This commit is contained in:
+59
@@ -0,0 +1,59 @@
|
||||
package com.ruoyi.web.controller.api;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestHeader;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import com.ruoyi.common.annotation.Anonymous;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.framework.config.properties.TmsApiProperties;
|
||||
import com.ruoyi.price.domain.vo.TmsOrderBillStatusResult;
|
||||
import com.ruoyi.price.service.IPrcOrderBillService;
|
||||
|
||||
/**
|
||||
* TMS 订单客户状态查询接口。
|
||||
*
|
||||
* <p>该接口不要求登录 Token,但必须携带 X-Api-Code。
|
||||
* identifier 会按订单号、运单号、转单号进行精确匹配。</p>
|
||||
*/
|
||||
@Anonymous
|
||||
@RestController
|
||||
@RequestMapping("/api/tms/order-bill")
|
||||
public class TmsOrderBillStatusController extends BaseController {
|
||||
private static final String HEADER_API_CODE = "X-Api-Code";
|
||||
|
||||
@Autowired
|
||||
private IPrcOrderBillService prcOrderBillService;
|
||||
|
||||
@Autowired
|
||||
private TmsApiProperties tmsApiProperties;
|
||||
|
||||
/**
|
||||
* 查询订单对应客户是否正常、额度是否欠费。
|
||||
*
|
||||
* <p>接口只返回查询事实和状态字段,不判断上游是否继续处理。</p>
|
||||
*/
|
||||
@GetMapping("/status")
|
||||
public AjaxResult status(
|
||||
@RequestHeader(value = HEADER_API_CODE, required = false) String headerApiCode,
|
||||
@RequestParam(value = "identifier", required = false) String identifier) {
|
||||
assertApiCode(headerApiCode);
|
||||
TmsOrderBillStatusResult result = prcOrderBillService.queryTmsOrderBillStatus(identifier);
|
||||
return success(result);
|
||||
}
|
||||
|
||||
private void assertApiCode(String headerApiCode) {
|
||||
String expected = tmsApiProperties.getApiCode();
|
||||
if (StringUtils.isEmpty(expected)) {
|
||||
throw new ServiceException("API_CODE_NOT_CONFIGURED: bms.tms.api-code is empty");
|
||||
}
|
||||
if (StringUtils.isEmpty(headerApiCode) || !expected.equals(headerApiCode.trim())) {
|
||||
throw new ServiceException("API_CODE_INVALID: missing or invalid X-Api-Code");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user