Kirin 2 anos atrás
pai
commit
71a90235f7

+ 43 - 54
app/api/controller/user/PaymentReceived.php

@@ -2,6 +2,7 @@
 
 
 namespace app\api\controller\user;
+
 use app\admin\model\user\User;
 use app\Request;
 use crmeb\services\UtilService;
@@ -22,15 +23,12 @@ class PaymentReceived
     public function collection_code(Request $request)
     {
         $code = Received::collection($request->uid());
-        if(intval(input('amount',0))>0)
-        {
-            $arr = ['code'=>$code,'amount'=>input('amount')];
+        if (intval(input('amount', 0)) > 0) {
+            $arr = ['code' => $code, 'amount' => input('amount')];
             $c_code = uniqid("c_");
-            cache($c_code,$arr,600);
+            cache($c_code, $arr, 600);
             return app('json')->successful($c_code);
-        }
-        else
-        {
+        } else {
             return app('json')->successful($code);
         }
 
@@ -42,11 +40,11 @@ class PaymentReceived
      * @param Request $request
      * @return mixed
      */
-    public function  payment_code(Request $request)
+    public function payment_code(Request $request)
     {
-        $code = uniqid("qr_",true);
-        cache($code,$request->uid(),60);
-        return app('json')->successful(['code'=>$code]);
+        $code = uniqid("qr_", true);
+        cache($code, $request->uid(), 60);
+        return app('json')->successful(['code' => $code]);
     }
 
     /**
@@ -56,19 +54,13 @@ class PaymentReceived
      */
     public function code_state(Request $request)
     {
-        $code = input('code','');
-        if(cache($code))
-        {
+        $code = input('code', '');
+        if (cache($code)) {
             return app('json')->successful('effective');
-        }
-        else
-        {
-            if(Received::be(['code'=>$code]))
-            {
+        } else {
+            if (Received::be(['code' => $code])) {
                 return app('json')->successful('use');
-            }
-            else
-            {
+            } else {
                 return app('json')->successful('overdue');
             }
         }
@@ -82,10 +74,10 @@ class PaymentReceived
      */
     public function payment_create(Request $request)
     {
-        list( $code,$type, $amount) = UtilService::postMore(
+        list($code, $type, $amount) = UtilService::postMore(
             [
                 ['code', ''],
-                ['type',0],
+                ['type', 0],
                 ['amount', 0],
             ], $request, true
         );
@@ -94,37 +86,33 @@ class PaymentReceived
             $pay_type = 0;
             $pay_uid = $request->uid();
         } elseif (!is_numeric($code)) {
-            if(strpos($code,"c_")===false) {
+            if (strpos($code, "c_") === false) {
                 $pay_uid = cache($code);
                 if (intval($pay_uid) == 0) {
                     return app('json')->fail('付款码已过期');
                 }
                 $collect_uid = $request->uid();
                 $pay_type = 1;
-            }
-            else
-            {
+            } else {
                 //商家收款设置金额
                 $collect = cache($code);
                 $collect_uid = User::where('merchant_no', $collect['code'])->value('uid');
                 $pay_type = 0;
                 $pay_uid = $request->uid();
                 $amount = $collect['amount'];
-                cache($code,null);
+                cache($code, null);
             }
         } else {
             return app('json')->fail('参数错误');
         }
-        if($amount==0) return app('json')->fail('金额不能为0');
-        if(intval($collect_uid)==0 || intval($pay_uid)==0)
-        {
+        if ($amount == 0) return app('json')->fail('金额不能为0');
+        if (intval($collect_uid) == 0 || intval($pay_uid) == 0) {
             return app('json')->fail('二维码有误,重新获取');
         }
-        if(intval($collect_uid)==intval($pay_uid))
-        {
+        if (intval($collect_uid) == intval($pay_uid)) {
             return app('json')->fail('自己不能付自己');
         }
-        $rs = Received::Create_Payment($pay_type, $code, $pay_uid, $collect_uid, $amount,$type);
+        $rs = Received::Create_Payment($pay_type, $code, $pay_uid, $collect_uid, $amount, $type);
         if (!$rs) return app('json')->fail(Received::getErrorInfo(''));
         return app('json')->successful('处理成功');
     }
@@ -137,13 +125,13 @@ class PaymentReceived
     {
         $where = UtilService::postMore(
             [
-                ['way','pay'],
-                ['pay_type',-1],
-                ['uid',$request->uid()],
-                ['page',1],
-                ['limit',20],
-                ['is_tip',-1],
-            ],$request
+                ['way', 'pay'],
+                ['pay_type', -1],
+                ['uid', $request->uid()],
+                ['page', 1],
+                ['limit', 20],
+                ['is_tip', -1],
+            ], $request
         );
         return app('json')->successful(Received::lst($where));
     }
@@ -157,29 +145,30 @@ class PaymentReceived
     {
         $where = UtilService::postMore(
             [
-                ['way','collect'],
-                ['pay_type',-1],
-                ['uid',$request->uid()],
-                ['is_tip',0],
-                ['page',1],
-                ['limit',20],
-            ],$request
+                ['way', 'collect'],
+                ['pay_type', -1],
+                ['uid', $request->uid()],
+                ['is_tip', 0],
+                ['page', 1],
+                ['limit', 20],
+            ], $request
         );
         return app('json')->successful(Received::lst($where));
     }
+
     public function collection_set_tip(Request $request)
     {
-        if(!Received::be(['collect_uid'=>$request->uid(),'id'=>input('id',0)]))
-        {
+        if (!Received::be(['collect_uid' => $request->uid(), 'id' => input('id', 0)])) {
             return app('json')->fail('参数错误');
         }
-        Received::where('id',input('id',0))->update(['is_tip'=>1]);
+        Received::where('id', input('id', 0))->update(['is_tip' => 1]);
         return app('json')->successful('处理成功');
     }
+
     public function test()
     {
-        $data = json_decode('{"pay_type":1,"code":"qr_601e27df155161.70945051","pay_uid":"3239","collect_uid":3239,"amount":"100"}',true);
-        $rs = Received::Create_Payment($data['pay_type'], $data['code'],$data['pay_uid'],$data['collect_uid'],$data['amount']);
+        $data = json_decode('{"pay_type":1,"code":"qr_601e27df155161.70945051","pay_uid":"3239","collect_uid":3239,"amount":"100"}', true);
+        $rs = Received::Create_Payment($data['pay_type'], $data['code'], $data['pay_uid'], $data['collect_uid'], $data['amount']);
         dump($rs);
         echo Received::getErrorInfo();
 

+ 26 - 0
app/api/controller/user/UserController.php

@@ -746,4 +746,30 @@ class UserController
         }
     }
 
+    public function setMSpreadUid(Request $request)
+    {
+        $user = $request->user();
+        $uid = $request->uid();
+        $spread_uid = $request->post('spread_uid', 0);
+        // 自己不能绑定自己为上级
+        if ($uid == $spread_uid) return app('json')->successful('不可绑定自己');
+        if ($user['m_spread_uid']) return app('json')->successful('已有上级');
+        $sp = $spread_uid;
+        $userlist = User::column('uid,m_spread_uid', 'uid');
+        while ($sp) {
+            if ($sp == $uid) {
+                $spread_uid = 0;
+                break;
+            }
+            $sp = $userlist[$sp]['m_spread_uid'] ?? 0;
+        }
+        if (!$spread_uid) return app('json')->successful('绑定用户不满足');
+        return User::where('uid', $uid)->update(['m_spread_uid' => $spread_uid]);
+    }
+
+//    public function m_spread_list(Request $request)
+//    {
+//        $userlist = User::column('uid,m_spread_uid', 'uid');
+//        return User::where('uid', $uid)->update(['m_spread_uid' => $spread_uid]);
+//    }
 }

+ 41 - 47
app/models/order/PaymentReceived.php

@@ -5,20 +5,21 @@ namespace app\models\order;
 use crmeb\traits\ModelTrait;
 use crmeb\basic\BaseModel;
 use think\Exception;
-use app\models\user\{User,UserBill};
+use app\models\user\{User, UserBill};
 use crmeb\services\PHPExcelService;
+
 /**
  * B子订单详情
  * Class ArticleCategory
  * @package app\models\article
  */
-class PaymentReceived  extends BaseModel
+class PaymentReceived extends BaseModel
 {
     use ModelTrait;
+
     protected function getTypeAttr($value)
     {
-        switch($value)
-        {
+        switch ($value) {
             case 0:
                 return '余额';
                 break;
@@ -31,6 +32,7 @@ class PaymentReceived  extends BaseModel
         }
 
     }
+
     /**
      * 生成订单唯一id
      * @param $uid 用户uid
@@ -53,7 +55,7 @@ class PaymentReceived  extends BaseModel
      * @param $collect_uid
      * @param $amount
      */
-    public static function Create_Payment($pay_type,$code,$pay_uid,$collect_uid,$amount,$type=0)
+    public static function Create_Payment($pay_type, $code, $pay_uid, $collect_uid, $amount, $type = 0)
     {
         self::beginTrans();
         $order_id = self::getNewOrderId();
@@ -61,35 +63,34 @@ class PaymentReceived  extends BaseModel
         $pay_user = User::find($pay_uid);
         $collect_user = User::find($collect_uid);
         try {
-            switch ($type)
-            {
+            switch ($type) {
                 case 0:
-                    $field ="now_money";
+                    $field = "now_money";
                     $title = "余额";
                     break;
                 case 1:
-                    $field ="consumer";
+                    $field = "consumer";
                     $title = "消费券";
                     break;
                 case 2:
-                    $field ="integral";
+                    $field = "integral";
                     $title = "积分";
                     break;
             }
-            if (bcsub($pay_user[$field], $amount, 2) < 0) return self::setErrorInfo($title.'不足!', true);
+            if (bcsub($pay_user[$field], $amount, 2) < 0) return self::setErrorInfo($title . '不足!', true);
             $paid = 1;
             $pay_time = time();
-            $transfer = bcdiv(bcmul($amount, sys_config('pay_collection_commission'),2),100,2);
+            $transfer = bcdiv(bcmul($amount, sys_config('pay_collection_commission'), 2), 100, 2);
             $service_charge = $transfer;
-            $res = self::create(compact('pay_type', 'pay_uid', 'code', 'collect_uid', 'amount', 'order_id', 'add_time', 'paid', 'pay_time','service_charge','type'));
+            $res = self::create(compact('pay_type', 'pay_uid', 'code', 'collect_uid', 'amount', 'order_id', 'add_time', 'paid', 'pay_time', 'service_charge', 'type'));
             if ($res) {
                 $now_money = bcsub($amount, $transfer, 2);
-                @file_put_contents("pay.txt",'uid:'.$pay_uid.'collect_uid:'.$collect_uid.'--'.$amount.'--'.$transfer.'--'.$now_money);
+                @file_put_contents("pay.txt", 'uid:' . $pay_uid . 'collect_uid:' . $collect_uid . '--' . $amount . '--' . $transfer . '--' . $now_money);
                 User::where('uid', $collect_uid)->inc($field, $now_money)->update();
                 User::where('uid', $pay_uid)->dec($field, $amount)->update();
-                $str = sprintf("收到%s用户%.2f%s,到账:%.2f%s,手续费:%.2f", $pay_user['nickname'], $amount,$title, $now_money,$title, $transfer);
-                $res1 = UserBill::income('扫码收款-'.$title, $collect_uid, 'now_money', 'qr_add_'.$field, $now_money, $res['id'], bcadd($collect_user[$field], $now_money, 2), $str);
-                $res2 = UserBill::expend("扫码付款-".$title, $pay_uid, 'now_money', 'qr_des_'.$field, $amount, $res['id'], bcsub($pay_user[$field], $amount, 2), '支付给' . $collect_user['nickname'] . $amount . $title, 1);
+                $str = sprintf("收到%s用户%.2f%s,到账:%.2f%s,手续费:%.2f", $pay_user['nickname'], $amount, $title, $now_money, $title, $transfer);
+                $res1 = UserBill::income('扫码收款-' . $title, $collect_uid, 'now_money', 'qr_add_' . $field, $now_money, $res['id'], bcadd($collect_user[$field], $now_money, 2), $str);
+                $res2 = UserBill::expend("扫码付款-" . $title, $pay_uid, 'now_money', 'qr_des_' . $field, $amount, $res['id'], bcsub($pay_user[$field], $amount, 2), '支付给' . $collect_user['nickname'] . $amount . $title, 1);
 
             }
             if ($res && $res1 && $res2) {
@@ -98,8 +99,7 @@ class PaymentReceived  extends BaseModel
                 self::rollbackTrans();
             }
             return $res;
-        }catch (Exception $e)
-        {
+        } catch (Exception $e) {
             echo $e->getMessage();
             self::rollbackTrans();
         }
@@ -112,9 +112,8 @@ class PaymentReceived  extends BaseModel
      */
     public static function getPayment($order_id)
     {
-        $info = self::where('order_id',$order_id)->find();
-        if($info)
-        {
+        $info = self::where('order_id', $order_id)->find();
+        if ($info) {
             $info = $info->toArray();
             $info['pay_user'] = User::find($info['pay_uid'])->toarray();
             $info['collect_user'] = User::find($info['collect_uid'])->toarray();
@@ -129,12 +128,10 @@ class PaymentReceived  extends BaseModel
     public static function lst($where)
     {
         $model = new self;
-        if(isset($where['data']) && $where['data']!='') $model = $model->getModelTime($where,$model);
-        if(isset($where['pay_type']) && $where['pay_type']>-1) $model = $model->where('pay_type',$where['pay_type']);
-        if(isset($where['way'])&&isset($where['way'])!='')
-        {
-            switch ($where['way'])
-            {
+        if (isset($where['data']) && $where['data'] != '') $model = $model->getModelTime($where, $model);
+        if (isset($where['pay_type']) && $where['pay_type'] > -1) $model = $model->where('pay_type', $where['pay_type']);
+        if (isset($where['way']) && isset($where['way']) != '') {
+            switch ($where['way']) {
                 case 'pay':
                     if (isset($where['uid']) && $where['uid'] > 0) $model = $model->where('pay_uid', $where['uid']);
                     break;
@@ -142,51 +139,48 @@ class PaymentReceived  extends BaseModel
                     if (isset($where['uid']) && $where['uid'] > 0) $model = $model->where('collect_uid', $where['uid']);
                     break;
             }
-        }
-        else {
+        } else {
             if (isset($where['uid']) && $where['uid'] > 0) $model = $model->where('pay_uid|collect_uid', $where['uid']);
         }
-        if(isset($where['is_tip']) && $where['is_tip']>-1) $model = $model->where('is_tip',$where['is_tip']);
+        if (isset($where['is_tip']) && $where['is_tip'] > -1) $model = $model->where('is_tip', $where['is_tip']);
         $count = $model->count();
-        $data = $model->page($where['page'],$where['limit'])->select();
-        $data  = $data?$data->toArray():[];
-        foreach ($data as &$v)
-        {
+        $data = $model->page($where['page'], $where['limit'])->select();
+        $data = $data ? $data->toArray() : [];
+        foreach ($data as &$v) {
             $v['pay_user'] = User::find($v['pay_uid'])->toarray();
             $v['collect_user'] = User::find($v['collect_uid'])->toarray();
         }
-        if(isset($where['excel']) && $where['excel'] == 1)
-        {
-            $pay_type = ['收款码','扫付款码'];
+        if (isset($where['excel']) && $where['excel'] == 1) {
+            $pay_type = ['收款码', '扫付款码'];
             foreach ($data as $index => $item) {
                 $export[] = [
                     $item['order_id'],
-                    $item['pay_name'] => $item['pay_user']['real_name'].":".$item['pay_user']['uid'],
+                    $item['pay_name'] => $item['pay_user']['real_name'] . ":" . $item['pay_user']['uid'],
                     $item['amount'],
-                    $item['collect_name'] => $item['collect_user']['real_name'].":".$item['collect_user']['uid'],
+                    $item['collect_name'] => $item['collect_user']['real_name'] . ":" . $item['collect_user']['uid'],
                     $item['add_time'],
-                    $item['pay_type']=> $pay_type[$item['pay_type']],
+                    $item['pay_type'] => $pay_type[$item['pay_type']],
                 ];
             }
-            PHPExcelService::setExcelHeader(['订单号','付款人', '金额','收款人', '时间', '方式','类型'])
+            PHPExcelService::setExcelHeader(['订单号', '付款人', '金额', '收款人', '时间', '方式', '类型'])
                 ->setExcelTile('收付码', '收付码列表' . time(), ' 生成时间:' . date('Y-m-d H:i:s', time()))
                 ->setExcelContent($export)
                 ->ExcelSave();
         }
-        return compact('count','data');
+        return compact('count', 'data');
     }
+
     public static function collection($uid)
     {
-        $card_no = User::where('uid',$uid)->value('merchant_no');
-        if(empty(trim($card_no)))
-        {
+        $card_no = User::where('uid', $uid)->value('merchant_no');
+        if (empty(trim($card_no))) {
             $card_no = User::max('merchant_no');
             if (intval($card_no) < 10000000000) {
                 $card_no = "10000000001";
             } else {
                 $card_no = str_pad(bcadd($card_no, 1), 11, "0", STR_PAD_LEFT);
             }
-            User::edit(['merchant_no' => $card_no],$uid);
+            User::edit(['merchant_no' => $card_no], $uid);
         }
         return $card_no;
     }

+ 16 - 14
route/api/route.php

@@ -1,6 +1,7 @@
 <?php
 
 use think\facade\Route;
+
 //账号密码登录
 Route::post('login', 'AuthController/login')->name('login')
     ->middleware(\app\http\middleware\AllowOriginMiddleware::class);
@@ -50,10 +51,10 @@ Route::group(function () {
     Route::get('admin/order/time', 'admin.StoreOrderController/time')->name('adminOrderTime');//订单交易额时间统计
     Route::post('admin/order/offline', 'admin.StoreOrderController/offline')->name('adminOrderOffline');//订单支付
     Route::post('admin/order/refund', 'admin.StoreOrderController/refund')->name('adminOrderRefund');//订单退款
-    Route::post('order/order_verific','admin.StoreOrderController/order_verific')->name('order');//订单核销
-    Route::post('store/goods','company.IndexCountroller/goods')->name('storegoods');//门店商品库存
-    Route::post('store/member','company.IndexCountroller/member')->name('storemember');//门店会员
-    Route::post('store/my','company.IndexCountroller/store')->name('mystore');//我的门店
+    Route::post('order/order_verific', 'admin.StoreOrderController/order_verific')->name('order');//订单核销
+    Route::post('store/goods', 'company.IndexCountroller/goods')->name('storegoods');//门店商品库存
+    Route::post('store/member', 'company.IndexCountroller/member')->name('storemember');//门店会员
+    Route::post('store/my', 'company.IndexCountroller/store')->name('mystore');//我的门店
 })->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\http\middleware\AuthTokenMiddleware::class, true)->middleware(\app\http\middleware\CustomerMiddleware::class);
 
 //会员授权接口
@@ -65,7 +66,7 @@ Route::group(function () {
     //产品类
     Route::get('product/code/:id', 'store.StoreProductController/code')->name('productCode');//产品分享二维码 推广员
 
-     //公共类
+    //公共类
     Route::post('upload/image', 'PublicController/upload_image')->name('uploadImage');//图片上传
     //用户类 客服聊天记录
     Route::get('user/service/list', 'user.StoreService/lst')->name('userServiceList');//客服列表
@@ -89,8 +90,8 @@ Route::group(function () {
     Route::post('collect/del', 'user.UserController/collect_del')->name('collectDel');//取消收藏
     Route::post('collect/all', 'user.UserController/collect_all')->name('collectAll');//批量添加收藏
 
-    Route::get('brokerage_rank','user.UserController/brokerage_rank')->name('brokerageRank');//佣金排行
-    Route::get('rank','user.UserController/rank')->name('rank');//推广人排行
+    Route::get('brokerage_rank', 'user.UserController/brokerage_rank')->name('brokerageRank');//佣金排行
+    Route::get('rank', 'user.UserController/rank')->name('rank');//推广人排行
     //用戶类 分享
     Route::post('user/share', 'PublicController/user_share')->name('user_share');//记录用户分享
     //用户类 点赞
@@ -168,7 +169,7 @@ Route::group(function () {
     //充值类
     Route::post('recharge/routine', 'user.UserRechargeController/routine')->name('rechargeRoutine');//小程序充值
     Route::post('recharge/wechat', 'user.UserRechargeController/wechat')->name('rechargeWechat');//公众号充值
-    Route::get('recharge/index','user.UserRechargeController/index')->name('rechargeQuota');//充值余额选择
+    Route::get('recharge/index', 'user.UserRechargeController/index')->name('rechargeQuota');//充值余额选择
     //会员等级类
     Route::get('menu/user', 'PublicController/menu_user')->name('menuUser');//个人中心菜单
     Route::get('user/level/detection', 'user.UserLevelController/detection')->name('userLevelDetection');//检测用户是否可以成为会员
@@ -185,6 +186,7 @@ Route::group(function () {
     Route::get('received/lst', 'user.PaymentReceived/lst')->name('receivedlst');//我的订单
     Route::post('received/collection_lst', 'user.PaymentReceived/collection_lst')->name('receivedcollection_lst');//收款记录
     Route::post('received/collection_set_tip', 'user.PaymentReceived/collection_set_tip')->name('receivedcollection_set_tip');//已提醒
+    Route::post('user/m_spread', 'user.UserController/setMSpreadUid')->name('m_spread');//已提醒
 
 
 })->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\http\middleware\AuthTokenMiddleware::class, true);
@@ -252,7 +254,7 @@ Route::group(function () {
     Route::post('sms/pay/notify', 'PublicController/sms_pay_notify')->name('smsPayNotify'); //短信购买异步通知
 
     //获取关注微信公众号海报
-    Route::get('wechat/follow','wechat.WechatController/follow')->name('Follow');
+    Route::get('wechat/follow', 'wechat.WechatController/follow')->name('Follow');
 
     //门店列表
     Route::get('store_list', 'PublicController/store_list')->name('storeList');
@@ -266,12 +268,12 @@ Route::group(function () {
 })->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\http\middleware\AuthTokenMiddleware::class, false);
 
 
-Route::miss(function() {
-    if(app()->request->isOptions())
+Route::miss(function () {
+    if (app()->request->isOptions())
         return \think\Response::create('ok')->code(200)->header([
-            'Access-Control-Allow-Origin'   => '*',
-            'Access-Control-Allow-Headers'  => 'Authori-zation,Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With',
-            'Access-Control-Allow-Methods'  => 'GET,POST,PATCH,PUT,DELETE,OPTIONS,DELETE',
+            'Access-Control-Allow-Origin' => '*',
+            'Access-Control-Allow-Headers' => 'Authori-zation,Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With',
+            'Access-Control-Allow-Methods' => 'GET,POST,PATCH,PUT,DELETE,OPTIONS,DELETE',
         ]);
     else
         return \think\Response::create()->code(404);