canyin-project/ybcy/controllers/channelApi/DistributionController.php
2024-11-01 16:07:54 +08:00

171 lines
6.6 KiB
PHP

<?php
namespace app\controllers\channelApi;
use Illuminate\Support\Facades\DB;
use Yii;
use yii\web\Controller;
use app\models\common\Config;
use app\models\common\Power;
class DistributionController extends CommonController{
public $enableCsrfValidation = false;
function init(){
parent::init();
$power=Power::getPayPower($this->wqData['uniacid'],'distribution');
if(!$power){
echo json_encode(['code'=>2,'msg'=>'暂无权限']);die;
}
}
//申请分销商
public function actionApplyDistribution(){
$result=axios_request();
$userId=$this->wqData['userId'];
$uniacid=$this->wqData['uniacid'];
$request = Yii::$app->request;
if($request->isGet){
$info=(new \yii\db\Query())
->from('{{%ybwm_distribution}}')
->where(['userId'=>$userId,'deleteAt'=>0])->one();
if($info){
$info['examineAt']=date('Y-m-d H:i:s',$info['examineAt']);
}
return $this->result(1, '成功',$info);
}
if(!$userId){
return $this->result(2, '数据异常');
}
$info=(new \yii\db\Query())
->from('{{%ybwm_distribution}}')
->where(['userId'=>$userId,'deleteAt'=>0])->one();
if($info['state']==1){
return $this->result(2, '申请正在审核中');
}
if($info['state']==2){
return $this->result(2, '您已经是分销商,不可重复提交');
}
if(!$result['name']){
return $this->result(2, '分销商名称不能为空');
}
if(!$result['tel']){
return $this->result(2, '分销商电话不能为空');
}
$data['userId']=$userId;
$data['name']=$result['name'];
$data['tel']=$result['tel'];
$data['state']=1;
$data['uniacid']=$uniacid;
$data['createdAt']=time();
$set=Config::getSystemSet('distributionSet',$uniacid);
if($set['examineOpen']==2){
$data['state']=2;
$data['examineAt']=time();
}
if(!$info){
$res=Yii::$app->db->createCommand()->insert('{{%ybwm_distribution}}', $data)->execute();
}else{
$res=Yii::$app->db->createCommand()->update('{{%ybwm_distribution}}', $data,['id'=>$info['id']])->execute();
}
if($res){
return $this->result(1, '成功');
}else{
return $this->result(2, '失败');
}
}
//查看下线
public function actionGetOffline(){
$result=axios_request();
$type=$result['type'];
$userId=$this->wqData['userId'];
$page=$result['page']?:1;
$num=($page-1)*10;
$limit=10;
$list=(new \yii\db\Query())
->select('b.userName,b.portrait,a.bindId,from_unixtime(a.createdAt) createdAt')
->from('{{%ybwm_distribution_bind}} as a')
->join('LEFT JOIN', '{{%ybwm_member}} as b', 'b.id = a.bindId');
if($type==1){
$list->andWhere(['a.userId'=>$userId]);
}else{
$list->andWhere(['a.twoId'=>$userId]);
}
$data=$list->offset($num)
->limit($limit)->orderBy('a.id desc')->all();
return $this->result(1, '成功', $data);
}
//查看分销订单
public function actionDistributionOrder(){
$result=axios_request();
$page=$result['page']?:1;
$num=($page-1)*10;
$limit=10;
$uniacid=$this->wqData['uniacid'];
$keyword=$result['keyword'];
$userId=$this->wqData['userId'];
$item=$result['item'];
$type=$result['type'];
$startTime=strtotime($result['startTime']);
$endTime=strtotime($result['endTime']);
$list=(new \yii\db\Query())
->select('a.level,b.userName,b.portrait,a.userId,c.name as distributionName,c.tel as distributionTel,a.money,from_unixtime(a.createdAt) createdAt,a.outTradeNo,a.type')
->from('{{%ybwm_distribution_order}} as a')
->join('LEFT JOIN', '{{%ybwm_member}} as b', 'b.id = a.userId')
->join('LEFT JOIN', '{{%ybwm_distribution}} as c', 'c.userId = a.distributionId')
->where(['a.uniacid'=>$uniacid]);
if($startTime AND $endTime){
$list->andWhere('a.createdAt>=:startTime AND a.createdAt<=:endTime',[':startTime'=>$startTime,':endTime'=>$endTime]);
}
if($item){
$list->andwhere('a.item='.$item);
}
if($type){
$list->andwhere('a.type='.$type);
}
if($userId){
$list->andwhere('a.distributionId='.$userId);
}
if ($keyword) {
$list->andwhere(['or', ['like', 'a.outTradeNo', $keyword],['like', 'c.name', $keyword], ['like', 'b.userName', $keyword]]);
}
$data=$list->offset($num)
->limit($limit)->orderBy('a.id desc')->all();
return $this->result(1, '成功', $data);
}
//分销中心
public function actionIndex(){
$userId=$this->wqData['userId'];
$yit=(new \yii\db\Query())
->from('{{%ybwm_bonus_withdrawal}}')
->where(['userId'=>$userId,'item'=>2,'state'=>2])->sum('money')?:0;//已提现
$tx=(new \yii\db\Query())
->from('{{%ybwm_bonus_withdrawal}}')
->where(['userId'=>$userId,'item'=>2])
->andWhere(['in','state',[1,2]])
->sum('money')?:0;//已提现和提现中
$userMoney=(new \yii\db\Query())
->select('commission')
->from('{{%ybwm_member}}')
->where(['id'=>$userId])->one()['commission']?:0;//用户佣金
$data['frozen']=(new \yii\db\Query())
->from('{{%ybwm_distribution_order}}')
->where(['distributionId'=>$userId,'type'=>1])->sum('money')?:'0.00';//冻结
$data['wait']=(new \yii\db\Query())
->from('{{%ybwm_bonus_withdrawal}}')
->where(['userId'=>$userId,'item'=>2,'state'=>2])
->sum('money')?:'0.00';//提现中
$data['alreadyMoney']=$yit?:'0.00';//已提现
$data['userMoney']=$userMoney?:'0.00';//可提现
$data['allMoney']=bcadd($tx,$userMoney,2);//累计
$onePeople=(new \yii\db\Query())
->from('{{%ybwm_distribution_bind}}')
->where(['userId'=>$userId])
->count()?:0;
$twoPeople=(new \yii\db\Query())
->from('{{%ybwm_distribution_bind}}')
->where(['twoId'=>$userId])
->count()?:0;
$data['people']=bcadd($twoPeople,$onePeople,0);//下线
return $this->result(1, '成功', $data);
}
}