post); if(!empty($user_name)&&!empty($user_pwd)&&!empty($confirm_pwd)&&!empty($nick_name)&&!empty($user_model_id)&&!empty($code)) { $refer_page = $this->post[Yii::$app->params['referPageName']]; $patternEmail = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/'; $patternMobile = '/^1[3456789]{1}\d{9}$/'; if(preg_match($patternEmail,$user_name)) $toType = 'email'; if(preg_match($patternMobile,$user_name)) $toType='mobile'; //判断手机是否存在 if($toType=='mobile') { $user = User::find()->where("mobile='".$user_name."'")->one(); if($user) { return [ 'error' => 1, 'msg' => '该手机号已被使用', 'data' => [], 'code'=>200 ]; } } //判断邮箱是否存在 if($toType=='email') { $user = User::find()->where("email='".$user_name."'")->one(); if($user) { return [ 'error' => 1, 'msg' => '该邮箱已被使用', 'data' => [], 'code'=>200 ]; } } //判断昵称是否存在 if($nick_name){ $user = User::find()->where("nick_name='".$nick_name."'")->one(); if($user) { return [ 'error' => 1, 'msg' => '该昵称已被使用', 'data' => [], 'code'=>200 ]; } } //校验2次密码 if($user_pwd){ if($user_pwd!=$confirm_pwd) { return [ 'error' => 1, 'msg' => '两次密码不一致', 'data' => [], 'code'=>200 ]; } } //验证码校验 $result = $this->checkCode($user_name,$code); if(!empty($result)) { return $result; } $max_user = User::find()->orderBy(['user_id'=>SORT_DESC])->one(); $user = new User(); $user->request_from = REQUEST_FROM; $user->nick_name = $nick_name; $user->user_name = $this->baseconfig['username_pre'].str_pad($max_user->user_id+1,10,'0',STR_PAD_LEFT); if($toType=='mobile') $user->mobile = $user_name; if($toType=='email') $user->email = $user_name; $user->content_model_id = $user_model_id; $user->group_id = getDefaultUserGroup($user_model_id);//默认用户组 $user->user_group_level = getDefaultUserGroupLevel($user_model_id);//默认用户等级 //分销推荐人之间关联 $share_no = $this->post[Yii::$app->params['shareArgName']];//用于分销的参数 if(!empty($share_no)) { $shareResult = getReferIdsByShareNo($share_no); $user->referer_id = $shareResult['referer_id']; $user->referer_ids = $shareResult['referer_ids']; } else { $user->referer_id = 0; } $user->user_pwd = $this->post['user_pwd']?generatePwd($this->post['user_pwd']):''; $user->register_time = TIMESTAMP; if($user->save()) { //邀请注册奖励积分 if($this->pointconfig['invite_register_prize']>0&&$user->referer_id) { Wallet::pointChange($user->referer_id,$this->pointconfig['invite_register_prize'],'邀请注册',1,'point'); } //绑定手机奖励积分 if($toType=='mobile'&&$this->pointconfig['bindmobile_prize']>0) { Wallet::pointChange($user->user_id,$this->pointconfig['bindmobile_prize'],'绑定手机',1,'point'); } //绑定邮箱奖励积分 if($toType=='email'&&$this->pointconfig['bindemail_prize']>0) { Wallet::pointChange($user->user_id,$this->pointconfig['bindemail_prize'],'绑定邮箱',1,'point'); } $tableName = userDetailTable($user_model_id); $sql = "insert into $tableName set user_id=".$user->user_id.""; Yii::$app->db->createCommand($sql)->execute(); //百度竞价跟踪 $bd_vid = \app\common\helpers\Cookie::getCookie('bd_vid'); if(!empty($bd_vid)) { $token = $this->higherconfig['reg_cpc_token']; if(!empty($token)) { $cv = array( 'logidUrl' => APP_URL.'?bd_vid='.$bd_vid, // 您的落地页url 'newType' => 49 // 转化类型请按实际情况填写 ); $conversionTypes = array($cv); $baiducpc = new \app\common\components\BaiduCpc(); $baiducpc->sendConvertData($token, $conversionTypes); } } $tokenObj = $user->generateAccessToken($user,REQUEST_FROM); $access_token = $user->access_token; return [ 'error' => 0, 'msg' => '恭喜您,注册成功!页面跳转中...', 'data' => ['refer_page'=>$refer_page,'access_token'=>$access_token,'access_token_expire_time'=>$tokenObj->create_time+Yii::$app->params['apiTokenExpire']], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '注册失败', 'data' => ['refer_page'=>$refer_page], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '请完善表单', 'data' => [], 'code'=>200 ]; } } //普通账号登录 public function actionLogin() { extract($this->post); if(empty($user_name)||empty($user_pwd)) { return [ 'error' => 1, 'msg' => '请完善表单', 'data' => [], 'code'=>200 ]; } else { //判断手机是否存在 $user = User::find()->where("mobile='".$user_name."' or email='".$user_name."'")->one(); if(!$user) { return [ 'error' => 1, 'msg' => '该用户不存在', 'data' => [], 'code'=>200 ]; } else { if($user->is_lock==1) { return [ 'error' => 1, 'msg' => '该用户已被锁定,禁止登录', 'data' => [], 'code'=>200 ]; } if($user->disabled==1) { return [ 'error' => 1, 'msg' => '该用户已被禁用,禁止登录', 'data' => [], 'code'=>200 ]; } if($user->is_delete==1) { return [ 'error' => 1, 'msg' => '该用户已被永久禁用,禁止登录', 'data' => [], 'code'=>200 ]; } if(empty($user->user_pwd)) { return [ 'error' => 1, 'msg' => '该用户没有设置密码,登录失败', 'data' => [], 'code'=>200 ]; } if(validatePwd($user_pwd,$user->user_pwd)) { $tokenObj = $user->generateAccessToken($user,REQUEST_FROM); $access_token = $user->access_token; $refer_page = $this->post[Yii::$app->params['referPageName']]; return [ 'error' => 0, 'msg' => '恭喜您,登录成功', 'data' => ['refer_page'=>$refer_page,'access_token'=>$access_token,'access_token_expire_time'=>$tokenObj->create_time+Yii::$app->params['apiTokenExpire']], 'code'=>200 ]; } else{ return [ 'error' => 1, 'msg' => '账号或密码错误', 'data' => [], 'code'=>200 ]; } } } } //快速登录 public function actionFastlogin() { extract($this->post); if(!empty($fast_user_name)&&!empty($code)) { $refer_page = $this->post[Yii::$app->params['referPageName']]; //验证码校验 $result = $this->checkCode($fast_user_name,$code); if(!empty($result)) { return $result; } $user = User::find()->where("mobile='".$fast_user_name."' or email='".$fast_user_name."'")->one(); if(!empty($user)) { if($user->is_lock==1) { return [ 'error' => 1, 'msg' => '该用户已被锁定,禁止登录', 'data' => [], 'code'=>200 ]; } if($user->disabled==1) { return [ 'error' => 1, 'msg' => '该用户已被禁用,禁止登录', 'data' => [], 'code'=>200 ]; } if($user->is_delete==1) { return [ 'error' => 1, 'msg' => '该用户已被永久禁用,禁止登录', 'data' => [], 'code'=>200 ]; } } else { $patternEmail = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/'; $patternMobile = '/^1[3456789]{1}\d{9}$/'; if(preg_match($patternEmail,$fast_user_name)) $toType = 'email'; if(preg_match($patternMobile,$fast_user_name)) $toType='mobile'; $max_user = User::find()->orderBy(['user_id'=>SORT_DESC])->one(); $user = new User(); $user->request_from = REQUEST_FROM; $user->nick_name = $nick_name?$nick_name:Yii::$app->params['defaultNickName']; $user->user_name = $this->baseconfig['username_pre'].str_pad($max_user->user_id+1,10,'0',STR_PAD_LEFT); if($toType=='mobile') $user->mobile = $fast_user_name; if($toType=='email') $user->email = $fast_user_name; $user->content_model_id = $user_model_id; $user->group_id = getDefaultUserGroup($user_model_id);//默认用户组 $user->user_group_level = getDefaultUserGroupLevel($user_model_id);//默认用户等级 //分销推荐人之间关联 $share_no = $this->post[Yii::$app->params['shareArgName']];//用于分销的参数 if(!empty($share_no)) { $shareResult = getReferIdsByShareNo($share_no); $user->referer_id = $shareResult['referer_id']; $user->referer_ids = $shareResult['referer_ids']; } else { $user->referer_id = 0; } $user->register_time = TIMESTAMP; if($user->save()) { //邀请注册奖励积分 if($this->pointconfig['invite_register_prize']>0&&$user->referer_id) { Wallet::pointChange($user->referer_id,$this->pointconfig['invite_register_prize'],'邀请注册',1,'point'); } //绑定手机奖励积分 if($toType=='mobile'&&$this->pointconfig['bindmobile_prize']>0) { Wallet::pointChange($user->user_id,$this->pointconfig['bindmobile_prize'],'绑定手机',1,'point'); } //绑定邮箱奖励积分 if($toType=='email'&&$this->pointconfig['bindemail_prize']>0) { Wallet::pointChange($user->user_id,$this->pointconfig['bindemail_prize'],'绑定邮箱',1,'point'); } $tableName = userDetailTable($user_model_id); $sql = "insert into $tableName set user_id=".$user->user_id.""; Yii::$app->db->createCommand($sql)->execute(); //百度竞价跟踪 $bd_vid = \app\common\helpers\Cookie::getCookie('bd_vid'); if(!empty($bd_vid)) { $token = $this->higherconfig['reg_cpc_token']; if(!empty($token)) { $cv = array( 'logidUrl' => APP_URL.'?bd_vid='.$bd_vid, // 您的落地页url 'newType' => 49 // 转化类型请按实际情况填写 ); $conversionTypes = array($cv); $baiducpc = new \app\common\components\BaiduCpc(); $baiducpc->sendConvertData($token, $conversionTypes); } } } else { return [ 'error' => 1, 'msg' => $user->returnFirstError(), 'data' => [], 'code'=>200 ]; } } $tokenObj = $user->generateAccessToken($user,REQUEST_FROM); $access_token = $user->access_token; return [ 'error' => 0, 'msg' => '恭喜您,登录成功!页面跳转中...', 'data' => ['refer_page'=>$refer_page,'access_token'=>$access_token,'access_token_expire_time'=>$tokenObj->create_time+Yii::$app->params['apiTokenExpire']], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '请完善表单', 'data' => [], 'code'=>200 ]; } } //重置密码 public function actionResetpwd() { extract($this->post); if(!empty($hash)&&!empty($user_pwd)) { $user_name = sys_auth($hash,'DECODE'); $user = User::find()->where("mobile='".$user_name."' or email='".$user_name."'")->one(); if(!empty($user)) { if($user->is_lock==1) { return [ 'error' => 1, 'msg' => '该用户已被锁定,禁止操作', 'data' => [], 'code'=>200 ]; } if($user->disabled==1) { return [ 'error' => 1, 'msg' => '该用户已被禁用,禁止操作', 'data' => [], 'code'=>200 ]; } if($user->is_delete==1) { return [ 'error' => 1, 'msg' => '该用户已被永久禁用', 'data' => [], 'code'=>200 ]; } $user->user_pwd = generatePwd($user_pwd); if($user->save()) { return [ 'error' => 0, 'msg' => '修改成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '修改失败', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '用户不存在', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '请完善表单', 'data' => [], 'code'=>200 ]; } } //修改个人基本资料 public function actionChangeuserinfo() { if($this->user) { if($this->user->load($this->post)){ if($this->user->save()) { Attachment::relateAttachmentByTable($this->user->avatar,'user','avatar',$this->user->user_id); } } return [ 'error' => 0, 'msg' => '修改成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '修改失败', 'data' => [], 'code'=>200 ]; } } //修改密码 public function actionChangepwd() { if($this->user) { if(validatePwd($this->post['old_pwd'],$this->user->user_pwd)) { $this->user->user_pwd = generatePwd($this->post['user_pwd']); if($this->user->save()) { return [ 'error' => 0, 'msg' => '修改成功,请重新登录', 'data' => ['url'=>self::urlList('logout')], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '修改失败', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '原密码错误', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '修改失败', 'data' => [], 'code'=>200 ]; } } //绑定手机或邮箱 public function actionBindemailorphone() { extract($this->post); if(!empty($emailorphone)&&!empty($code)) { $patternEmail = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/'; $patternMobile = '/^1[3456789]{1}\d{9}$/'; if(preg_match($patternEmail,$emailorphone)) $toType = 'email'; if(preg_match($patternMobile,$emailorphone)) $toType='mobile'; //验证码校验 $result = $this->checkCode($emailorphone,$code); if(!empty($result)) { return $result; } if($toType=='mobile') { $user = User::find()->where("mobile='".$emailorphone."'")->one(); if($user) { return [ 'error' => 1, 'msg' => '该手机号已被使用', 'data' => [], 'code'=>200 ]; } //绑定手机奖励积分 if($this->pointconfig['bindmobile_prize']>0) { Wallet::pointChange($this->user_id,$this->pointconfig['bindmobile_prize'],'绑定手机',1,'point'); } $this->user->mobile = $emailorphone; } if($toType=='email') { $user = User::find()->where("email='".$emailorphone."'")->one(); if($user) { return [ 'error' => 1, 'msg' => '该邮箱已被使用', 'data' => [], 'code'=>200 ]; } //绑定邮箱积分奖励 if($this->pointconfig['bindemail_prize']>0) { Wallet::pointChange($this->user_id,$this->pointconfig['bindemail_prize'],'绑定邮箱',1,'point'); } $this->user->email = $emailorphone; } if($this->user->save()) { return [ 'error' => 0, 'msg' => '绑定成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '修改失败', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '请完善表单', 'data' => [], 'code'=>200 ]; } } //认证申请 public function actionCert() { $cert_type = intval($this->post['cert_type']); if(!empty($cert_type)) { $model = UserApplyCert::find()->where("user_id=".$this->user->user_id." and cert_type=$cert_type")->one(); if(empty($model)){ $model = new UserApplyCert(); $model->create_time = TIMESTAMP; $model->cert_type = $cert_type; } $model->user_id = $this->user->user_id; $model->cert_type = $cert_type; $model->cert_info = array2string($this->post['cert_info']); $model->process = 0; $model->process_result = 0; $model->update_time = TIMESTAMP; if($model->save()) { Attachment::relateAttachmentByTable($this->post['cert_info']['idcard_img'],'user_apply_cert','idcard_img',$model->id); Attachment::relateAttachmentByTable($this->post['cert_info']['idcard_img_v'],'user_apply_cert','idcard_img_v',$model->id); Attachment::relateAttachmentByTable($this->post['cert_info']['com_idcard'],'user_apply_cert','com_idcard_img',$model->id); $msgdata = [ 'error' => 0, 'msg' => '操作成功', 'data'=>[], 'code'=>'200', ]; } else { $msgdata = [ 'error' =>1, 'msg' => $model->returnFirstError(), 'data'=>[], 'code'=>'200', ]; } return $msgdata; } else { return [ 'error' => 1, 'msg' => '请完善表单', 'data' => [], 'code'=>200 ]; } } //删除认证申请 public function actionDelcert() { $cert_type = intval($this->post['cert_type']); if(!empty($cert_type)) { $model = UserApplyCert::find()->where("user_id=".$this->user->user_id." and cert_type=$cert_type")->one(); if(empty($model)) { $msgdata = [ 'error' =>1, 'msg' => '操作失败', 'data'=>[], 'code'=>'200', ]; } else { if($model->delete()) { Attachment::releaseAttachmentByTable($model->id,'user_apply_cert','idcard_img'); Attachment::releaseAttachmentByTable($model->id,'user_apply_cert','idcard_img_v'); Attachment::releaseAttachmentByTable($model->id,'user_apply_cert','com_idcard_img'); $msgdata = [ 'error' => 0, 'msg' => '操作成功', 'data'=>[], 'code'=>'200', ]; } else { $msgdata = [ 'error' =>1, 'msg' => '操作失败', 'data'=>[], 'code'=>'200', ]; } } return $msgdata; } else { return [ 'error' => 1, 'msg' => '请完善表单', 'data' => [], 'code'=>200 ]; } } //兑换VIP public function actionUsevipcoupon() { $coupon_no = intval($this->post['coupon_no']); if(!empty($coupon_no)) { $userVipCoupon = UserVipCoupon::find()->where("coupon_no='".$coupon_no."'")->one(); if($userVipCoupon&&empty($userVipCoupon->use_time)&&empty($userVipCoupon->user_id)) { //VIP类型 $userVipType = UserVipType::findOne($userVipCoupon->vip_type); $vipSettings = string2array($userVipType->settings); //创建订单 $order = new ShoppingOrder(); $order->user_id = $this->user_id; $order->order_sn = getUniOrderNo(); $order->pay_credit = 'uservipcoupon_'.$userVipCoupon->vip_type; $order->total_price = $userVipCoupon->payed_money; $order->discount_price = 0; $order->remark = '兑换'.$userVipType->title; $order->order_type = 3; $order->status = 1; $order->pay_time = TIMESTAMP; $order->request_from = REQUEST_FROM; $order->create_time = TIMESTAMP; if($order->save()) { $userVipOrder = new UserVipOrder(); $userVipOrder->order_id = $order->order_id; $userVipOrder->user_id = $this->user_id; $userVipOrder->vip_type = $userVipCoupon->vip_type; $userVipOrder->money = $userVipCoupon->payed_money; $userVipOrder->days = $userVipType->days; $userVipOrder->settings = $userVipType->settings; $userVipOrder->expire_time = $userVipType->forever==1?0:TIMESTAMP+$userVipType->days*24*3600; $userVipOrder->create_time = TIMESTAMP; $userVipOrder->status = 1; if($userVipOrder->save()) { $userVipCoupon->user_id = $this->user_id; $userVipCoupon->used = 1; $userVipCoupon->use_time = TIMESTAMP; $userVipCoupon->save(); //如果有赠送金币 if(intval($vipSettings['coin_num'])>0) { Wallet::coinChange($this->user_id,$vipSettings['coin_num'],'开通会员赠送金币',1); } return [ 'error' => 0, 'msg' => '兑换成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '兑换失败', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '兑换失败', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '无效兑换码', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '缺少兑换码', 'data' => [], 'code'=>200 ]; } } //加入收藏 public function actionDofavor() { extract($this->post); if(empty($table_name)||empty($data_id)||empty($tips)) { return [ 'error' => 1, 'msg' => '缺少必要参数', 'data' => [], 'code'=>200 ]; } else { $primaryKey = getPrikeyByTableName($table_name); $model = UserFavorite::find()->where("user_id=".$this->user_id." and table_name='".$table_name."' and data_id=".$data_id)->one(); if($model) { if($primaryKey) { //关注用户时候的特殊处理 if($table_name=='user') { $userInfo = Identify::getUserInfo($data_id); $user_table = str_replace(Yii::$app->db->tablePrefix,'',userDetailTable($userInfo['content_model_id'])); $sqlbuf = "update {{%".$user_table."}} set fans_num=fans_num-1 where $primaryKey = ".$data_id.""; } else { $sqlbuf = "update {{%".$table_name."}} set favors=favors-1 where $primaryKey = ".$data_id.""; } Yii::$app->db->createCommand($sqlbuf)->execute(); } $model->delete(); return [ 'error' => 0, 'msg' => '您已取消'.$tips, 'data' => ['text'=>$tips], 'code'=>200 ]; } else { $model = new UserFavorite(); $model->table_name = $table_name; $model->data_id = $data_id; $model->cat_id = intval($cat_id); $model->user_id = $this->user_id; $model->create_time = TIMESTAMP; if($model->save()) { if($primaryKey) { //关注用户时候的特殊处理 if($table_name=='user') { $userInfo = Identify::getUserInfo($data_id); $user_table = str_replace(Yii::$app->db->tablePrefix,'',userDetailTable($userInfo['content_model_id'])); $sqlbuf = "update {{%".$user_table."}} set fans_num=fans_num+1 where $primaryKey = ".$data_id.""; } else { $sqlbuf = "update {{%".$table_name."}} set favors=favors+1 where $primaryKey = ".$data_id.""; } Yii::$app->db->createCommand($sqlbuf)->execute(); } return [ 'error' => 0, 'msg' => $tips.'成功', 'data' => ['text'=>'已'.$tips], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '操作失败', 'data' => [], 'code'=>200 ]; } } } } //评分 public function actionDostars() { extract($this->post); if(empty($table_name)||empty($data_id)) { return [ 'error' => 1, 'msg' => '缺少必要参数', 'data' => [], 'code'=>200 ]; } else { $model = UserStars::find()->where("user_id=".$this->user_id." and table_name='".$this->post['table_name']."' and data_id=".$this->post['data_id'])->one(); if($model) { return [ 'error' => 0, 'msg' => '您已提交过评分', 'data' => [], 'code'=>200 ]; } else { if($table_name=='doc_real') { $payed = DocPaylog::find()->where("user_id=".$this->user_id." and doc_id=".$this->post['data_id'])->exists(); if(!$payed){ return [ 'error' => 0, 'msg' => '您还没有下载该'.$this->docname.',暂无评分权限', 'data' => [], 'code'=>200 ]; } } $model = new UserStars(); $model->table_name = $table_name; $model->data_id = $data_id; $model->user_id = $this->user_id; $model->score = $this->post['stars']; $model->create_time = TIMESTAMP; if($model->save()) { $avgScore = UserStars::find()->where("table_name='".$this->post['table_name']."' and data_id=".$this->post['data_id'])->average('score'); $stars = intval($avgScore); $primaryKey = getPrikeyByTableName($table_name); $sqlbuf = "update {{%".$table_name."}} set stars=$stars where $primaryKey = ".$data_id.""; Yii::$app->db->createCommand($sqlbuf)->execute(); return [ 'error' => 0, 'msg' => '评分成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '评分失败', 'data' => [], 'code'=>200 ]; } } } } //举报侵权 public function actionDoreport() { extract($this->post); if(empty($table_name)||empty($data_id)||empty($type)||empty($description)||empty($contact)||empty($from_url)) { return [ 'error' => 1, 'msg' => '缺少必要参数', 'data' => [], 'code'=>200 ]; } else { $model = UserReport::find()->where("user_id=".$this->user_id." and table_name='".$this->post['table_name']."' and data_id=".$this->post['data_id'])->one(); if($model) { return [ 'error' => 0, 'msg' => '您已举报过,请勿重复提交', 'data' => [], 'code'=>200 ]; } else { $model = new UserReport(); $model->table_name = $table_name; $model->data_id = $data_id; $model->user_id = $this->user_id; $model->type = $type; $model->contact = $contact; $model->description = $description; $model->from_url = $from_url; $model->create_time = TIMESTAMP; if($model->save()) { return [ 'error' => 0, 'msg' => '举报成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => $model->returnFirstError(), 'data' => [], 'code'=>200 ]; } } } } //积分兑换金币 public function actionPointswitch() { extract($this->post); if(empty($coin_num)) { return [ 'error' => 1, 'msg' => '缺少必要参数', 'data' => [], 'code'=>200 ]; } else { $point_num = $this->pointconfig['point2coin_rate']*$coin_num; if($this->userInfo['point']<$point_num) { return [ 'error' => 1, 'msg' => $this->pointconfig['point_name'].'不足,兑换失败', 'data' => [], 'code'=>200 ]; } else { Wallet::pointChange($this->user_id,$point_num,'兑换'.$this->coinconfig['coin_name'],2,'point'); Wallet::coinChange($this->user_id,$coin_num,'兑换'.$this->coinconfig['coin_name'],1,'coin'); return [ 'error' => 0, 'msg' => '兑换成功', 'data' => [], 'code'=>200 ]; } } } //消息标记已读 public function actionReadmsg() { $ids = Yii::$app->request->get('ids'); $ids = !empty($ids)?explode(",",$ids):[$this->get['m_id']]; if(!empty($ids)){ foreach($ids as $m_id){ $message = Message::findOne($m_id); if(empty($message))continue; if($message->message_type==0&&$this->user_id!=$message->to_user) { return [ 'error' => 1, 'msg' => '暂无操作权限', 'data' => [], 'code'=>200 ]; } if($message->message_type==1) { $messageRead = MessageRead::find()->where("user_id=".$this->user_id." and m_id=".$m_id)->one(); if(empty($messageRead)) { $messageRead = new MessageRead(); $messageRead->user_id = $this->user_id; $messageRead->m_id = $m_id; $messageRead->read_time = TIMESTAMP; $messageRead->save(); } } else { $message->have_read = 1; $message->save(); } } return [ 'error' => 0, 'msg' => '操作成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '操作失败', 'data' => [], 'code'=>200 ]; } } //删除消息 public function actionDelmsg() { $ids = Yii::$app->request->get('ids'); $ids = !empty($ids)?explode(",",$ids):[$this->get['m_id']]; if(!empty($ids)){ foreach($ids as $m_id){ $message = Message::findOne($m_id); if(empty($message))continue; if($message->message_type==0&&$this->user_id!=$message->to_user) { return [ 'error' => 1, 'msg' => '暂无操作权限', 'data' => [], 'code'=>200 ]; } if($message->message_type==1) { $messageRead = MessageRead::find()->where("user_id=".$this->user_id." and m_id=".$m_id)->one(); if(empty($messageRead)) { $messageRead = new MessageRead(); $messageRead->user_id = $this->user_id; $messageRead->m_id = $m_id; $messageRead->read_time = TIMESTAMP; $messageRead->is_delete = 1; } else { $messageRead->is_delete = 1; } $messageRead->save(); } else { $message->to_delete = 1; $message->save(); } } return [ 'error' => 0, 'msg' => '操作成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '操作失败', 'data' => [], 'code'=>200 ]; } } //设置提现账户 public function actionSetbank() { $tableName = userDetailTable($this->userInfo['content_model_id']); if($this->post['alipay_name']&&$this->post['alipay_account']) { $sql = "update $tableName set alipay_account='".$this->post['alipay_account']."',alipay_name='".$this->post['alipay_name']."' where user_id=".$this->user_id.""; Yii::$app->db->createCommand($sql)->execute(); return [ 'error' => 0, 'msg' => '操作成功', 'data' => [], 'code'=>200 ]; } else if($this->post['bank_real_name']&&$this->post['bank_name']&&$this->post['bank_no']) { $sql = "update $tableName set bank_real_name='".$this->post['bank_real_name']."',bank_name='".$this->post['bank_name']."',bank_no='".$this->post['bank_no']."' where user_id=".$this->user_id.""; Yii::$app->db->createCommand($sql)->execute(); return [ 'error' => 0, 'msg' => '操作成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '操作失败', 'data' => [], 'code'=>200 ]; } } //申请提现 public function actionWithdraw() { $money = $this->post['money']; $bank_type = $this->post['bank_type']; if($money&&$bank_type) { if($money<$this->withdrawconfig['min_money']) { return [ 'error' => 1, 'msg' => '操作失败,最低提现金额'.$this->withdrawconfig['min_money'].'元', 'data' => [], 'code'=>200 ]; } if($money>$this->userInfo['money']) { return [ 'error' => 1, 'msg' => '操作失败,余额不足', 'data' => $this->post, 'code'=>200 ]; } //处理提现逻辑 $bankInfo = getWithdrawBank($this->userInfo,$bank_type); $fee = $money*($this->withdrawconfig['fee']/100); $real_money = $money-$fee; $withdraw = new UserWithdraw(); $withdraw->user_id = $this->user_id; $withdraw->title = $bankInfo['title']; $withdraw->real_name = $bankInfo['real_name']; $withdraw->account = $bankInfo['account']; $withdraw->money = $money; $withdraw->real_money = $real_money; $withdraw->fee = $fee; $withdraw->create_time = TIMESTAMP; if($withdraw->save()) { //扣除用户可用余额 Wallet::moneyChange($this->user_id,$money,'申请提现',2); return [ 'error' => 0, 'msg' => '操作成功', 'data' => [], 'code'=>200 ]; } else { return [ 'error' => 1, 'msg' => '操作失败', 'data' => [], 'code'=>200 ]; } } else { return [ 'error' => 1, 'msg' => '操作失败', 'data' => [], 'code'=>200 ]; } } //切换个人主页开启状态 public function actionSwitchhome() { if($this->user->open_home==1) { $this->user->open_home = 0; $text = '开启'; } else { $this->user->open_home = 1; $text = '关闭'; } $this->user->save(); return [ 'error' => 0, 'msg' => '操作成功', 'data' => ['text'=>$text], 'code'=>200 ]; } //金币兑换现金 public function actionCoinswitch() { extract($this->post); if(empty($coin_num)) { return [ 'error' => 1, 'msg' => '缺少必要参数', 'data' => [], 'code'=>200 ]; } else { $money = $this->userInfo['group_rights']['income_rate']*$coin_num; if($this->userInfo['coin_income']<$coin_num) { return [ 'error' => 1, 'msg' => $this->coinconfig['coin_name'].'不足,兑换失败', 'data' => [], 'code'=>200 ]; } else { if($coin_num<$this->coinconfig['min_trans_coin']) { return [ 'error' => 1, 'msg' => '每次至少兑换'.$this->coinconfig['min_trans_coin'].$this->coinconfig['coin_name'], 'data' => [], 'code'=>200 ]; } else { Wallet::coinChange($this->user_id,$coin_num,'兑换现金',2,'coin_income'); Wallet::moneyChange($this->user_id,$money,$this->coinconfig['coin_name'].'兑换',1); return [ 'error' => 0, 'msg' => '兑换成功', 'data' => [], 'code'=>200 ]; } } } } }