canyin-project/ybcy/controllers/channelApi/OldWithNewController.php

126 lines
5.4 KiB
PHP
Raw Permalink Normal View History

2024-11-01 16:07:54 +08:00
<?php
namespace app\controllers\channelApi;
use function GuzzleHttp\Psr7\str;
use Illuminate\Support\Facades\DB;
use Yii;
use EasyWeChat\Factory;
use app\models\common\Config;
use app\models\common\Member;
use app\models\common\Power;
class OldWithNewController extends CommonController{
public $enableCsrfValidation = false;
function init(){
parent::init();
$power=Power::getPayPower($this->wqData['uniacid'],'oldWithNew');
if(!$power){
echo json_encode(['code'=>2,'msg'=>'暂无权限']);die;
}
}
//老带新首页
public function actionIndex(){
$userId=$this->wqData['userId'];
$uniacid=$this->wqData['uniacid'];
$now=time();
$actInfo=(new \yii\db\Query())
->from('{{%ybwm_old_with_new}}')
->where('uniacid=:uniacid AND display=1 AND deleteAt=0 AND startTime<=:time AND endTime>:time',[':time'=>$now,':uniacid'=>$uniacid])->one();//查看活动
$rewardArr=json_decode($actInfo['rewardArr'],true);//奖励数组
$num=(new \yii\db\Query())
->from('{{%ybwm_old_with_new_bind}}')
->where('actId=:actId AND state=1 AND userId=:userId',[':actId'=>$actInfo['id'],':userId'=>$userId])->count();
$people=(new \yii\db\Query())
->from('{{%ybwm_old_with_new_bind}}')
->where('actId=:actId',[':actId'=>$actInfo['id']])->groupBy('userId')->count();
$data['people']=$people?:0;
for($i=0;$i<count($rewardArr);$i++){
$rewardArr[$i]['state']=2;
$people=$rewardArr[$i]['people'];
if($num>=$people){
$rewardArr[$i]['state']=1;
}
}
$data['waitMoney']=0;
// print_R($rewardArr);die;
for($j=0;$j<count($rewardArr);$j++){
if($rewardArr[$j]['state']==2){
$data['waitMoney']=$rewardArr[$j]['money'];
break;
}
}
$money=(new \yii\db\Query())
->from('{{%ybwm_old_with_new_detailed}}')
->where('actId=:actId AND userId=:userId',[':actId'=>$actInfo['id'],':userId'=>$userId])->sum('money');
$data['num']=$num?:0;
$data['rewardArr']=$rewardArr;
$data['money']=$money?:0;
$data['actinfo']=$actInfo;
return $this->result(1, '成功', $data);
}
public function actionRank(){
$now=time();
$result=axios_request();
$uniacid=$this->wqData['uniacid'];
$type=$result['type'];
$actInfo=(new \yii\db\Query())
->from('{{%ybwm_old_with_new}}')
->where('uniacid=:uniacid AND display=1 AND deleteAt=0 AND startTime<=:time AND endTime>:time',[':time'=>$now,':uniacid'=>$uniacid])->one();//查看活动
$date=date('Y-m-d'); //当前日期
$first=1; //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
$w=date('w',strtotime($date)); //获取当前周的第几天 周日是 0 周一到周六是 1 - 6
$now_start=date('Y-m-d',strtotime("$date -".($w ? $w - $first : 6).' days')); //获取本周开始日期,如果$w是0则表示周日减去 6 天
$now_end=date('Y-m-d',strtotime("$now_start +6 days")); //本周结束日期
$last_start=date('Y-m-d',strtotime("$now_start - 7 days")); //上周开始日期
$last_end=date('Y-m-d',strtotime("$now_start - 1 days")); //上周结束日期
$data['weekStart']=$now_start;
$data['weekEnd']=$now_end;
$data['lastWeekStart']=$last_start;
$data['lastWeekEnd']=$last_end;
if($type==1){
$startTime=strtotime($now_start);
$endTime=strtotime($now_end);
}else{
$startTime=strtotime($last_start);
$endTime=strtotime($last_end);
}
$rank=(new \yii\db\Query())
->select('sum(a.money) money,b.userName,b.portrait,b.userTel')
->from('{{%ybwm_old_with_new_detailed}} as a')
->leftJoin('{{%ybwm_member}} b','a.userId=b.id')
->where('a.actId=:actId AND a.createdAt>=:startTime AND a.createdAt<=:endTime',[':actId'=>$actInfo['id'],':startTime'=>$startTime,':endTime'=>$endTime])
->groupBy('a.userId')
->orderBy('a.money desc')
->all();
$data['rank']=$rank;
return $this->result(1, '成功', $data);
}
public function actionInvitationList(){
$result=axios_request();
$state=$result['state']?:1;
$now=time();
$uniacid=$this->wqData['uniacid'];
$userId=$this->wqData['userId'];
$actInfo=(new \yii\db\Query())
->from('{{%ybwm_old_with_new}}')
->where('uniacid=:uniacid AND display=1 AND deleteAt=0 AND startTime<=:time AND endTime>:time',[':time'=>$now,':uniacid'=>$uniacid])->one();//查看活动
$actId=$actInfo['id'];
$page=$result['page']?:1;
$num=($page-1)*10;
$limit=10;
$table=(new \yii\db\Query())
->select('b.userName,b.portrait,a.state,from_unixtime(a.createdAt) createdAt,a.bindId')
->from('{{%ybwm_old_with_new_bind}} as a')
->leftJoin('{{%ybwm_member}} b','a.bindId=b.id')
->where(['a.userId'=>$userId,'a.state'=>$state]);
if($actId){
$table->andWhere('a.actId='.$actId);
}
$list=$table
->offset($num)
->limit($limit)
->orderBy('a.id desc')
->all();
return $this->result(1, '成功',$list);
}
}