from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($startTime){ $table->andWhere('createdAt>=:startTime AND createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } if($payMode){ $table->andWhere(['in','payMode',$payMode]); } $data=$table->sum('money')?:0; return $data; } //获取外卖订单详细金额 public static function getOrderInfoMoney($startTime,$endTime,$uniacid,$storeId){ $table=(new \yii\db\Query()) ->select(['ifnull(b.deliveryMoney,0) as deliveryMoney','ifnull(b.boxMoney,0) as boxMoney','ifnull(b.money-(b.boxMoney+b.deliveryMoney),0) as goodsMoney']) ->from('{{%ybwm_bill}} as a') ->leftJoin('{{%ybwm_takeout_order}} b','a.orderId=b.id AND a.origin=1') ->where('a.uniacid=:uniacid AND (a.refundAt=0 || a.refundAt is null)',[':uniacid'=>$uniacid]); if($startTime){ $table->andWhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('a.storeId=:storeId',[':storeId'=>$storeId]); } $data=$table->one(); return $data; } //获取店内订单详细金额 public static function getInStoreOrderInfoMoney($startTime,$endTime,$uniacid,$storeId){ $table=(new \yii\db\Query()) ->select(['ifnull(b.tablewareMoney,0) as boxMoney','ifnull(b.money-b.tablewareMoney,0) as goodsMoney']) ->from('{{%ybwm_bill}} as a') ->leftJoin('{{%ybwm_instore_order}} b','a.orderId=b.id AND a.origin in(6,7)') ->where('a.uniacid=:uniacid AND (a.refundAt=0 || a.refundAt is null)',[':uniacid'=>$uniacid]); if($startTime){ $table->andWhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('a.storeId=:storeId',[':storeId'=>$storeId]); } $data=$table->one(); return $data; } //获取补贴 public static function getSubsidy($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table=(new \yii\db\Query()) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($startTime){ $table->andWhere('createdAt>=:startTime AND createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $data=$table->sum('subsidy')?:0; return $data; } //获取服务费 public static function getService($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table=(new \yii\db\Query()) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($startTime){ $table->andWhere('createdAt>=:startTime AND createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $data=$table->sum('money-storeActualMoney+subsidy')?:0; return $data; } //获取预计收入 public static function getIncome($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table=(new \yii\db\Query()) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($startTime){ $table->andWhere('createdAt>=:startTime AND createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $data=$table->sum('storeActualMoney')?:0; return $data; } //获取有效订单 public static function getEffective($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table=(new \yii\db\Query()) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($startTime){ $table->andWhere('createdAt>=:startTime AND createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $data=$table->count()?:0; return $data; } //获取无效订单 public static function getInvalidOrder($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table=(new \yii\db\Query()) ->select('count(id)count,sum(refundMoney)money') ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt>0 || refundAt is not null)',[':uniacid'=>$uniacid]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($startTime){ $table->andWhere('createdAt>=:startTime AND createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $data=$table->one(); return $data; } //获取客单价 public static function getUnitPrice($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $money=self::getTurnover($startTime,$endTime,$uniacid,$storeId,$origin); $num=self::getEffective($startTime,$endTime,$uniacid,$storeId,$origin); return bcdiv($money,$num,2); } //获取营业额统计 public static function getTurnoverArr($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table= (new \yii\db\Query()) ->select(new Expression("from_unixtime(createdAt,'%Y-%m-%d') as hours,sum(money)money")) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]) ->andWhere('createdAt>=:starTime AND createdAt<=:endTime',[':starTime'=>$startTime,':endTime'=>$endTime]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $moneyArr=$table->groupBy(new Expression("from_unixtime(createdAt,'%Y-%m-%d')"))->all(); return dataByTime($moneyArr,date("Y-m-d",$endTime)); } //获取预计收入统计 public static function getIncomeArr($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table= (new \yii\db\Query()) ->select(new Expression("from_unixtime(createdAt,'%Y-%m-%d') as hours,sum(storeActualMoney)money")) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]) ->andWhere('createdAt>=:starTime AND createdAt<=:endTime',[':starTime'=>$startTime,':endTime'=>$endTime]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $moneyArr=$table->groupBy(new Expression("from_unixtime(createdAt,'%Y-%m-%d')"))->all(); return dataByTime($moneyArr,date("Y-m-d",$endTime)); } //获取有效订单统计 public static function getEffectiveArr($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table= (new \yii\db\Query()) ->select(new Expression("from_unixtime(createdAt,'%Y-%m-%d') as hours,count(id)money")) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]) ->andWhere('createdAt>=:starTime AND createdAt<=:endTime',[':starTime'=>$startTime,':endTime'=>$endTime]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $moneyArr=$table->groupBy(new Expression("from_unixtime(createdAt,'%Y-%m-%d')"))->all(); return dataByTime($moneyArr,date("Y-m-d",$endTime)); } //获取无效订单统计 public static function getInvalidOrderArr($startTime,$endTime,$uniacid,$storeId,$origin=[1]){ $table= (new \yii\db\Query()) ->select(new Expression("from_unixtime(createdAt,'%Y-%m-%d') as hours,count(id)money")) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt>0 || refundAt is not null)',[':uniacid'=>$uniacid]) ->andWhere('createdAt>=:starTime AND createdAt<=:endTime',[':starTime'=>$startTime,':endTime'=>$endTime]); if($origin){ $table->andWhere(['in','origin',$origin]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $moneyArr=$table->groupBy(new Expression("from_unixtime(createdAt,'%Y-%m-%d')"))->all(); return dataByTime($moneyArr,date("Y-m-d",$endTime)); } //获取有效订单渠道 public static function getEffectiveChannel($startTime,$endTime,$uniacid,$storeId,$origin=0,$payMode=0,$deliveryMode=0,$money=2){ $table=(new \yii\db\Query()) ->from('{{%ybwm_bill}} a') ->leftJoin('{{%ybwm_takeout_order}} b','a.orderId=b.id') ->where('a.uniacid=:uniacid AND (a.refundAt=0 || a.refundAt is null) AND a.origin=1',[':uniacid'=>$uniacid]); if($startTime){ $table->andWhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('a.storeId=:storeId',[':storeId'=>$storeId]); } if($origin){ //订单来源(1.微信小程序3支付宝) $table->andWhere('b.origin=:origin',[':origin'=>$origin]); } if($payMode){ //支付方式 $table->andWhere('b.payMode=:payMode',[':payMode'=>$payMode]); } if($deliveryMode==1){ //配送方式(1.外卖10自提) $table->andWhere('b.deliveryMode!=:deliveryMode',[':deliveryMode'=>10]); } if($deliveryMode==2){ //配送方式(1.外卖10自提) $table->andWhere('b.deliveryMode=:deliveryMode',[':deliveryMode'=>10]); } if($money==1){ $data=$table->sum('a.money')?:0; }else{ $data=$table->count()?:0; } return $data; } //获取有效订单渠道(店内) public static function getEffectiveInStoreChannel($startTime,$endTime,$uniacid,$storeId,$item=0,$origin=0,$payMode=0){ $table=(new \yii\db\Query()) ->from('{{%ybwm_bill}} a') ->leftJoin('{{%ybwm_instore_order}} b','a.orderId=b.id') ->where('a.uniacid=:uniacid AND (a.refundAt=0 || a.refundAt is null) AND a.origin in (6,7)',[':uniacid'=>$uniacid]); if($startTime){ $table->andWhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($storeId){ $table->andWhere('a.storeId=:storeId',[':storeId'=>$storeId]); } if($item){ //6快餐7店内 $table->andWhere('a.origin=:origin',[':origin'=>$item]); } if($origin){ //订单来源(1.微信小程序3支付宝5收银台) $table->andWhere('b.origin=:origin',[':origin'=>$origin]); } if($payMode){ //支付方式1微信支付2支付宝支付5.余额支付6线下结账 大于6 自有 if($payMode>6){ $table->andWhere('a.payMode>:payMode',[':payMode'=>$payMode]); }else{ $table->andWhere('a.payMode=:payMode',[':payMode'=>$payMode]); } } $data=$table->count()?:0; return $data; } //获取所有统计 public static function getAllArr($timeArr,$uniacid,$storeId,$type=1){ $arr=[]; $timeArr=array_reverse($timeArr); for($i=0;$iselect(['ifnull(sum(if(b.deliveryMode=10,1,0)),0) as selfCount','ifnull(sum(if(b.deliveryMode!=10,1,0)),0) as takeOutCount','ifnull(sum(b.originMoney+b.boxMoney+b.deliveryMoney+b.deliveryPreferential),0) as originMoney','ifnull(sum((b.originMoney+b.boxMoney+b.deliveryMoney+b.deliveryPreferential)-b.money),0) as discountMoney','count(a.id) as count', 'ifnull(sum(If(a.type=2,1,0)),0) as completeCount', 'ifnull(count(distinct a.userId),0) as people', 'ifnull(sum(a.money),0) as money', 'ifnull(sum(a.storeActualMoney),0) as storeActualMoney', 'ifnull(sum(a.subsidy),0) as subsidy', 'ifnull(sum(a.money-a.storeActualMoney+a.subsidy),0) as serviceMoney', 'ifnull(sum(a.storeDeliveryMoney),0) as storeDeliveryMoney','ifnull(sum(a.storeBoxMoney),0) as storeBoxMoney']) ->from('{{%ybwm_bill}} as a') ->leftJoin('{{%ybwm_takeout_order}} b','a.outTradeNo=b.outTradeNo') ->where('a.uniacid=:uniacid AND (a.refundAt=0 || a.refundAt is null)', [':uniacid' => $uniacid]); } if($type==2) { $origin=[6,7]; $table = (new \yii\db\Query()) ->select(['sum(if(b.orderMode=1,1,0)) as inStoreCount','sum(if(b.orderMode=2,1,0)) as fastCount','ifnull(sum(b.originMoney+b.tablewareMoney),0) as originMoney','ifnull(sum((b.originMoney+b.tablewareMoney)-b.money),0) as discountMoney','count(a.id) as count', 'ifnull(sum(If(a.type=2,1,0)),0) as completeCount', 'ifnull(count(distinct a.userId),0) as people', 'ifnull(sum(a.money),0) as money', 'ifnull(sum(a.storeActualMoney),0) as storeActualMoney', 'ifnull(sum(a.subsidy),0) as subsidy', 'ifnull(sum(a.money-a.storeActualMoney+a.subsidy),0) as serviceMoney', 'ifnull(sum(a.storeDeliveryMoney),0) as storeDeliveryMoney']) ->from('{{%ybwm_bill}} as a') ->leftJoin('{{%ybwm_instore_order}} b','a.outTradeNo=b.outTradeNo') ->where('a.uniacid=:uniacid AND (a.refundAt=0 || a.refundAt is null)', [':uniacid' => $uniacid]); } if($storeId){ $table->andWhere('a.storeId=:storeId',[':storeId'=>$storeId]); } if($startTime){ $table->andWhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($origin){ $table->andWhere(['in','a.origin',$origin]); } $data=$table->one(); $data['refundMoney']=self::getInvalidOrder($startTime,$endTime,$uniacid,$storeId,$origin)['money']?:0; $data['time']=$timeArr[$i]; $arr[]=$data; } return $arr; } //获取支付方式统计 public static function getPayModeArr($startTime,$endTime,$uniacid,$storeId,$origin=[1],$payMode=[1]){ $table= (new \yii\db\Query()) ->select(new Expression("from_unixtime(createdAt,'%Y-%m-%d') as hours,sum(money)money")) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]) ->andWhere('createdAt>=:starTime AND createdAt<=:endTime',[':starTime'=>$startTime,':endTime'=>$endTime]); if($payMode){ $table->andWhere(['in','payMode',$payMode]); } if($origin){ $table->andWhere(['in','origin',$origin]); } if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } $moneyArr=$table->groupBy(new Expression("from_unixtime(createdAt,'%Y-%m-%d')"))->all(); return dataByTime($moneyArr,date("Y-m-d",$endTime)); } //获取订单所有统计(店内) public static function getOrderAllArr($timeArr,$uniacid,$storeId,$origin=[1]){ $arr=[]; $timeArr=array_reverse($timeArr); for($i=0;$iselect(['ifnull(sum(If(origin=7,1,0)),0) as inStoreCount','ifnull(sum(If(origin=6,1,0)),0) as fastCount', 'ifnull(sum(money),0) as money', 'count(id) as count','ifnull(sum(if(type=2,1,0)),0) as completeCount','ifnull(sum(If(payMode=1,money,0)),0) as weChatPayMoney','ifnull(sum(If(payMode=1,1,0)),0) as weChatPayCount', 'ifnull(sum(If(payMode=2,money,0)),0) as aliPayMoney','ifnull(sum(If(payMode=2,1,0)),0) as aliCount', 'ifnull(sum(If(payMode=5,money,0)),0) as balancePayMoney','ifnull(sum(If(payMode=5,1,0)),0) as balancePayCount', 'ifnull(sum(If(payMode=6,money,0)),0) as cashMoney','ifnull(sum(If(payMode=6,1,0)),0) as cashCount', 'ifnull(sum(If(payMode in (7,8,9),money,0)),0) as haveMoney','ifnull(sum(If(payMode in (7,8,9),1,0)),0) as haveCount', 'ifnull(sum(If(payMode=10,money,0)),0) as onDeliveryMoney','ifnull(sum(If(payMode=10,1,0)),0) as onDeliveryCount']) ->from('{{%ybwm_bill}}') ->where('uniacid=:uniacid AND (refundAt=0 || refundAt is null)',[':uniacid'=>$uniacid]); if($storeId){ $table->andWhere('storeId=:storeId',[':storeId'=>$storeId]); } if($startTime){ $table->andWhere('createdAt>=:startTime AND createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } if($origin){ $table->andWhere(['in','origin',$origin]); } $data=$table->one(); $data['time']=$timeArr[$i]; $data['self']=self::getEffectiveChannel($startTime,$endTime,$uniacid,$storeId,0,0,2);//自提 $data['takeOutCount']=self::getEffectiveChannel($startTime,$endTime,$uniacid,$storeId,0,0,1);//自提 $arr[]=$data; } return $arr; } //数据----商品概况 public function getGoodArr($uniacid,$storeId,$type,$goodsType,$stratTime=null,$endTime=null){ $res=(new \yii\db\Query()) ->from('{{%ybwm_store}}') ->where(['id'=>$storeId]) ->one(); if($res['isMain']==1||$res['goodsModel']==3){ $table=(new \yii\db\Query()) ->from('{{%ybwm_core_goods}}') ->where(['uniacid'=>$uniacid,'storeId'=>$storeId,'goodsType'=>$goodsType,'deleteAt'=>0]); $data['allGoods']=(clone $table)->count(); $data['onGoods']=(clone $table)->andWhere(['display'=>1])->count(); $data['downGoods']=(clone $table)->andWhere(['display'=>2])->count(); }else{ $table=(new \yii\db\Query()) ->from('{{%ybwm_store_goods}} a') ->leftJoin('{{%ybwm_core_goods}} b','a.goodsId=b.id') ->where(['a.uniacid'=>$uniacid,'a.storeId'=>$storeId,'b.deleteAt'=>0,'b.goodsType'=>$goodsType]); $data['allGoods']=(clone $table)->count(); $data['onGoods']=(clone $table)->andWhere(['a.display'=>1])->count(); $data['downGoods']=(clone $table)->andWhere(['a.display'=>2])->count(); } if($goodsType==1){ $query=(new \yii\db\Query()) ->select('b.icon,b.name,a.money oldMoney,sum(a.num)num,(sum(a.num)*(a.money))money,d.name categoryName') ->from('{{%ybwm_order_goods}} as a') ->leftJoin('{{%ybwm_core_goods}} as b','a.goodsId=b.id') ->leftJoin('{{%ybwm_takeout_order}} as c','a.orderId=c.id') ->leftJoin('{{%ybwm_core_category}} as d','b.typePid=d.id') ->where("a.uniacid=$uniacid AND a.storeId=$storeId") ->andwhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',['startTime'=>$stratTime,'endTime'=>$endTime]) ->andWhere([">",'b.id',0]) ->andWhere(['in','c.state',[2,3,4,5,6,9]]) ->groupBy('a.goodsId'); $query->andWhere(['a.item'=>1]); }else{ $query=(new \yii\db\Query()) ->select('b.icon,b.name,a.money oldMoney,sum(a.num)num,(sum(a.num)*(a.money))money,d.name categoryName') ->from('{{%ybwm_order_goods}} as a') ->leftJoin('{{%ybwm_core_goods}} as b','a.goodsId=b.id') ->leftJoin('{{%ybwm_instore_order}} as c','a.orderId=c.id') ->leftJoin('{{%ybwm_core_category}} as d','b.typePid=d.id') ->where("a.uniacid=$uniacid AND a.storeId=$storeId") ->andwhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',['startTime'=>$stratTime,'endTime'=>$endTime]) //->andWhere(['in','c.state',[2,3]]) ->andWhere(['or',('a.item=2 and c.state in (3,4)'),('a.item=3 and c.state in (2,3,4,6,8)')]) ->andWhere([">",'b.id',0]) ->groupBy('a.goodsId'); //$query->andWhere(['in','a.item',[2,3]]); } if($type==1){ $query->orderBy('num desc'); } if($type==2){ $query->orderBy('money desc'); } //var_dump(ddSql($query));die; $data['payTop']=$query->limit(100)->all(); return $data; } //当面付概况 public function getCashierData($uniacid,$storeId,$stratTime=null,$endTime=null){ $query=(new \yii\db\Query()) ->from('{{%ybwm_cashier_order}}')->where(['uniacid'=>$uniacid,'storeId'=>$storeId,'state'=>2]); //收款 $data['money']=(clone $query)->andWhere(['>=','createdAt',strtotime(date("Y-m-d"))])->andWhere(['<=','createdAt',strtotime(date("Y-m-d 23:59:59"))])->sum('money'); $data['count']=(clone $query)->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime])->count(); //预计收入 $data['storeActualMoney']=(new \yii\db\Query()) ->from('{{%ybwm_cashier_order}} a') ->leftJoin('{{%ybwm_bill}} b','a.outTradeNo=b.outTradeNo') ->where(['a.uniacid'=>$uniacid,'a.storeId'=>$storeId]) ->andWhere(['>=','a.createdAt',$stratTime]) ->andWhere(['<=','a.createdAt',$endTime]) ->sum('storeActualMoney'); ; //总收款 $data['sumMoney']=(clone $query)->sum('money'); $data['sumCount']=(clone $query)->count(); $data['payUserNum']=(clone $query)->groupBy('userId')->count(); $data['estimate']=self::getIncome($stratTime,$endTime,$uniacid,$storeId,[5]);//预计收入 $data['serviceMoney']=self::getService($stratTime,$endTime,$uniacid,$storeId,[5]);//服务费 //微信小程序 $data['wxCount']=(clone $query)->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime])->andWhere(['origin'=>1])->count()?:0; //支付宝小程序 $data['aliCount']=(clone $query)->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime])->andWhere(['origin'=>3])->count()?:0; //微信小程序 $data['wxMoney']=(clone $query)->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime])->andWhere(['payMode'=>1])->sum('money')?:0; //支付宝小程序 $data['aliMoney']=(clone $query)->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime])->andWhere(['payMode'=>2])->sum('money')?:0; //余额程序 $data['balanceMoney']=(clone $query)->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime])->andWhere(['payMode'=>5])->sum('money')?:0; $moneyChar= (new \yii\db\Query()) ->select(new Expression("from_unixtime(createdAt,'%Y-%m-%d') as hours,sum(money)money")) ->from('{{%ybwm_cashier_order}}') ->where(['uniacid'=>$uniacid,'storeId'=>$storeId,'state'=>2]) ->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime]) ->groupBy(new Expression("from_unixtime(createdAt,'%Y-%m-%d')")) ->all(); $data['moneyChar']=dataByTime($moneyChar,date('Y-m-d H:i:s',$endTime)); $countChar= (new \yii\db\Query()) ->select(new Expression("from_unixtime(createdAt,'%Y-%m-%d') as hours,count(*)money")) ->from('{{%ybwm_cashier_order}}') ->where(['uniacid'=>$uniacid,'storeId'=>$storeId,'state'=>2]) ->andWhere(['>=','createdAt',$stratTime])->andWhere(['<=','createdAt',$endTime]) ->groupBy(new Expression("from_unixtime(createdAt,'%Y-%m-%d')")) ->all(); $data['countChar']=dataByTime($countChar,date('Y-m-d H:i:s',$endTime)); return $data; } }