Example #1
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Gold::find()->where(['status' => Gold::STATUS_ACTIVE]);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'uid' => $this->uid, 'rid' => $this->rid, 'money' => $this->money, 'status' => $this->status]);
     $query->andFilterWhere(['like', 'created_at', $this->created_at])->andFilterWhere(['like', 'updated_at', $this->updated_at]);
     return $dataProvider;
 }
Example #2
0
 public function actionGindex()
 {
     Utils::ensureOpenId();
     $openId = Yii::$app->request->get('open_id');
     if (($usermodel = UcenterMember::findOne(['openid' => $openId])) !== null) {
         Yii::$app->user->login($usermodel);
     } elseif (empty(Yii::$app->user->id)) {
         return $this->redirect(['site/signin']);
     }
     $uid = yii::$app->user->id;
     $gold = Gold::find()->select('uid,sum(money) as smoney')->where(['uid' => $uid])->asArray()->one();
     $allgold = Gold::find()->select('uid,rid,sum(money) as smoney')->where(['uid' => $uid])->asArray()->groupBy('rid')->all();
     $invitation_code = UcenterMember::findIdentity($uid)->invitation_code;
     $goldincome = Income::find()->select('member_id,sum(goldincome) as sincome')->where(['member_id' => $uid])->asArray()->one();
     $jssdk = new Jssdk('wx32814d588c44c17c', '23b0f218574551f18db1dc991dbee87f');
     $signpack = $jssdk->getSignPackage();
     return $this->view('gindex', compact('gold', 'allgold', 'goldincome', 'invitation_code', 'signpack'));
 }
Example #3
0
                <img src="<?php 
echo Yii::getAlias('@web') . '/';
?>
rq-images/Experience42.jpg" alt="">
                <table class="experience4-tab">
                    <tr>
                        <td>
                            <p class="experience4-tabT">首次投资</p>
                            <p class="experience4-tabP">获取<?php 
echo $rule = Rule::find()->where(['title' => '首次投资'])->one()->money;
?>
元体验金</p>
                        </td>
                        <td class="experience4-tabCome">
                            <?php 
if (Gold::find()->andWhere(['uid' => yii::$app->user->id])->andWhere(['rid' => 3])->one()) {
    ?>
                                <img  src="<?php 
    echo Yii::getAlias('@web') . '/';
    ?>
rq-images/Experience43.png" alt="">
                            <?php 
} else {
    ?>
                                <a href="<?php 
    echo Url::to(['site/main']);
    ?>
">去完成</a>
                            <?php 
}
?>
Example #4
0
 private static function datas()
 {
     $uid = yii::$app->user->id;
     $model = UcenterMember::find()->where(['id' => Yii::$app->user->id])->one();
     //个人账户
     $model_asset = Info::find()->where(['member_id' => Yii::$app->user->id])->one();
     if (!isset($model_asset)) {
         //跳转至绑定银行卡
         echo "<script>alert('您还没有绑定银行卡');</script>";
         echo "<script>location.href='" . \yii\helpers\Url::to(['money/bindcard']) . "'</script>";
         exit;
     }
     //收益总额
     $income_total = $model_asset->total_revenue;
     //当前收益
     $income_current = $model_asset->profit;
     //昨日收益
     try {
         $income_yesterday = Income::find()->where(['member_id' => yii::$app->user->id, 'created_at' => strtotime(date('Y-m-d', time()))])->one()->smoney;
     } catch (ErrorException $e) {
         $income_yesterday = 0;
     }
     //  		 体验金
     $experience_money = 0;
     $money = Gold::find()->where(['<', 'created_at', time()])->andWhere(['>', 'end_at', time()])->andWhere(['uid' => $uid, 'status' => Gold::STATUS_ACTIVE])->sum('money');
     if ($money) {
         $experience_money = sprintf("%.2f", $money);
     }
     //投资总额
     $invest_total = 0;
     $model_order = Order::find()->where(['member_id' => Yii::$app->user->id, 'status' => 1])->all();
     if (count($model_order) > 0) {
         foreach ($model_order as $K => $V) {
             $invest_total += $V->money;
         }
     }
     //用户投资记录
     $query1 = (new Query())->select("A.step,A.create_at,B.title")->from("asset_log AS A")->where('A.member_id=' . Yii::$app->user->id . " AND A.action='Invest/invest' AND A.status=2 ")->join("left join", "fund_product AS B", "A.product_id=B.id")->orderBy("A.id DESC");
     $pages = new Pagination(['totalCount' => $query1->count(), 'pageSize' => '10']);
     $array_investlog = $query1->offset($pages->offset)->limit($pages->limit)->all();
     $pages_offset = $pages->offset;
     //用户交易记录
     $query2 = Log::find()->where(['member_id' => Yii::$app->user->id, 'status' => [1, 2, 3, 4]]);
     $pages_trade = new Pagination(['totalCount' => $query2->count(), 'pageSize' => '2']);
     $array_tradelog = $query2->offset($pages_trade->offset)->limit($pages_trade->limit)->orderBy("id DESC")->all();
     $pages_trade_offset = $pages_trade->offset;
     //当前投资记录
     $query3 = (new Query())->select("A.step,A.create_at,B.title")->from("asset_log AS A")->where('A.member_id=' . Yii::$app->user->id . " AND A.action='Invest/invest' AND A.status=2 ")->join("left join", "fund_product AS B", "A.product_id=B.id")->limit(4)->orderBy("A.id DESC")->createCommand();
     $invest_log = $query3->queryAll();
     //数据包变量
     $amount_total = $model_asset->balance + $invest_total + $income_current;
     $session = yii::$app->session;
     $session->open();
     if (isset($session['last_time'])) {
         $updated_at = $session['last_time'];
     } else {
         $updated_at = $model->updated_at;
     }
     $phone = $model->phone;
     $balance = $model_asset->balance;
     $freeze = $model_asset->freeze;
     return $infos_rar = compact("invest_total", "income_total", "amount_total", "updated_at", "phone", "balance", "freeze", "invest_log", "array_investlog", "array_tradelog", "pages", "pages_trade", "pages_offset", "pages_trade_offset", "income_current", "income_yesterday", "experience_money");
 }
Example #5
0
 /**
  * Finds the Gold model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Gold the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Gold::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Example #6
0
 /**
  * 获取用户的详细信息--认证信息--账户信息
  * @param $uid
  * @return array|null|\yii\db\ActiveRecord
  */
 public static function getUserInfo($uid)
 {
     $year_rate = '0.08';
     //活动期间利率调整TODO
     date_default_timezone_set('PRC');
     //活动开始时间
     $begin_time = strtotime('2015-9-24');
     //活动结束时间
     $end_time = strtotime('2015-9-30');
     //当前时间
     $now_time = time();
     if ($now_time > $begin_time && $now_time < $end_time) {
         $year_rate = '0.0815';
     }
     $yes_money = 0;
     $info = UcenterMember::find()->joinWith('info')->select(['id', 'ucenter_member.status', 'lock', 'invitation_code', 'phone', 'idcard', 'real_name', 'bank_card', 'bank_card_phone', 'balance', 'total_invest', 'invest', 'profit', 'total_revenue'])->where(['id' => $uid])->asArray()->one();
     if ($info == null) {
         $return = array('errorNum' => '1', 'errorMsg' => '用户不存在', 'data' => null);
         return $return;
     }
     //获取网站配置信息
     $config = AssetConfig::find()->select(['id', 'deposit_num', 'deposit_min', 'deposit_max', 'deposit_time', 'invest_num', 'invest_min', 'invest_max', 'invest_time', 'withdraw_num', 'withdraw_min', 'withdraw_max', 'withdraw_time', 'ransom_num', 'ransom_min', 'ransom_max', 'ransom_time'])->where(['id' => '2'])->asArray()->one();
     //获取用户昨日收益金额
     //今日零时时间
     $zero_time = strtotime(date("Y-m-d"));
     //获取昨日收益
     $get_yes_money = Income::find()->where(['>', 'created_at', $zero_time])->andWhere(['member_id' => $uid])->one();
     //获取昨日收益金额--利率
     $yes_experience_money = 0;
     if ($get_yes_money) {
         $yes_money = $get_yes_money->smoney ? $get_yes_money->smoney : 0;
         $year_rate = $get_yes_money->rate ? $get_yes_money->rate : 0;
         $yes_experience_money = $get_yes_money->goldincome ? $get_yes_money->goldincome : 0;
     }
     //获取体验金
     $experience_money = 0;
     $money = Gold::find()->where(['<', 'created_at', time()])->andWhere(['>', 'end_at', time()])->andWhere(['uid' => $uid, 'status' => Gold::STATUS_ACTIVE])->sum('money');
     if ($money) {
         $experience_money = sprintf("%.2f", $money);
     }
     //获取活动红包可用金额
     $red_packet_money = 0;
     $red_money = member::get_user_red_packet($uid);
     if (!$red_money['errorNum']) {
         $red_packet_money = $red_money['data']['red_sum'];
     }
     $activity_invite = '';
     //用户再投资金大于一元,可以进行分享
     //        $invest = $info['invest'] ? $info['invest'] : 0;
     //        if($invest >= 1){
     //            $activity_invite = AloneMethod::encrypt($info['phone']);
     //        }
     $activity_invite = AloneMethod::encrypt($info['phone']);
     $data = array('phone' => $info['phone'], 'idcard' => $info['idcard'], 'real_name' => $info['real_name'], 'status' => $info['status'], 'lock' => $info['lock'], 'invitation_code' => $info['invitation_code'], 'bank_card' => $info['bank_card'], 'bank_card_phone' => $info['bank_card_phone'], 'balance' => $info['balance'], 'total_invest' => $info['total_invest'], 'total_revenue' => $info['total_revenue'], 'invest' => $info['invest'], 'profit' => $info['profit'], 'yesterday_rate' => sprintf("%.4f", $year_rate), 'yesterday_money' => $yes_money, 'experience_money' => $experience_money, 'yes_experience_money' => $yes_experience_money, 'red_packet_money' => $red_packet_money, 'activity_invite' => $activity_invite, 'config' => $config);
     $return = array('errorNum' => '0', 'errorMsg' => 'success', 'data' => $data);
     return $return;
 }
Example #7
0
 public static function goldtwo($member_id, $money)
 {
     //获取举办活动
     $holdactivity = HoldActivity::find()->where(['id' => 7])->asArray()->one();
     //获取使用的规则
     $ridearray = array();
     $ridearray = explode(',', $holdactivity['rid_list']);
     //获取应该得到的体验金数量
     $experience_gold = 0;
     $experience_gold = $holdactivity['gold_money'];
     //体验金的有效时间
     $gold_day = 0;
     $gold_day = $holdactivity['gold_day'];
     //活动开始时间
     $activity_begin = time();
     $activity_begin = $holdactivity['activity_begin'];
     //活动结束时间
     $activity_end = time();
     $activity_end = $holdactivity['activity_end'];
     //首次投资送体验金规则
     if (in_array('3', $ridearray)) {
         //获取规则情况
         $flag = Rule::find()->where(['id' => '3', 'status' => Rule::STATUS_ACTIVE])->asArray()->one();
         //存在规则
         if ($flag) {
             $info = Info::find()->where(['member_id' => $member_id])->one();
             //获取再投资金
             $invest = $info->invest;
             //用户注册时间
             $create_at = $info->create_at;
             //再投资金大于1元
             if ($invest >= 1 && $create_at > $activity_begin && $create_at < $activity_end) {
                 //判断规则是否生效
                 $now = time();
                 if ($now > $activity_begin && $now < $activity_end) {
                     //判定用户是否领取了体验金
                     $is_get = Gold::find()->where(['rid' => 3, 'uid' => $member_id, 'title' => '国庆佳节新用户投资送体验金'])->asArray()->one();
                     if (!$is_get) {
                         //计算体验金截止时间
                         $end_at = time() + $gold_day * 24 * 3600;
                         //给用户发体验金
                         $gold = new Gold();
                         $gold->uid = $member_id;
                         $gold->rid = '3';
                         $gold->money = $experience_gold;
                         $gold->end_at = $end_at;
                         $gold->status = Gold::STATUS_ACTIVE;
                         $gold->title = '国庆佳节新用户投资送体验金';
                         $gold->save();
                     }
                 }
                 //判断是否有邀请人
                 $member = UcenterMember::find()->where(['id' => $member_id])->asArray()->one();
                 if ($member['invitation_id']) {
                     if (in_array('5', $ridearray)) {
                         $rule = Rule::find()->where(['id' => '5', 'status' => Rule::STATUS_ACTIVE])->asArray()->one();
                         //规则启用
                         if ($rule) {
                             //判断规则是否在时间内
                             $now = time();
                             if ($now > $activity_begin && $now < $activity_end) {
                                 //判定用户是否领取了体验金
                                 $is_get = Gold::find()->where(['rid' => 3, 'uid' => $member_id, 'title' => '国庆佳节推荐用户投资送体验金'])->asArray()->one();
                                 if (!$is_get) {
                                     //计算体验金截止时间
                                     $end_at = time() + $gold_day * 24 * 3600;
                                     //给用户发体验金
                                     $gold = new Gold();
                                     $gold->uid = $member_id;
                                     $gold->rid = '3';
                                     $gold->money = $experience_gold;
                                     $gold->end_at = $end_at;
                                     $gold->status = Gold::STATUS_ACTIVE;
                                     $gold->title = '国庆佳节推荐用户投资送体验金';
                                     $gold->save();
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
Example #8
0
 public function actionMember()
 {
     Utils::ensureOpenId();
     $openId = Yii::$app->request->get('open_id');
     if (($usermodel = UcenterMember::findOne(['openid' => $openId])) !== null) {
         Yii::$app->user->login($usermodel);
     } elseif (yii::$app->user->isGuest) {
         return $this->redirect(['site/signin']);
     }
     $uid = yii::$app->user->id;
     /* $datas = AloneMethod::user_collect(118);
        var_dump($datas);exit;*/
     $model = UcenterMember::find()->where(['id' => $uid])->one();
     //个人账户
     $income_yesterday = Income::find()->where(['member_id' => $uid, 'created_at' => strtotime(date('Y-m-d', time()))])->one()->smoney;
     //体验金收益
     $experience_income = Income::find()->where(['member_id' => $uid, 'created_at' => strtotime(date('Y-m-d', time()))])->one()->goldincome;
     //红包收益
     $railscard = Income::find()->where(['member_id' => $uid, 'created_at' => strtotime(date('Y-m-d', time()))])->one()->railscard;
     $model_asset = Info::find()->where(['member_id' => Yii::$app->user->id])->one();
     $balance = $model_asset->balance;
     //当前余额
     $income_total = $model_asset->total_revenue;
     //累计收益
     //投资总额
     $invest_total = 0;
     $model_order = Order::find()->where(['member_id' => Yii::$app->user->id, 'status' => 1])->all();
     if (count($model_order) > 0) {
         foreach ($model_order as $K => $V) {
             $invest_total += $V->money;
         }
     }
     // 体验金
     $experience_money = 0;
     $money = Gold::find()->where(['<', 'created_at', time()])->andWhere(['>', 'end_at', time()])->andWhere(['uid' => $uid, 'status' => Gold::STATUS_ACTIVE])->sum('money');
     if ($money) {
         $experience_money = sprintf("%.2f", $money);
     }
     return $this->view('member', compact("model", 'income_yesterday', 'balance', 'income_total', 'invest_total', 'experience_money', 'experience_income', 'railscard'));
 }
Example #9
0
 public function actionSignup()
 {
     //判断注册URL中是否包含邀请码参数
     if (isset($_GET['code'])) {
         $code = $_GET['code'];
         //$_code_source = UcenterMember::find()->where(['invitation_code'=>$code])->one();
         //if(count($_code_source) != 1)
         $flag = \frontend\actions\app\member::verify_code($code);
         if (!$flag) {
             header("Content-type: text/html; charset=utf-8");
             echo "<script>alert('来源链接不合法!')</script>";
             echo "<script>window.location.href='" . \yii\helpers\Url::to(['site/signup']) . "'</script>";
             exit;
         }
     }
     $model = new SignupForm();
     //是否邀请注册
     $test_invite = 1;
     if ($model->load(Yii::$app->request->post())) {
         if ($_POST['SignupForm']['username'] && $_POST['SignupForm']['validate_code'] && $_POST['SignupForm']['password'] && $_POST['SignupForm']['password_repeat']) {
             $invite_code = $_POST["SignupForm"]['invitation_code'];
             //使用测试邀请码
             if ($test_invite) {
                 //使用测试邀请
                 $flag = \frontend\actions\app\member::verify_code($invite_code);
                 //验证码通过
                 if (!$flag) {
                     echo "<script>alert('" . '邀请码错误' . "')</script>";
                 }
             }
             $_phone = $_POST['SignupForm']['username'];
             $_code = $_POST['SignupForm']['validate_code'];
             try {
                 $result = Port::checkPhnoe($_phone, $_code);
                 if (is_bool($result)) {
                 }
             } catch (ErrorException $e) {
                 header("Content-type: text/html; charset=utf-8");
                 echo "<script>alert('" . $e->getMessage() . "')</script>";
                 echo "<script>location.href='" . \yii\helpers\Url::to(['site/signup']) . "'</script>";
                 exit;
             }
             $user = new UcenterMember();
             $user->username = $_POST["SignupForm"]['username'];
             $user->phone = $_POST["SignupForm"]['username'];
             $user->invitation_code = $_POST["SignupForm"]['invitation_code'];
             $password = $_POST["SignupForm"]['password'];
             $user->setPassword($password);
             $user->create_ip = Yii::$app->request->userIp;
             $app_pwd = md5(sha1($password) . time());
             $user->app_pwd = $app_pwd;
             try {
                 $area = self::get_area(Yii::$app->request->userIp);
                 $user->create_area = $area;
             } catch (ErrorException $e) {
             }
             $user->generateAuthKey();
             if ($user->save()) {
                 $uid = $user['id'];
                 if ($test_invite) {
                     //使用验证码
                     $flag = \frontend\actions\app\member::verify_code($invite_code);
                     $invite_flag = \frontend\actions\app\member::use_code($flag, $uid);
                     if (!$invite_flag) {
                         $return = array('errorNum' => '1', 'errorMsg' => '注册失败', 'data' => null);
                         return $return;
                     }
                 }
                 if (Yii::$app->getUser()->login($user)) {
                     $newModel = UcenterMember::find()->where(['id' => Yii::$app->user->id])->one();
                     //$newModel->invitation_id= \yii::$app->params['invitation_id'];
                     $invitation_code = Utils::createcode();
                     $newModel->invitation_code = $invitation_code;
                     $newModel->person_face = Setting::find()->where("code='img'")->one()->value;
                     if ($_POST['url_code']) {
                         $code_source = UcenterMember::find()->where(['invitation_code' => $_POST["url_code"]])->asArray()->one();
                         if ($code_source) {
                             $newModel->invitation_id = $code_source['id'];
                         }
                         //好友注册领取体验金
                         $rule = Rule::find()->where(['title' => '好友注册', 'status' => Rule::STATUS_ACTIVE])->one();
                         if ($rule) {
                             $rid = $rule->id;
                             $r_money = $rule->money;
                             $model_gold = new Gold();
                             $model_gold->rid = $rid;
                             $model_gold->money = $r_money;
                             $model_gold->uid = $code_source['id'];
                             $model_gold->created_at = strtotime("now");
                             $model_gold->save();
                         }
                     } elseif ($_POST['SignupForm']['invitation_code']) {
                         $code_source = UcenterMember::find()->where(['invitation_code' => $_POST["SignupForm"]["invitation_code"]])->asArray()->one();
                         if ($code_source) {
                             $newModel->invitation_id = $code_source['id'];
                         }
                         //好友注册领取体验金
                         $rule = Rule::find()->where(['title' => '好友注册', 'status' => Rule::STATUS_ACTIVE])->one();
                         if ($rule) {
                             $rid = $rule->id;
                             $r_money = $rule->money;
                             $model_gold = new Gold();
                             $model_gold->rid = $rid;
                             $model_gold->money = $r_money;
                             $model_gold->uid = $code_source['id'];
                             $model_gold->created_at = strtotime("now");
                             $model_gold->save();
                         }
                     }
                     $newModel->save(false);
                     $model_asset_info = new Info();
                     $model_asset_info->member_id = yii::$app->user->id;
                     $model_asset_info->create_at = strtotime("now");
                     $model_asset_info->save(false);
                     //手机号注册领取体验金
                     $rule = Rule::find()->where(['title' => '手机号注册', 'status' => Rule::STATUS_ACTIVE])->one();
                     if ($rule) {
                         $rid = $rule->id;
                         $r_money = $rule->money;
                         $model_gold = new Gold();
                         $model_gold->rid = $rid;
                         $model_gold->money = $r_money;
                         $model_gold->uid = $code_source['id'];
                         $model_gold->created_at = strtotime("now");
                         $model_gold->save();
                     }
                     return $this->goHome();
                 }
             }
         }
     }
     return $this->render('signup', compact("model", "code"));
 }
Example #10
0
 public function actionIndex()
 {
     error_reporting(0);
     //取出后台设置最大红包
     $maxincome = Setting::getCode('maxincome');
     //取出后台设置的每人最大红白
     $maxpeople = Setting::getCode('maxpeople');
     //后台设置体验金利率
     $goldrate = Setting::getCode('goldrate');
     //设定时区
     date_default_timezone_set('PRC');
     //取出当前时间
     $btime = date('Y-m-d' . '00:00:00', time());
     //转换成“开始”的时间戳
     $btimestr = strtotime($btime);
     //
     //判定今日是否已经计算了收益---防止收益被多次计算
     $count = Income::find()->where(['>', 'created_at', $btimestr])->count();
     if ($count) {
         return '收益已经计算过了';
     }
     //查询昨天以前所有的投资订单,查询order表
     $order = Order::find()->select('member_id,sum(money) as smoney,product_id')->andWhere(['<', 'start_at', Utils::alldaytostr($btimestr)[1]])->andWhere(['status' => 1])->groupBy(['member_id', 'product_id'])->asArray()->all();
     $arrnew = array();
     //循环所有投资
     //        $test = 0;
     foreach ($order as $k => $v) {
         //查询订单下对应项目
         $product = Product::findOne($v['product_id']);
         //查询昨天的生成的利息
         $income = Income::find()->andWhere(['member_id' => $v['member_id']])->andWhere(['between', 'created_at', Utils::alldaytostr($btimestr)[0], Utils::alldaytostr($btimestr)[1]])->one();
         //查询增值卡昨天信息
         //            $railscard = RaiseCard::find()
         //                ->select('member_id,sum(rate) as srate')
         //                ->andWhere(['member_id'=>$v['member_id']])
         //                ->andWhere(['<', 'use_at',Utils::alldaytostr($btimestr)[1]])
         //                ->andWhere(['>', 'use_end_time',Utils::alldaytostr($btimestr)[1]])
         //                ->andWhere(['status'=>RaiseCard::STATUS_USE])
         //                ->groupBy(['member_id'])
         //                ->asArray()
         //                ->one();
         //昨日签到人数
         $count = SignIn::find()->joinWith(['info' => function ($query) {
             /** @var \yii\db\ActiveQuery $query */
             $query->andWhere(['>', 'asset_info.invest', '1000']);
         }])->andWhere(['between', 'sign_in.sign_in_time', Utils::alldaytostr($btimestr)[0], Utils::alldaytostr($btimestr)[1]])->asArray()->count();
         //每人赠送利息,如果每人分的利息大于设置的每人获得的最大利息,就用设置的每人利息,如果小于就用分的利息
         $everyincome = 0;
         if ($count) {
             $everyincome = $maxincome / $count > $maxpeople ? $maxpeople : $maxincome / $count;
         }
         //取出昨天这个人有没有签到
         $rails = SignIn::find()->andWhere(['uid' => $v['member_id']])->andWhere(['between', 'sign_in_time', Utils::alldaytostr($btimestr)[0], Utils::alldaytostr($btimestr)[1]])->asArray()->one();
         //判断订单是否有总金额
         $smoney = isset($v['smoney']) ? $v['smoney'] : 0;
         //查询该用户体验金
         //            $all = Gold::find()->select('experience_gold.id,experience_gold.rid,sum(experience_gold.money) as gmoney')->andWhere(['uid'=>$v['member_id']])->joinWith(['rule' => function ($query) {
         //                /** @var \yii\db\ActiveQuery $query */
         //                $query->andWhere(['experience_rule.status'=>Rule::STATUS_ACTIVE]);
         //            }])->asArray()->all();
         //
         //            //查询发放给该用户体验金昨天信息
         //            $sendgold = RaiseCard::find()
         //                ->select('member_id,sum(rate) as srate')
         //                ->andWhere(['member_id'=>$v['member_id']])
         //                ->andWhere(['<', 'validity_start_at',Utils::alldaytostr($btimestr)[1]])
         //                ->andWhere(['>', 'validity_out_at',Utils::alldaytostr($btimestr)[1]])
         //                ->andWhere(['status'=>RaiseCard::STATUS_USE])
         //                ->asArray()
         //                ->one();
         //查询该用户体验金-----TODO
         $all = Gold::find()->select('uid,sum(money) as smoney')->andWhere(['uid' => $v['member_id'], 'status' => Gold::STATUS_ACTIVE])->andWhere(['<', 'created_at', time()])->andWhere(['>', 'end_at', time()])->asArray()->one();
         //            $summoney = 0;
         //            foreach($all as $kmmy=>$vmmy){
         //                $newbetime = strtotime(date('Y-m-d'.' 00:00:00',time()));
         //                $endtime = $vmmy['created_at'] + 3600 * 24 * $vmmy['time'];
         //                if($vmmy['created_at']<$newbetime && $endtime>$newbetime){
         //                    $summoney +=$all[$kmmy]['money'];
         //                }
         //            }
         //            var_dump($summoney);
         //            var_dump($all);
         //查询发放给该用户体验金昨天信息
         //            $sendgold = RaiseCard::find()
         //                ->select('member_id,sum(rate) as srate')
         //                ->andWhere(['member_id'=>$v['member_id']])
         //                ->andWhere(['<', 'validity_start_at',Utils::alldaytostr($btimestr)[1]])
         //                ->andWhere(['>', 'validity_out_at',Utils::alldaytostr($btimestr)[1]])
         //                ->groupBy(['member_id'])
         //                ->asArray()
         //                ->one();
         //计算利率,增息卡的利率+项目的利率
         //            $railscardrate = isset($railscard)? $railscard['srate']+$product->rate/365:$product->rate/365;
         //TODO
         $railscardrate = isset($railscard) ? $railscard['srate'] + $product->rate : $product->rate;
         //活动期间利率调整TODO
         date_default_timezone_set('PRC');
         //活动开始时间
         $begin_time = strtotime('2015-10-1');
         //活动结束时间
         $end_time = strtotime('2015-10-7');
         //当前时间
         $now_time = time();
         if ($now_time > $begin_time && $now_time < $end_time) {
             $railscardrate = '0.101';
         }
         $railscardrate = '0.08';
         //组成新数组,用户的id
         $arrnew[$v['member_id']]['member_id'] = $v['member_id'];
         //用户昨日利息,因利息也会产生利息,所以昨日利息乘以利率
         // $arrnew[$v['member_id']]['smoney'] += isset($income)?($smoney+$income->smoney)*Utils::moneyFormat($railscardrate) :$smoney*Utils::moneyFormat($railscardrate);
         //投资总额---记录当前再投资金
         $arrnew[$v['member_id']]['money'] += $v['smoney'];
         //计算收益--TODO
         $arrnew[$v['member_id']]['smoney'] += ceil($smoney * $railscardrate * 100 / 365) / 100;
         //取不包含红包体验金收益
         $arrnew[$v['member_id']]['iincome'] += ceil($smoney * $railscardrate * 100 / 365) / 100;
         //用户的昨日之前的累计利息
         // isset($income)? $arrnew[$v['member_id']]['newmoney'] = $arrnew[$v['member_id']]['smoney']+$income->newmoney : $arrnew[$v['member_id']]['newmoney'] += $smoney*Utils::moneyFormat($railscardrate);
         // TODO
         isset($income) ? $arrnew[$v['member_id']]['newmoney'] = $arrnew[$v['member_id']]['smoney'] + $income->newmoney : ($arrnew[$v['member_id']]['newmoney'] += ceil($smoney * $railscardrate * 100 / 365) / 100);
         //签到获取的利息
         $arrnew[$v['member_id']]['railscard'] = $rails ? $everyincome : 0;
         //在投金额大于1元--计算体验金收益
         if ($smoney >= 1) {
             //计算该用户体验金获取的利息
             $arrnew[$v['member_id']]['goldincome'] = ceil($all['smoney'] * $railscardrate * 100 / 365) / 100;
         }
         //每人的利率
         $arrnew[$v['member_id']]['rate'] = $railscardrate;
     }
     foreach ($arrnew as $k => &$v) {
         //求出每个用户的昨日利率
         $v['rate'] = Utils::moneyFormat(($v['smoney'] + $v['railscard']) * 365 / $v['money']);
         //总利息加上签到获取的利息
         $v['newmoney'] = $v['railscard'] + $v['newmoney'] + $v['goldincome'];
         //利息加上签到获取的利息
         $v['smoney'] = $v['railscard'] + $v['smoney'] + $v['goldincome'];
         //利息计算时的投资---
         //            $v['money'] = $v['money']  + $v['goldincome'] + $v['railscard'];
         // -- 计算在投金额不应该增加利息产生的金额
         $v['money'] = $v['money'];
     }
     //循环数组
     foreach ($arrnew as $vs) {
         $_model = new Income();
         //查出用户表的余额
         $Info = Info::find()->where(['member_id' => $vs['member_id']])->one();
         if ($Info) {
             $Info->profit = $Info->profit + $vs['smoney'];
             $Info->total_revenue = $Info->total_revenue + $vs['smoney'];
             $Info->save();
         }
         //取出昨天这个人有没有签到
         $signin = SignIn::find()->andWhere(['uid' => $vs['member_id']])->andWhere(['between', 'sign_in_time', Utils::alldaytostr($btimestr)[0], Utils::alldaytostr($btimestr)[1]])->one();
         if ($signin && $vs['money'] >= 1000) {
             $signin->sign_in_money = $vs['railscard'];
             $signin->status = SignIn::STATUS_FINISH;
             $signin->save();
             $_model->railscard = $vs['railscard'];
         }
         $_model->member_id = $vs['member_id'];
         $_model->smoney = $vs['smoney'];
         $_model->money = $vs['money'];
         $_model->rate = $vs['rate'];
         $_model->newmoney = $vs['newmoney'];
         $_model->goldincome = $vs['goldincome'];
         $_model->iincome = $vs['iincome'];
         //生成每日利息表的数据
         $_model->save();
     }
     //推荐大师活动
     //获取所有用户信息
     $users = UcenterMember::find()->select(['id'])->asArray()->all();
     if ($users !== null) {
         //获取所有用户id值
         foreach ($users as $key => $value) {
             //循环用户信息--判定其推荐人中是否有符合奖励规则的人--有进行推荐表中状态更改
             AloneMethod::produce_red_packet($value['id']);
         }
     }
     //判定推荐表中用户是否符合拿取奖励规则
     if ($users !== null) {
         foreach ($users as $key => $value) {
             AloneMethod::send_red_packet($value['id']);
         }
     }
     echo "成功";
 }
Example #11
0
 public function actionBindcard()
 {
     $model = UcenterMember::find()->where('id=' . Yii::$app->user->id)->one();
     $uid = yii::$app->user->id;
     $is_bind = sinapay::isBinding($uid);
     if ($is_bind['errorNum'] == 0) {
         $result_bind = $is_bind['data'];
         $logo_bind = self::BankInfos();
     }
     $result = member::isAuthentic($uid);
     //接收验证码后进行银行卡绑定
     try {
         if (isset($_POST['bankcard']) && isset($_POST['idcard']) && isset($_POST['username']) && isset($_POST['phone']) && isset($_POST['code']) && isset($_POST['ticket']) && isset($_POST['request_no'])) {
             $valid_code = $_POST['code'];
             $request_no = $_POST['request_no'];
             $ticket = $_POST['ticket'];
             $info = sinapay::bankCardAdvance($request_no, $ticket, $valid_code);
             if ($info['errorNum'] == 0) {
                 //领取体验金
                 $rid = Rule::find()->where(['title' => '绑定银行卡', 'status' => 1])->one()->id;
                 $r_money = Rule::find()->where(['title' => '绑定银行卡', 'status' => 1])->one()->money;
                 $model_gold = new Gold();
                 $model_gold->rid = $rid;
                 $model_gold->money = $r_money;
                 $model_gold->uid = yii::$app->user->id;
                 $model_gold->created_at = strtotime("now");
                 $model_gold->save();
                 echo "绑卡成功";
                 exit;
             } elseif ($info['errorNum'] != 0) {
                 echo $info['errorMsg'];
                 exit;
             }
         }
     } catch (ErrorException $e) {
         echo $e->getMessage();
         exit;
     }
     //发送验证码和请求ID
     try {
         if (isset($_POST['bankcard']) && isset($_POST['idcard']) && isset($_POST['username']) && isset($_POST['phone'])) {
             $cardno = $_POST['bankcard'];
             $idcardno = $_POST['idcard'];
             $username = $_POST['username'];
             $phone = $_POST['phone'];
             try {
                 $info = sinapay::bindingBankCard($uid, $cardno, $phone);
                 echo json_encode($info);
                 exit;
             } catch (ErrorException $e) {
                 echo $e->getMessage();
                 exit;
             }
         }
     } catch (ErrorException $e) {
         echo $e->getMessage();
         exit;
     }
     if (isset($_POST['bankcard']) && isset($_POST['phone'])) {
         $cardno = $_POST['bankcard'];
         $phone = $_POST['phone'];
         $info = Balance::bindbankcard2($uid, $cardno, $phone);
         if ($info) {
             echo '绑卡成功';
             exit;
         }
     }
     $infos_rar = $this->Ucenter();
     //用户数据包
     return $this->render('bindcard', compact("infos_rar", "result", "result_bind", "model", "logo_bind"));
 }
Example #12
0
 /**
  * 给予体验金
  * @param $title
  * @param $uid
  * @return bool
  */
 public static function give_experience_gold($title, $uid)
 {
     //获取体验金规则
     $rule = Rule::find()->where(['title' => $title, 'status' => Rule::STATUS_ACTIVE])->one();
     if ($rule) {
         $rid = $rule->id;
         $r_money = $rule->money;
         //加入体验金记录表
         $model_gold = new Gold();
         $model_gold->rid = $rid;
         $model_gold->money = $r_money;
         $model_gold->uid = $uid;
         return $model_gold->save();
     }
 }
Example #13
0
 /**
  * 获取用户体验金列表
  * @param $uid
  * @param string $page
  * @param string $num
  * @return array
  */
 public static function experience_gold_log($uid, $page = '1', $num = '5')
 {
     //获取体验金列表
     $page = ($page - 1) * $num;
     $list = Gold::find()->select(['money', 'created_at', 'end_at', 'status', 'rid', 'title'])->where(['uid' => $uid])->orderBy('id desc')->limit($num)->offset($page)->asArray()->all();
     //获取用户总共数目
     $total_count = Gold::find()->where(['uid' => $uid])->count();
     //可用体验金的条数
     $available_count = Gold::find()->where(['uid' => $uid, 'status' => Gold::STATUS_ACTIVE])->andWhere(['<', 'created_at', time()])->andWhere(['>', 'end_at', time()])->count();
     //可用体验金的总金额
     $available_sum = Gold::find()->where(['uid' => $uid, 'status' => Gold::STATUS_ACTIVE])->andWhere(['<', 'created_at', time()])->andWhere(['>', 'end_at', time()])->sum('money');
     if (!$list && !$total_count) {
         $result = array('errorNum' => '1', 'errorMsg' => '无记录', 'data' => null);
         return $result;
     } elseif (!$list && $total_count) {
         $result = array('errorNum' => '1', 'errorMsg' => '暂无更多记录', 'data' => null);
         return $result;
     } else {
         foreach ($list as $key => $value) {
             //                $rule = Rule::find()->where(['id' => $value['rid']])->asArray()->one();
             //                if($rule){
             //                    unset($list[$key]['rid']);
             //                    $list[$key]['from'] = $rule['title'];
             //                }else{
             //                    $list[$key]['from'] = '';
             //                }
             $list[$key]['from'] = $list[$key]['title'] == null ? '' : $list[$key]['title'];
             if ($value['end_at'] < time()) {
                 $list[$key]['status'] = (string) Gold::STATUS_DELETED;
             }
             $list[$key]['money'] = sprintf("%.2f", $value['money']);
         }
         $available_sum = $available_sum ? sprintf('%.2f', $available_sum) : '0';
         $data = array('list' => $list, 'total_count' => $total_count, 'available_count' => $available_count, 'available_sum' => $available_sum);
         $result = array('errorNum' => '0', 'errorMsg' => 'success', 'data' => $data);
         return $result;
     }
 }
Example #14
0
 /**
  * 给予体验金
  * @param $title
  * @param $uid
  * @return bool
  */
 public static function give_experience_gold($tid, $uid)
 {
     //获取体验金规则
     $rule = Rule::find()->where(['id' => $tid, 'status' => Rule::STATUS_ACTIVE])->one();
     if ($rule !== null) {
         $rid = $rule->id;
         //规则金额
         $r_money = $rule->money;
         //规则时间
         $rule_time = $rule->time;
         //规则标题
         $title = $rule->title;
         //加入体验金记录表
         $model_gold = new Gold();
         $model_gold->rid = $rid;
         $model_gold->money = $r_money;
         $model_gold->uid = $uid;
         $model_gold->title = $title;
         $model_gold->end_at = time() + $rule_time * 24 * 3600;
         $model_gold->save();
     }
 }