Kirin 3 年之前
父節點
當前提交
c876d9357d

+ 6 - 6
app/admin/controller/setting/SystemGroupData.php

@@ -123,12 +123,12 @@ class SystemGroupData extends AuthController
                     }
                 }
             }
-            if ($key == '__money_address') {
-                $res = ZtPayService::import_address($params['code'], $params['__money_key']);
-                if ($res['code'] != 0) {
-                    return Json::fail($res['message']);
-                }
-            }
+//            if ($key == '__money_address') {
+//                $res = ZtPayService::import_address($params['code'], $params['__money_key']);
+//                if ($res['code'] != 0) {
+//                    return Json::fail($res['message']);
+//                }
+//            }
         }
 
         $data = array("gid" => $gid, "add_time" => time(), "value" => htmlspecialchars_decode(json_encode($value)), "sort" => $params["sort"], "status" => $params["status"]);

+ 6 - 6
app/api/controller/VoteController.php

@@ -43,8 +43,8 @@ class VoteController
         $today_commission = 0;
         $vote_people = UserVote::group('uid')->count();
         if ($uid) {
-            $all_commission = UserMoney::getComission($uid, 'USDT_ERC20');
-            $today_commission = UserMoney::getComission($uid, 'USDT_ERC20', 0, 'today');
+            $all_commission = UserMoney::getComission($uid, 'USDT');
+            $today_commission = UserMoney::getComission($uid, 'USDT', 0, 'today');
         }
 
         return app('json')->success('ok', compact('data', 'count', 'commission_type', 'commission_ratio', 'all_commission', 'today_commission', 'vote_people'));
@@ -66,8 +66,8 @@ class VoteController
         $status = $request->get('status', '');
         if ($data) $data['sub_vote'] = Vote::votingSub($id, $request->uid(), $status);
         if ($uid) {
-            $data['all_commission'] = UserMoney::getComission($uid, 'USDT_ERC20', $id);
-            $data['today_commission'] = UserMoney::getComission($uid, 'USDT_ERC20', $id, 'today');
+            $data['all_commission'] = UserMoney::getComission($uid, 'USDT', $id);
+            $data['today_commission'] = UserMoney::getComission($uid, 'USDT', $id, 'today');
         }
         $data['commission_type'] = sys_config('vote_commission_type', '');
         $data['commission_ratio'] = sys_config('vote_commission_ratio', 0);
@@ -161,8 +161,8 @@ class VoteController
         $all_commission = 0;
         $today_commission = 0;
         if ($uid) {
-            $all_commission = UserMoney::getComission($uid, 'USDT_ERC20');
-            $today_commission = UserMoney::getComission($uid, 'USDT_ERC20', 0, 'today');
+            $all_commission = UserMoney::getComission($uid, 'USDT');
+            $today_commission = UserMoney::getComission($uid, 'USDT', 0, 'today');
         }
 //        var_dump(UserMoney::getLastSql());
         return app('json')->success('ok', compact('list', 'count', 'all_commission', 'today_commission'));

+ 22 - 7
app/api/controller/trade/CashTradeController.php

@@ -32,23 +32,32 @@ class CashTradeController
         $list = sys_data('money_type');
         $new = [];
         foreach ($list as $v) {
-            if ($v['is_trade']) {
+            if (explode('_', $v['code'])[0] == "USDT") {
                 if ($v['price'] <= 0) {
                     //计算前一天成交的平均价格
                     $v['price'] = CashTradeOrder::averagePrice($v['code']);
                 }
+                $usdt_price = $v['price'];
+            }
+            if ($v['is_trade']) {
+//                if ($v['price'] <= 0) {
+//                    //计算前一天成交的平均价格
+//                    $v['price'] = CashTradeOrder::averagePrice($v['code']);
+//                }
                 if ($request->uid())
                     $v['wallet'] = UserMoney::initialUserMoney($request->uid(), $v['code']);
-                unset($v['__money_address']);
-                unset($v['__money_key']);
                 unset($v['cash_commission_ratio']);
                 unset($v['cash_commission_type']);
                 unset($v['can_cash']);
                 unset($v['can_trade']);
                 unset($v['is_trade']);
                 $new[] = $v;
+
             }
         }
+        foreach ($new as $k => $v) {
+            $new[$k]['usdt'] = (isset($usdt_price) && $usdt_price > 0) ? bcdiv($new[$k]['price'], $usdt_price, 8) : 0;
+        }
         return app('json')->success('ok', $new);
     }
 
@@ -100,7 +109,7 @@ class CashTradeController
         $user = $request->user();
         $uid = $user['uid'];
         list($money_type, $money_num, $price, $trade_type, $trade_way, $from, $hang_time, , $captcha) = UtilService::postMore([
-            ['money_type', 'USDT_ERC20', '', '', ['not_empty_check', function ($item) {
+            ['money_type', 'USDT', '', '', ['not_empty_check', function ($item) {
                 $moneys = sys_data('money_type');
                 $new_money = [];
                 foreach ($moneys as $v) {
@@ -129,7 +138,12 @@ class CashTradeController
             return app('json')->fail('请输入币数');
         }
         if ($price <= 0) {
-            return app('json')->fail('请输入单价');
+            $money = sys_data('money_type');
+            foreach ($money as $v) {
+                if ($v['code'] == $money_type) {
+                    $price = $v['price'] ?: CashTradeOrder::averagePrice($v['code']);
+                }
+            }
         }
         $sum = bcmul($money_num, $price, 2);
         if ($sum >= 10000) {
@@ -221,7 +235,7 @@ class CashTradeController
         $user = $request->user();
         $uid = $user['uid'];
         list($id, $trade_way, $from, , $captcha) = UtilService::postMore([
-            ['id', 'USDT_ERC20', '', '', ['not_empty_check'], ['请选择要进行的交易']],
+            ['id', 'USDT', '', '', ['not_empty_check'], ['请选择要进行的交易']],
             ['trade_way', 'weixin'],
             ['from', 'weixin'],
             ['trade_psw', '', '', '', ['not_empty_check', function ($item) use ($user) {
@@ -408,7 +422,8 @@ class CashTradeController
                 default:
                     break;
             }
-            $res = $res && CashTradeOrder::where('id', $id)->update(['status' => 1, 'trade_time' => time()]);
+            $res = $res && CashTradeOrder::where('id', $id)->update(['status' => 1, 'trade_time' => time()])
+                && CashTradeOrder::brokerage($id);
             BaseModel::checkTrans($res);
             if ($res) {
                 return app('json')->fail('审核成功');

+ 2 - 2
app/api/controller/trade/TradeController.php

@@ -58,7 +58,7 @@ class TradeController
         $uid = $request->uid();
         list($type, $num, $code) = UtilService::postMore(
             [
-                ['type', 'USDT_ERC20', '', '', ['not_empty_check', function ($item) {
+                ['type', 'USDT', '', '', ['not_empty_check', function ($item) {
                     $moneys = sys_data('money_type');
                     $new_money = [];
                     foreach ($moneys as $v) {
@@ -116,7 +116,7 @@ class TradeController
         $uid = $user['uid'];
         list($type, $num, $to_uid, , $captcha) = UtilService::postMore(
             [
-                ['type', 'USDT_ERC20', '', '', ['not_empty_check', function ($item) {
+                ['type', 'USDT', '', '', ['not_empty_check', function ($item) {
                     $moneys = sys_data('money_type');
                     $new_money = [];
                     foreach ($moneys as $v) {

+ 22 - 0
app/api/controller/user/UserBillController.php

@@ -79,6 +79,28 @@ class UserBillController
         return app('json')->successful($data);
     }
 
+    public function setReturnUper($uid, Request $request)
+    {
+        $user = User::getUserInfo($uid);
+        if (!$user || $user['spread_uid'] != $request->uid()) {
+            return app('json')->fail('用户不合法');
+        }
+        $ratio = $request->post('ratio', 0);
+        if ($ratio > $request->user()['return_uper']) {
+            return app('json')->fail('佣金比例不能超过自己');
+        }
+        $user2 = User::where('spraed_uid', $user['uid'])->max('return_uper');
+        if ($ratio < $user2) {
+            return app('json')->fail('佣金比例不能低于目标下级');
+        }
+        $res = User::where('uid', $uid)->update(['return_uper' => $ratio]);
+        if ($res) {
+            return app('json')->success('修改成功');
+        } else {
+            return app('json')->fail('修改失败或者您没有修改什么');
+        }
+    }
+
     /**
      * 推广订单
      * @param Request $request

+ 36 - 18
app/api/controller/user/UserController.php

@@ -127,6 +127,22 @@ class UserController
     {
         $user = $request->user();
         $user = $user->toArray();
+
+        $info = $user;
+        $info['statu'] = (int)sys_config('store_brokerage_statu');
+        if (!$info['is_promoter'] && $info['statu'] == 2) {
+            $price = StoreOrder::where(['paid' => 1, 'refund_status' => 0, 'uid' => $info['uid']])->sum('pay_price');
+            $status = is_brokerage_statu($price);
+            if ($status) {
+                User::where('uid', $info['uid'])->update(['is_promoter' => 1]);
+                $info['is_promoter'] = 1;
+            } else {
+                $storeBrokeragePrice = sys_config('store_brokerage_price', 0);
+                $info['promoter_price'] = bcsub($storeBrokeragePrice, $price, 2);
+            }
+        }
+        $user = $info;
+
         $user['couponCount'] = StoreCouponUser::getUserValidCouponCount($user['uid']);
         $user['like'] = StoreProductRelation::getUserIdCollect($user['uid']);
         $user['orderStatusNum'] = StoreOrder::getOrderData($user['uid']);
@@ -695,22 +711,25 @@ class UserController
     {
         $user = $request->user();
         if ($user['real_check'] == 1) return app('json')->fail('账号或主账号已实名认证');
-        list($idcard, $realname) = UtilService::postMore([['id_card', ''], ['real_name', '']], $request, true);
-        $url = 'http://op.juhe.cn/idcard/queryEncry';
-        $key = sys_config('real_name_key');
-        $openid = sys_config('real_name_openid');
-        $encode_key = substr(strtolower(md5($openid)), 0, 16);
-        $data = [
-            'idcard' => urlencode(AesEncrypt($idcard, $encode_key)),
-            'rename' => urlencode(AesEncrypt($realname, $encode_key)),
-            'key' => $key,
-        ];
-        $res = do_request($url, $data, null, false);
-        if (isset($res['result']['res']) && $res['result']['res'] == 1) {
-            User::where('uid', $user['main_uid'] ?? $user['uid'])->update(['real_name' => $realname, 'card_id' => $idcard, 'real_check' => 1]);
-            return app('json')->success('认证成功');
-        }
-        return app('json')->fail('认证失败');
+        list($idcard, $realname, $idcard_front, $idcard_hold, $idcard_back) = UtilService::postMore([['id_card', ''], ['real_name', ''], ['idcard_front', ''], ['idcard_hold', ''], ['idcard_back', '']], $request, true);
+//        $url = 'http://op.juhe.cn/idcard/queryEncry';
+//        $key = sys_config('real_name_key');
+//        $openid = sys_config('real_name_openid');
+//        $encode_key = substr(strtolower(md5($openid)), 0, 16);
+//        $data = [
+//            'idcard' => urlencode(AesEncrypt($idcard, $encode_key)),
+//            'rename' => urlencode(AesEncrypt($realname, $encode_key)),
+//            'key' => $key,
+//        ];
+//        $res = do_request($url, $data, null, false);
+//        if (isset($res['result']['res']) && $res['result']['res'] == 1) {
+        $res = User::where('uid', $user['main_uid'] ?? $user['uid'])->update(['real_name' => $realname, 'card_id' => $idcard, 'real_check' => 0, 'idcard_front' => $idcard_front, 'idcard_hold' => $idcard_hold, 'idcard_back' => $idcard_back]);
+        if ($res) {
+            return app('json')->success('已提交认证');
+        } else {
+//        }
+            return app('json')->fail('提交失败');
+        }
     }
 
     /**
@@ -727,8 +746,7 @@ class UserController
         $back = [];
         $like_rmb = 0;
         foreach ($money_type as $v) {
-            unset($v['__money_address']);
-            unset($v['__money_key']);
+
             unset($v['cash_commission_ratio']);
             unset($v['cash_commission_type']);
             unset($v['can_cash']);

+ 22 - 0
app/models/trade/CashTradeOrder.php

@@ -381,4 +381,26 @@ class CashTradeOrder extends BaseModel
         BaseModel::checkTrans($res);
         return $res;
     }
+
+    public static function brokerage($id)
+    {
+        $info = self::get($id);
+        $user = User::getUserInfo($info['uid']);
+        $uper = User::getUserInfo($user['spread_uid']);
+        $send = 0;
+        $res = true;
+        while ($uper) {
+            $ratio = bcdiv($uper['return_uper'], 100, 2);
+            if ($ratio > 0) {
+                $brokerage = bcmul($ratio, $info['money_num'], 8);
+                if ($brokerage > $send) {
+                    $brokerage = bcdiv($brokerage, $send, 8);
+                    $res = $res && UserMoney::incomeMoney($uper['uid'], $info['money_type'], $brokerage, 'return_uper', '佣金', $user['nickname'] . '发生交易,获得佣金');
+                    $send = bcadd($brokerage, $send, 8);
+                }
+            }
+            $uper = User::getUserInfo($uper['spread_uid']);
+        }
+        return $res;
+    }
 }

+ 3 - 1
route/api/route.php

@@ -110,6 +110,7 @@ Route::group(function () {
     Route::post('user/edit', 'user.UserController/edit')->name('userEdit');//用户修改信息
     Route::get('user/balance', 'user.UserController/balance')->name('userBalance');//用户资金统计
     Route::get('userinfo', 'user.UserController/userinfo')->name('userinfo');// 用户信息
+    Route::get('userinfo', 'user.UserController/userinfo')->name('userinfo');// 用户信息
     Route::get('other_userinfo', 'user.UserController/otherUserInfo')->name('otherUserInfo');// 用户信息
     Route::post('bind_main', 'user.UserController/set_main_account')->name('bindMain');// 绑定主账号
     //系统内交易类
@@ -195,7 +196,8 @@ Route::group(function () {
     Route::post('spread/order', 'user.UserBillController/spread_order')->name('spreadOrder');//推广订单
     Route::get('spread/commission/:type', 'user.UserBillController/spread_commission')->name('spreadCommission');//推广佣金明细
     Route::get('spread/count/:type', 'user.UserBillController/spread_count')->name('spreadCount');//推广 佣金 3/提现 4 总和
-    Route::get('spread/banner', 'user.UserBillController/spread_banner')->name('spreadBanner');//推广分销二维码海报生成
+    Route::get('spread/banner/:uid', 'user.UserBillController/spread_banner')->name('spreadBanner');//推广分销二维码海报生成
+    Route::post('spread/ratio', 'user.UserBillController/setReturnUper')->name('setReturnUper');//设置佣金比例
     Route::get('integral/list', 'user.UserBillController/integral_list')->name('integralList');//积分记录
     //提现类
     Route::get('extract/bank', 'user.UserExtractController/bank')->name('extractBank');//提现银行/提现最低金额