您的位置:首页 > 大数据 > 人工智能

grails框架中查询聚合函数,如条数,总额

2012-04-20 10:01 225 查看
def query=

{

//交易完毕时间 tradeDonedate

if(params.tradeDonedateStart){

gt("tradeDonedate", Date.parse("yyyy-MM-dd",params.tradeDonedateStart))

}

if(params.tradeDonedateEnd){

lt("tradeDonedate", Date.parse("yyyy-MM-dd",params.tradeDonedateEnd)+1)

}

//先以商户编号为准

if(params.batchBizid){

eq("batchBizid",params.batchBizid)

}else{

//如果没有输入商户编号,而输入的是商户名称

if(params.batchBizname){

def cmCustomer = CmCustomer.createCriteria().list{

eq("type","C")

like("name","%"+params.batchBizname+"%")

}

//使用in的时候,传递参数为一个结果集,而非一个逗号分割的字符串

if(cmCustomer.size()>0){

'in'("batchBizid",cmCustomer.customerNo)

}

}else{

}

}

if(params.tradeType&¶ms.tradeType!="-1"){

eq("tradeType",params.tradeType)

}

if(params.tradeCardname){

like("tradeCardname","%"+params.tradeCardname+"%")

}

if(params.tradeCardnum){

eq("tradeCardnum",params.tradeCardnum)

}

if(params.tradeAccountname!=null && params.tradeAccountname!=""){

def bankNames = findTradeAccountnames(params.tradeAccountname);

//println bankNames;

'in'("tradeAccountname",bankNames);

}

if(params.tradeAccounttype){

eq("tradeAccounttype",params.tradeAccounttype)

}

if(params.batchId){

eq("batch",TbAgentpayInfo.get(params.batchId))

}

if(params.id){

eq("id",params.id )

}

/*if(params.tradeFeestyle!="-1" && params.tradeFeestyle!=null){

if(params.tradeFeestyle=="T")

eq("tradeFeestyle",params.tradeFeestyle)

else

isNull("tradeFeestyle")

}*/

/*if(params.tradeRemark2!="" && params.tradeRemark2!=null){

like("tradeRemark2","%"+params.tradeRemark2+"%")

}*/

if(params.batchStatus&¶ms.batchStatus!="-1"){

"in"("tradeStatus",params.batchStatus)

}

order("id","desc")

}

def results = MyDomain.createCriteria().get {

and query

// eq('tradeType', 'payment')

projections {

rowCount()

sum('tradeAmount')

sum('tradeFee')

sum('tradeAccamount')

}

}

这里要注意一下,这个results 返回的是一个数组,而非是对象的list,如果要取值的话,比如记录条数,则为results[0].
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: