wesmiler 2 anos atrás
pai
commit
43bd63fbe5

+ 1 - 0
app/Http/Validator/MemberValidator.php

@@ -45,6 +45,7 @@ class MemberValidator extends BaseValidator
         'email_login'=> ['email','code'],
         'email_login'=> ['email','code'],
         'email_register'=> ['email','code'],
         'email_register'=> ['email','code'],
         'email'=> ['email','scene'],
         'email'=> ['email','scene'],
+        'recharge'=> ['usdt']
     ];
     ];
 
 
     /**
     /**

+ 3 - 0
app/Services/Api/MemberCollectService.php

@@ -218,6 +218,9 @@ class MemberCollectService extends BaseService
         RedisService::keyDel("caches:m_collect:*");
         RedisService::keyDel("caches:m_collect:*");
 
 
         $this->model->where(['user_id'=> $collectUid,'collect_uid'=> $userId])->update(['is_return'=> $data['is_return'],'update_time'=>time()]);
         $this->model->where(['user_id'=> $collectUid,'collect_uid'=> $userId])->update(['is_return'=> $data['is_return'],'update_time'=>time()]);
+        if($status == 1){
+            MessageService::make()->pushMessage($collectUid, '有人对你感兴趣','有人关注了你', 5, $userId);
+        }
 
 
         return ['is_fans'=>$isFansId? 1:0];
         return ['is_fans'=>$isFansId? 1:0];
     }
     }

+ 59 - 45
app/Services/Api/MemberService.php

@@ -1037,22 +1037,20 @@ class MemberService extends BaseService
      */
      */
     public function recharge($userId, $params)
     public function recharge($userId, $params)
     {
     {
-        $money = isset($params['money'])? $params['money'] : 0;
-        $payType = isset($params['pay_type']) && $params['pay_type']? intval($params['pay_type']) : 10;
-        if($money<=0){
+        $usdt = isset($params['usdt'])? moneyFormat($params['usdt'], 2) : 0;
+        $coinType = isset($params['coin_type']) && $params['coin_type']? intval($params['coin_type']) : 2;
+        $payType = 10;
+        if($usdt<=0){
             $this->error = 2031;
             $this->error = 2031;
             return false;
             return false;
         }
         }
 
 
-        if(!in_array($payType, [10,20])){
-            $this->error = 2032;
-            return false;
-        }
-
         $userInfo = $this->model->where(['id'=> $userId,'mark'=>1])
         $userInfo = $this->model->where(['id'=> $userId,'mark'=>1])
             ->select(['id','nickname','balance','status'])
             ->select(['id','nickname','balance','status'])
             ->first();
             ->first();
         $status = isset($userInfo['status'])? $userInfo['status'] : 0;
         $status = isset($userInfo['status'])? $userInfo['status'] : 0;
+        $balance = isset($userInfo['balance'])? $userInfo['balance'] : 0;
+        $userUsdt = isset($userInfo['usdt'])? $userInfo['usdt'] : 0;
         if(empty($userInfo) || $status != 1){
         if(empty($userInfo) || $status != 1){
             $this->error = 2024;
             $this->error = 2024;
             return false;
             return false;
@@ -1060,14 +1058,39 @@ class MemberService extends BaseService
 
 
         // 充值订单
         // 充值订单
         $orderNo = get_order_num('DR');
         $orderNo = get_order_num('DR');
+        $money = $usdt;
+        // 星豆
+        DB::beginTransaction();
+        if($coinType == 2){
+            $xdPrice = ConfigService::make()->getConfigByCode('xd_price',100);
+            $xdPrice = $xdPrice>0 && $xdPrice <=10000? $xdPrice : 100;
+            $money = moneyFormat($xdPrice * $usdt, 2);
+
+            if($usdt > $userUsdt){
+                $this->error = 2035;
+                return false;
+            }
+
+            // 扣除usdt余额
+            $updateData = ['usdt'=>DB::raw("usdt - {$usdt}"),'balance'=>DB::raw("balance + {$money}"),'update_time'=>time()];
+            if(!$this->model->where(['id'=> $userId])->update($updateData)){
+                $this->error = 2036;
+                DB::rollBack();
+                return false;
+            }
+        }
+
         $data = [
         $data = [
             'order_no'=> $orderNo,
             'order_no'=> $orderNo,
             'user_id'=> $userId,
             'user_id'=> $userId,
             'type'=> 1,
             'type'=> 1,
             'user_type'=> 1,
             'user_type'=> 1,
-            'money'=> $money,
-            'gift_money'=> 0,
+            'coin_type'=> 2,
+            'money'=> $usdt,
+            'actual_money'=> $money,
             'pay_type'=> $payType,
             'pay_type'=> $payType,
+            'pay_status'=> 20,
+            'pay_at'=> date('Y-m-d H:i:s'),
             'create_time'=> time(),
             'create_time'=> time(),
             'update_time'=> time(),
             'update_time'=> time(),
             'status'=> 1,
             'status'=> 1,
@@ -1076,48 +1099,39 @@ class MemberService extends BaseService
 
 
         if(!$orderId = BalanceLogModel::insertGetId($data)){
         if(!$orderId = BalanceLogModel::insertGetId($data)){
             $this->error = 2033;
             $this->error = 2033;
+            DB::rollBack();
             return false;
             return false;
         }
         }
 
 
-        // 支付方式
-        $order = [
-            'order_no'=> $orderNo,
-            'type'=> 0,
-            'pay_type'=> $payType,
-            'pay_money'=> $money,
-            'body'=> '充值订单支付',
+        // 用户明细
+        $log = [
+            'user_id'=> $userId,
+            'source_order_no'=> $data['order_no'],
+            'user_type'=> 1,
+            'type'=> 5,
+            'coin_type'=> 2,
+            'money'=> $usdt,
+            'actual_money'=> $money,
+            'balance'=> $balance,
+            'date'=> date('Y-m-d'),
+            'create_time'=> time(),
+            'remark'=> '星豆余额充值',
+            'status'=>1,
+            'mark'=>1
         ];
         ];
 
 
-        switch($payType){
-            case 20: // 支付宝
-                $payment = PaymentService::make()->aliPay($userInfo, $order,'recharge');
-                if(empty($payment)){
-                    DB::rollBack();
-                    $this->error = PaymentService::make()->getError();
-                    return false;
-                }
-                break;
-            case 10: // 微信支付
-                $payment = PaymentService::make()->wechatPay($userInfo, $order,'recharge');
-                if(empty($payment)){
-                    DB::rollBack();
-                    $this->error = PaymentService::make()->getError();
-                    return false;
-                }
-                break;
-            default:
-                $this->error = 1030;
-                return false;
+        if(!AccountLogModel::insertGetId($log)){
+            $this->error = 2029;
+            DB::rollBack();
+            return false;
         }
         }
 
 
-        $this->error = 2034;
-        return [
-            'id'=> $orderId,
-            'payment'=> $payment,
-            'total'=> $money,
-            'order_no'=> $orderNo,
-            'pay_type'=> $payType,
-        ];
+        // 消息
+        $dateTime = date('Y-m-d H:i:s');
+        MessageService::make()->pushMessage($userId,'星豆余额充值成功',"您在{$dateTime}(UTC+8)成功支付{$usdt}USDT充值{$money}星豆");
+
+        DB::commit();
+        return ['order_id'=> $orderId,'balance'=> moneyFormat($balance + $money,2),'usdt'=> moneyFormat($userUsdt-$usdt, 2)];
     }
     }
 
 
     /**
     /**

+ 9 - 0
app/Services/Api/VideoCollectService.php

@@ -344,6 +344,15 @@ class VideoCollectService extends BaseService
                 return false;
                 return false;
             }
             }
 
 
+            // 消息
+            if($status == 1){
+                if($type == 2){
+                    MessageService::make()->pushMessage($collectUid, '有人收藏了你的视频','有人收藏了你的视频', 5, $userId);
+                }else if($type == 3){
+                    MessageService::make()->pushMessage($collectUid, '有人点赞了你的视频','有人点赞了你的视频', 5, $userId);
+                }
+            }
+
             $this->error = 1002;
             $this->error = 1002;
             DB::commit();
             DB::commit();
             RedisService::clear("caches:videos:collect:u{$userId}_c{$collectId}_{$type}");
             RedisService::clear("caches:videos:collect:u{$userId}_c{$collectId}_{$type}");

+ 4 - 2
resources/lang/zh-cn/api.php

@@ -66,8 +66,8 @@ return [
     '2023'=> '您已注册,请下载并安装APP后登录使用',
     '2023'=> '您已注册,请下载并安装APP后登录使用',
     '2024'=> '您的账号或已被冻结,请联系客服',
     '2024'=> '您的账号或已被冻结,请联系客服',
     '2025'=> '收款账号不存在或已被冻结,请联系客服',
     '2025'=> '收款账号不存在或已被冻结,请联系客服',
-    '2026'=> '您账号余额不足,请先充值或刷新后重试',
-    '2027'=> '您到商家余额不足,请先充值或刷新后重试',
+    '2026'=> '您账号余额不足,请先充值或刷新后重试',
+    '2027'=> '您的交易额度不足,请先充值或刷新后重试',
     '2028'=> '账户处理失败,请刷新后重试',
     '2028'=> '账户处理失败,请刷新后重试',
     '2029'=> '账户明细处理失败,请刷新后重试',
     '2029'=> '账户明细处理失败,请刷新后重试',
     '2030'=> '转账成功',
     '2030'=> '转账成功',
@@ -75,6 +75,8 @@ return [
     '2032'=> '请先选择充值支付方式',
     '2032'=> '请先选择充值支付方式',
     '2033'=> '充值订单提交失败',
     '2033'=> '充值订单提交失败',
     '2034'=> '充值订单提交成功,入账中~',
     '2034'=> '充值订单提交成功,入账中~',
+    '2035'=> '您的USDT余额不足,请先充值~',
+    '2036'=> 'USDT余额扣除失败,请刷新重试~',
 
 
     '2040'=> '抱歉,您还未获得开播权限,请先升级',
     '2040'=> '抱歉,您还未获得开播权限,请先升级',
     '2041'=> '开播成功',
     '2041'=> '开播成功',