English
Groovy Code Examples
About 446 wordsAbout 1 min
2026-01-09
Per-order generation; rebate by master object
// Get master object data
Map masterData = master["containerDocument"] as Map
// Get account ID, other fields refer to corresponding object
String accountId = masterData["account_id"] as String
log.info("account_id:"+accountId)
// Get rebate policy name, other fields refer to rebate policy object
Map rebatePolicyDataMap = rebateMaster["containerDocument"] as Map
String rebatePolicyName = rebatePolicyDataMap["name"] as String
log.info("rebatePolicyName:"+rebatePolicyName)
// Get rebate rule name, other fields refer to rebate rule object
List rebatePolicyRuleList = rebateDetail["RebatePolicyRuleObj"] as List
rebatePolicyRuleList.each{item ->
Map detailDataMap = item as Map
Map detailData = detailDataMap["containerDocument"] as Map
String rebatePolicyRuleName = detailData["name"] as String
log.info("rebatePolicyRuleName:"+rebatePolicyRuleName)
}
// Return value explanation:
// Fixed key: master
// source: original calculation value
// result: calculated result value
// Example: if rebate amount is 3% of order amount, order amount is source value. Order amount * 0.3 is result value
Map resultData = ["source": 1000,"result": 20000]
Map result = ["master": resultData]
return result
-- Per-order generation; rebate by detail object
// Get master object data
Map masterData = master["containerDocument"] as Map
// Get account ID, other fields refer to corresponding object
String accountId = masterData["account_id"] as String
log.info("account_id:"+accountId)
// Get detail object List
List detailList = detail["SalesOrderProductObj"] as List
//
Map detailResult = [:]
// Loop through detail objects
detailList.each{item ->
Map detailDataMap = item as Map
// Get detail object data
Map detailData = detailDataMap["containerDocument"] as Map
// Get product ID, other fields refer to corresponding object
String productId = detailData["product_id"] as String
log.info("product_id:"+productId)
String salesOrderProductId = detailData["_id"] as String
// source: original calculation value, result: calculated result value
Map resultDataMap = ["source":11000,"result":2000]
detailResult.put(salesOrderProductId,resultDataMap)
}
// Get rebate policy name, other fields refer to rebate policy object
Map rebatePolicyDataMap = rebateMaster["containerDocument"] as Map
String rebatePolicyName = rebatePolicyDataMap["name"] as String
log.info("rebatePolicyName:"+rebatePolicyName)
// Get rebate rule name, other fields refer to rebate rule object
List rebatePolicyRuleList = rebateDetail["RebatePolicyRuleObj"] as List
rebatePolicyRuleList.each{item ->
Map detailDataMap = item as Map
Map detailData = detailDataMap["containerDocument"] as Map
String rebatePolicyRuleName = detailData["name"] as String
log.info("rebatePolicyRuleName:"+rebatePolicyRuleName)
}
Map result = ["detail":detailResult]
return result
-- Historical generation
// Get account ID
Fx.log.info(accountId)
// Get rebate policy name, other fields refer to rebate policy object
Map rebatePolicyDataMap = rebateMaster["containerDocument"] as Map
String rebatePolicyName = rebatePolicyDataMap["name"] as String
log.info("rebatePolicyName:"+rebatePolicyName)
// Get rebate rule name, other fields refer to rebate rule object
List rebatePolicyRuleList = rebateDetail["RebatePolicyRuleObj"] as List
rebatePolicyRuleList.each{item ->
Map detailDataMap = item as Map
Map detailData = detailDataMap["containerDocument"] as Map
String rebatePolicyRuleName = detailData["name"] as String
log.info("rebatePolicyRuleName:"+rebatePolicyRuleName)
}
// source -> original calculation value, result -> calculated result value
Map result = ["source":1000,"result": 2000]
return result