WIN-2308041133\Administrator 2 weeks ago
parent
commit
3f671b6a47

+ 2 - 1
app/admin/model/user/User.php

@@ -755,7 +755,8 @@ class User extends BaseModel
         $integral_count = UserBill::where('uid', $uid)->where('category', 'integral')->where('type', 'in', 'deduction,system_add')->count();
         $sign_count = UserBill::where('type', 'sign')->where('uid', $uid)->where('category', 'integral')->count();
         $balanceChang_count = UserBill::where('category', 'now_money')->where('uid', $uid)
-            ->where('type', 'in', 'system_add,pay_product,extract,pay_product_refund,system_sub')
+            ->where('type', 'in', 'system_add,pay_product,extract,pay_product_refund,system_sub,trade')
+            ->where('pm',1)
             ->count();
         $coupon_count = StoreCouponUser::where('uid', $uid)->count();
         $spread_count = self::where('spread_uid', $uid)->count();

+ 3 - 0
app/admin/model/user/UserBill.php

@@ -261,6 +261,9 @@ class UserBill extends BaseModel
                 case 'user_recharge_refund':
                     $item['_type'] = '系统退款';
                     break;
+                case 'trade':
+                    $item['_type']='互转';
+                    break;
             }
             $item['_pm'] = $item['pm'] == 1 ? '获得' : '支出';
         }

+ 43 - 0
app/admin/model/user/UserCommunicationRewards.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace app\admin\model\user;
+
+use app\admin\model\system\SystemUserLevel;
+use crmeb\traits\ModelTrait;
+use crmeb\basic\BaseModel;
+
+/**
+ * 用户管理 model
+ * Class User
+ * @package app\admin\model\user
+ */
+class UserCommunicationRewards extends BaseModel
+{
+
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'user_communication_rewards';
+
+    use ModelTrait;
+
+    public static function setWhere($where, $alias = '', $userAlias = 'u.', $model = null)
+    {
+        $model = is_null($model) ? new self() : $model;
+        if ($alias) {
+            $model = $model->alias($alias);
+            $alias .= '.';
+        }
+//        if (isset($where['nickname']) && $where['nickname'] != '') $model = $model->where("{$userAlias}nickanme", $where['nickname']);
+//        if (isset($where['level_id']) && $where['level_id'] != '') $model = $model->where("{$alias}level_id", $where['level_id']);
+        return $model->where("{$alias}status", 1)->where("{$alias}is_del", 0);
+    }
+
+}

+ 37 - 0
app/api/controller/user/UserRechargeController.php

@@ -3,6 +3,8 @@
 namespace app\api\controller\user;
 
 use app\models\system\SystemGroupData;
+use app\models\user\User;
+use app\models\user\UserBill;
 use app\models\user\UserRecharge;
 use app\Request;
 use crmeb\services\GroupDataService;
@@ -121,4 +123,39 @@ class UserRechargeController
         $data['recharge_attention'] = $recharge_attention;
         return app('json')->successful($data);
     }
+    public function trade_money(Request $request)
+    {
+        $uid = $request->post('to_uid', 0);
+        $num = $request->post('num', 0);
+//        $type = $request->post('type', 0);
+        $real_get =$num;
+        if (!$uid || !$trader = User::where('uid|phone',$uid)->find()) return app('json')->fail('接收用户不存在');
+        $user = User::get($request->uid());
+        $bill_type_ex = 'trade';
+//        switch ($type)
+//        {
+//            case 0:
+                $field = "now_money";$bill_type = "now_money"; $title = '余额';
+//                if ($num < 1) return app('json')->fail('至少100余额才可以转账');
+                if ($user['now_money'] < $real_get) return app('json')->fail('余额不足');
+//                break;
+//            case 1:
+//                $field = "equity"; $bill_type = "equity";$title="权益分";
+//                if ($num < 1) return app('json')->fail('至少100权益分才可以转账');
+//                if ($user['equity'] < $real_get) return app('json')->fail('权益分不足');
+//        }
+
+        User::beginTrans();
+        try {
+            UserBill::expend('赠送'.$title, $request->uid(), $field, $bill_type_ex, $num, 0, $user[$field] - $num, '转账给' . $trader['phone'] .'扣除' . $num );
+            UserBill::income('赠送'.$title, $trader['uid'], $field, $bill_type, $real_get, 0, $trader[$field] + (float)$real_get, '转账自' . $user['phone'] . '获得' . $num  );
+            User::bcDec($request->uid(), $field, $real_get, 'uid');
+            User::bcInc($trader['uid'], $field, $num, 'uid');
+            User::commitTrans();
+            return app('json')->success('转账成功');
+        } catch (\Exception $e) {
+            User::rollbackTrans();
+            return app('json')->fail($e->getMessage());
+        }
+    }
 }

+ 11 - 3
app/models/store/StoreOrder.php

@@ -18,7 +18,7 @@ use crmeb\traits\ModelTrait;
 use think\facade\Log;
 use app\models\system\SystemStore;
 use app\models\routine\RoutineTemplate;
-use app\models\user\{User, UserAddress, UserBill, UserSpread, WechatUser};
+use app\models\user\{User, UserAddress, UserBill, UserCommunicationRewards, UserSpread, WechatUser};
 use crmeb\services\{
     SystemConfigService, WechatTemplateService, workerman\ChannelService
 };
@@ -860,8 +860,16 @@ class StoreOrder extends BaseModel
 
             $spread_uid = User::where('uid', $order['sale_uid'])->value('spread_uid');
             if ($spread_uid > 0) {
-                $spread_order = User::where('uid', $spread_uid)->value('spread_order');
-                $spread_order = bcadd($spread_order, 1, 2);  //推荐订单数加1
+//                $spread_order = User::where('uid', $spread_uid)->value('spread_order');
+                $spread_order = UserCommunicationRewards::where('uid', $spread_uid)->where('price',$order['total_price'])->value('num');
+                if ($spread_order===null){  //如果是这个价格的第一单
+                    $spread_order = 1;
+                    UserCommunicationRewards::create(['uid' => $spread_uid, 'price' => $order['total_price'], 'num' => $spread_order,'update_time'=>time()]);
+                }else{
+                    $spread_order = bcadd($spread_order, 1, 2);  //推荐订单数加1
+                    UserCommunicationRewards::where('uid', $spread_uid)->where('price',$order['total_price'])->update(['num' => $spread_order,'update_time'=>time()]);
+                }
+
 //            User::where('uid', $spread_uid)->update(['spread_uid' => $order['sale_uid'],'spread_time'=>time(),'spread_order'=>$spread_order]);
 
                 if ($spread_order % 2 == 0) {

+ 35 - 0
app/models/user/UserCommunicationRewards.php

@@ -0,0 +1,35 @@
+<?php
+/**
+ * Created by CRMEB.
+ * Copyright (c) 2017~2020 http://www.crmeb.com All rights reserved.
+ * Author: wuhaotian <442384644@qq.com>
+ * Date: 2020/5/7 11:30
+ */
+
+namespace app\models\user;
+
+use crmeb\traits\ModelTrait;
+use crmeb\basic\BaseModel;
+
+/**
+ * TODO 用户访问记录
+ * Class UserVisit
+ * @package app\models\user
+ */
+class UserCommunicationRewards extends BaseModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'user_communication_rewards';
+
+    use ModelTrait;
+
+}

+ 1 - 0
route/api/route.php

@@ -159,6 +159,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::post('recharge/trade_money', 'user.UserRechargeController/trade_money')->name('trade_money');//转账
     //会员等级类
     Route::get('menu/user', 'PublicController/menu_user')->name('menuUser');//个人中心菜单
     Route::get('user/level/detection', 'user.UserLevelController/detection')->name('userLevelDetection');//检测用户是否可以成为会员