Просмотр исходного кода

Wesmiler 2021-0115第4期分销功能新增

wesmiler 5 лет назад
Родитель
Сommit
261c0518a8
25 измененных файлов с 641 добавлено и 471 удалено
  1. 1 0
      app/api/controller/MemberController.php
  2. 4 3
      app/weixin/model/Member.php
  3. 5 5
      app/weixin/model/Payment.php
  4. 22 20
      app/weixin/model/Wechat.php
  5. 11 11
      app/weixin/service/Award.php
  6. 248 209
      public/themes/admin_simpleboot3/admin/main/index.html
  7. 0 1
      public/themes/default/weixin/block/footer.html
  8. 1 0
      public/themes/default/weixin/block/footer_nav.html
  9. 3 1
      public/themes/default/weixin/index/custom.html
  10. 3 7
      public/themes/default/weixin/market/index.html
  11. 1 1
      public/themes/default/weixin/member/index.html
  12. 57 21
      public/themes/default/weixin/public/assets/js/activity-book.js
  13. 93 150
      public/themes/default/weixin/public/assets/js/auth-education.js
  14. 16 1
      public/themes/default/weixin/public/assets/js/auth-hand.js
  15. 17 1
      public/themes/default/weixin/public/assets/js/auth-idcard.js
  16. 17 1
      public/themes/default/weixin/public/assets/js/auth-position.js
  17. 16 1
      public/themes/default/weixin/public/assets/js/auth.js
  18. 2 0
      public/themes/default/weixin/public/assets/js/custom.js
  19. 3 3
      public/themes/default/weixin/public/assets/js/hearts.js
  20. 46 14
      public/themes/default/weixin/public/assets/js/home.js
  21. 8 0
      public/themes/default/weixin/public/assets/js/market.js
  22. 3 3
      public/themes/default/weixin/public/assets/js/match.js
  23. 11 5
      public/themes/default/weixin/public/assets/js/member.js
  24. 2 1
      public/themes/default/weixin/public/assets/js/privacy.js
  25. 51 12
      vendor/thinkcmf/cmf-app/src/admin/controller/MainController.php

+ 1 - 0
app/api/controller/MemberController.php

@@ -453,6 +453,7 @@ class MemberController extends BaseController
             'userid' => $this->userId,
             'age' => $age,
             'weight' => isset($params['weight']) ? floatval($params['weight']) : 0,
+            'height' => isset($params['height']) ? floatval($params['height']) : 0,
             'salary' => isset($params['salary']) ? intval($params['salary']) : 0,
             'graduate' => isset($params['graduate']) ? trim($params['graduate']) : '',
             'education' => isset($params['education']) ? intval($params['education']) : 0,

+ 4 - 3
app/weixin/model/Member.php

@@ -769,7 +769,7 @@ class Member extends Model
                 ->limit($recommendNum)
                 ->column('m.id');
 
-            PRedis::set('hearts:query:' . $userId, Member::getLastSql(), 6 * 3600);
+            PRedis::set('hearts:query:' . $userId, ['where'=> $where, 'ids'=> $ids, 'query'=> Member::getLastSql()], 24 * 3600);
             if(empty($recommendIds)){
                 $recommendIds = Member::alias('m')
                     ->join('user_profile up', 'up.userid=m.id', 'left')
@@ -873,7 +873,9 @@ class Member extends Model
 
             $expire = isset($siteInfo['recommend_expire']) ? intval($siteInfo['recommend_expire']) : 0;
             $expire = $expire ? $expire : 24;
-            PRedis::set($cacheKey, $recommendIds, $expire * 3600);
+            if($recommendIds){
+                PRedis::set($cacheKey, $recommendIds, $expire * 3600);
+            }
         }
 
         // 获取数据
@@ -881,7 +883,6 @@ class Member extends Model
             $field = $field ? $field : 'm.id,m.user_nickname,m.real_name,m.birthday,m.avatar,m.create_time,m.sex,m.vip_auth,m.vip_expire,up.graduate,up.education,up.height,up.weight,up.company,up.occupation,up.province,up.city,up.show_graduate,up.show_company,up.home_province,up.home_city,up.photolist,up.introduce,up.idcard_check,up.education_check,up.position_check,up.introduce';
             $dataList = Member::alias('m')
                 ->join('user_profile up', 'up.userid=m.id', 'left')
-//                ->where($where)
                 ->where('m.id', 'in', implode(',', $recommendIds))
                 ->where(['m.is_heart' => 1, 'm.user_type' => 2, 'm.user_status' => 1])
                 ->field($field)

+ 5 - 5
app/weixin/model/Payment.php

@@ -382,7 +382,7 @@ class Payment
                 $dateTime = strtotime(date('Y-m-d 00:00:00'));
                 $memberInfo = Member::where(['id' => $userId])->field('openid,vip_auth,vip_expire')->find();
                 $vipAuth = isset($memberInfo['vip_auth']) ? intval($memberInfo['vip_auth']) : 0;
-                $vipExpire = isset($memberInfo['vip_expire']) ? intval($memberInfo['vip_expire']) : 0;
+                $vipExpire = isset($memberInfo['vip_expire']) && !empty($memberInfo['vip_expire'])? intval($memberInfo['vip_expire']) : 0;
                 $newVipExpire = $vipExpire>$dateTime && $vipAuth? $vipExpire + $num*30*24*3600+86400 : $dateTime+$num*30*24*3600+86400;
                 $data = ['updated_at' => date('Y-m-d H:i:s'), 'vip_auth'=> 1, 'vip_expire' => $newVipExpire];
                 if (!Member::where(['id' => $userId])->update($data)) {
@@ -395,7 +395,7 @@ class Payment
                     'account_type' => 4,
                     'change_type' => 1,
                     'user_id' => $userId,
-                    'money' => $num,
+                    'money' => $orderPayMoney,
                     'balance' => 0,
                     'created_at' => date('Y-m-d H:i:s'),
                     'remark' => "购买VIP:单号[{$outTradeNo}],时长{$num}个月,支付金额" . $orderPayMoney,
@@ -403,6 +403,8 @@ class Payment
                 PRedis::set('payments:vip:account_' . $outTradeNo, ['notify' => $notifyData, 'log' => $accountData,'user'=> $memberInfo], 600);
                 db('account_log')->insertGetId($accountData);
 
+                db()->commit();
+
                 // 发送充值成功消息
                 $openid = isset($memberInfo['openid']) ? $memberInfo['openid'] : '';
                 if($openid) {
@@ -429,9 +431,7 @@ class Payment
             }
 
             // 操作日志
-            UserLog::saveLog(['user_id' => $userId, 'type' => 3, 'content' => "购买VIP:{$num}个月"]);
-
-            db()->commit();
+            UserLog::saveLog(['user_id' => $userId, 'type' => 3, 'content' => "购买VIP:{$num}个月,支付金额:{$orderPayMoney},原到期时间:{$vipExpire}"]);
 
             // 分销收益结算
             $inviteInfo = MemberModel::getInviteInfo($userId);

+ 22 - 20
app/weixin/model/Wechat.php

@@ -360,12 +360,12 @@ class Wechat
             $countKey = "token:count";
             $requestCount = PRedis::get($countKey);
             if($type == 'accessToken'){
-               if($requestCount >=8000){
-                   PRedis::set("token:error", 'token请求次数超出警告值8000:'.date('Y-m-d H:i:s'), 3 * 24 *3600);
-                   return false;
-               }
+                if($requestCount >=8000){
+                    PRedis::set("token:error", 'token请求次数超出警告值8000:'.date('Y-m-d H:i:s'), 3 * 24 *3600);
+                    return false;
+                }
 
-               PRedis::set($countKey, $requestCount+1, 24*3600);
+                PRedis::set($countKey, $requestCount+1, 24*3600);
             }
 
             $tokenData = httpRequest($url);
@@ -544,19 +544,19 @@ class Wechat
      */
     public static function getJssdkParams($url = '')
     {
-    	// token请求次数超出警告范围
-    	$countKey = "token:count";
+        // token请求次数超出警告范围
+        $countKey = "token:count";
         $requestCount = PRedis::get($countKey);
         if($requestCount>=5000){
-        	return ['error'=> 'token请求失败次数已超出警告值5000'];
+            return ['error'=> 'token请求失败次数已超出警告值5000'];
         }
-        
+
         $countKey = "token:ticketCount:".get_client_ip();
         $requestCount = PRedis::get($countKey);
         if($requestCount>=100){
-        	return ['error'=> '分享参数请求次数过多请稍后重试'];
+            return ['error'=> '分享参数请求次数过多请稍后重试'];
         }
-        
+
         $result = Wechat::getTicket();
         $url = $url ? $url : request()->domain() . request()->url();
         $code = isset($result['errcode']) ? $result['errcode'] : '';
@@ -569,7 +569,7 @@ class Wechat
             'timestamp' => time(),
             'url' => $url,
         ];
-		PRedis::set($countKey, $requestCount+1, 30);
+        PRedis::set($countKey, $requestCount+1, 30);
         $signature = Wechat::getJssdkSign($params);
         return [
             'appId' => Wechat::getConfigs('appid'),
@@ -1161,13 +1161,15 @@ class Wechat
             return false;
         }
         PRedis::set($lockKey, $postObj, 8);
+        PRedis::set('weixin:events:'.$openid,$postObj, 3600);
         if ($event && $eventKey) {
             // 未关注
-            if ($event == 'subscribe') {
-                $sceneStr = substr($eventKey, 8);
+            if ($event == 'subscribe' || $event == 'SCAN') {
+                $sceneStr = $event == 'subscribe'? substr($eventKey, 8) : $eventKey;
                 $sceneData = $sceneStr ? explode('_', $sceneStr) : [];
                 $scene = isset($sceneData[0]) ? $sceneData[0] : '';
-                $sceneValue = isset($sceneData[1]) ? $sceneData[1] : '';
+                $sceneValue = isset($sceneData[2]) ? $sceneData[2] : '';
+                $sceneValue = $sceneValue? $sceneValue : (isset($sceneData[1]) ? $sceneData[1] : '');
 
                 // 用户信息注册或更新
                 $wxInfo = Wechat::getUserInfo($openid, false, true);
@@ -1180,10 +1182,8 @@ class Wechat
                         'wxInfo' => $wxInfo,
                     ];
 
-
-
                     // 验证注册用户,并且推送关注信息
-                    PRedis::set('members:invite:'.$openid, ['reg'=> $userData, 'params'=> $postObj], 600);
+                    PRedis::set('members:invite:'.$openid, ['reg'=> $userData, 'params'=> $postObj,'scene'=> $scene, 'inviteId'=> $sceneValue], 600);
                     $res = Member::regMember($userData);
                     PRedis::set('members:register:'.$openid, ['reg'=> $userData, 'result'=> $res], 600);
 
@@ -1206,7 +1206,9 @@ class Wechat
 
                                         // 处理推荐奖励
                                         PRedis::set('members:inviteAward:'.$openid, ['user'=> $userData,'inviteId'=> $inviteUserId], 600);
-                                        $inviteData = Award::inviteUser($inviteUserId, $userData);
+                                        if($event == 'subscribe'){
+                                            $inviteData = Award::inviteUser($inviteUserId, $userData);
+                                        }
                                     }
                                 }
                                 break;
@@ -1243,7 +1245,7 @@ class Wechat
                     ];
 
                     // 验证注册用户,并发送关注信息
-                    PRedis::set('weixin:reg:'.$openid, ['info'=> $wxInfo, 'regInfo'=> $userData], 600);
+                    PRedis::set('weixin:reg:'.$openid, ['info'=> $wxInfo, 'invite'=> $postObj, 'regInfo'=> $userData], 600);
                     Member::regMember($userData);
                     $siteInfo = cmf_get_site_info();
                     $nickname = isset($wxInfo['nickname']) ? $wxInfo['nickname'] : '';

+ 11 - 11
app/weixin/service/Award.php

@@ -104,29 +104,29 @@ class Award
         $where = ['id' => $userId, 'agent_type' => 1, 'agent_status' => 1];
         $field = 'id,openid,user_nickname,parent_id,user_login,balance,create_time';
         $userInfo = Member::getInfo($where, $field);
-        $nickname = isset($userInfo['nickname']) ? trim($userInfo['nickname']) : '';
+        $nickname = isset($userInfo['user_nickname']) ? trim($userInfo['user_nickname']) : '';
         $userLogin = isset($userInfo['user_login']) ? trim($userInfo['user_login']) : '';
         $balance = isset($userInfo['balance']) ? floatval($userInfo['balance']) : 0;
-        $nickname = $nickname? $nickname : $userLogin;
+        $nickname = $nickname? $nickname : formatName($userLogin);
         $logData['userInfo'] = $userInfo;
         if (empty($userInfo)) {
             PRedis::set("{$cacheKey}:error_user", $logData, 7200);
             return false;
         }
 
-        // 旧用户不结算
-        $createTime = isset($userInfo['create_time'])? $userInfo['create_time'] : 0;
-        if ($createTime && $createTime <= strtotime('2021-02-23')) {
-            PRedis::set("{$cacheKey}:error_user_reg_time", $logData, 7200);
-            return false;
-        }
-
         // 收益原始来源用户
         $sWhere = ['id' => $sourceUid, 'user_type' => 2];
         $sourceInfo = Member::getInfo($sWhere, $field);
         $sourceNickname = isset($sourceInfo['user_nickname']) ? $sourceInfo['user_nickname'] : '';
         $userLogin = isset($sourceInfo['user_login']) ? trim($sourceInfo['user_login']) : '';
-        $sourceNickname = $sourceNickname? $sourceNickname : $userLogin;
+        $sourceNickname = $sourceNickname? $sourceNickname : formatName($userLogin);
+
+        // 旧用户不结算
+        $createTime = isset($sourceInfo['create_time'])? $sourceInfo['create_time'] : 0;
+        if ($createTime && $createTime <= strtotime('2021-02-23')) {
+            PRedis::set("{$cacheKey}:error_user_reg_time", $logData, 7200);
+            return false;
+        }
 
         // 一级分销收益结算
         $logData['level'] = 1;
@@ -240,7 +240,7 @@ class Award
             Db::startTrans();
             if (Member::where($whereTwo)->setInc('balance', $awardMoneyTwo)) {
                 // 写入奖励日志
-                $levelName = "您的下级[{$nickname}]邀请的[{$sourceNickname}]用户";
+                $levelName = "您的下级[{$nickname}:]邀请的[{$sourceNickname}]用户";
                 $marketName = isset($marketConfig['name']) ? $marketConfig['name'] : '分销收益';
                 $logTitle = "{$levelName}{$typeName},获得{$marketName}{$awardMoneyTwo}元";
                 $log = [

+ 248 - 209
public/themes/admin_simpleboot3/admin/main/index.html

@@ -60,16 +60,16 @@
         border-color: #3bc4a4;
     }
     .panel-color9 {
-          border-color: #FF9800;
-      }
+        border-color: #FF9800;
+    }
     .panel-color9 .panel-heading {
         background-color: #FF9800;
         border-color: #FF9800;
     }
 
     .panel-color10 {
-          border-color: #ef3315;
-      }
+        border-color: #ef3315;
+    }
     .panel-color10 .panel-heading {
         background-color: #ef3315;
         border-color: #ef3315;
@@ -78,276 +78,315 @@
 </head>
 <body>
 <if condition="$admin.id neq 1">
-<div class="container">
-    欢迎登录拾光婚恋
-</div>
+    <div class="container">
+        欢迎登录拾光婚恋
+    </div>
     <else/>
-<div class="container">
-    <div class="row">
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-primary text-center">
-                <div class="panel-heading">
-                    <h3 class="panel-title">用户数量</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.userCount|default='0'}
+    <div class="container">
+        <div class="row">
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-primary text-center">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">用户数量</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.userCount|default='0'}
+                    </div>
                 </div>
             </div>
-        </div>
 
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-warning text-center">
-                <div class="panel-heading">
-                    <h3 class="panel-title">昨日新增用户/本月新增用户</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.lastFans|default='0'}/{$counts.monthFans|default='0'}人
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-warning text-center">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">昨日新增用户/本月新增用户</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.lastFans|default='0'}/{$counts.monthFans|default='0'}人
+                    </div>
                 </div>
             </div>
-        </div>
 
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-success text-center">
-                <div class="panel-heading">
-                    <h3 class="panel-title">今日新增用户</h3>
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日新增用户</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.todayFans|default='0'}
+                    </div>
                 </div>
-                <div class="panel-body home-info">
-                    {$counts.todayFans|default='0'}
+            </div>
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color5">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">总推广用户数量</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.totalMarketCount|default='0'}人
+                    </div>
                 </div>
             </div>
-        </div>
-
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center">
-                <div class="panel-heading">
-                    <h3 class="panel-title">活动数量</h3>
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color3">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">总推广邀请用户数量</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.totalMarketInviteCount|default='0'}人
+                    </div>
                 </div>
-                <div class="panel-body home-info">
-                    {$counts.activityCount|default='0'}
+            </div>
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color6">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日/本月新增推广用户</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.marketCount|default='0'}/{$counts.monthMarketCount|default='0'}人
+                    </div>
                 </div>
             </div>
-        </div>
-    </div>
-    <div class="row">
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-primary text-center panel-color2">
-                <div class="panel-heading">
-                    <h3 class="panel-title">今日登录人数</h3>
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color9">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日/本月新增推广邀请用户</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.marketInviteCount|default='0'}/{$counts.monthMarketInviteCount|default='0'}人
+                    </div>
                 </div>
-                <div class="panel-body home-info">
-                    {$counts.login|default='0'}
+            </div>
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">活动数量</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.activityCount|default='0'}
+                    </div>
                 </div>
             </div>
         </div>
-
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-warning text-center panel-color1">
-                <div class="panel-heading">
-                    <h3 class="panel-title">访问活动列表</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.activity|default='0'}
+        <div class="row">
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-primary text-center panel-color2">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日登录人数</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.login|default='0'}
+                    </div>
                 </div>
             </div>
-        </div>
 
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-success text-center panel-color3">
-                <div class="panel-heading">
-                    <h3 class="panel-title">访问单身推荐</h3>
-                </div>
-                <div class="panel-body home-info panel-color8">
-                    {$counts.match|default='0'}
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-warning text-center panel-color1">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">访问活动列表</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.activity|default='0'}
+                    </div>
                 </div>
             </div>
-        </div>
 
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color5">
-                <div class="panel-heading">
-                    <h3 class="panel-title">访问怦然心动</h3>
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color3">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">访问单身推荐</h3>
+                    </div>
+                    <div class="panel-body home-info panel-color8">
+                        {$counts.match|default='0'}
+                    </div>
                 </div>
-                <div class="panel-body home-info">
-                    {$counts.heart|default='0'}
+            </div>
+
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color5">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">访问怦然心动</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.heart|default='0'}
+                    </div>
                 </div>
             </div>
         </div>
-    </div>
-    <div class="row">
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-primary text-center panel-color6">
-                <div class="panel-heading">
-                    <h3 class="panel-title">访问个人中心</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.center|default='0'}
+        <div class="row">
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-primary text-center panel-color6">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">访问个人中心</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.center|default='0'}
+                    </div>
                 </div>
             </div>
-        </div>
 
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-warning text-center panel-color4">
-                <div class="panel-heading">
-                    <h3 class="panel-title">访问个人主页</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.home|default='0'}
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-warning text-center panel-color4">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">访问个人主页</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.home|default='0'}
+                    </div>
                 </div>
             </div>
-        </div>
 
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-success text-center panel-color7">
-                <div class="panel-heading">
-                    <h3 class="panel-title">今日想要报名</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.book|default='0'}
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color7">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日想要报名</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.book|default='0'}
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-success text-center panel-color3">
-                <div class="panel-heading">
-                    <h3 class="panel-title">累计报名退款人数/金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.bookCancelCount|default='0'}/{$counts.bookCancelMoney|default='0'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color3">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">累计报名退款人数/金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.bookCancelCount|default='0'}/{$counts.bookCancelMoney|default='0'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-success text-center panel-color3">
-                <div class="panel-heading">
-                    <h3 class="panel-title">累计报名人数/金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.bookCount|default='0'}/{$counts.bookMoney|default='0'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color3">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">累计报名人数/金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.bookCount|default='0'}/{$counts.bookMoney|default='0'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-success text-center panel-color9">
-                <div class="panel-heading">
-                    <h3 class="panel-title">本月总报名人数/金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.monthBookCount|default='0'}/{$counts.monthBookMoney|default='0'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center panel-color9">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">本月总报名人数/金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.monthBookCount|default='0'}/{$counts.monthBookMoney|default='0'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-warning text-center">
-                <div class="panel-heading">
-                    <h3 class="panel-title">累计充值人数/金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.totalRecharge|default='0'}/{$counts.totalRechargeMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-warning text-center">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">累计充值人数/金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.totalRecharge|default='0'}/{$counts.totalRechargeMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-warning text-center">
-                <div class="panel-heading">
-                    <h3 class="panel-title">本月充值人数/金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.monthRecharge|default='0'}/{$counts.monthRechargeMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-warning text-center">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">本月充值人数/金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.monthRecharge|default='0'}/{$counts.monthRechargeMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color8">
-                <div class="panel-heading">
-                    <h3 class="panel-title">今日充值人数/金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.recharge|default='0'}/{$counts.rechargeMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color8">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日充值人数/金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.recharge|default='0'}/{$counts.rechargeMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color6">
-                <div class="panel-heading">
-                    <h3 class="panel-title">累计开通VIP人数/VIP金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.totalVipCount|default='0'}/{$counts.totalVipMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color6">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">累计开通VIP人数/VIP金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.totalVipCount|default='0'}/{$counts.totalVipMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color3">
-                <div class="panel-heading">
-                    <h3 class="panel-title">本月开通VIP人数/VIP金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.monthVipCount|default='0'}/{$counts.monthVipMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color3">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">本月开通VIP人数/VIP金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.monthVipCount|default='0'}/{$counts.monthVipMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-success text-center">
-                <div class="panel-heading">
-                    <h3 class="panel-title">今日开通VIP人数/VIP金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.vipCount|default='0'}/{$counts.vipMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-success text-center">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日开通VIP人数/VIP金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.vipCount|default='0'}/{$counts.vipMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color7">
-                <div class="panel-heading">
-                    <h3 class="panel-title">累计牵线支付人数/牵线支付金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.totalHandCount|default='0.00'}/{$counts.totalHandMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color7">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">累计牵线支付人数/牵线支付金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.totalHandCount|default='0.00'}/{$counts.totalHandMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color2">
-                <div class="panel-heading">
-                    <h3 class="panel-title">本月牵线支付人数/牵线支付金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.monthHandCount|default='0.00'}/{$counts.monthHandMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color2">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">本月牵线支付人数/牵线支付金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.monthHandCount|default='0.00'}/{$counts.monthHandMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color9">
-                <div class="panel-heading">
-                    <h3 class="panel-title">今日牵线支付人数/牵线支付金额</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.handCount|default='0.00'}/{$counts.handMoney|default='0.00'}元
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color9">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">今日牵线支付人数/牵线支付金额</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.handCount|default='0.00'}/{$counts.handMoney|default='0.00'}元
+                    </div>
                 </div>
             </div>
-        </div>
-        <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color6">
-                <div class="panel-heading">
-                    <h3 class="panel-title">本月申请微信数/今日申请微信数</h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.monthContactCount|default='0.00'}/{$counts.contactCount|default='0'}次
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color6">
+                    <div class="panel-heading">
+                        <h3 class="panel-title">本月申请微信数/今日申请微信数</h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.monthContactCount|default='0.00'}/{$counts.contactCount|default='0'}次
+                    </div>
                 </div>
             </div>
-        </div>
-         <div class=" col-sm-3 col-xs-6">
-            <div class="panel panel-info text-center panel-color10" >
-                <div class="panel-heading" >
-                    <h3 class="panel-title" >平台总注销人数<br/></h3>
-                </div>
-                <div class="panel-body home-info">
-                    {$counts.userlogout|default='0'}
+            <div class=" col-sm-3 col-xs-6">
+                <div class="panel panel-info text-center panel-color10" >
+                    <div class="panel-heading" >
+                        <h3 class="panel-title" >平台总注销人数<br/></h3>
+                    </div>
+                    <div class="panel-body home-info">
+                        {$counts.userlogout|default='0'}
+                    </div>
                 </div>
             </div>
         </div>
     </div>
-</div>
 </if>
 </body>
 </html>

+ 0 - 1
public/themes/default/weixin/block/footer.html

@@ -1,3 +1,2 @@
-<script src="__TMPL__/weixin/public/assets/lib/jweixin-1.4.0.js?v={$version}"></script>
 </body>
 </html>

+ 1 - 0
public/themes/default/weixin/block/footer_nav.html

@@ -24,6 +24,7 @@
         </a>
     </ul>
 </footer>
+<script src="__TMPL__/weixin/public/assets/lib/jweixin-1.4.0.js?v={$version}"></script>
 <script>
     $(function(){
         var pageId = sessionStorage.getItem('pageId');

+ 3 - 1
public/themes/default/weixin/index/custom.html

@@ -4,7 +4,9 @@
 <div id="app" v-cloak>
     <div class="fanhui2">
         <h1>客服列表</h1>
-        <a href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
+        <a v-if="type == 1" href="/weixin/member/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
+        <a v-else-if="type==2" href="/weixin/market/index"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
+        <a v-else href="/"><img src="__TMPL__/weixin/public/assets/img/tubiao37.png"></a>
     </div>
     <div class="main">
         <div class="shouc_lb">

+ 3 - 7
public/themes/default/weixin/market/index.html

@@ -12,13 +12,9 @@
         <div class="tox_box">
             <img src="__TMPL__/weixin/public/assets/img/tubiao9.png">
             <div class="tox_xx">
-                <div class="tox" v-if="memberInfo.is_reg_profile==1">
+                <div class="tox">
                     <img :src="memberInfo.avatar? memberInfo.avatar : '__TMPL__/weixin/public/assets/img/tubiao7.png'"  onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao7.png'">
                 </div>
-                <div class="tox" v-else @click="showPop()">
-                    <img :src="memberInfo.avatar? memberInfo.avatar : '__TMPL__/weixin/public/assets/img/tubiao7.png'"  onerror="this.src='__TMPL__/weixin/public/assets/img/tubiao7.png'">
-                    <p>更换头像</p>
-                </div>
                 <div class="wod_xim">
                     <h1 v-text="memberInfo.user_nickname? memberInfo.user_nickname : '游客'"></h1>
                     <p><a href="/weixin/market/profile">资料设置</a></p>
@@ -26,7 +22,7 @@
             </div>
         </div>
         <div class="switch" v-if="memberInfo.id>0">
-            <a v-if="memberInfo.is_reg_profile==1" href="/weixin/member/index"><span class="type1">交友中心</span></a>
+            <a v-if="memberInfo.is_reg_profile==1&&memberInfo.user_status>=0" @click="goHome()"><span class="type1">交友中心</span></a>
             <a v-else href="/weixin/index/entry"><span class="type1">注册交友会员</span></a>
         </div>
         <div class="zhobu_box">
@@ -74,7 +70,7 @@
                     <li><img src="__TMPL__/weixin/public/assets/img/withdraw.png">
                         <p>提现记录</p><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
                 </a>
-                <a href="/weixin/page/custom">
+                <a href="/weixin/page/custom?type=2">
                     <li><img src="__TMPL__/weixin/public/assets/img/custom.png">
                         <p>我的客服</p><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
                 </a>

+ 1 - 1
public/themes/default/weixin/member/index.html

@@ -73,7 +73,7 @@
                     <li><img src="__TMPL__/weixin/public/assets/img/new-hand.png" >
                         <p>人工牵线</p><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
                 </a>
-                <a href="/weixin/page/custom">
+                <a href="/weixin/page/custom?type=1">
                     <li><img src="__TMPL__/weixin/public/assets/img/custom.png">
                         <p>我的客服</p><img class="rjiant" src="__TMPL__/weixin/public/assets/img/tubiao10.png"></li>
                 </a>

+ 57 - 21
public/themes/default/weixin/public/assets/js/activity-book.js

@@ -40,13 +40,25 @@ var app = new Vue({
                     _this.initShare();
                 }else if(res.code == 'exception'){
                     var url = res.data.url;
-                    $.showLoading(res.message, 'text');
-                    if (url) {
-                        setTimeout(function () {
-                            $.hideLoading();
-                            location.href = url;
-                        }, 500)
-                    }
+                    $.modal({
+                        id: "status",
+                        title: "温馨提示",
+                        text: res.message,
+                        buttons: [
+                            {
+                                text: "返回", className: "default", onClick: function () {
+                                    history.go(-1)
+                                    return false;
+                                }
+                            }, {
+                                text: "立即前往", className: "warning", onClick: function () {
+                                    if(url){
+                                        location.href = url
+                                    }
+                                    return false;
+                                }
+                            }]
+                    });
                 }else{
                     $.showLoading(res.message);
                     setTimeout(function(){
@@ -121,14 +133,25 @@ var app = new Vue({
                                 }]
                         });
                     }else{
-                        $.showLoading(res.message);
-                        if (url) {
-
-                            setTimeout(function () {
-                                $.hideLoading();
-                                location.href = url;
-                            }, 500)
-                        }
+                        $.modal({
+                            id: "status",
+                            title: "温馨提示",
+                            text: res.message,
+                            buttons: [
+                                {
+                                    text: "返回", className: "default", onClick: function () {
+                                        history.go(-1)
+                                        return false;
+                                    }
+                                }, {
+                                    text: "立即前往", className: "warning", onClick: function () {
+                                        if(url){
+                                            location.href = url
+                                        }
+                                        return false;
+                                    }
+                                }]
+                        });
                     }
                 }else{
                     $.toast(res.message, 'text');
@@ -162,13 +185,26 @@ var app = new Vue({
                         _this.weixinPay(res.data);
                     }
                 }else if(res.code == 'exception'){
-                    $.showLoading(res.message);
                     var url = res.data.url? res.data.url : '';
-                    if(url){
-                        setTimeout(function(){
-                            location.href = url;
-                        }, 500)
-                    }
+                    $.modal({
+                        id: "status",
+                        title: "温馨提示",
+                        text: res.message,
+                        buttons: [
+                            {
+                                text: "返回", className: "default", onClick: function () {
+                                    history.go(-1)
+                                    return false;
+                                }
+                            }, {
+                                text: "立即前往", className: "warning", onClick: function () {
+                                    if(url){
+                                        location.href = url
+                                    }
+                                    return false;
+                                }
+                            }]
+                    });
                 }else{
                     $.toast(res.message, 'text');
                 }

+ 93 - 150
public/themes/default/weixin/public/assets/js/auth-education.js

@@ -3,46 +3,52 @@ var app = new Vue({
     'data': {
         // 用户信息
         memberInfo: {},
-        // 认证数据
-        authInfo: {},
-        // 已选文件
-        files: [],
-        // 学历
-        educations: [],
-        // 提交状态
-        submitting: {'submit': null},
+        mealList: [],
+        mealInfo: {},
     },
     created: function(){
-        this.getParams();
+        this.getInfo();
+        this.getMeal();
+
     },
     methods: {
-        // 初始化参数
-        getParams: function(){
+        // 获取用户信息
+        getInfo: function(){
             var _this = this;
-            $.post('/api/index/params', {}, function (res) {
+            $.showLoading("数据加载中...");
+            $.post('/api/member/getInfo', {type: 4}, function (res) {
+                $.hideLoading();
                 if (res.code == 'success'){
-                    var paramsData = res.data;
-                    $.each(paramsData.educations, function(k,item){
-                       if(item != '不限'){
-                           _this.educations.push(item);
-                       }
+                    _this.memberInfo = res.data
+                }else if(res.code == 'exception'){
+                    $.modal({
+                        id: "status",
+                        title: "温馨提示",
+                        text: res.message,
+                        buttons: [
+                            {
+                                text: "返回首页", className: "default", onClick: function () {
+                                    location.href = '/';
+                                    return false;
+                                }
+                            }, {
+                                text: "联系客服", className: "warning", onClick: function () {
+                                    location.href = '/weixin/page/custom'
+                                    return false;
+                                }
+                            }]
                     });
-                    _this.getInfo();
                 }else{
                     $.toast(res.message, 'text');
                 }
             }, "json");
         },
-        // 获取用户信息
-        getInfo: function(){
+        // 获取套餐
+        getMeal: function(){
             var _this = this;
-            $.showLoading("数据加载中...");
-            $.post('/api/member/getInfo', {type: 6}, function (res) {
-                $.hideLoading();
+            $.post('/api/member/mealList', {type: 2}, function (res) {
                 if (res.code == 'success'){
-                    _this.memberInfo = res.data
-                    _this.authInfo = res.data? res.data.authInfo : [];
-                    _this.initData();
+                    _this.mealInfo = res.data? res.data[0] : {}
                 }else if(res.code == 'exception'){
                     $.showLoading(res.message);
                 }else{
@@ -50,137 +56,74 @@ var app = new Vue({
                 }
             }, "json");
         },
-        // 初始化
-        initData: function(){
-            var _this = this;
-            var education = _this.authInfo.education>0? _this.authInfo.education-1 : 0;
-            $.each(_this.educations, function(k, item){
-                if(education == k){
-                    $("#education").val(item);
-                    _this.authInfo.education = (k+1);
-                }
-            });
-
-            $("#education").picker({
-                title: "请选择学历",
-                cols: [
-                    {
-                        textAlign: 'center',
-                        values: _this.educations,
-                        onChange: function(data){
-                            $("#education").attr('data-code', data.cols[0].activeIndex+1);
-                        },
-                        onConfirm: function(data){
-                            console.log(data.cols[0].activeIndex+1)
-                            _this.authInfo.education = data.cols[0].activeIndex+1;
-                        },
-                    }
-                ]
-            });
-
-        },
-        // 选择图片
-        selectImg: function(ele, previewId){
+        // 购买升级VIP
+        handPay: function(){
             var _this = this;
-            var selectFile = ele.target.files[0];
-            if (selectFile) {
-                var reader = new FileReader();
-                reader.readAsDataURL(selectFile);
-                reader.onloadend = function (even) {
-                    _this.files[previewId] = selectFile;
-                    $('#'+previewId).attr('src', even.currentTarget.result);
-                }
-            }
-        },
-        // 保存数据
-        saveData: function(){
-            var _this = this;
-            var params = _this.authInfo;
-            if(_this.submitting.submit){
-                return false;
-            }
-
-            if(params.graduate == '' || params.graduate == null){
-                $.toast('请填写学校名称', 'text');
+            if(_this.mealInfo.id <=0 || typeof(_this.mealInfo.id) == 'undefined'){
+                $.toast('购买服务参数错误,请刷新重试', 'text');
                 return false;
             }
-
-            params.education = $("#education").attr('data-code');
-            if(params.education <= 0 || params.education == null){
-                $.toast('请选择学历', 'text');
+            if (!confirm('确定购买人工牵线服务吗?')) {
                 return false;
             }
-
-            var formData = new FormData();
-            formData.append('scene', 'education');
-            $.each(params, function(k,item){
-                formData.append(k, item);
-            })
-
-            // 照片
-            var education_img = typeof(_this.files['education_img'])? _this.files['education_img'] : '';
-            if(education_img){
-                formData.append('image1', education_img);
-            } else if(params.education_img == '' || params.education_img == null){
-                $.toast('请上传学历证明照片', 'text');
-                return false;
-            }
-
-            $.modal({
-                title: "确定提交学历认证?",
-                text: "",
-                buttons: [
-                    {
-                        text: "取消", className: "default", onClick: function () {
-                            return false;
-                        }
-                    },
-                    {
-                        text: "确定", onClick: function () {
-                            _this.submitting.submit = true;
-                            $.showLoading('数据提交中...');
-                            $.ajax({
-                                url: '/api/member/authSubmit',
-                                data: formData,
-                                type: "post",
-                                dataType: 'json',
-                                cache : false,
-                                contentType : false,
-                                processData : false,
-                                success: function(res) {
-                                    $.hideLoading();
-                                    _this.submitting.submit = false;
-                                    if(res.code == 'success'){
-                                        $.showLoading(res.message);
-                                        setTimeout(function(){
-                                            $.hideLoading();
-                                            _this.getInfo();
-                                            location.href = '/weixin/auth/index';
-                                        }, 500)
-                                    }else if (res.code == 'login'){
-                                        var url = res.data.url;
-                                        $.toast(res.message,'text');
-                                        if(url){
-                                            setTimeout(function(){
-                                                $.hideLoading();
-                                                location.href = url;
-                                            }, 500)
-                                        }
-                                    }else{
-                                        $.toast(res.message,'text');
-                                    }
-                                },
-                                error:function (res) {
-                                    _this.submitting.submit = false;
-                                    $.toast(res.message,'text');
-                                }
+            $.showLoading("订单处理中...");
+            $.post('/api/member/handPay', {mealId: _this.mealInfo.id}, function (res) {
+                $.hideLoading();
+                if (res.code == 'success'){
+                    // _this.weixinPay(res.data);
+                    // TODO 2.调起微信支付
+                    if (typeof (WeixinJSBridge) == "undefined") {
+                        $.toast('请在微信环境中使用', "text");
+                        if (document.addEventListener) {
+                            document.addEventListener('WeixinJSBridgeReady', function(){
+                                _this.weixinPay(res.data);
+                            }, false);
+                        } else if (document.attachEvent) {
+                            document.attachEvent('WeixinJSBridgeReady', function(){
+                                _this.weixinPay(res.data);
+                            });
+                            document.attachEvent('onWeixinJSBridgeReady', function(){
+                                _this.weixinPay(res.data);
                             });
                         }
+                    } else {
+                        _this.weixinPay(res.data);
                     }
-                ]
-            });
-
-
-        }
+                }else if(res.code == 'exception'){
+                    $.showLoading(res.message);
+                    var url = res.data.url? res.data.url : '';
+                    if(url){
+                        setTimeout(function(){
+                            location.href = url;
+                        }, 500)
+                    }
+                }else{
+                    $.toast(res.message, 'text');
+                }
+            }, "json");
+        },
+        // 微信支付
+        weixinPay: function(params){
+            var _this = this;
+            WeixinJSBridge.invoke(
+                'getBrandWCPayRequest', {
+                    "appId": params.appId,     //公众号名称,由商户传入
+                    "timeStamp": params.timeStamp,         //时间戳,自1970年以来的秒数
+                    "nonceStr": params.nonceStr, //随机串
+                    "package": params.package,
+                    "signType": params.signType,         //微信签名方式:
+                    "paySign": params.sign, //微信签名
+                },
+                function (res) {
+                    if (res.err_msg == "get_brand_wcpay_request:ok") {
+                        $.showLoading('VIP'+op+_this.mealInfo.name+'服务购买成功');
+                        setTimeout(function () {
+                            $.hideLoading();
+                            _this.getInfo();
+                        }, 500)
+                    }
+                }
+            );
+        },
     }
 })

+ 16 - 1
public/themes/default/weixin/public/assets/js/auth-hand.js

@@ -21,7 +21,22 @@ var app = new Vue({
                 if (res.code == 'success'){
                     _this.memberInfo = res.data
                 }else if(res.code == 'exception'){
-                    $.showLoading(res.message);
+                    $.modal({
+                        id: "status",
+                        title: "温馨提示",
+                        text: res.message,
+                        buttons: [
+                            {
+                                text: "返回首页", className: "default", onClick: function () {
+                                    Location.href = '/';
+                                }
+                            }, {
+                                text: "联系客服", className: "warning", onClick: function () {
+                                    location.href = '/weixin/page/custom'
+                                    return false;
+                                }
+                            }]
+                    });
                 }else{
                     $.toast(res.message, 'text');
                 }

+ 17 - 1
public/themes/default/weixin/public/assets/js/auth-idcard.js

@@ -24,7 +24,23 @@ var app = new Vue({
                     _this.memberInfo = res.data
                     _this.authInfo = res.data? res.data.authInfo : [];
                 }else if(res.code == 'exception'){
-                    $.showLoading(res.message);
+                    $.modal({
+                        id: "status",
+                        title: "温馨提示",
+                        text: res.message,
+                        buttons: [
+                            {
+                                text: "返回首页", className: "default", onClick: function () {
+                                    location.href = '/';
+                                    return false;
+                                }
+                            }, {
+                                text: "联系客服", className: "warning", onClick: function () {
+                                    location.href = '/weixin/page/custom'
+                                    return false;
+                                }
+                            }]
+                    });
                 }else{
                     $.toast(res.message, 'text');
                 }

+ 17 - 1
public/themes/default/weixin/public/assets/js/auth-position.js

@@ -39,7 +39,23 @@ var app = new Vue({
                     _this.authInfo = res.data? res.data.authInfo : [];
                     _this.initData();
                 }else if(res.code == 'exception'){
-                    $.showLoading(res.message);
+                    $.modal({
+                        id: "status",
+                        title: "温馨提示",
+                        text: res.message,
+                        buttons: [
+                            {
+                                text: "返回首页", className: "default", onClick: function () {
+                                    location.href = '/';
+                                    return false;
+                                }
+                            }, {
+                                text: "联系客服", className: "warning", onClick: function () {
+                                    location.href = '/weixin/page/custom'
+                                    return false;
+                                }
+                            }]
+                    });
                 }else{
                     $.toast(res.message, 'text');
                 }

+ 16 - 1
public/themes/default/weixin/public/assets/js/auth.js

@@ -17,7 +17,22 @@ var app = new Vue({
                 if (res.code == 'success'){
                     _this.memberInfo = res.data
                 }else if(res.code == 'exception'){
-                    $.showLoading(res.message);
+                    $.modal({
+                        id: "status",
+                        title: "温馨提示",
+                        text: res.message,
+                        buttons: [
+                            {
+                                text: "返回", className: "default", onClick: function () {
+                                    history.go(-1);
+                                }
+                            }, {
+                                text: "联系客服", className: "warning", onClick: function () {
+                                    location.href = '/weixin/page/custom'
+                                    return false;
+                                }
+                            }]
+                    });
                 }else{
                     $.toast(res.message, 'text');
                 }

+ 2 - 0
public/themes/default/weixin/public/assets/js/custom.js

@@ -7,8 +7,10 @@ var app = new Vue({
         customList: [],
         copyBox: null,
         copyText: '',
+        type: 0,
     },
     created: function(){
+        this.type = getParam('type')
         this.getSiteInfo();
         this.getList();
     },

+ 3 - 3
public/themes/default/weixin/public/assets/js/hearts.js

@@ -86,18 +86,18 @@ var app = new Vue({
         // 获取用户信息
         getInfo: function () {
             var _this = this;
-            $.post('/api/member/getInfo', {type: 1}, function (res) {
+            $.post('/api/member/getInfo', {type: 1,uncheck: true}, function (res) {
                 if (res.code == 'success') {
                     _this.memberInfo = res.data
                     _this.hasFollow = typeof(_this.memberInfo.is_follow) != 'undefined'? _this.memberInfo.is_follow : 0;
-                    if (_this.memberInfo.user_status != 1) {
+                    /*if (_this.memberInfo.user_status != 1) {
                         _this.matchList = [];
                         $.showLoading('账号已被冻结,请联系客服', 'text');
                         setTimeout(function () {
                             // $.hideLoading();
                             location.href = '/weixin/page/custom';
                         }, 500)
-                    }
+                    }*/
                 } else if (res.code == 'exception') {
                     var url = res.data.url;
                     $.showLoading(res.message, 'text');

+ 46 - 14
public/themes/default/weixin/public/assets/js/home.js

@@ -75,10 +75,17 @@ var app = new Vue({
         // 获取用户信息
         getMemberInfo: function () {
             var _this = this;
-            $.post('/api/member/getInfo', {id: _this.id, type: 8}, function (res) {
+            $.post('/api/member/getInfo', {id: _this.id, type: 8, uncheck: true}, function (res) {
                 if (res.code == 'success') {
                     _this.memberInfo = res.data
 
+                    _this.getHomeInfo();
+
+                    // 非法状态不可操作
+                    if(!_this.checkStatus()){
+                        return false;
+                    }
+
                     // 隐身模式不可申请微信
                     if(_this.memberInfo.is_heart != 1){
                         $.modal({
@@ -100,22 +107,35 @@ var app = new Vue({
                         return false;
                     }
 
-                    _this.getHomeInfo();
-                } else if (res.code == 'exception') {
-                    var url = res.data.url;
-                    $.hideLoading();
-                    $.showLoading(res.message, 'text');
-                    if (url) {
-                        setTimeout(function () {
-                            $.hideLoading();
-                            location.href = url;
-                        }, 500)
-                    }
-                } else {
+                }  else {
                     $.toast(res.message, 'text');
                 }
             }, "json");
         },
+        //  验证状态
+        checkStatus(){
+            var _this = this;
+            if(_this.memberInfo.user_status != 1) {
+                $.modal({
+                    id: "status",
+                    title: "温馨提示",
+                    text: '您的交友账号已被冻结,请联系客服',
+                    buttons: [
+                        {
+                            text: "关闭", className: "default", onClick: function () {
+                                return false;
+                            }
+                        }, {
+                            text: "联系客服", className: "warning", onClick: function () {
+                                location.href = '/weixin/page/custom'
+                                return false;
+                            }
+                        }]
+                });
+                return false;
+            }
+            return true;
+        },
         // 获取用户信息
         getSiteInfo: function () {
             var _this = this;
@@ -162,7 +182,6 @@ var app = new Vue({
             });
 
             $(".authInfo .close").click(function(){
-                console.log(5241)
                 $.closeModal();
             })
         },
@@ -214,6 +233,11 @@ var app = new Vue({
         // 确认认识对方
         contactConfirm: function (cid) {
             var _this = this;
+            // 非法状态不可操作
+            if(!_this.checkStatus()){
+                return false;
+            }
+
             $.modal({
                 title: "对方申请你的微信",
                 text: "",
@@ -280,6 +304,10 @@ var app = new Vue({
         // 想认识对方
         contact: function () {
             var _this = this;
+            // 非法状态不可操作
+            if(!_this.checkStatus()){
+                return false;
+            }
             // 隐身模式不可申请微信
             if(_this.memberInfo.is_heart != 1 && _this.type != 2){
                 $.modal({
@@ -379,6 +407,10 @@ var app = new Vue({
         // 关注收藏
         collect: function (type) {
             var _this = this;
+            // 非法状态不可操作
+            if(!_this.checkStatus()){
+                return false;
+            }
             $.showLoading("数据加载中...");
             $.post('/api/member/collect', {id: _this.id, type: type}, function (res) {
                 $.hideLoading();

+ 8 - 0
public/themes/default/weixin/public/assets/js/market.js

@@ -63,6 +63,14 @@ var app = new Vue({
                 }
             }, "json");
         },
+        // 会员中心
+        goHome(){
+            if(this.memberInfo.user_status == 1){
+                location.href = '/weixin/member/index'
+            } else {
+                $.toast( '交友账号已被冻结,请联系客服', 'text');
+            }
+        },
         // 选择图片
         selectImg: function (ele, previewId) {
             var _this = this;

+ 3 - 3
public/themes/default/weixin/public/assets/js/match.js

@@ -122,18 +122,18 @@ var app = new Vue({
         // 获取用户信息
         getInfo: function () {
             var _this = this;
-            $.post('/api/member/getInfo', {type: 1}, function (res) {
+            $.post('/api/member/getInfo', {type: 1,uncheck: true}, function (res) {
                 if (res.code == 'success') {
                     _this.memberInfo = res.data
                     _this.hasFollow = typeof(_this.memberInfo.is_follow) != 'undefined'? _this.memberInfo.is_follow : 0;
-                    if (_this.memberInfo.user_status != 1) {
+                    /*if (_this.memberInfo.user_status != 1) {
                         _this.matchList = [];
                         $.showLoading('账号已被冻结,请联系客服', 'text');
                         setTimeout(function () {
                             // $.hideLoading();
                             location.href = '/weixin/page/custom';
                         }, 500)
-                    }
+                    }*/
                 } else if (res.code == 'exception') {
                     var url = res.data.url;
                     $.showLoading(res.message, 'text');

+ 11 - 5
public/themes/default/weixin/public/assets/js/member.js

@@ -19,11 +19,17 @@ var app = new Vue({
                 if (res.code == 'success') {
                     _this.memberInfo = res.data
                     if (_this.memberInfo.user_status != 1) {
-                        $.showLoading('账号已被冻结,请联系客服', 'text');
-                        setTimeout(function () {
-                            // $.hideLoading();
-                            location.href = '/weixin/page/custom';
-                        }, 500)
+                        if(_this.memberInfo.agent_type == 1 && _this.memberInfo.agent_status == 1){
+                            $.showLoading('交友账号已被冻结,即将返回推广中心', 'text');
+                            setTimeout(function () {
+                                location.href = '/weixin/market/index';
+                            }, 1000)
+                        }else{
+                            $.showLoading('交友账号已被冻结,请联系客服', 'text');
+                            setTimeout(function () {
+                                location.href = '/weixin/page/custom';
+                            }, 500)
+                        }
                     }
                 } else if (res.code == 'exception') {
                     var url = res.data.url;

+ 2 - 1
public/themes/default/weixin/public/assets/js/privacy.js

@@ -102,10 +102,11 @@ var app = new Vue({
         // 注销账号
         logout: function(){
             var _this = this;
+            var title = _this.memberInfo.agent_type==1&&_this.memberInfo.agent_status==1? '您的账号已开通推广号功能,若注销将无法继续使用该功能,' : '';
             $.modal({
                 id: "apply",
                 title: "温馨提示",
-                text: "注销将清空您的所有账号信息及已充值、购买的所有服务权益(包括但不限于爱心、会员权益、认证资料、个人介绍及照片等),且无法恢复,请谨慎操作!如果您只是暂时不再使用,建议您隐身即可。",
+                text: title+"注销将清空您的交友账号所有信息及已充值、购买的所有服务权益(包括但不限于爱心、会员权益、认证资料、个人介绍及照片等),且无法恢复,请谨慎操作!如果您只是暂时不再使用,建议您隐身即可。若发现恶意注销再注册推广红娘分享二维码,直接封号处理!",
                 buttons: [
                     {
                         text: "再想想", className: "default", onClick: function () {

+ 51 - 12
vendor/thinkcmf/cmf-app/src/admin/controller/MainController.php

@@ -77,42 +77,81 @@ class MainController extends AdminBaseController
         $time = strtotime(date('Y-m-d', time()));
         $monthTime = strtotime(date('Y-m-01'));
         $counts['userCount'] = Db::name('user')
-            ->where(['user_type'=>2,'user_status'=>1])
+            ->where(['user_type'=>2,'user_status'=>1,'agent_type'=>0])
             ->where('openid', 'not in','')
             ->count('id');
         $counts['lastFans'] = Db::name('user')
-            ->where(['user_type'=>2,'user_status'=>1])
+            ->where(['user_type'=>2,'user_status'=>1,'agent_type'=>0])
             ->where('create_time','>', $time - 86400)
             ->where('create_time','<=', $time)
             ->where('openid', 'not in','')
             ->count('id');
         $counts['monthFans'] = Db::name('user')
-            ->where(['user_type'=>2,'user_status'=>1])
+            ->where(['user_type'=>2,'user_status'=>1,'agent_type'=>0])
             ->where('create_time','>', $monthTime)
             ->where('create_time','<=', time())
             ->where('openid', 'not in','')
             ->count('id');
         $counts['todayFans'] = Db::name('user')
-            ->where(['user_type'=>2,'user_status'=>1])
+            ->where(['user_type'=>2,'user_status'=>1,'agent_type'=>0])
             ->where('create_time','>', $time)
             ->where('create_time','<=', $time + 86400)
             ->where('openid', 'not in','')
             ->count('id');
+        $counts['marketCount'] = Db::name('user')
+            ->where(['user_type'=>2,'agent_status'=>1,'agent_type'=>1])
+            ->where('agent_create_time','>', $time)
+            ->where('agent_create_time','<=', $time + 86400)
+            ->count('id');
+        $counts['monthMarketCount'] = Db::name('user')
+            ->where(['user_type'=>2,'agent_status'=>1,'agent_type'=>1])
+            ->where('agent_create_time','>=', $monthTime)
+            ->where('agent_create_time','<=', $time + 86400)
+            ->count('id');
+        $counts['totalMarketCount'] = Db::name('user')
+            ->where(['user_type'=>2,'agent_status'=>1,'agent_type'=>1])
+            ->where('agent_create_time','<=', $time + 86400)
+            ->count('id');
+        $counts['marketInviteCount'] = Db::name('user')
+            ->alias('u')
+            ->join('sg_user uu','uu.id=u.parent_id','left')
+            ->where(['u.user_type'=>2,'u.user_status'=>1,'u.agent_type'=>0,'uu.agent_type'=> 1])
+            ->where('u.create_time','>=', $time)
+            ->where('u.create_time','<=', $time + 86400)
+            ->count('u.id');
+        $counts['monthMarketInviteCount'] = Db::name('user')
+            ->alias('u')
+            ->join('sg_user uu','uu.id=u.parent_id','left')
+            ->where(['u.user_type'=>2,'u.user_status'=>1,'u.agent_type'=>0,'uu.agent_type'=> 1])
+            ->where('u.create_time','>=', $monthTime)
+            ->where('u.create_time','<=', $time + 86400)
+            ->count('u.id');
+        $counts['totalMarketInviteCount'] = Db::name('user')
+            ->alias('u')
+            ->join('sg_user uu','uu.id=u.parent_id','left')
+            ->where(['u.user_type'=>2,'u.user_status'=>1,'u.agent_type'=>0,'uu.agent_type'=> 1])
+            ->where('u.create_time','<=', $time + 86400)
+            ->count('u.id');
         $counts['activityCount'] = Db::name('activity')
             ->where(['status'=>1])
             ->count('id');
-            
-         $counts['recharge'] = Db::name('user_recharge_log')
+
+        $counts['recharge'] = Db::name('user_recharge_log')
             ->where(['type'=> 1, 'status'=> 2])
             ->where('pay_at','>=', date('Y-m-d'))
             ->where('pay_at','<=', date('Y-m-d', $time + 86400))
             ->count('id');
+        $counts['rechargeMoney'] = Db::name('user_recharge_log')
+            ->where(['type'=> 1, 'status'=> 2])
+            ->where('pay_at','>=', date('Y-m-d'))
+            ->where('pay_at','<=', date('Y-m-d', $time + 86400))
+            ->sum('pay_money');
         $counts['monthRecharge'] = Db::name('user_recharge_log')
             ->where(['type'=> 1, 'status'=> 2])
             ->where('pay_at','>=', date('Y-m-01'))
             ->where('pay_at','<=', date('Y-m-d', $time + 86400))
             ->count('id');
-            
+
         $counts['monthRechargeMoney'] = Db::name('user_recharge_log')
             ->where(['type'=> 1, 'status'=> 2])
             ->where('pay_at','>=', date('Y-m-01'))
@@ -207,8 +246,8 @@ class MainController extends AdminBaseController
             ->where('updated_at','<=', date('Y-m-d', $time+86400))
             ->count('id');
 
-         //统计注销总人数
-        $counts['userlogout'] = Db::name('user')   
+        //统计注销总人数
+        $counts['userlogout'] = Db::name('user')
             ->where(['user_type'=>2,'user_status'=>-1])
             ->count('id');
 
@@ -222,7 +261,7 @@ class MainController extends AdminBaseController
         $counts['bookCancelCount'] = Db::name('books')
             ->where('status','=',5)
             ->count('id');
-        $counts['bookMoney'] = Db::name('books')
+        $counts['bookCancelMoney'] = Db::name('books')
             ->where('status','=',5)
             ->sum('money');
         $counts['monthBookCount'] = Db::name('books')
@@ -248,11 +287,11 @@ class MainController extends AdminBaseController
         $counts['center'] = PRedis::get($cacheKey.'center');  // 访问个人中心
         $counts['center'] = $counts['center']? $counts['center'] : 0;
         $counts['home'] = PRedis::get($cacheKey.'home');  // 访问个人主页
-        $counts['home'] = $counts['home']? $counts['home'] : 0;  
+        $counts['home'] = $counts['home']? $counts['home'] : 0;
         // $counts['logout'] = PRedis::get($cacheKey.'home');  // 平台注销数量
         // $counts['logout'] = $counts['home']? $counts['home'] : 0;  
 
-
+        //var_dump($counts);
         $this->assign('counts', $counts);
         $this->assign('dashboard_widgets', $dashboardWidgets);
         $this->assign('dashboard_widget_plugins', $dashboardWidgetPlugins);