shop_id=$this->storeId?:Store::getMainStore($this->wqData['uniacid'])['id']; $this->shop_id=$this->shop_id?:0; } //收银统计 public function actionOrderStatistics(){ $uniacid=$this->wqData['uniacid']; $startTime=strtotime(date("Y-m-d")." 00:00:00"); $endTime=strtotime(date("Y-m-d")." 23:59:59"); $res=(new \yii\db\Query()) ->select('count(id) as count,sum(money) as money') ->from('{{%ybwm_user_vip_order}}') ->where('uniacid=:uniacid AND state=2',['uniacid'=>$uniacid])->one(); $data['count']=$res['count']?:0; $data['money']=$res['money']?:0; $todayRes=(new \yii\db\Query()) ->select('count(id) as count,sum(money) as money') ->from('{{%ybwm_user_vip_order}}') ->where('uniacid=:uniacid AND state=2 AND payAt>=:startTime AND payAt<=:endTime', [':uniacid'=>$uniacid,':startTime'=>$startTime,':endTime'=>$endTime])->one(); $data['todayCount']=$todayRes['count']?:0; $data['todayMoney']=$todayRes['money']?:0; return $this->result(1,'成功',$data); } //购买记录 public function actionOrderList(){ $result=axios_request(); $timeType=$result['timeType']?:1; $keyword=$result['keyword']; $startTime=$result['startTime']; $endTime=$result['endTime']; $page=$result['page']?:1; $size=$result['size']?:10; $orderBy='id desc'; $table=(new \yii\db\Query()) ->select(['a.id','a.outTradeNo','a.money','a.payMode','from_unixtime(a.endTime)endTime','from_unixtime(a.payAt)payAt','a.state','c.userName','c.portrait','a.userId']) ->from('{{%ybwm_user_vip_order}} as a') ->join('LEFT JOIN', '{{%ybwm_member}} as c', 'c.id = a.userId') ->where('a.uniacid=:uniacid AND a.state=2',[':uniacid'=>$this->wqData['uniacid']]); if($startTime){ $startTime=strtotime($startTime." 00:00:00"); $endTime=strtotime($endTime." 23:59:59"); }else{ if($timeType==2){ $startTime=strtotime(date("Y-m-d")." 00:00:00 -1day"); $endTime=strtotime(date("Y-m-d")." 23:59:59 -1day"); }elseif($timeType==3){ $startTime=strtotime(date("Y-m-d")." 00:00:00 -6day"); $endTime=strtotime(date("Y-m-d")." 23:59:59"); }else{ $startTime=strtotime(date("Y-m-d")." 00:00:00"); $endTime=strtotime(date("Y-m-d")." 23:59:59"); } } if($keyword){ $table->andWhere(['like','a.outTradeNo',$keyword]); } if($startTime){ $table->andWhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]); } // $count=$table->count(); $table->offset(($page - 1) * $size)->limit($size)->orderby($orderBy); $res=$table->all(); return $this->result(1,'成功',$res,$count); } //查看优惠券列表 public function actionCouponList(){ $result=axios_request(); $storeId=0; $page=$result['page']; $num=($page-1)*10; $limit=10; $table=(new \yii\db\Query()) ->from('{{%ybwm_coupon}}') ->select('id,name,type,from_unixtime(createdAt) createdAt,display,from_unixtime(startTime) startTime,from_unixtime(endTime) endTime,useType,money,fullMoney,discount,isFull,stock') ->where(['isVip'=>1,'deleteAt'=>0,'uniacid'=>$this->wqData['uniacid'],'storeId'=>$storeId]); if($page){ $table->offset($num) ->limit($limit); } $list=$table ->orderBy('id desc') ->all(); $count=$table->count(); return $this->result(1, '成功',$list,$count); } //保存优惠券 public function actionSaveCoupon(){ $result=axios_request(); $request = Yii::$app->request; if($request->isGet){ $info=(new \yii\db\Query()) ->from('{{%ybwm_coupon}}') ->where('id=:id',[':id'=>$result['id']])->one(); $category=(new \yii\db\Query()) ->select('id,name') ->from('{{%ybwm_core_category}}') ->where(['display'=>1,'storeId'=>$this->shop_id,'item'=>6,'deleteAt'=>0,'pid'=>0,'uniacid'=>$this->wqData['uniacid']]) ->orderBy('sort asc,id desc') ->all(); $info['category']=$category; $info['useType']=json_decode($info['useType'],true)?:[]; $storeArr=json_decode($info['storeArr'],true)?:[]; $info['storeArr']=$storeArr; $info['storeInfo']=(new \yii\db\Query()) ->select('id,name,address,storeTel,icon') ->from('{{%ybwm_store}}') ->where(['in','id',$storeArr])->all(); $goodsArr=json_decode($info['goodsArr'],true)?:[]; $info['goodsArr']=[]; if($goodsArr AND ($info['goodsType']==3 || $info['goodsType']==2) ){ for($i=0;$iselect('id,name,stock,icon') ->from('{{%ybwm_core_goods}}') ->where('id=:id',[':id'=>$goodsArr[$i]])->one(); $info['goodsArr'][]=array( 'id'=>$goods['id'], 'name'=>$goods['name'], 'stock'=>$goods['stock'], 'icon'=>$goods['icon'], ); } }else{ $info['goodsArr']= $goodsArr; } return $this->result(1, '成功',$info); } if(!$result['name']){ return $this->result(2,'优惠券名称不能为空!'); } if(!$result['details']){ return $this->result(2,'优惠券详情不能为空!'); } $data['name']=$result['name']; $data['type']=$result['type']; $data['fullMoney']=$result['fullMoney']; if($result['isFull']==1){ $data['fullMoney']=0; } $data['isFull']=$result['isFull']; if($result['type']==1){//1.优惠券2.折扣券 $data['money']=$result['money']; }else{ $data['discount']=$result['discount']; } $data['timeType']=$result['timeType']; if($result['timeType']==1){//1.日期范围2领取后多少天 $data['useStartTime']=strtotime($result['useStartTime']); $data['useEndTime']=strtotime($result['useEndTime']); }else{ $data['day']=$result['day']; } $data['useType']=json_encode($result['useType']);//使用类型1.外卖2自提 $data['details']=$result['details']; $data['storeType']=$result['storeType']; $data['storeArr']=json_encode($result['storeArr']); $data['goodsType']=$result['goodsType']; $data['goodsArr']=json_encode($result['goodsArr']); $data['storeId']=0; $data['color']=$result['color']; $data['memberType']=1; $data['isNextDay']=$result['isNextDay']; $data['shareImg']=$result['shareImg']; $data['shareTitle']=$result['shareTitle']; $data['display']=$result['display']; $data['subsidy']=$result['subsidy']?:0;//平台补贴 $data['isVip']=1; if($result['id']){ $data['changeAt']=time(); $re = Yii::$app->db->createCommand()->update('{{%ybwm_coupon}}', $data, 'id=:id', ['id' =>$result['id']])->execute(); }else{ $data['uniacid']=$this->wqData['uniacid']; $data['createdAt']=time(); $re=Yii::$app->db->createCommand()->insert('{{%ybwm_coupon}}', $data)->execute(); } if($re){ return $this->result(1,'成功'); }else{ return $this->result(2,'网络异常,请稍后再试'); } } //修改优惠券 public function actionModifyCoupon(){ $post=axios_request(); if($post['type']==1){ //显示隐藏 $data['display']=$post['display']; } if($post['type']==2){ //删除 $data['deleteAt']=time(); } $data['changeAt']=time(); $res = Yii::$app->db->createCommand()->update('{{%ybwm_coupon}}', $data, 'id=:id', ['id' =>$post['id']])->execute(); if($res){ return $this->result(1,'成功'); }else{ return $this->result(2,'网络异常,请稍后再试'); } } //收费会员卡统计 public function actionVipStatistics(){ $uniacid=$this->wqData['uniacid']; $request=axios_request(); $requestStartTime=strtotime($request['startTime']." 00:00:00"); $requestEndTime=strtotime($request['endTime']." 23:59:59"); $startTime=strtotime(date("Y-m-d")." 00:00:00"); $endTime=strtotime(date("Y-m-d")." 23:59:59"); $yesStartTime=strtotime(date("Y-m-d")." 00:00:00 -1day"); $yesEndTime=strtotime(date("Y-m-d")." 23:59:59 -1day"); $vipOrder= (new \yii\db\Query()) ->select('count(id) as count,sum(money) as money') ->from('{{%ybwm_user_vip_order}}') ->where('uniacid=:uniacid AND state=2',[':uniacid'=>$uniacid]); $all=$vipOrder->one(); $today=(clone $vipOrder)->andWhere('payAt>=:startTime AND payAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime])->one(); $yesterday=(clone $vipOrder)->andWhere('payAt>=:startTime AND payAt<=:endTime',[':startTime'=>$yesStartTime,':endTime'=>$yesEndTime])->one(); $data['allNum']=$all['count']?:0;//总数量 $data['allMoney']=$all['money']?:0.00;//总金额 $data['todayNum']=$today['count']?:0;//今天数量 $data['todayMoney']=$today['money']?:0.00;//今天金额 $data['yesterdayNum']=$yesterday['count']?:0;//昨天数量 $data['yesterdayMoney']=$yesterday['money']?:0.00;//昨天金额 $member=(new \yii\db\Query()) ->select('count(*) as count') ->from('{{%ybwm_member}}') ->where('uniacid=:uniacid',[':uniacid'=>$uniacid]); $data['openNum']=(clone $member)->andWhere('vipEndTime>'.time())->one()['count']?:0; $data['endNum']=(clone $member)->andWhere('vipEndTime>0 AND vipEndTime<'.time())->one()['count']?:0; $beforeStartTime=strtotime(date('Y-m-d 00:00:00',$endTime-14*24*60*60)); $moneyArr= (new \yii\db\Query()) ->select(new Expression("from_unixtime(payAt,'%Y-%m-%d') as hours,sum(money)money")) ->from('{{%ybwm_user_vip_order}}') ->where(['uniacid'=>$uniacid]) ->andWhere('payAt>=:starTime AND payAt<=:endTime',[':starTime'=>$beforeStartTime,':endTime'=>$endTime]) ->groupBy(new Expression("from_unixtime(payAt,'%Y-%m-%d')")) ->all(); $data['moneyArr']=dataByTime($moneyArr,date("Y-m-d",$endTime)); $numArr= (new \yii\db\Query()) ->select(new Expression("from_unixtime(payAt,'%Y-%m-%d') as hours,count(id)money")) ->from('{{%ybwm_user_vip_order}}') ->where(['uniacid'=>$uniacid]) ->andWhere('payAt>=:starTime AND payAt<=:endTime',[':starTime'=>$beforeStartTime,':endTime'=>$endTime]) ->groupBy(new Expression("from_unixtime(payAt,'%Y-%m-%d')")) ->all(); $data['numArr']=dataByTime($numArr,date("Y-m-d",$endTime)); $requestData=(clone $vipOrder)->andWhere('payAt>=:startTime AND payAt<=:endTime',[':startTime'=>$requestStartTime,':endTime'=>$requestEndTime])->one(); $oldUser=(clone $vipOrder)->andWhere('payAt>=:startTime AND payAt<=:endTime AND first=2',[':startTime'=>$requestStartTime,':endTime'=>$requestEndTime])->one(); $newUser=(clone $vipOrder)->andWhere('payAt>=:startTime AND payAt<=:endTime AND first=1',[':startTime'=>$requestStartTime,':endTime'=>$requestEndTime])->one(); $userNum=(clone $vipOrder)->andWhere('payAt>=:startTime AND payAt<=:endTime',[':startTime'=>$requestStartTime,':endTime'=>$requestEndTime])->groupBy('userId')->count(); $allUserNum=(clone $vipOrder)->groupBy('userId')->count(); $endUserNum=(clone $member)->andWhere('vipEndTime>0 AND vipEndTime>=:startTime AND vipEndTime<=:endTime AND vipEndTime<:time',[':startTime'=>$requestStartTime,':endTime'=>$requestEndTime,':time'=>time()])->count(); $allEndUserNum=(clone $member)->andWhere('vipEndTime>0 AND vipEndTime<:time',[':time'=>time()])->count(); $data['requestNum']=$requestData['count']?:0; $data['requestMoney']=$requestData['money']?:0.00; $data['oldUser']=$oldUser['count']?:0; $data['newUser']=$newUser['count']?:0; $data['userNum']=$userNum?:0; $data['allUserNum']=$allUserNum?:0; $data['endUserNum']=$endUserNum?:0; $data['allEndUserNum']=$allEndUserNum?:0; return $this->result(1,'成功',$data); } }