예제 #1
0
 public function setFather($fid)
 {
     //$result=$this->find()->select()->join('INNER JOIN','users u1',['u1.phone'=>$fatherphone])->join('LEFT JOIN','users u2','u3.phone = u1.fatherid')->join('Left JOIN','users u3','u3.phone = u2.fatherid')->one();
     $f = Users::findOne(['id' => $fid]);
     //     	if($f['status']!=2){
     //     		return true;
     //     	}
     $result = (new \yii\db\Query())->select('u1.id as f, u2.id as gf ,u3.id as ggf')->from('users u1')->where('u1.id=:id', [':id' => $fid])->join('LEFT JOIN', 'users u2', 'u2.id = u1.fatherid')->join('Left JOIN', 'users u3', 'u3.id = u2.fatherid')->one();
     //     	var_dump($result);
     //     	return true;
     if ($result) {
         $this->fatherid = strval($fid);
         Users::updateAllCounters(['directalliancecount' => 1, 'allalliancecount' => 1], ['id' => $result['f']]);
         Users::updateAllCounters(['allalliancecount' => 1], ['id' => $result['gf']]);
         Users::updateAllCounters(['allalliancecount' => 1], ['id' => $result['ggf']]);
         return true;
     } else {
         return false;
     }
 }
예제 #2
0
 public function actionRewardout()
 {
     $data = Yii::$app->request->post();
     if (empty($data['count']) || empty($data['cardid']) || empty($data['phone'])) {
         return array('flag' => 0, 'msg' => 'no enough arg!');
     }
     $user = Users::findOne(['phone' => $data['phone']]);
     if ($user['alliancerewards'] < 10) {
         return array('flag' => 0, 'msg' => 'reward not enough!');
     }
     if ($user['status'] < 1) {
         return array('flag' => 0, 'msg' => 'have not real auth!');
     }
     if ($user['status'] == 2) {
         return array('flag' => 0, 'msg' => 'have been get!');
     }
     if (Traderecords::findOne(['userid' => $user['id'], 'type' => 0])) {
         return array('flag' => 0, 'msg' => 'have been get!');
     }
     $model = new Traderecords();
     $model->userid = $user['id'];
     $model->type = 0;
     $model->description = '自己人联盟联盟奖励提取';
     $model->cardid = $data['cardid'];
     $model->count = $data['count'];
     $model->ishandled = 1;
     $model->created_at = time();
     try {
         $result = $model->getDb()->transaction(function ($db) use($model, $user) {
             if (!$model->save()) {
                 throw new Exception("save traderecord fail");
             }
             $sub = $model['count'] * -1;
             $rows = Users::updateAllCounters(['alliancerewards' => $sub, 'status' => 1], 'id = ' . $user['id'] . ' and alliancerewards  >= ' . $model['count']);
             if ($rows != 1) {
                 throw new Exception("update user fail");
             }
         });
     } catch (\Exception $e) {
         return array('flag' => 0, 'error' => $e->getMessage(), 'msg' => 'reward out fail!');
     }
     return array('flag' => 1, 'msg' => 'money out success!');
 }