You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.3 KiB
78 lines
2.3 KiB
{
|
|
"properties" : { },
|
|
"id" : "6f7a8490b1c2d3e4f5a678904ab",
|
|
"script" : null,
|
|
"groupId" : "f8e3d2c1b0a94e5f8a7b6c5d4e3f2a1",
|
|
"name" : "交易中心实时服务信息",
|
|
"createTime" : 1780877300000,
|
|
"updateTime" : null,
|
|
"lock" : null,
|
|
"createBy" : "admin",
|
|
"updateBy" : "admin",
|
|
"path" : "/exchange-service-info",
|
|
"method" : "GET",
|
|
"parameters" : [ ],
|
|
"options" : [ ],
|
|
"requestBody" : "",
|
|
"headers" : [ ],
|
|
"paths" : [ ],
|
|
"responseBody" : null,
|
|
"description" : "交易中心实时服务信息:牦牛供应/待售/已售、剩余车位、进场车辆、供应商数量(只读)。牦牛=yak_trade_ear_tag_inventory;车位=yak_car_parking_zone;车辆=yak_car_record+yak_trade_entry_record;供应商=yak_sn_customer(SELLER)。",
|
|
"requestBodyDefinition" : null,
|
|
"responseBodyDefinition" : null
|
|
}
|
|
================================
|
|
// 只读查询,不修改任何数据
|
|
|
|
var sql = """
|
|
SELECT
|
|
(SELECT COUNT(*)
|
|
FROM yak_trade_ear_tag_inventory) AS total_supply,
|
|
(SELECT COUNT(*)
|
|
FROM yak_trade_ear_tag_inventory
|
|
WHERE status IN ('AVAILABLE', 'LOCKED')) AS for_sale_yaks,
|
|
(SELECT COUNT(*)
|
|
FROM yak_trade_ear_tag_inventory
|
|
WHERE status = 'SOLD') AS sold_yaks,
|
|
(SELECT COALESCE(SUM(total_capacity - current_count), 0)
|
|
FROM yak_car_parking_zone
|
|
WHERE status = 'NORMAL') AS remaining_parking,
|
|
(SELECT COUNT(*)
|
|
FROM (
|
|
SELECT plate_no AS vehicle_no
|
|
FROM yak_car_record
|
|
WHERE del_flag = '0'
|
|
AND entry_time >= CURRENT_DATE
|
|
UNION
|
|
SELECT vehicle_no
|
|
FROM yak_trade_entry_record
|
|
WHERE entered_at >= CURRENT_DATE
|
|
) v) AS entering_vehicles,
|
|
(SELECT COUNT(*)
|
|
FROM yak_sn_customer
|
|
WHERE del_flag = '0'
|
|
AND customer_type = 'SELLER') AS supplier_count
|
|
"""
|
|
|
|
var rows = db.select(sql)
|
|
var row = rows && rows.length > 0 ? rows[0] : null
|
|
|
|
if (!row) {
|
|
return {
|
|
totalSupply: 0,
|
|
forSaleYaks: 0,
|
|
soldYaks: 0,
|
|
remainingParking: 0,
|
|
enteringVehicles: 0,
|
|
supplierCount: 0
|
|
}
|
|
}
|
|
|
|
return {
|
|
totalSupply: row.totalSupply ? row.totalSupply : 0,
|
|
forSaleYaks: row.forSaleYaks ? row.forSaleYaks : 0,
|
|
soldYaks: row.soldYaks ? row.soldYaks : 0,
|
|
remainingParking: row.remainingParking ? row.remainingParking : 0,
|
|
enteringVehicles: row.enteringVehicles ? row.enteringVehicles : 0,
|
|
supplierCount: row.supplierCount ? row.supplierCount : 0
|
|
}
|
|
|