|
@@ -273,7 +273,7 @@ class Usercenter extends Api
|
|
|
}
|
|
|
|
|
|
//某用户的礼物墙
|
|
|
- public function giftwall($uid){
|
|
|
+ private function giftwall($uid){
|
|
|
//$uid = $this->auth->id;
|
|
|
//聊天礼物
|
|
|
$gift_user_typing = Db::name('gift_user_typing')->alias('log')
|
|
@@ -514,348 +514,6 @@ class Usercenter extends Api
|
|
|
$this->success('success');
|
|
|
}
|
|
|
|
|
|
- //视频通话每分钟调用一次
|
|
|
- public function video_onemin(){
|
|
|
- //检测用户
|
|
|
- $to_user_id = input_post('to_user_id');
|
|
|
- $to_user_info = Db::name('user')->field('id,real_status,gender,free_video,free_audio,free_typing')->where('id',$to_user_id)->find();
|
|
|
- if(!$to_user_info){
|
|
|
- $this->error('不存在的用户');
|
|
|
- }
|
|
|
-
|
|
|
- //正常价格
|
|
|
- $price = config('site.video_min_price'); //扣费金币
|
|
|
- $bili = config('site.money_to_gold'); //兑换比例
|
|
|
- $gift_plat_scale = config('site.gift_plat_scale'); //抽成比例
|
|
|
- $money = bcdiv($price,$bili,2); //对应人民币
|
|
|
- $money = bcdiv(bcmul($money,100 - $gift_plat_scale,2),100,2); //抽成后收益
|
|
|
-
|
|
|
- //发起用户的分数,被发起用户的分数。按性别给分
|
|
|
- $auth_level = 0;
|
|
|
- $tous_level = 0;
|
|
|
-
|
|
|
- //打分
|
|
|
- if($this->auth->gender == 0 && $this->auth->real_status == 1){
|
|
|
- $auth_level = 30;//实名女最高
|
|
|
- }
|
|
|
- if($this->auth->gender == 0 && $this->auth->real_status != 1){
|
|
|
- $auth_level = 20;//未实名女次之
|
|
|
- }
|
|
|
- if($this->auth->gender == 1){
|
|
|
- $auth_level = 10;//男性最低
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 0 && $to_user_info['real_status'] == 1){
|
|
|
- $tous_level = 30;
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 0 && $to_user_info['real_status'] != 1){
|
|
|
- $tous_level = 20;
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 1){
|
|
|
- $tous_level = 10;
|
|
|
- }
|
|
|
-
|
|
|
- //同性不收钱
|
|
|
- //都是男的,不扣钱
|
|
|
- //都是实名认证的女性,不扣钱
|
|
|
- //都是未实名认证的女性,不扣钱
|
|
|
- if($auth_level == $tous_level){
|
|
|
- $price = 0;$money = 0;
|
|
|
- }
|
|
|
-
|
|
|
- Db::startTrans();
|
|
|
- //记录日志
|
|
|
- $data = [
|
|
|
- 'user_id' => $this->auth->id,
|
|
|
- 'price' => $price,
|
|
|
- 'createtime' => time(),
|
|
|
- 'to_user_id' => $to_user_id,
|
|
|
- 'money' => $money,
|
|
|
- ];
|
|
|
-
|
|
|
- $log_id = Db::name('user_match_video_log')->insertGetId($data);
|
|
|
- if(!$log_id){
|
|
|
- Db::rollback();
|
|
|
- $this->error('扣费失败');
|
|
|
- }
|
|
|
-
|
|
|
- //同性别,提前结束
|
|
|
- if($auth_level == $tous_level){
|
|
|
- Db::commit();
|
|
|
- $this->success('success');
|
|
|
- }
|
|
|
-
|
|
|
- //扣钱uid,收钱uid,收钱free_video
|
|
|
- //分数少扣钱,分数多收益
|
|
|
- if($auth_level < $tous_level){
|
|
|
- $kou_user = $this->auth->id;
|
|
|
- $get_user = $to_user_info['id'];
|
|
|
- $get_user_free = $to_user_info['free_video'];
|
|
|
- }else{
|
|
|
- $kou_user = $to_user_info['id'];
|
|
|
- $get_user = $this->auth->id;
|
|
|
- $get_user_free = $this->auth->free_video;
|
|
|
- }
|
|
|
-
|
|
|
- //需要扣别人的钱,判断钱是否购
|
|
|
- if($price > 0 && $kou_user != $this->auth->id){
|
|
|
- $gold = model('wallet')->getWallet($kou_user,'gold');
|
|
|
- if(bccomp($price,$gold) == 1){
|
|
|
- Db::rollback();
|
|
|
- $this->error('对方金币不足');
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //有性别差,扣费
|
|
|
- if($price > 0){
|
|
|
- $rs = model('wallet')->lockChangeAccountRemain($kou_user, $get_user,'gold',-$price,11,'','user_match_video_log',$log_id);
|
|
|
- if($rs['status'] === false){
|
|
|
- Db::rollback();
|
|
|
- $this->error($rs['msg']);
|
|
|
- }
|
|
|
- }
|
|
|
- //另一方加钱,0收费
|
|
|
- if($money > 0 && $get_user_free == 0){
|
|
|
- $rs = model('wallet')->lockChangeAccountRemain($get_user,$kou_user,'money',$money,21,'','user_match_video_log',$log_id);
|
|
|
- if($rs['status'] === false){
|
|
|
- Db::rollback();
|
|
|
- $this->error($rs['msg']);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- Db::commit();
|
|
|
- $this->success('success');
|
|
|
- }
|
|
|
- //语音通话每分钟调用一次
|
|
|
- public function audio_onemin(){
|
|
|
- //检测用户
|
|
|
- $to_user_id = input_post('to_user_id');
|
|
|
- $to_user_info = Db::name('user')->field('id,real_status,gender,free_video,free_audio,free_typing')->where('id',$to_user_id)->find();
|
|
|
- if(!$to_user_info){
|
|
|
- $this->error('不存在的用户');
|
|
|
- }
|
|
|
-
|
|
|
- //正常价格
|
|
|
- $price = config('site.audio_min_price'); //扣费金币
|
|
|
- $bili = config('site.money_to_gold'); //兑换比例
|
|
|
- $gift_plat_scale = config('site.gift_plat_scale'); //抽成比例
|
|
|
- $money = bcdiv($price,$bili,2); //对应人民币
|
|
|
- $money = bcdiv(bcmul($money,100 - $gift_plat_scale,2),100,2); //抽成后收益
|
|
|
-
|
|
|
- //发起用户的分数,被发起用户的分数。按性别给分
|
|
|
- $auth_level = 0;
|
|
|
- $tous_level = 0;
|
|
|
-
|
|
|
- //打分
|
|
|
- if($this->auth->gender == 0 && $this->auth->real_status == 1){
|
|
|
- $auth_level = 30;//实名女最高
|
|
|
- }
|
|
|
- if($this->auth->gender == 0 && $this->auth->real_status != 1){
|
|
|
- $auth_level = 20;//未实名女次之
|
|
|
- }
|
|
|
- if($this->auth->gender == 1){
|
|
|
- $auth_level = 10;//男性最低
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 0 && $to_user_info['real_status'] == 1){
|
|
|
- $tous_level = 30;
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 0 && $to_user_info['real_status'] != 1){
|
|
|
- $tous_level = 20;
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 1){
|
|
|
- $tous_level = 10;
|
|
|
- }
|
|
|
-
|
|
|
- //同性不收钱
|
|
|
- //都是男的,不扣钱
|
|
|
- //都是实名认证的女性,不扣钱
|
|
|
- //都是未实名认证的女性,不扣钱
|
|
|
- if($auth_level == $tous_level){
|
|
|
- $price = 0;$money = 0;
|
|
|
- }
|
|
|
-
|
|
|
- Db::startTrans();
|
|
|
- //记录日志
|
|
|
- $data = [
|
|
|
- 'user_id' => $this->auth->id,
|
|
|
- 'price' => $price,
|
|
|
- 'createtime' => time(),
|
|
|
- 'to_user_id' => $to_user_id,
|
|
|
- 'money' => $money,
|
|
|
- ];
|
|
|
-
|
|
|
- $log_id = Db::name('user_match_audio_log')->insertGetId($data);
|
|
|
- if(!$log_id){
|
|
|
- Db::rollback();
|
|
|
- $this->error('扣费失败');
|
|
|
- }
|
|
|
-
|
|
|
- //同性别,提前结束
|
|
|
- if($auth_level == $tous_level){
|
|
|
- Db::commit();
|
|
|
- $this->success('success');
|
|
|
- }
|
|
|
-
|
|
|
- //扣钱uid,收钱uid,收钱free_video
|
|
|
- //分数少扣钱,分数多收益
|
|
|
- if($auth_level < $tous_level){
|
|
|
- $kou_user = $this->auth->id;
|
|
|
- $get_user = $to_user_info['id'];
|
|
|
- $get_user_free = $to_user_info['free_audio'];
|
|
|
- }else{
|
|
|
- $kou_user = $to_user_info['id'];
|
|
|
- $get_user = $this->auth->id;
|
|
|
- $get_user_free = $this->auth->free_audio;
|
|
|
- }
|
|
|
-
|
|
|
- //需要扣别人的钱,判断钱是否购
|
|
|
- if($price > 0 && $kou_user != $this->auth->id){
|
|
|
- $gold = model('wallet')->getWallet($kou_user,'gold');
|
|
|
- if(bccomp($price,$gold) == 1){
|
|
|
- Db::rollback();
|
|
|
- $this->error('对方金币不足');
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //有性别差,扣费
|
|
|
- if($price > 0){
|
|
|
- $rs = model('wallet')->lockChangeAccountRemain($kou_user,$get_user,'gold',-$price,12,'','user_match_audio_log',$log_id);
|
|
|
- if($rs['status'] === false){
|
|
|
- Db::rollback();
|
|
|
- $this->error($rs['msg']);
|
|
|
- }
|
|
|
- }
|
|
|
- //另一方加钱,0收费
|
|
|
- if($money > 0 && $get_user_free == 0){
|
|
|
- $rs = model('wallet')->lockChangeAccountRemain($get_user, $kou_user,'money',$money,22,'','user_match_audio_log',$log_id);
|
|
|
- if($rs['status'] === false){
|
|
|
- Db::rollback();
|
|
|
- $this->error($rs['msg']);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- Db::commit();
|
|
|
- $this->success('success');
|
|
|
- }
|
|
|
- //打字聊天每句话调用一次
|
|
|
- public function typing_once(){
|
|
|
- //检测用户
|
|
|
- $to_user_id = input_post('to_user_id');
|
|
|
- $to_user_info = Db::name('user')->field('id,real_status,gender,free_video,free_audio,free_typing')->where('id',$to_user_id)->find();
|
|
|
- if(!$to_user_info){
|
|
|
- $this->error('不存在的用户');
|
|
|
- }
|
|
|
-
|
|
|
- //正常价格
|
|
|
- $price = config('site.typing_min_price'); //扣费金币
|
|
|
- $bili = config('site.money_to_gold'); //兑换比例
|
|
|
- $gift_plat_scale = config('site.gift_plat_scale'); //抽成比例
|
|
|
- $money = bcdiv($price,$bili,2); //对应人民币
|
|
|
- $money = bcdiv(bcmul($money,100 - $gift_plat_scale,2),100,2); //抽成后收益
|
|
|
-
|
|
|
- //发起用户的分数,被发起用户的分数。按性别给分
|
|
|
- $auth_level = 0;
|
|
|
- $tous_level = 0;
|
|
|
-
|
|
|
- //打分
|
|
|
- if($this->auth->gender == 0 && $this->auth->real_status == 1){
|
|
|
- $auth_level = 30;//实名女最高
|
|
|
- }
|
|
|
- if($this->auth->gender == 0 && $this->auth->real_status != 1){
|
|
|
- $auth_level = 20;//未实名女次之
|
|
|
- }
|
|
|
- if($this->auth->gender == 1){
|
|
|
- $auth_level = 10;//男性最低
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 0 && $to_user_info['real_status'] == 1){
|
|
|
- $tous_level = 30;
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 0 && $to_user_info['real_status'] != 1){
|
|
|
- $tous_level = 20;
|
|
|
- }
|
|
|
- if($to_user_info['gender'] == 1){
|
|
|
- $tous_level = 10;
|
|
|
- }
|
|
|
-
|
|
|
- //同性不收钱
|
|
|
- //都是男的,不扣钱
|
|
|
- //都是实名认证的女性,不扣钱
|
|
|
- //都是未实名认证的女性,不扣钱
|
|
|
- if($auth_level == $tous_level){
|
|
|
- $price = 0;$money = 0;
|
|
|
- }
|
|
|
- //性别优势的人发起,免费
|
|
|
- if($auth_level > $tous_level){
|
|
|
- $price = 0;$money = 0;
|
|
|
- }
|
|
|
-
|
|
|
- Db::startTrans();
|
|
|
- //记录日志
|
|
|
- $data = [
|
|
|
- 'user_id' => $this->auth->id,
|
|
|
- 'price' => $price,
|
|
|
- 'createtime' => time(),
|
|
|
- 'to_user_id' => $to_user_id,
|
|
|
- 'money' => $money,
|
|
|
- ];
|
|
|
-
|
|
|
- $log_id = Db::name('user_match_typing_log')->insertGetId($data);
|
|
|
- if(!$log_id){
|
|
|
- Db::rollback();
|
|
|
- $this->error('扣费失败');
|
|
|
- }
|
|
|
-
|
|
|
- //同性别,提前结束
|
|
|
- if($auth_level == $tous_level){
|
|
|
- Db::commit();
|
|
|
- $this->success('success');
|
|
|
- }
|
|
|
- //零消费,零收益消费,提前结束,其实这条没必要,下面金钱操作还会过滤一次
|
|
|
- if($price == 0 && $money == 0){
|
|
|
- Db::commit();
|
|
|
- $this->success('success');
|
|
|
- }
|
|
|
-
|
|
|
- //扣钱uid,收钱uid,收钱free_video
|
|
|
- //分数少扣钱,分数多收益
|
|
|
- if($auth_level < $tous_level){
|
|
|
- $kou_user = $this->auth->id;
|
|
|
- $get_user = $to_user_info['id'];
|
|
|
- $get_user_free = $to_user_info['free_typing'];
|
|
|
- }else{
|
|
|
- //这种已经没有了
|
|
|
- $kou_user = $to_user_info['id'];
|
|
|
- $get_user = $this->auth->id;
|
|
|
- $get_user_free = $this->auth->free_typing;
|
|
|
- }
|
|
|
-
|
|
|
- //有性别差,扣费
|
|
|
- if($price > 0){
|
|
|
- $rs = model('wallet')->lockChangeAccountRemain($kou_user,$get_user,'gold',-$price,13,'','user_match_typing_log',$log_id);
|
|
|
- if($rs['status'] === false){
|
|
|
- Db::rollback();
|
|
|
- $this->error($rs['msg']);
|
|
|
- }
|
|
|
- }
|
|
|
- //另一方加钱,0收费
|
|
|
- if($money > 0 && $get_user_free == 0){
|
|
|
- $rs = model('wallet')->lockChangeAccountRemain($get_user,$kou_user,'money',$money,23,'','user_match_typing_log',$log_id);
|
|
|
- if($rs['status'] === false){
|
|
|
- Db::rollback();
|
|
|
- $this->error($rs['msg']);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //tag任务赠送金币
|
|
|
- //搭讪奖励
|
|
|
- $task_rs = \app\common\model\TaskLog::tofinish($this->auth->id,15);
|
|
|
- if($task_rs === false){
|
|
|
- Db::rollback();
|
|
|
- $this->error('完成任务赠送奖励失败');
|
|
|
- }
|
|
|
-
|
|
|
- Db::commit();
|
|
|
- $this->success('success');
|
|
|
- }
|
|
|
|
|
|
//语音匹配
|
|
|
public function getaudiouser(){
|
|
@@ -1126,38 +784,6 @@ class Usercenter extends Api
|
|
|
$this->success("获取成功!",$data);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取主播技能分类
|
|
|
- */
|
|
|
- public function getAnchorType() {
|
|
|
- $this->success("获取成功!",\app\common\model\UserAnchorType::select());
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 主播申请
|
|
|
- */
|
|
|
- public function anchorApply() {
|
|
|
- $this->error('不需要申请');
|
|
|
- /*$type_id = $this->request->request('type_id'); // 技能分类ID
|
|
|
- $desc = $this->request->request('desc'); // 申请备注
|
|
|
- if (!$type_id && !$desc) {
|
|
|
- $this->error(__('Invalid parameters'));
|
|
|
- }
|
|
|
- $useranchorModel = new \app\common\model\UserAnchor();
|
|
|
- $data = [];
|
|
|
- $data["user_id"] = $this->auth->id;
|
|
|
- $data["type_id"] = $type_id;
|
|
|
- if($useranchorModel->where($data)->find()) $this->error(__('您已申请过该类型的主播,请勿重复申请!'));
|
|
|
- $data["desc"] = $desc;
|
|
|
- $data["createtime"] = time();
|
|
|
- $res = $useranchorModel->insertGetId($data);
|
|
|
- if($res) {
|
|
|
- \app\common\model\User::update(["is_anchor"=>1],["id"=>$this->auth->id]);
|
|
|
- $this->success("申请发送成功!");
|
|
|
- } else {
|
|
|
- $this->error("网络错误,请稍后重试");
|
|
|
- }*/
|
|
|
- }
|
|
|
|
|
|
/**
|
|
|
* 获取当前用户信息
|
|
@@ -2189,6 +1815,7 @@ $resArray['money'] = $money; //返回给前端的计算结果
|
|
|
$this->success('success',$return_data);
|
|
|
}
|
|
|
//语音视频随聊
|
|
|
+ //作废
|
|
|
public function getrandomuserbak() {
|
|
|
$type = input('type', 0, 'intval'); //类型:1语音 2视频
|
|
|
if (!in_array($type, [1, 2, 3])) {
|