瀏覽代碼

邀请相关

zhangxiaobin 1 年之前
父節點
當前提交
44c1ddd484

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

@@ -14,7 +14,7 @@ use addons\epay\library\Service;
  */
 class Notify extends Api
 {
-    protected $noNeedLogin = ['wechatnotify', 'wechatkjnotify'];
+    protected $noNeedLogin = ['wechatnotify', 'alipaynotify', 'wechatkjnotify'];
     protected $noNeedRight = ['*'];
 
     /**

+ 80 - 0
application/api/controller/Usercenter.php

@@ -10,6 +10,7 @@ use think\Db;
 use app\common\controller\RedisLeaderboard;
 use Redis;
 use GatewayClient\Gateway;
+use think\Exception;
 
 /**
  * 会员中心接口
@@ -1015,4 +1016,83 @@ class UserCenter extends Common
             $this->error($e->getMessage());
         }
     }
+    
+    /**
+     * 邀请详情
+     * @return void
+     */
+    public function inviteInfo()
+    {
+        try {
+            $userId = $this->auth->id;
+            $field = 'id,invite_no';
+            $where['id'] = $userId;
+            $user = model('User')->field($field)->where($where)->find();
+            $inviteNo = isset($user['invite_no']) ? $user['invite_no'] : '';
+            $todayNow = day_now();
+            $todayStart = $todayNow[0];
+            $todayEnd = $todayNow[1]+1;
+            $userMoneyLogWhere['user_id'] = $userId;
+            $userMoneyLogWhere['type'] = 15;
+            $appendWhere['createtime'] = [['egt', $todayStart],['lt', $todayEnd],'and'];
+            $todayMoney = model('UserMoneyLog')->where($userMoneyLogWhere)->where($appendWhere)->sum('value');
+            $totalMoney = model('UserMoneyLog')->where($userMoneyLogWhere)->sum('value');
+            //本周
+            $weekNow = week_now();
+            $userInviteWhere['user_id'] = $userId;
+            $userInviteAppendWhere['createtime'] = [['egt', $weekNow[0]],['lt', $weekNow[1]+1],'and'];
+            $userInviteModel = model('UserInvite');
+            $weekNowNum = $userInviteModel->where($userInviteWhere)->where($userInviteAppendWhere)->count();
+            //上周
+            $lastWeek = last_week();
+            $appendLastWhere['createtime'] = [['egt', $lastWeek[0]],['lt', $lastWeek[1]+1],'and'];
+            $lastWeekNum = $userInviteModel->where($userInviteWhere)->where($appendLastWhere)->count();
+            //全部
+            $totalNum = $userInviteModel->where($userInviteWhere)->count();
+            $result = [
+                'invite_no' => $inviteNo,//邀请码
+                'today_money' => $todayMoney,//今日收益
+                'total_money' => $totalMoney,//总收益
+                'week_now_num' => $weekNowNum,//本周邀请数
+                'last_week_num' => $lastWeekNum,//上周邀请数
+                'total_num' => $totalNum,//总邀请数
+            ];
+            $this->success('获取成功',$result);
+        } catch (Exception $e) {
+            $this->error($e->getMessage());
+        }
+    }
+
+    /**
+     * 邀请列表
+     * @return void
+     */
+    public function inviteList()
+    {
+        try {
+            $userId = $this->auth->id;
+            $where['user_id'] = $userId;
+            $userInvite = model('UserInvite')->where($where)->with(['user'=>function($uQuery){
+                $uQuery->field('id,avatar,u_id,nickname');
+            }])->autopage()->order('createtime desc')->select();
+            $result = [];
+            if (!empty($userInvite)) {
+                foreach ($userInvite as $key => $value) {
+                    $user = isset($value['user']) ? $value['user'] : [];
+                    $temp = [
+                        'user_id'          => isset($user['id']) ? $user['id'] : 0,
+                        'u_id'             => isset($user['u_id']) ? $user['u_id'] : 0,
+                        'avatar'           => isset($user['avatar']) ? $user['avatar'] : 0,
+                        'nickname'         => isset($user['nickname']) ? $user['nickname'] : 0,
+                        'create_time_text' => !empty($value['createtime']) ? date('Y-m-d', $value['createtime']) : '',
+                    ];
+                    $result[] = $temp;
+                }
+            }
+
+            $this->success('获取成功',$result);
+        } catch (Exception $e) {
+            $this->error($e->getMessage());
+        }
+    }
 }

+ 46 - 0
application/common.php

@@ -704,3 +704,49 @@ if (!function_exists('curl_get')) {
         }
     }
 }
+if (!function_exists('day_now')) {
+    //返回今天的开始时间和结束时间
+    function day_now()
+    {
+        $arr = [
+            mktime(0, 0, 0, date('m'), date('d'), date('Y')),
+            mktime(23, 59, 59, date('m'), date('d'), date('Y')),
+        ];
+        return $arr;
+    }
+}
+if (!function_exists('day_yesterday')) {
+    //返回昨天开始结束时间 改造上边的方法
+    function day_yesterday()
+    {
+        $yesterday = date('d') - 1;
+        $arr       = [
+            mktime(0, 0, 0, date('m'), $yesterday, date('Y')),
+            mktime(23, 59, 59, date('m'), $yesterday, date('Y')),
+        ];
+        return $arr;
+    }
+}
+if (!function_exists('week_now')) {
+    //获取当前时间的本周开始结束时间
+    function week_now()
+    {
+        $arr = [
+            strtotime(date('Y-m-d', strtotime("-1 week Monday", time()))),
+            strtotime(date('Y-m-d', strtotime("+0 week Sunday", time()))) - 1
+        ];
+
+        return $arr;
+    }
+}
+if (!function_exists('last_week')) {
+    //返回上周开始和结束的时间戳
+    function last_week()
+    {
+        $arr = [
+            strtotime('last week Monday', time()),
+            strtotime('last week Sunday +1 days -1 seconds', time())
+        ];
+        return $arr;
+    }
+}

+ 5 - 0
application/common/model/UserInvite.php

@@ -11,4 +11,9 @@ class UserInvite extends Model
     // 定义时间戳字段名
     protected $createTime = 'createtime';
     protected $updateTime = 'updatetime';
+
+    public function user()
+    {
+        return $this->hasOne('User', 'id', 'invite_user_id',[],'LEFT');
+    }
 }

+ 4 - 2
application/common/model/Wallet.php

@@ -67,7 +67,7 @@ class Wallet extends Model
      * @return array[log_table]
      * @return array[log_id]
      */
-    public function lockChangeAccountRemain($user_id,$money,$mode,$before,$remark='',$logtype='',$accountType='money')
+    public function lockChangeAccountRemain($user_id,$money,$mode,$before,$remark='',$logtype='',$accountType='money',$inviteId=0)
     {
         //初始化
         $result = array(
@@ -134,7 +134,9 @@ class Wallet extends Model
             $data['detail'] = $remark;
             $data['createtime'] = time();
             $data['type'] = $logtype;
-
+            if ($accountType == 'money') {//用户邀请充值赠送上级金额,绑定赠送的用户ID
+                $data['invite_user_id'] = $inviteId;
+            }
             //新的方式
             $rs1 = Db::name('user')->where(['id'=>$user_id])->update([$accountType => $data['balance']]);
 

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

@@ -154,22 +154,22 @@ class UserService
         try {
             $userId = isset($params['user_id']) ? $params['user_id'] : 0;
             if (!empty($userId)) {
-                $field = 'id,pre_user_id,money';
+                $field = 'id,pre_userid,money';
                 $where['id'] = $userId;
                 $user = model('User')->field($field)->where($where)->find();
                 if (!empty($user)) {
-                    if (!empty($user['pre_user_id'])) {
-                        $preWhere['id'] = $user['pre_user_id'];
+                    if (!empty($user['pre_userid'])) {
+                        $preWhere['id'] = $user['pre_userid'];
                         $preUser = model('User')->field($field)->where($preWhere)->find();
                         if (!empty($preUser)) {
                             //查看是否赠送过金额
                             $moneyLogWhere['invite_user_id'] = $userId;
                             $moneyLogWhere['type'] = 15;
                             $moneyLog = model('UserMoneyLog')->where($moneyLogWhere)->find();
-                            if (empty($moneyLogWhere)) {
+                            if (empty($moneyLog)) {
                                 $money = config('site.invite_money');
                                 $remark = '邀请用户充值赠送金额';
-                                $res = model('Wallet')->lockChangeAccountRemain($preUser['id'],$money,'+',$preUser['money'],$remark,15);
+                                $res = model('Wallet')->lockChangeAccountRemain($preUser['id'],$money,'+',$preUser['money'],$remark,15,'money',$userId);
                                 if (!$res['status']) {
                                     throw new Exception($res['msg']);
                                 }