Ver Fonte

修改来自nowallet

lizhen_gitee há 1 ano atrás
pai
commit
1c85b3d13a

+ 2 - 2
application/admin/controller/Dashboard.php

@@ -39,9 +39,9 @@ class Dashboard extends Backend
         $recharge_today_wait = Db::name('rechar_order')->where('createtime','BETWEEN',[$todaystatime,$todayendtime])->where('status',0)->sum('money');
         $recharge_yestoday = Db::name('rechar_order')->where('createtime','BETWEEN',[$yestodaystatime,$yestodayendtime])->where('status',1)->sum('money');
         //平台总资产余额、
-        $allmoney = Db::name('user')->sum('money');
+        $allmoney = Db::name('user_wallet')->sum('money');
         //钻石(平台总数量/今日充值数量))
-        $alljewel = Db::name('user')->sum('jewel');
+        $alljewel = Db::name('user_wallet')->sum('jewel');
         $recharge_money_today = Db::name('rechar_order')->where('createtime','BETWEEN',[$todaystatime,$todayendtime])->where('status',1)->sum('jewel');
 
         //

+ 3 - 3
application/admin/controller/RecharOrder.php

@@ -103,8 +103,8 @@ class RecharOrder extends Backend
                 throw new Exception('已退款');
             }
             //验证用户钻石是否足够
-            $userWhere['id'] = $row['user_id'];
-            $user = model('User')->where($userWhere)->lock(true)->find();
+            $userWhere['user_id'] = $row['user_id'];
+            $user = Db::name('user_wallet')->where($userWhere)->lock(true)->find();
             $userJewel = isset($user['jewel']) ? $user['jewel'] : 0;
             if ($userJewel < $row['jewel']) {
                 throw new Exception('钻石不足,无法退款');
@@ -120,7 +120,7 @@ class RecharOrder extends Backend
                 throw new Exception('更新退款金额失败');
             }
             //记录退款日志
-            $res = model('Wallet')->lockChangeAccountRemain($row['user_id'],$row['jewel'],'-',$user['jewel'],'充值退款',18,'jewel');
+            $res = model('Wallet')->lockChangeAccountRemain($row['user_id'],$row['jewel'],'-',0,'充值退款',18,'jewel');
             if (!$res['status']) {
                 throw new Exception($res['msg']);
             }

+ 1 - 3
application/admin/controller/Withdraw.php

@@ -113,10 +113,8 @@ class Withdraw extends Backend
                 //状态:created=申请中,successed=成功,rejected=已拒绝
                 $remark = '';
                 if ($params['status'] == 'rejected') {//返回金额
-                    $user = model('User')->find($row['user_id']);
-                    $before = $user['money'];
                     $remark = '提现'.$row['money'].'驳回';
-                    $res = model('Wallet')->lockChangeAccountRemain($row['user_id'],$row['money'],'+',$before,$remark,105,'money');
+                    $res = model('Wallet')->lockChangeAccountRemain($row['user_id'],$row['money'],'+',0,$remark,105,'money');
                     if (!$res['status']) {
                         throw new Exception($res['status']);
                     }

+ 0 - 70
application/admin/controller/user/JewelLog.php

@@ -72,75 +72,5 @@ class JewelLog extends Backend
         return $this->view->fetch();
     }
 
-    /**
-     * 添加
-     */
-    public function add()
-    {
-        if ($this->request->isPost()) {
-            $params = $this->request->post("row/a");
-            if ($params) {
-                $params = $this->preExcludeFields($params);
-
-                if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
-                    $params[$this->dataLimitField] = $this->auth->id;
-                }
-                Db::startTrans();
-                try {
-                    //是否采用模型验证
-                    if ($this->modelValidate) {
-                        $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
-                        $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
-                        $this->model->validateFailException(true)->validate($validate);
-                    }
-                    // 获取用户的变更前余额
-                    $userJewel = \app\admin\model\User::where('id', $params['user_id'])->value('jewel');
-                    $params['before'] = $userJewel;
-                    $adjustmentValue = intval($params['value']);
-                    switch ($params['mode']) {
-                        case '+':
-                            $params['balance'] = $userJewel + $adjustmentValue;
-                            break;
-                        case '-':
-                            if ($adjustmentValue > $userJewel) {
-                                $this->error('调整砖石余额大于现有砖石余额');
-                            }
-
-                            $params['balance'] = $userJewel - $adjustmentValue;
-                            break;
-                        default:
-                            $this->error('请输入正确的变更方式');
-
-                    }
-
-                    $res1 = $this->model->allowField(true)->save($params);
 
-                    // 调整用户声币余额
-                    $res2 = \app\admin\model\User::where(["id" => $params['user_id']])->update([
-                        'jewel' => Db::raw("jewel{$params['mode']}{$adjustmentValue}"),
-                    ]);
-
-
-                    if ($res1 && $res2) {
-                        Db::commit();
-                        $this->success();
-                    } else {
-                        $this->error(__('Operation failed'));
-                    }
-                    Db::commit();
-                } catch (ValidateException $e) {
-                    Db::rollback();
-                    $this->error($e->getMessage());
-                } catch (PDOException $e) {
-                    Db::rollback();
-                    $this->error($e->getMessage());
-                } catch (Exception $e) {
-                    Db::rollback();
-                    $this->error($e->getMessage());
-                }
-            }
-            $this->error(__('Parameter %s can not be empty', ''));
-        }
-        return $this->view->fetch();
-    }
 }

+ 19 - 8
application/admin/controller/user/User.php

@@ -59,7 +59,7 @@ class User extends Backend
             }
             list($where, $sort, $order, $offset, $limit) = $this->buildparams();
             $list = $this->model
-                ->with(['noble','preuser','auth','age'])
+                ->with(['noble','preuser','auth','age','userwallet'])
                 ->where($where)
                 ->order($sort, $order)
                 ->paginate($limit);
@@ -67,6 +67,7 @@ class User extends Backend
                 $v->avatar = $v->avatar ? cdnurl($v->avatar, true) : letter_avatar($v->nickname);
                 $v->hidden(['password', 'salt']);
                 $v->getRelation('age')->visible(['name']);
+                $v->getRelation('userwallet')->visible(['money','jewel']);
             }
             $result = array("total" => $list->total(), "rows" => $list->items());
 
@@ -115,12 +116,21 @@ class User extends Backend
                 $params['has_info'] = 1;
                 $result = $this->model->allowField(true)->save($params);
                 $userId = $this->model->id;
+                //权限
                 $userPower = new UserPower();
                 $userPowerData['user_id'] = $userId;
                 $userPowerRes = $userPower->insertGetId($userPowerData);
                 if (!$userPowerRes) {
                     throw new Exception('创建用户权限失败');
                 }
+                //钱包
+                $userwallet = [
+                    'user_id' => $userId,
+                ];
+                $userWalletRes = Db::name('user_wallet')->insertGetId($userwallet);
+                if(!$userWalletRes){
+                    throw new Exception('创建用户钱包失败');
+                }
                 //创建IM用户
                 $tenimService = new TenimService();
                 $imParams['user_id'] = $userPowerRes;
@@ -364,13 +374,14 @@ class User extends Backend
                 }
                 if (!empty($params['jewel_add'])) {//钻石充值
                     $userWhere['id'] = $row['id'];
-                    $user = Db::name('user')->where($userWhere)->lock(true)->find();
-                    $before = isset($user['jewel']) ? $user['jewel'] : 0;
-                    $jewelRes = model('Wallet')->lockChangeAccountRemain($row['id'],$params['jewel_add'],'+',$before,'钻石充值',17,'jewel');
-                    if (!$jewelRes['status']) {
-                        throw new Exception($jewelRes['msg']);
+                    $user = Db::name('user')->where($userWhere)->find();
+                    $userwallet = Db::name('user_wallet')->where('user_id',$row['id'])->find();
+                    $jewelRes = model('Wallet')->lockChangeAccountRemain($row['id'],$params['jewel_add'],'+',0,'钻石充值',17,'jewel');
+                    if ($jewelRes['status'] == false) {
+                        Db::rollback();
+                        $this->error($jewelRes['msg']);
                     }
-                    $params['jewel'] = bcadd($user['jewel'],$params['jewel_add']);
+                    $params['jewel'] = bcadd($userwallet['jewel'],$params['jewel_add']);
                     //充值日志记录
                     //判断是否首充
                     $jewellogWhere['user_id'] = $row['id'];
@@ -381,7 +392,7 @@ class User extends Backend
                         $isFirst = 0;
                     }
                     $preUserId = $user['pre_userid'];
-                    $userRechargeLogRes = model('UserRechargeLog')->addRecord($row['id'], $params['jewel_add'], $user['money'], $params['jewel'], $user['money'], 4, 4,$isFirst,$preUserId);
+                    $userRechargeLogRes = model('UserRechargeLog')->addRecord($row['id'], $params['jewel_add'], $userwallet['money'], $params['jewel'], $userwallet['money'], 4, 4,$isFirst,$preUserId);
                     if (!$userRechargeLogRes) {
                         throw new Exception('充值记录生成失败');
                     }

+ 2 - 2
application/admin/lang/zh-cn/user/user.php

@@ -24,8 +24,8 @@ return [
     'Bio'                                         => '格言',
     'Score'                                       => '积分',
     'Empirical'                                   => '经验值',
-    'Money'                                       => '账户余额',
-    'Jewel'                                       => '钻石余额',
+    'userwallet.Money'                            => '账户余额',
+    'userwallet.Jewel'                            => '钻石余额',
     'Money_add'                                   => '余额充值',
     'Jewel_add'                                   => '钻石充值',
     'Sound_coin'                                  => '声币余额',

+ 5 - 0
application/admin/model/User.php

@@ -153,6 +153,11 @@ class User extends Model
         return isset($list[$value]) ? $list[$value] : '';
     }
 
+    public function userwallet()
+    {
+        return $this->belongsTo('app\admin\model\Userwallet', 'id', 'user_id', [], 'LEFT')->setEagerlyType(0);
+    }
+
     public function noble()
     {
         return $this->belongsTo('app\admin\model\noble\Level', 'noble', 'id', [], 'LEFT')->setEagerlyType(0);

+ 12 - 4
application/api/controller/Attire.php

@@ -58,6 +58,7 @@ class Attire extends Api
         // 判断用户钻石余额是否充足
         $userModel = new \app\common\model\User();
         $userInfo = $userModel->where(["id"=>$this->auth->id])->find();
+        $userwallet = Db::name('user_wallet')->where('user_id',$this->auth->id)->find();
         if(!$userInfo) {
             $this->error("用户信息获取失败!");
         }
@@ -66,19 +67,26 @@ class Attire extends Api
         if(!$attireInfo) {
             $this->error("装扮信息获取失败!");
         }
-        if($userInfo["jewel"] < $attireInfo["price"]) {
+        if($userwallet["jewel"] < $attireInfo["price"]) {
             $this->error("您的余额不足,请先充值!");
         }
         // 进行购买逻辑
         Db::startTrans();
         try{
-            $userjewellogModel = new \app\common\model\UserJewelLog();
             // 扣除用户钻石余额
             $where = [];
             $where["id"] = $this->auth->id;
-            $res1 = $userModel->where($where)->setDec("jewel",$attireInfo["price"]);
+            $res1 = true;
             // 添加当前用户钻石流水记录
-            $res2 = $userjewellogModel->addUserJewelLog($this->auth->id, $attireInfo["price"], "-", $userInfo["jewel"], "购买装扮扣除" . $attireInfo["price"] . "钻石!", 6);
+            $res2 = true;
+
+            //增加用户钻石余额
+            $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id, $attireInfo["price"], "-", 0, "购买装扮扣除" . $attireInfo["price"] . "钻石!", 6,'jewel');
+            if($rs_wallet['status'] == false){
+                Db::rollback();
+                $this->error($rs_wallet['msg']);
+            }
+
             // 添加装扮购买记录
             $data = [];
             $data["user_id"] = $this->auth->id;

+ 43 - 49
application/api/controller/Dispatch.php

@@ -387,10 +387,7 @@ class Dispatch extends Common
         }
 
         // 判断用户余额
-        $userModel = new \app\common\model\User();
-        $where = [];
-        $where["id"] = $this->auth->id;
-        $jewel = $userModel->where($where)->value("jewel");
+        $jewel = Db::name('user_wallet')->where('user_id',$this->auth->id)->value('jewel');
         $price = 0;
         $authInfo["price"] >= 0 || $price = 0;
         $authInfo["price"] >= 0 && $price = $authInfo["price"];
@@ -431,14 +428,7 @@ class Dispatch extends Common
             $data["createtime"] = time();
             $res = $orderModel->insertGetId($data);
             if($res) {
-                //冻结用户钻石
-                /*$userWhere['id'] = $this->auth->id;
-                $money = bcmul($authInfo["price"],$num);
-                $res1 = model('User')->where($userWhere)->setDec("jewel",$money);//用户扣减金额
-                $res2 = model('User')->where($userWhere)->setInc("frozen",$money);//用户冻结金额
-                if (!$res1 || !$res2) {
-                    throw new Exception('用户扣减金额失败');
-                }*/
+
                 \app\common\model\Message::addMessage($authInfo["user_id"],"派单通知","您的技能:".$skillInfo["name"]."有人下单啦,请注意查看!");
                 Db::commit();
                 $this->success('订单创建成功!',["order_no"=>$out_trade_no]);
@@ -525,7 +515,7 @@ class Dispatch extends Common
         $userModel = new \app\common\model\User();
         $where = [];
         $where["id"] = $this->auth->id;
-        $jewel = $userModel->where($where)->value("jewel");
+        $jewel = Db::name('user_wallet')->where('user_id',$this->auth->id)->value('jewel');
         $money = $orderInfo["price"] * $orderInfo["num"];
         if($money > $jewel) {
             $this->error(__('钻石余额不足,请先充值!'),[],100);
@@ -534,22 +524,19 @@ class Dispatch extends Common
         Db::startTrans();
         try{
             // 扣除用户余额
-            $where = [];
-            $where["id"] = $this->auth->id;
-            $userInfo = $userModel->where($where)->find();
-            $res1 = $userModel->where($where)->setDec("jewel",$money);
+
+            $res1 = true;
             $res2 = $userModel->where($where)->setInc("frozen",$money);
             // 添加用户余额变动记录
-            $userjewellogModel = new \app\common\model\UserJewelLog();
-            $data = [];
-            $data["user_id"] = $this->auth->id;
-            $data["value"] = $money;
-            $data["mode"] = "-";
-            $data["before"] = $userInfo["jewel"];
-            $data["balance"] = $userInfo["jewel"]-$money;
-            $data["detail"] = "下单扣除余额";
-            $data["createtime"] = time();
-            $res3 = $userjewellogModel->insertGetId($data);
+            $res3 = true;
+            //增加用户钻石余额
+            $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id, $money, "-", 0, "下单扣除余额", 0,'jewel');
+            if($rs_wallet['status'] == false){
+                Db::rollback();
+                $this->error($rs_wallet['msg']);
+            }
+
+
             // 添加订单信息
             $orderModel = new \app\common\model\DispatchOrder();
             // 修改订单状态
@@ -632,10 +619,17 @@ class Dispatch extends Common
                     $this->error(__('账户资金异常,请联系管理员!'),[],105);
                 }
                 $res1 = $userModel->where($where)->setDec("frozen",$money);//下单用户
-                $res2 = $userModel->where($where)->setInc("jewel",$money);//下单用户
+                $res2 = true;//下单用户
                 // 添加用户余额变动记录
-                $userjewellogModel = new \app\common\model\UserJewelLog();
-                $res3 = $userjewellogModel->addUserJewelLog($orderInfo["user_id"], $money, "+", $userInfo["jewel"], "拒绝订单返还余额", 7);
+                $res3 = true;
+
+                //增加用户钻石余额
+                $rs_wallet = model('wallet')->lockChangeAccountRemain($orderInfo["user_id"], $money, "+", 0, "拒绝订单返还余额", 7,'jewel');
+                if($rs_wallet['status'] == false){
+                    Db::rollback();
+                    $this->error($rs_wallet['msg']);
+                }
+
                 // 更新订单状态
                 $data = [];
                 $data["status"] = $status;
@@ -675,27 +669,21 @@ class Dispatch extends Common
                 $userModel = new \app\common\model\User();
                 $money = $orderInfo["price"] * $orderInfo["num"];
                 // 增加用户余额
+                $res1 = true;
+                //
                 $where = [];
-                $where["id"] = $orderInfo["recive_id"];
-                $userInfo = $userModel->where($where)->find();
-                //$res1 = $userModel->where($where)->setInc("jewel",$money);
-                $jewelMoneyRate = config('site.money_to_jewel');//1人民币兑换钻石数
-                $moneyRmb = bcdiv($money,$jewelMoneyRate);
-                $res1 = $userModel->where($where)->setInc("money",$moneyRmb);
-                $where = [];
-                $where["id"] = $this->auth->id;
+                $where["id"] = $orderInfo['user_id'];
                 $res2 = $userModel->where($where)->setDec("frozen",$money);
                 // 添加用户余额变动记录
-                /*$userjewellogModel = new \app\common\model\UserJewelLog();
-                $res3 = $userjewellogModel->addUserJewelLog($orderInfo["recive_id"], $money, "+", $userInfo["jewel"], "完成用户订单获得收益", 8);*/
+                $res3 = true;
+
                 $remark = $orderInfo['skill_name'].'服务';
-                $rs_wallet = model('wallet')->lockChangeAccountRemain($orderInfo["recive_id"],$moneyRmb,'+',$userInfo['money'],$remark,106,'money');
-                $res3 = false;
+                $jewelMoneyRate = config('site.money_to_jewel');//1人民币兑换钻石数
+                $moneyRmb = bcdiv($money,$jewelMoneyRate);
+                $rs_wallet = model('wallet')->lockChangeAccountRemain($orderInfo["recive_id"],$moneyRmb,'+',0,$remark,106,'money');
                 if($rs_wallet['status'] == false){
-                    $this->error($rs_wallet['msg']);
                     Db::rollback();
-                } else {
-                    $res3 = true;
+                    $this->error($rs_wallet['msg']);
                 }
                 // 更新订单状态
                 $data = [];
@@ -739,16 +727,22 @@ class Dispatch extends Common
                 $money = $orderInfo["price"] * $orderInfo["num"];
                 // 解冻用户余额
                 $where = [];
-                $where["id"] = $this->auth->id;
+                $where["id"] = $orderInfo['user_id'];
                 $userInfo = $userModel->where($where)->find();
                 if($userInfo["frozen"] - $money < 0) {
                     $this->error(__('账户资金异常,请联系管理员!'),[],105);
                 }
                 $res1 = $userModel->where($where)->setDec("frozen",$money);
-                $res2 = $userModel->where($where)->setInc("jewel",$money);
+                $res2 = true;
                 // 添加用户余额变动记录
-                $userjewellogModel = new \app\common\model\UserJewelLog();
-                $res3 = $userjewellogModel->addUserJewelLog($orderInfo["user_id"], $money, "+", $userInfo["jewel"], "取消订单返还余额", 7);
+                $res3 = true;
+
+                $rs_wallet = model('wallet')->lockChangeAccountRemain($orderInfo["user_id"], $money, "+", 0, "取消订单返还余额", 7,'money');
+                if($rs_wallet['status'] == false){
+                    Db::rollback();
+                    $this->error($rs_wallet['msg']);
+                }
+
                 // 更新订单状态
                 $data = [];
                 $data["status"] = $status;

+ 2 - 2
application/api/controller/Eggnew.php

@@ -346,7 +346,7 @@ class Eggnew extends Api
             ->join("egg_jackpot jp","a.Jackpot_id = jp.id","left")
             ->where($where)
 //            ->group("a.user_id")
-            ->order("money","desc")
+            ->order("a.money","desc")
             ->limit(20)
             ->select();
         $this->success("获取成功!",$ranklist);
@@ -370,7 +370,7 @@ class Eggnew extends Api
             ->join("hx_user u","u.id = a.user_id","inner")
             ->where($where)
             ->group("a.user_id")
-            ->order("money","desc")
+            ->order("a.money","desc")
             ->limit(20)
             ->select();
         if(!$ranklist) $this->success("获取成功!",[]);

+ 5 - 5
application/api/controller/Live.php

@@ -56,7 +56,6 @@ class Live extends Common
         $withdraw = \app\common\model\UserWithdrawalLog::where(["user_id" => $user_id, "status" => ["in", [0, 1]]])->sum("money");
         $withdraw = bcdiv($withdraw, 100,2);
         $sum = bcsub($moneylog, $withdraw,2);
-        $usermoney = \app\common\model\User::where(["id" => $user_id])->value("money");
         if ($usermoney == $sum) {
             echo 1;
         } else {
@@ -607,6 +606,7 @@ class Live extends Common
      * 赠送礼物
      */
     public function giveGiftToYou() {
+        exit;
         $user_id = $this->request->request("user_id");// 赠送对象
         $gift_id = $this->request->request("gift_id");// 礼物ID
         $live_id = $this->request->request("live_id");// 直播间ID
@@ -641,15 +641,15 @@ class Live extends Common
             // 扣除当前用户钻石余额
             $where = [];
             $where["id"] = $this->auth->id;
-            $res1 = $userModel->where($where)->setDec("jewel",$giftValue);
+//            $res1 = $userModel->where($where)->setDec("jewel",$giftValue);
             // 添加当前用户钻石流水记录
-            $res2 = $userjewellogModel->addUserJewelLog($this->auth->id, $giftValue, "-", $userInfo["jewel"], "赠送礼物:'" . $giftInfo["name"] . "',扣除" . $giftValue . "钻石!", 3);
+//            $res2 = $userjewellogModel->addUserJewelLog($this->auth->id, $giftValue, "-", $userInfo["jewel"], "赠送礼物:'" . $giftInfo["name"] . "',扣除" . $giftValue . "钻石!", 3);
             // 添加赠送用户钻石余额
             $where = [];
             $where["id"] = $user_id;
-            $res3 = $userModel->where($where)->setInc("jewel",$giftValue);
+//            $res3 = $userModel->where($where)->setInc("jewel",$giftValue);
             // 添加赠送用户钻石流水记录
-            $res4 = $userjewellogModel->addUserJewelLog($user_id,$giftValue,"+",$touserInfo["jewel"],"获赠礼物:'".$giftInfo["name"]."',增加".$giftValue."钻石!",9);
+//            $res4 = $userjewellogModel->addUserJewelLog($user_id,$giftValue,"+",$touserInfo["jewel"],"获赠礼物:'".$giftInfo["name"]."',增加".$giftValue."钻石!",9);
             // 添加礼物赠送记录表
             $data = [];
             $data["user_id"] = $this->auth->id;

+ 64 - 33
application/api/controller/Money.php

@@ -38,7 +38,15 @@ class Money extends Common
      */
     public function getUserMoney()
     {
-        $this->success("获取成功!", \app\common\model\User::field("money,rebate_money,score,jewel,sound_coin,hammer")->find($this->auth->id));
+
+        $rs = Db::name('user')->field("rebate_money,score,sound_coin,hammer")->where('id',$this->auth->id)->find();
+
+        //用户钱包
+        $userwallet = Db::name('user_wallet')->where('user_id',$this->auth->id)->find();
+        $rs['money'] = $userwallet['money'];
+        $rs['jewel'] = $userwallet['jewel'];
+
+        $this->success("获取成功!", $rs);
     }
 
     /**
@@ -394,9 +402,9 @@ class Money extends Common
         // 查询资金余额
         $userModel = new \app\common\model\User();
         $userInfo = $userModel->where('id',$user_id)->lock(true)->find();
-        if (bcsub($money, $userInfo["money"], 2) > 0) {
+        /*if (bcsub($money, $userInfo["money"], 2) > 0) {
             $this->error("资金余额不足!", [], 100);
-        }
+        }*/
 
         // 增加提现收益记录
         $withdrawRate = (100 - config("site.withdrawRate")) / 100;
@@ -457,7 +465,7 @@ class Money extends Common
                 try {
                     $withdrawallogModel = new \app\common\model\UserWithdrawalLog();
                     // 减去用户可用资金余额
-                    $res1 = $userModel->where(["id" => $user_id])->setDec("money", $money);
+//                    $res1 = $userModel->where(["id" => $user_id])->setDec("money", $money);
                     // 增加用户冻结资金余额
                     $res2 = $userModel->where(["id" => $user_id])->setInc("frozen", $money);
                     // 新增用户提现记录申请
@@ -805,6 +813,7 @@ class Money extends Common
      */
     public function exchangeSoundcoin()
     {
+        exit;
         // 接口防并发
         if (!$this->apiLimit(1, 1000)) {
             $this->error(__('Operation frequently'));
@@ -846,7 +855,7 @@ class Money extends Common
             $exchexsoundlogModel = new \app\common\model\UserExchsoundLog();
             $detail = "声币兑换钻石";
             // 添加钻石流水记录
-            $res1 = $jewellogModel->addUserJewelLog($this->auth->id, $exchangeMoney, "+", $userInfo["jewel"], $detail, 4);
+//            $res1 = $jewellogModel->addUserJewelLog($this->auth->id, $exchangeMoney, "+", $userInfo["jewel"], $detail, 4);
 
             // 添加兑换记录
             $res2 = $exchexsoundlogModel->addExchsoundLog($this->auth->id, $scoin, $exchangeMoney);
@@ -856,7 +865,7 @@ class Money extends Common
             // 减去用户声币余额
             $res4 = $userModel->where(["id" => $this->auth->id])->setDec("sound_coin", $scoin);
             // 增加用户钻石余额
-            $res5 = $userModel->where(["id" => $this->auth->id])->setInc("jewel", $exchangeMoney);
+//            $res5 = $userModel->where(["id" => $this->auth->id])->setInc("jewel", $exchangeMoney);
             if ($res1 && $res2 && $res3 && $res4 && $res5) {
                 Db::commit();
                 $this->success("兑换成功!");
@@ -917,12 +926,12 @@ class Money extends Common
                 $this->error("声币余额不足!", [], 100);
             }
 
-            $moneylogModel = new \app\common\model\UserMoneyLog();
+//            $moneylogModel = new \app\common\model\UserMoneyLog();
             $soundlogModel = new \app\common\model\UserSoundcoinLog();
             $exchangelogModel = new \app\common\model\UserExchangeLog();
             $detail = "声币兑换余额";
             // 添加资金流水记录
-            $res1 = $moneylogModel->addRecord($this->auth->id, $exchangeMoney, "+", $userInfo["money"], $detail);
+//            $res1 = $moneylogModel->addRecord($this->auth->id, $exchangeMoney, "+", $userInfo["money"], $detail);
             // 添加兑换记录
             $res2 = $exchangelogModel->addExchangeLog($this->auth->id, $scoin, $exchangeMoney);
             // 添加声币流水记录
@@ -930,7 +939,7 @@ class Money extends Common
             // 减去用户声币余额
             $res4 = $userModel->where(["id" => $this->auth->id])->setDec("sound_coin", $scoin);
             // 增加用户资金余额
-            $res5 = $userModel->where(["id" => $this->auth->id])->setInc("money", $exchangeMoney);
+//            $res5 = $userModel->where(["id" => $this->auth->id])->setInc("money", $exchangeMoney);
             if ($res1 && $res2 && $res3 && $res4 && $res5) {
                 Db::commit();
                 $this->success("兑换成功!");
@@ -984,27 +993,34 @@ class Money extends Common
 
             $userId = $this->auth->id;
             // 查询余额
-            $userModel = new \app\common\model\User();
-            $userInfo = $userModel->lock('lock in share mode')->find($userId);
-            if ($exchangeMoney > $userInfo["money"]) {
+            $userwallet = Db::name('user_wallet')->where('user_id',$this->auth->id)->find();
+            if ($exchangeMoney > $userwallet["money"]) {
                 throw new Exception("余额不足!");
             }
 
-            $moneylogModel = new \app\common\model\UserMoneyLog();
-            $jewellogModel = new \app\common\model\UserJewelLog();
-            $exchangelogModel = new \app\common\model\UserExchangeLog();
-            $detail = "余额兑换钻石";
-            // 添加资金流水记录
-            $res1 = $moneylogModel->addRecord($userId, $exchangeMoney, "-", $userInfo["money"], $detail,114);
+            //
+            $detail = '余额兑换钻石';
+
+            //减去用户余额
+            $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id,$exchangeMoney,'-',0,$detail,114,'money');
+            if($rs_wallet['status'] == false){
+                Db::rollback();
+                $this->error($rs_wallet['msg']);
+            }
+
+            //增加用户钻石余额
+            $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id, $scoin, '+', 0, $detail, 14,'jewel');
+            if($rs_wallet['status'] == false){
+                Db::rollback();
+                $this->error($rs_wallet['msg']);
+            }
+
             // 添加兑换记录
+            $exchangelogModel = new \app\common\model\UserExchangeLog();
             $res2 = $exchangelogModel->addExchangeLog($userId, $scoin, $exchangeMoney);
-            // 添加钻石流水记录
-            $res3 = $jewellogModel->addUserJewelLog($userId, $scoin, "+", $userInfo["jewel"], $detail, 14);
-            // 减去用户余额
-            $res4 = $userModel->where(["id" => $userId])->setDec("money", $exchangeMoney);
-            // 增加用户钻石余额
-            $res5 = $userModel->where(["id" => $userId])->setInc("jewel", $scoin);
-            if ($res1 && $res2 && $res3 && $res4 && $res5) {
+
+
+            if ($res2) {
                 Db::commit();
                 $this->success("兑换成功!");
             } else {
@@ -1101,8 +1117,8 @@ class Money extends Common
 
         // 查询资金余额
         $userModel = new \app\common\model\User();
-        $userInfo = $userModel->get($this->auth->id);
-        if ($money > $userInfo["money"]) {
+        $user_wallet = Db::name('user_wallet')->where(['user_id'=>$this->auth->id])->find();
+        if ($money > $user_wallet["money"]) {
             $this->error("资金余额不足!", [], 100);
         }
 
@@ -1110,7 +1126,13 @@ class Money extends Common
         try {
             $withdrawallogModel = new \app\common\model\UserWithdrawalLog();
             // 减去用户可用资金余额
-            $res1 = $userModel->where(["id" => $this->auth->id])->setDec("money", $money);
+            $res1 = true;
+            //扣余额
+            $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id,$money,'-',0,'申请提现',104,'money');
+            if($rs_wallet['status'] === false){
+                Db::rollback();
+                $this->error($rs_wallet['msg']);
+            }
             // 增加用户冻结资金余额
             $res2 = $userModel->where(["id" => $this->auth->id])->setInc("frozen", $money);
             // 新增用户提现记录申请
@@ -1403,13 +1425,14 @@ class Money extends Common
      */
     public function withdrawVerify($user_id)
     {
+        exit;
         if (!$user_id) return false;
         // 统计用户所有兑换记录和提现记录 是否与余额匹配
         $moneylog = \app\common\model\UserMoneyLog::where(["user_id" => $user_id, "mode" => "+"])->sum('value');
         $withdraw = \app\common\model\UserWithdrawalLog::where(["user_id" => $user_id, "status" => ["in", [0, 1]]])->sum("money");
         $withdraw = bcdiv($withdraw, 100,2);
         $sum = bcsub($moneylog, $withdraw,2);
-        $usermoney = \app\common\model\User::where(["id" => $user_id])->value("money");
+//        $usermoney = \app\common\model\User::where(["id" => $user_id])->value("money");
         if ($usermoney == $sum) {
             return true;
         } else {
@@ -1594,21 +1617,29 @@ class Money extends Common
         try {
             $orderModel = new \app\common\model\RecharOrder();
             $userModel = new \app\common\model\User();
-            $jewellogModel = new \app\common\model\UserJewelLog();
             $rechargelogModel = new \app\common\model\UserRechargeLog();
             $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
             $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
+            $userwallet = Db::name('user_wallet')->where('user_id',$orderInfo["user_id"])->find();
             // 修改订单状态
             $res1 = $orderModel->update(["status" => 1, 'platform' => 2], ["order_no" => $out_trade_no]);
             // 修改用户钻石余额
-            $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
+            $res2 = true;
             // 添加钻石流水记录
             $detail = "充值";
-            $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
+            $res3 = true;
+            //增加用户钻石余额
+            $rs_wallet = model('wallet')->lockChangeAccountRemain($userInfo["id"], $orderInfo["jewel"], "+", 0, $detail, 1,'jewel');
+            if($rs_wallet['status'] == false){
+                Db::rollback();
+                $this->error($rs_wallet['msg']);
+            }
+
+            //
             $rechargeCount = $rechargelogModel->where('user_id',$orderInfo["user_id"])->count();
             $isFirstRecharge = $rechargeCount > 0 ? 0 : 1;
             // 添加充值记录
-            $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], 2, 4, $isFirstRecharge, $userInfo["pre_userid"]);
+            $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userwallet["jewel"], $orderInfo["jewel"], 2), $userwallet["money"], 2, 4, $isFirstRecharge, $userInfo["pre_userid"]);
             if ($res1 && $res2 && $res3 && $res4) {
                 // 添加统计
                 $time = time();

+ 20 - 6
application/api/controller/Noble.php

@@ -126,12 +126,12 @@ class Noble extends Api
             $this->error(__('贵族等级信息有误!'));
         }
         $userModel = new \app\common\model\User();
-        $userjewellogModel = new \app\common\model\UserJewelLog();
         $where = [];
         $where["id"] = $this->auth->id;
         $userInfo = $userModel->where($where)->find();
+        $userwallet = Db::name('user_wallet')->where('user_id',$this->auth->id)->find();
         // 判断用户余额
-        if($userInfo["jewel"]-$money < 0) {
+        if($userwallet["jewel"]-$money < 0) {
             $this->error("您的钻石余额不足,请先充值");
         }
 
@@ -155,14 +155,21 @@ class Noble extends Api
             $data = [];
             $data["noble"] = $level_id;
             $data["noble_duetime"] = $duetime;
-            $submoney = bcsub($userInfo["jewel"],$money);
             // 开通返现
             $return = $nldlCount>0?$noblelevelInfo["give"]:$noblelevelInfo["firstgive"];
-            $data["jewel"] = bcadd($submoney,$return);
 
             $res1 = $userModel->update($data,$where);
             // 添加当前用户钻石流水记录
-            $res2 = $userjewellogModel->addUserJewelLog($this->auth->id, $money, "-", $userInfo["jewel"], "开通贵族:'" . $noblelevelInfo["name"] . "',扣除" . $money . "钻石!", 5);
+            $res2 = true;
+
+            //扣除用户钻石余额
+            if($money > 0){
+                $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id, $money, "-", 0, "开通贵族:'" . $noblelevelInfo["name"] . "',扣除" . $money . "钻石!", 5,'jewel');
+                if($rs_wallet['status'] == false){
+                    Db::rollback();
+                    $this->error($rs_wallet['msg']);
+                }
+            }
 
             // 添加贵族等级开通明细
             $data = [];
@@ -173,7 +180,14 @@ class Noble extends Api
             $res3 = $nldlModel->insertGetId($data);
 
             // 添加当前用户钻石流水记录
-            $res4 = $userjewellogModel->addUserJewelLog($this->auth->id, $return, "+", $userInfo["jewel"] - $money, "开通贵族:'" . $noblelevelInfo["name"] . "',赠送" . $return . "钻石!", 15);
+            $res4 = true;
+            if($return > 0){
+                $rs_wallet = model('wallet')->lockChangeAccountRemain($this->auth->id, $return, "+", 0, "开通贵族:'" . $noblelevelInfo["name"] . "',赠送" . $return . "钻石!", 15,'jewel');
+                if($rs_wallet['status'] == false){
+                    Db::rollback();
+                    $this->error($rs_wallet['msg']);
+                }
+            }
 
 
             if($res1 && $res2 && $res3 && $res4) {

+ 26 - 8
application/api/controller/Notify.php

@@ -155,11 +155,12 @@ class Notify extends Api
         $rechargelogModel = new \app\common\model\UserRechargeLog();
         $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
         $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
+        $userwallet = Db::name('user_wallet')->where('user_id',$orderInfo["user_id"])->find();
         $time = time();
         // 修改订单状态
         $res1 = $orderModel->update(["status" => 1,'transaction_id' => $trade_no,'paytime'=>$time], ["order_no" => $out_trade_no]);
         // 修改用户钻石余额
-        $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
+        $res2 = true;
         //判断是否首充
         $jewellogWhere['user_id'] = $orderInfo["user_id"];
         $jewellogWhere['type'] = 1;
@@ -171,9 +172,17 @@ class Notify extends Api
         $preUserId = $userInfo['pre_userid'];
         // 添加钻石流水记录
         $detail = "钻石充值";
-        $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
+        $res3 = true;
+
+        //增加用户钻石余额
+        $rs_wallet = model('wallet')->lockChangeAccountRemain($userInfo["id"], $orderInfo["jewel"], "+", 0, $detail, 1,'jewel');
+        if($rs_wallet['status'] == false){
+            Db::rollback();
+            $this->error($rs_wallet['msg']);
+        }
+
         // 添加充值记录
-        $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 2,$isFirst,$preUserId);
+        $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userwallet["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], 2,$isFirst,$preUserId);
         if ($res1 && $res2 && $res3 && $res4) {
             // 添加统计
             $userInfo->chargecount = $userInfo->chargecount + $payamount;
@@ -231,22 +240,31 @@ class Notify extends Api
                 try {
                     $orderModel = new \app\common\model\RecharOrder();
                     $userModel = new \app\common\model\User();
-                    $jewellogModel = new \app\common\model\UserJewelLog();
+
                     $rechargelogModel = new \app\common\model\UserRechargeLog();
                     $orderInfo = $orderModel->where(["order_no" => $out_trade_no])->find();
                     $userInfo = $userModel->where(["id" => $orderInfo["user_id"]])->find();
+                    $userwallet = Db::name('user_wallet')->where('user_id',$orderInfo["user_id"])->find();
                     // 修改订单状态
                     $res1 = $orderModel->update(["status" => 1], ["order_no" => $out_trade_no]);
                     // 修改用户钻石余额
-                    $res2 = $userModel->where(["id" => $orderInfo["user_id"]])->setInc("jewel", $orderInfo["jewel"]);
+                    $res2 = true;
                     // 添加钻石流水记录
-                    $detail = "砖石充值";
-                    $res3 = $jewellogModel->addUserJewelLog($userInfo["id"], $orderInfo["jewel"], "+", $userInfo["jewel"], $detail, 1);
+                    $detail = "钻石充值";
+                    $res3 = true;
+
+                    //增加用户钻石余额
+                    $rs_wallet = model('wallet')->lockChangeAccountRemain($userInfo["id"], $orderInfo["jewel"], "+", 0, $detail, 1,'jewel');
+                    if($rs_wallet['status'] == false){
+                        Db::rollback();
+                        $this->error($rs_wallet['msg']);
+                    }
+
                     // 添加充值记录
                     $rechargeCount = $rechargelogModel->where('user_id',$orderInfo["user_id"])->count();
                     $isFirstRecharge = $rechargeCount > 0 ? 0 : 1;
                     $platformArr = ["wx_app_pay" => 1, "ali_wap_pay" => 2, "wx_public_pay" => 3];
-                    $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userInfo["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], $platformArr[$pay_channel], $isFirstRecharge, $userInfo["pre_userid"]);
+                    $res4 = $rechargelogModel->addRecord($userInfo["id"], $orderInfo["jewel"], $payamount, bcadd($userwallet["jewel"], $orderInfo["jewel"], 2), $userInfo["money"], $orderInfo["platform"], $platformArr[$pay_channel], $isFirstRecharge, $userInfo["pre_userid"]);
                     if ($res1 && $res2 && $res3 && $res4) {
                         // 添加统计
                         $time = time();

+ 3 - 3
application/api/controller/Party.php

@@ -1783,8 +1783,8 @@ class Party extends Common
                     // 扣除当前用户钻石余额
                     $rs_wallet = model('wallet')->lockChangeAccountRemain($userauthid, $giftValue, '-', $this->auth->jewel, "赠送礼物:'" . $giftInfo["name"] . "',扣除" . $giftValue . "钻石!", 3,'jewel');
                     if($rs_wallet['status'] == false){
-                        $this->error($rs_wallet['msg']);
                         Db::rollback();
+                        $this->error($rs_wallet['msg']);
                     }
                 }
 
@@ -1831,8 +1831,8 @@ class Party extends Common
                     if($getMoney > 0){
                         $rs_wallet = model('wallet')->lockChangeAccountRemain($user_id,$getMoney,'+',0,"{$this->auth->nickname}送你{$giftInfo['name']}x{$number}",101,'money');
                         if($rs_wallet['status'] == false){
-                            $this->error($rs_wallet['msg']);
                             Db::rollback();
+                            $this->error($rs_wallet['msg']);
                         }
                     }
                 }*/
@@ -1843,8 +1843,8 @@ class Party extends Common
                     if($guilderMoney > 0){
                         $rs_wallet = model('wallet')->lockChangeAccountRemain($partyInfo->user_id,$guilderMoney,'+',0,"{$this->auth->nickname}送礼物{$giftInfo['name']}x{$number}给{$touserInfo['nickname']},房间礼物抽成",102,'money');
                         if($rs_wallet['status'] == false){
-                            $this->error($rs_wallet['msg']);
                             Db::rollback();
+                            $this->error($rs_wallet['msg']);
                         }
                     }
                 }*/

+ 9 - 2
application/api/controller/Usercenter.php

@@ -46,8 +46,14 @@ class UserCenter extends Common
         // 获取基本信息
         $where = [];
         $where["id"] = $user_id;
-        $userInfo = $this->userModel->field("id,nickname,pre_nickname,image,mobile,avatar,pre_avatar,gender,money,age,u_id,level,jewel,
+        $userInfo = $this->userModel->field("id,nickname,pre_nickname,image,mobile,avatar,pre_avatar,gender,age,u_id,level,jewel,
         age_id,constellation_id,province_id,city_id,desc,ipaddress,is_cool,is_manager,is_stealth,charm_level,wealth_level")->where($where)->find();
+
+        //用户钱包
+        $userwallet = Db::name('user_wallet')->where('user_id',$user_id)->find();
+        $userInfo['money'] = $userwallet['money'];
+        $userInfo['jewel'] = $userwallet['jewel'];
+
         $userInfo['nickname_status'] = $userInfo['avatar_status'] = 0;
         if (!empty($userInfo['pre_nickname']) && $userInfo['pre_nickname'] != $userInfo['nickname']) {
             $userInfo['nickname_status'] = 1;
@@ -1014,7 +1020,8 @@ class UserCenter extends Common
      * 获取用户钻石余额
      */
     public function getUserJewel() {
-        $data = \app\common\model\User::field("Jewel,money")->where(["id"=>$this->auth->id])->find();
+        //用户钱包
+        $data = Db::name('user_wallet')->field("jewel,money")->where('user_id',$this->auth->id)->find();
         return $this->success("获取成功!",$data);
     }
 

+ 3 - 5
application/api/controller/Usersign.php

@@ -142,9 +142,7 @@ class Usersign extends Api
                 }
                 $data['goldnum'] = $gift['num'];
                 $data['remark'] = '签到钻石'.$gift['num'];
-                $user = model('User')->find($uid);
-                $userJewel = isset($user['jewel']) ? $user['jewel'] : 0;
-                $rs_wallet = model('wallet')->lockChangeAccountRemain($uid,$gift['num'],'+',$userJewel,$data['remark'],16,'jewel');
+                $rs_wallet = model('wallet')->lockChangeAccountRemain($uid,$gift['num'],'+',0,$data['remark'],16,'jewel');
                 if (!$rs_wallet['status']) {
                     throw new Exception($rs_wallet['msg']);
                 }
@@ -171,7 +169,7 @@ class Usersign extends Api
 
     //第七天赠送vip
     //找出最近七天的次数
-    private function gift_vip($user_sign_gift_vipdays){
+    /*private function gift_vip($user_sign_gift_vipdays){
         $start = strtotime(date('Y-m-d')) - 518400;
         $map = [
             'uid' => $this->auth->id,
@@ -199,5 +197,5 @@ class Usersign extends Api
             return true;
         }
         return false;
-    }
+    }*/
 }

+ 14 - 5
application/api/controller/Withdraw.php

@@ -151,8 +151,13 @@ class Withdraw extends Common
     public function getUserInfoByMobile() {
         $mobile = $this->request->request('mobile');// 手机号
         if(!$mobile) $this->error("请输入手机号!");
-        $field = "u_id,avatar,money,nickname,mobile";
-        $userInfo = \app\common\model\User::getByMobile($mobile,$field);
+        $field = "id,u_id,avatar,nickname,mobile";
+        $userInfo = Db::name('user')->where('mobile',$mobile)->field($field)->find();
+
+        //用户钱包
+        $userwallet = Db::name('user_wallet')->where('user_id',$userInfo['id'])->find();
+        $userInfo['money'] = $userwallet['money'];
+
         $this->success("获取成功!",$userInfo);
     }
 
@@ -325,9 +330,13 @@ class Withdraw extends Common
      */
     public function getUserAccountInfo() {
         // 获取用户信息
-        $res = \app\common\model\User::field("id,u_id,avatar,mobile,nickname,money as use_money,frozen")->where(["id"=>$this->auth->id])->find();
-        $res["all_money"] = bcadd($res["use_money"],$res["frozen"],2);
-        unset($res["frozen"]);
+        $res = \app\common\model\User::field("id,u_id,avatar,mobile,nickname")->where(["id"=>$this->auth->id])->find();
+
+        //用户钱包
+        $userwallet = Db::name('user_wallet')->where('user_id',$this->auth->id)->find();
+        $res['use_money'] = $userwallet['money'];
+        $res['all_money'] = $userwallet['money'];
+
         // 获取用户实名认证信息
         $res["realname"] = \app\common\model\UserAuth::where(["user_id"=>$res["id"]])->value("realname");
         // 获取用户银行卡信息

+ 19 - 1
application/common/library/Auth.php

@@ -27,7 +27,9 @@ class Auth
     //默认配置
     protected $config = [];
     protected $options = [];
-    protected $allowFields = ['id', 'u_id', 'username', 'nickname', 'mobile', 'pre_userid', 'has_info', 'is_auth', 'is_anchor', 'is_guild', 'guild_id', 'avatar', 'empirical', 'image', 'money', 'level', 'gender', 'age', 'jewel','ipaddress','wealth_level','charm_level'];
+    protected $allowFields = ['id', 'u_id', 'username', 'nickname', 'mobile', 'pre_userid', 'has_info', 'is_auth',
+        'is_anchor', 'is_guild', 'guild_id', 'avatar', 'empirical', 'image','level', 'gender', 'age',
+        'ipaddress','wealth_level','charm_level'];
 
     public function __construct($options = [])
     {
@@ -235,6 +237,11 @@ class Auth
             }
             $userpower = UserPower::getByUserId($user->id);
             $this->_user->power = $userpower;
+            //注册到钱包
+            $wallet_data = [
+                'user_id' => $user->id,
+            ];
+            Db::name('user_wallet')->insertGetId($wallet_data);
             //注册成功的事件
             Hook::listen("user_register_successed", $this->_user, $data);
             \app\common\model\NewBagHave::insert(["user_id" => $user->id, "createtime" => time()]);
@@ -483,6 +490,12 @@ class Auth
         $fansfollows["follows"] = $follows ? $follows : 0;
         $allowFields = $this->getAllowFields();
         $userinfo = array_intersect_key($data, array_flip($allowFields));
+
+        //用户钱包
+        $userwallet = Db::name('user_wallet')->where('user_id',$this->_user->id)->find();
+        $userinfo['money'] = $userwallet['money'];
+        $userinfo['jewel'] = $userwallet['jewel'];
+
         $userinfo = array_merge($userinfo, Token::get($this->_token));
         $userinfo = array_merge($userinfo, $fansfollows);
         // 获取贵族信息
@@ -864,6 +877,11 @@ class Auth
                 $powerData = ['user_id' => $user->id];
                 Db::name('user_power')->insertGetId($powerData);
             }
+            //注册到钱包
+            $wallet_data = [
+                'user_id' => $user->id,
+            ];
+            Db::name('user_wallet')->insertGetId($wallet_data);
             //注册成功的事件
             Hook::listen("user_register_successed", $this->_user, $data);
             \app\common\model\NewBagHave::insert(["user_id" => $user->id, "createtime" => time()]);

+ 2 - 2
application/common/model/UserJewelLog.php

@@ -18,7 +18,7 @@ class UserJewelLog extends Model
     /**
      * 用户钻石余额变更
      */
-    public function addUserJewelLog($user_id, $money, $mode, $before, $detail, $type = 1)
+    /*public function addUserJewelLog($user_id, $money, $mode, $before, $detail, $type = 1)
     {
         if ($mode == "+") {
             $balance = $before + $money;
@@ -36,5 +36,5 @@ class UserJewelLog extends Model
         $data["detail"] = $detail;
         $data["createtime"] = time();
         return $this->insertGetId($data);
-    }
+    }*/
 }

+ 2 - 2
application/common/model/UserMoneyLog.php

@@ -15,7 +15,7 @@ class UserMoneyLog extends Model
     // 定义时间戳字段名
     protected $createTime = 'createtime';
 
-    public function addRecord($userId=0, $money=0, $mode='+', $before=0, $detail='', $type = 1)
+    /*public function addRecord($userId=0, $money=0, $mode='+', $before=0, $detail='', $type = 1)
     {
         if ($mode == "+") {
             $balance = $before + $money;
@@ -33,6 +33,6 @@ class UserMoneyLog extends Model
         $data["detail"] = $detail;
         $data["createtime"] = time();
         return $this->insertGetId($data);
-    }
+    }*/
 
 }

+ 3 - 3
application/common/model/Wallet.php

@@ -39,7 +39,7 @@ class Wallet extends Model
     public function getWallet($user_id = '', $wallet_name = '')
     {
         //所有钱包余额
-        $wallet = Db::name('user')->lock(true)->where(['id' => $user_id])->find();
+        $wallet = Db::name('user_wallet')->lock(true)->where(['user_id' => $user_id])->find();
         if(!$wallet) {
             abort(500,'钱包余额获取失败');
         }
@@ -115,7 +115,7 @@ class Wallet extends Model
 
 
         //检测
-        $wallet = Db::name('user')->field('money,jewel')->lock(true)->where(['id'=>$user_id])->find();
+        $wallet = Db::name('user_wallet')->field('money,jewel')->lock(true)->where(['user_id'=>$user_id])->find();
         if(!$wallet)
         {
             $result['msg'] = '不存在的用户';
@@ -146,7 +146,7 @@ class Wallet extends Model
                 $data['invite_user_id'] = $inviteId;
             }
             //新的方式
-            $rs1 = Db::name('user')->where(['id'=>$user_id])->update([$accountType => $data['balance']]);
+            $rs1 = Db::name('user_wallet')->where(['user_id'=>$user_id])->update([$accountType => $data['balance']]);
 
             /////////////
             $log_table = 'user_'.$accountType.'_log';

+ 2 - 2
application/common/service/UserService.php

@@ -223,7 +223,7 @@ class UserService
         try {
             $userId = isset($params['user_id']) ? $params['user_id'] : 0;
             if (!empty($userId)) {
-                $field = 'id,pre_userid,money';
+                $field = 'id,pre_userid';
                 $where['id'] = $userId;
                 $user = model('User')->field($field)->where($where)->find();
                 if (!empty($user)) {
@@ -245,7 +245,7 @@ class UserService
                                     $money = config('site.invite_money');
                                     if ($money > 0) {
                                         $remark = '邀请推广充值';
-                                        $res = model('Wallet')->lockChangeAccountRemain($preUser['id'],$money,'+',$preUser['money'],$remark,103,'money',$userId);
+                                        $res = model('Wallet')->lockChangeAccountRemain($preUser['id'],$money,'+',0,$remark,103,'money',$userId);
                                         if (!$res['status']) {
                                             throw new Exception($res['msg']);
                                         }

+ 2 - 2
application/index/controller/Plantask.php

@@ -164,8 +164,8 @@ class Plantask extends Controller
                     if($getMoney > 0){
                         $rs_wallet = model('wallet')->lockChangeAccountRemain($user_id,$getMoney,'+',0,"{$authuser_info['nickname']}送你{$giftuserparty['gift_name']}x{$giftuserparty['number']}",101,'money');
                         if($rs_wallet['status'] == false){
-                            $this->error($rs_wallet['msg']);
                             Db::rollback();
+                            $this->error($rs_wallet['msg']);
                         }
                     }
                 }
@@ -176,8 +176,8 @@ class Plantask extends Controller
                     if($guilderMoney > 0){
                         $rs_wallet = model('wallet')->lockChangeAccountRemain($partyInfo->user_id,$guilderMoney,'+',0,"{$authuser_info['nickname']}送礼物{$giftuserparty['gift_name']}x{$giftuserparty['number']}给{$touserInfo['nickname']},房间礼物抽成",102,'money');
                         if($rs_wallet['status'] == false){
-                            $this->error($rs_wallet['msg']);
                             Db::rollback();
+                            $this->error($rs_wallet['msg']);
                         }
                     }
                 }

+ 2 - 2
public/assets/js/backend/user/user.js

@@ -53,8 +53,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         // {field: 'age', title: __('Age'), operate: 'LIKE'},
                         // {field: 'level', title: __('Level'), operate: 'BETWEEN', sortable: true},
                         // {field: 'empirical', title: __('Empirical'), operate: 'LIKE'},
-                        {field: 'money', title: __('Money'), operate: 'RANGE', sortable: true, width:100},
-                        {field: 'jewel', title: __('Jewel'), operate: 'RANGE', sortable: true, width:100},
+                        {field: 'userwallet.money', title: __('userwallet.money'), operate: false, sortable: true, width:100},
+                        {field: 'userwallet.jewel', title: __('userwallet.jewel'), operate: false, sortable: true, width:100},
                         // {field: 'sound_coin', title: __('Sound_coin'), operate: 'LIKE'},
                         // {field: 'noble.name', title: __('Noble'), operate: 'LIKE'},
                         // {field: 'noble_duetime', title: __('NobleDuetime'), formatter: Table.api.formatter.datetime, operate: 'RANGE'},