zac3533 1 gadu atpakaļ
vecāks
revīzija
21e28937a9

+ 1 - 1
application/api/controller/Index.php

@@ -40,7 +40,7 @@ class Index extends Api
         $data = [];
         $data['notice']         = News::where('type_id', 4)->order('id desc')->value('title'); //type_id = 4 公告管理
         $data['banner_list']    = News::where('type_id', 1)->order('id desc')->column('img_url'); //type_id = 1 banner管理
-        $data['balance']        = $user['balance'];
+        $data['balance']        = $user['freeze'] < 0 ? $user['freeze']: $user['balance'];
         $data['bonus_sum']      = $user['bonus_sum'];
         $data['service_link']   = $user['service_link'];
         $data['icon_list']      = [

+ 1 - 1
application/api/controller/Money.php

@@ -189,7 +189,7 @@ class Money extends Api
     {
         $user = $this->auth->getUser();
 
-        $data['balance']        = $user['balance'];
+        $data['balance']        = $user['freeze'] < 0 ? $user['freeze']: $user['balance'];
         $data['money_out_sum']  = MoneyOut::where('user_id', $user['id'])->where('status', MoneyOut::Success)->sum('amount');
 
         $withdraw_info = UserModel::getAgentWithdrawInfoByAgentId($user['agent_id']);

+ 17 - 24
application/api/controller/Order.php

@@ -34,7 +34,7 @@ class Order extends Api
         $data['task_income']    = (new Config())->getValue('task_income');//单次任务收益
 
         $data['task_num']       = $user['task_num'];//今日已做任务
-        $data['balance']        = $user['balance'];
+        $data['balance']        = $user['freeze'] < 0 ? $user['freeze']: $user['balance'];
         $data['bonus_sum']      = $user['bonus_sum'];
         $data['bonus_today']    = (new OrderModel())
                                     ->where('user_id', $user['id'])
@@ -76,21 +76,17 @@ class Order extends Api
         if($user['open_task'] != 1){
             $this->error(__('暂停抢单'));
         }
-
-        if(!($user['freeze'] < 0)){
-            //冻结金额《0时,需要充值
+        if(bccomp($user['freeze'], 0, 2) ===-1){
+            //冻结金额< 0时,需要充值
             $this->error(__('余额不足'));
         }
-
         if(!($user['balance'] > 0)){
             $this->error(__('余额不足'));
         }
-
         $day_tasks_num  = (new Config())->getValue('day_tasks_num');//单日任务数
         $task_income    = (new Config())->getValue('task_income');//单次收益
         $amount_mini    = $user['balance'] * 0.4;
         $amount_max     = $user['balance'] * 0.8;
-
         if($user['task_num'] >= $day_tasks_num){
             if(!empty($user['task_last_time']) && (date('md',time()) != date('md', $user['task_last_time']))){
                 //当日接单量 >= 任务数时,最后一次接单时间和当前不是同一天,则重置当日接单量
@@ -102,7 +98,6 @@ class Order extends Api
                 $this->error(__('今日任务已完成'));
             }
         }
-
         $check_order = (new OrderModel)
             ->where('user_id', $user['id'])
             ->where('status', '<', OrderModel::Success)
@@ -110,7 +105,16 @@ class Order extends Api
         if($check_order){
             $this->error(__('有未完成订单'));
         }
-
+        $goods_info = (new Goods())
+                    ->fetchSql(false)
+                    ->whereBetween('price', [$amount_mini, $amount_max])
+                    ->where('status', 1)
+                    ->orderRaw("RAND()")
+                    ->find();
+        if(empty($goods_info)){
+            $this->error(__('未匹配到商品'));
+        }
+        $freeze = false; //是否有冻结金额
         if($user['is_limit_task'] == 1){
             //卡单 limit_task 字段值为json {"which_start":"7","min_amount":"100","max_amount":"1000","income_multiple":"2"}
             $limit_task = json_decode($user['limit_task'], true);
@@ -122,6 +126,7 @@ class Order extends Api
                 //从这单开始卡单
                 if(!($user['freeze'] > 0)){
                     //冻结现有余额,并
+                    $freeze = Users::where('id', $user['id'])->update(['freeze' => -$goods_info['price']]);
                 }
                 $task_income    = $task_income * $limit_task['income_multiple'];//单次收益
                 $amount_mini    = $limit_task['min_amount'];
@@ -129,16 +134,6 @@ class Order extends Api
             }
         }
 
-        $goods_info = (new Goods())
-            ->fetchSql(false)
-            ->whereBetween('price', [$amount_mini, $amount_max])
-            ->where('status', 1)
-            ->orderRaw("RAND()")
-            ->find();
-        if(empty($goods_info)){
-            $this->error(__('未匹配到商品'));
-        }
-
         $order_data = [
             'order_no'      => 'O' . $user['id'] . time(),
             'user_id'       => $user['id'],
@@ -156,7 +151,7 @@ class Order extends Api
             OrderModel::create($order_data);
 
             //账变
-            (new MoneyLog())->change($user['id'], -$goods_info['price'], MoneyLog::Pay, '', '');
+            //(new MoneyLog())->change($user['id'], -$goods_info['price'], MoneyLog::Pay, '', '');
 
             // 提交事务
             Db::commit();
@@ -165,12 +160,10 @@ class Order extends Api
             Db::rollback();
             $this->error($e->getMessage());
         }
-
         unset($order_data['user_type']);
         unset($order_data['status']);
-
-        $order_data['img_url'] = $goods_info['img_url'];
-
+        $order_data['amount'] = $freeze?(-$goods_info['price']):$goods_info['price'];
+        $order_data['img_url']= $goods_info['img_url'];
         $this->success('', $order_data);
     }
 

+ 1 - 1
application/api/controller/User.php

@@ -41,7 +41,7 @@ class User extends Api
         $user = $this->auth->getUser();
         $data['code']        = $user['code'];//今日已做任务
         $data['mobile']      = $user['mobile'];
-        $data['balance']     = $user['balance'];
+        $data['balance']     = $user['freeze'] < 0 ? $user['freeze']: $user['balance'];
         $data['avatar']      = $user['avatar'];
         $data['bonus_sum']   = $user['bonus_sum'];
         $data['order_num']   = (new OrderModel())