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.
 
 
livestock-trading-backend/data/magic-api/api/大屏数据/交易中心实时服务信息.ms

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
}