Sfoglia il codice sorgente

add provider divert account

stanley-king 3 anni fa
parent
commit
ae29b66a63

+ 5 - 1
admin/control/provider.php

@@ -1,9 +1,12 @@
 <?php
+
 include(BASE_CONFIG_PATH . CONFIG_PREFIX . '/refill.ini.php');
+
 require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
 require_once(BASE_CORE_PATH . '/framework/function/http.php');
 require_once(BASE_HELPER_PATH . '/refill/divert_account.php');
 require_once (BASE_HELPER_PATH . '/model/member_info.php');
+
 class providerControl extends SystemControl
 {
     public function __construct()
@@ -80,7 +83,6 @@ class providerControl extends SystemControl
             if (empty($updates)) return;
             foreach ($updates as $update) {
                 $provider_id = $update['provider_id'];
-
                 $data = ['qualitys' => $update['qualitys']];
                 $mod->editProvider($data, ['provider_id' => $provider_id]);
             }
@@ -88,6 +90,7 @@ class providerControl extends SystemControl
         $inserter = function ($mod, $type, $names) {
             $model_member = Model('member');
             foreach ($names as $name) {
+                $insert_member = [];
                 $insert_member['member_name'] = md5($name['name'] . time());
                 $insert_member['member_passwd'] = $name['name'];
                 $insert_id = $model_member->addMember($insert_member);
@@ -124,6 +127,7 @@ class providerControl extends SystemControl
         $inserter($mod_prov, 1, $oil_inserts);
         $inserter($mod_prov, 2, $phone_inserts);
         $inserter($mod_prov, 3, $third_inserts);
+
         $updater($mod_prov, $oil_updates);
         $updater($mod_prov, $phone_updates);
         $updater($mod_prov, $third_updates);

+ 1 - 1
core/framework/db/mysqli.php

@@ -287,7 +287,7 @@ class Db
         }
         $sql = 'INSERT INTO `' . DBPRE . $table_name . '` (' . implode(',', $fields) . ') VALUES(' . implode(',', $value) . ')';
 
-        //当数据库没有自增ID的情况下,返回 是否成功
+        //当数据库没有自增ID的情况下,返回是否成功
         $result = self::query($sql, $host);
         $insert_id = self::getLastId($host);
         return $insert_id ? $insert_id : $result;

+ 12 - 12
core/framework/libraries/model.php

@@ -1014,18 +1014,18 @@ class ModelDb
                     if(isset($val[2]) && 'exp'==$val[2]) {
                         $whereStr .= $key.' '.strtoupper($val[0]).' '.$val[1];
                     }
-                    else
-                    {
-                    	if (empty($val[1])){
-                    		$whereStr .= $key.' '.strtoupper($val[0]).'(\'\')';
-                    	}elseif(is_string($val[1]) || is_numeric($val[1])) {
-                             $val[1] =  explode(',',$val[1]);
-                             $zone   =   implode(',',$this->parseValue($val[1]));
-                             $whereStr .= $key.' '.strtoupper($val[0]).' ('.$zone.')';
-                        }elseif(is_array($val[1])){
- 							$zone   =   implode(',',$this->parseValue($val[1]));
-                            $whereStr .= $key.' '.strtoupper($val[0]).' ('.$zone.')';
-                        }
+                    elseif (empty($val[1])){
+                        $whereStr .= $key.' '.strtoupper($val[0]).'(\'\')';
+                    }elseif(is_string($val[1]) || is_numeric($val[1])) {
+                        $val[1] =  explode(',',$val[1]);
+                        $zone   =   implode(',',$this->parseValue($val[1]));
+                        $whereStr .= $key.' '.strtoupper($val[0]).' ('.$zone.')';
+                    }elseif(is_array($val[1])){
+                        $zone   =   implode(',',$this->parseValue($val[1]));
+                        $whereStr .= $key.' '.strtoupper($val[0]).' ('.$zone.')';
+                    }
+                    else {
+
                     }
                 }
                 elseif(preg_match('/BETWEEN/i',$val[0]))

+ 6 - 6
data/config/xyz/refill.ini.php

@@ -2707,19 +2707,19 @@ $config['merchant_retry_times'] = [
         'qualities' => [1 => ['secs' => 420, 'times' => 100], 2 => ['secs' => 180, 'times' => 100]],
         'lower_ratio' => ['ratio' => 0.9,'period' => 3600]
     ],
-    10213 => [
-        'qualities' => [1 => ['secs' => 230, 'times' => 100], 2 => ['secs' => 70, 'times' => 5]],
-        'lower_ratio' => ['ratio' => 0.7,'period' => 3600]
+    10213 => [ //邀友-普充10分
+        'qualities' => [1 => ['secs' => 590, 'times' => 100], 2 => ['secs' => 70, 'times' => 5]],
+        'lower_ratio' => ['ratio' => 0.8,'period' => 3600]
     ],
-    10211 => [
+    10211 => [ //飘逸-混充5分
         'qualities' => [1 => ['secs' => 230, 'times' => 100], 2 => ['secs' => 70, 'times' => 5]],
         'lower_ratio' => ['ratio' => 0.9,'period' => 3600]
     ],
-    10216 => [
+    10216 => [ //飘逸-10分
         'qualities' => [1 => ['secs' => 530, 'times' => 100], 2 => ['secs' => 70, 'times' => 5]],
         'lower_ratio' => ['ratio' => 0.4,'period' => 3600]
     ],
-    10217 => [
+    10217 => [ //天采-混充10m
         'qualities' => [1 => ['secs' => 530, 'times' => 100], 2 => ['secs' => 70, 'times' => 5]],
         'lower_ratio' => ['ratio' => 0.9,'period' => 3600]
     ]

+ 6 - 23
data/model/member.model.php

@@ -271,12 +271,7 @@ class memberModel extends Model
         return $member;
     }
 
-    /**
-     * 注册商城会员
-     *
-     * @param     array $param 会员信息
-     * @return    minxed 数组格式的返回结果
-     */
+
     public function addMember($param)
     {
         if (empty($param)) {
@@ -308,23 +303,11 @@ class memberModel extends Model
             if(empty($mobile) && empty($unionid)) return false;
         }
 
-        try
-        {
-            $trans = new trans_wapper($this,__METHOD__);
-            $insert_id = $this->table('member')->insert($info);
-            if (!$insert_id) {
-                throw new Exception();
-            }
-            $insert = $this->addMemberCommon(['member_id' => $insert_id]);
-            if (!$insert) {
-                throw new Exception();
-            }
-            $trans->commit();
-            return $insert_id;
-        } catch (Exception $e) {
-            $trans->rollback();
-            return false;
+        $insert_id = $this->table('member')->insert($info);
+        if($insert_id) {
+            $this->addMemberCommon(['member_id' => $insert_id]);
         }
+        return $insert_id;
     }
 
     /**
@@ -367,7 +350,7 @@ class memberModel extends Model
 
     /**
      * 插入扩展表信息
-     * @param unknown $data
+     * @param array $data
      * @return Ambigous <mixed, boolean, number, unknown, resource>
      */
     public function addMemberCommon($data)

+ 11 - 2
data/model/predeposit.model.php

@@ -746,7 +746,16 @@ class predepositModel extends Model {
 
     public function isRefill($member_id)
     {
-        $items = $this->table('merchant')->where(['admin_id' => $member_id])->select();
-        return !empty($items);
+        $mitems = $this->table('merchant')->where(['admin_id' => $member_id])->select();
+        if(!empty($mitems)) {
+            return true;
+        }
+
+        $pitems = $this->table('refill_provider')->where(['account_id' => $member_id])->select();
+        if(!empty($pitems)) {
+            return true;
+        }
+
+        return false;
     }
 }

+ 55 - 32
helper/refill/divert_account.php

@@ -81,7 +81,6 @@ class divert_account
         }
     }
 
-
     public function init_merchants()
     {
         $mids = $this->unique_mchmids();
@@ -93,13 +92,11 @@ class divert_account
                 $trans = new trans_wapper($mod_divert,__METHOD__);
                 $this->init_member($mid);
                 $trans->commit();
-                return true;
             }
             catch (Exception $ex)
             {
                 $trans->rollback();
                 Log::record($ex->getMessage(), Log::ERR);
-                return false;
             }
         }
     }
@@ -140,10 +137,10 @@ class divert_account
         }
     }
 
-
-    public function init_channel_accounts()
+    //为每个通道创建一个充值监控账户
+    public function init_channels_account()
     {
-        $provider_getter = function ()
+        $noaccounters = function ()
         {
             $result = [];
 
@@ -151,21 +148,65 @@ class divert_account
             while (true)
             {
                 $start = $i * 100;
-                $items = Model('')->table('refill_provider')->field('provider_id,')->where(['provider_id' => ['gt',0]])->order('provider_id asc')->limit("{$start},100")->select();
+                $items = Model('')->table('refill_provider')->field('*')->where(['provider_id' => ['gt',0]])->order('provider_id asc')->limit("{$start},100")->select();
                 if(empty($items)) {
                     break;
                 }
 
                 $i++;
-                foreach ($items as $item) {
-                    $result[] = intval($item['store_id']);
+                foreach ($items as $item)
+                {
+                    $account_id = intval($item['account_id']);
+                    if($account_id <= 0 ) {
+                        $result[] = ['provider_id' => $item['provider_id'], 'name' => $item['name']];
+                    }
                 }
             }
 
-            $result = array_unique($result);
             return $result;
         };
 
+        $method = __METHOD__;
+        $account_creater = function ($provider) use ($method)
+        {
+            $model_member = Model('member');
+            $trans = new trans_wapper($model_member,$method);
+
+            try {
+                $chname = $provider['name'];
+                $member_info = [];
+                $member_info['member_name'] = "{$chname}-refill";
+                $member_info['member_passwd'] = md5($chname);
+                $insert_id = $model_member->addMember($member_info);
+                if($insert_id <= 0) {
+                    $trans->rollback();
+                    return false;
+                }
+                else {
+                    $mod_provider = Model('refill_provider');
+                    $mod_provider->editProvider(['account_id' => $insert_id],['provider_id' => $provider['provider_id']]);
+                    $trans->commit();
+                    return true;
+                }
+            }
+            catch (Exception $ex) {
+                $trans->rollback();
+                Log::record($ex->getMessage(),Log::DEBUG);
+                return false;
+            }
+        };
+
+        $providers = $noaccounters();
+        foreach ($providers as $provider)
+        {
+            $ret = $account_creater($provider);
+            if($ret) {
+                Log::record("{$provider['name']} create account success",Log::DEBUG);
+            }
+            else {
+                Log::record("{$provider['name']} create account fail",Log::DEBUG);
+            }
+        }
     }
 
     public function init_channels()
@@ -179,20 +220,18 @@ class divert_account
                 $trans = new trans_wapper($mod_divert,__METHOD__);
                 $this->init_member($mid);
                 $trans->commit();
-                return true;
             }
             catch (Exception $ex)
             {
                 $trans->rollback();
                 Log::record($ex->getMessage(), Log::ERR);
-                return false;
             }
         }
     }
 
     public function unique_chmids()
     {
-        $stores_getter = function ()
+        $mid_getter = function ()
         {
             $result = [];
 
@@ -200,14 +239,14 @@ class divert_account
             while (true)
             {
                 $start = $i * 100;
-                $items = Model('')->table('refill_provider')->field('store_id')->where(['provider_id' => ['gt',0]])->order('provider_id asc')->limit("{$start},100")->select();
+                $items = Model('')->table('refill_provider')->field('account_id')->where(['provider_id' => ['gt',0]])->order('provider_id asc')->limit("{$start},100")->select();
                 if(empty($items)) {
                     break;
                 }
 
                 $i++;
                 foreach ($items as $item) {
-                    $result[] = intval($item['store_id']);
+                    $result[] = intval($item['account_id']);
                 }
             }
 
@@ -215,23 +254,7 @@ class divert_account
             return $result;
         };
 
-        $mid_getter = function ($stores)
-        {
-            $result = [];
-            $mod_store = Model('store');
-            foreach ($stores as $sid) {
-                $info = $mod_store->getStoreInfoByID($sid);
-                $result[] = $info['member_id'];
-            }
-            $result = array_unique($result);
-
-            return $result;
-        };
-
-        $stores = $stores_getter();
-        $mids = $mid_getter($stores);
-
+        $mids = $mid_getter();
         return $mids;
     }
-
 }

+ 9 - 5
helper/refill/store_member.php

@@ -1,5 +1,6 @@
 <?php
 
+namespace refill;
 
 class store_member
 {
@@ -27,11 +28,14 @@ class store_member
         }
         else
         {
-            $mod_store = Model('store');
-            $info = $mod_store->getStoreInfoByID($store_id);
-            $this->mStoreMember[$store_id] = ['member_id' => $info['member_id'], 'member_name' => $info['seller_name']];
-
-            return $this->mStoreMember[$store_id];
+            $mod_store = Model('refill_provider');
+            $provider = $mod_store->getProviderInfo(['store_id' => $store_id]);
+            if (empty($provider)) {
+                return [];
+            } else {
+                $this->mStoreMember[$store_id] = ['member_id' => intval($provider['account_id']), 'member_name' => $provider['name']];
+                return $this->mStoreMember[$store_id];
+            }
         }
     }
 }

+ 14 - 1
test/TestAccountDivert.php

@@ -10,6 +10,7 @@ require_once(BASE_ROOT_PATH . '/global.php');
 require_once(BASE_CORE_PATH . '/lrlz.php');
 require_once(BASE_ROOT_PATH . '/fooder.php');
 require_once(BASE_HELPER_PATH . '/refill/divert_account.php');
+require_once(BASE_HELPER_PATH . '/refill/store_member.php');
 
 class TestAccountDivert extends TestCase
 {
@@ -57,4 +58,16 @@ class TestAccountDivert extends TestCase
         $helper = new refill\divert_account();
         $helper->init_channels();
     }
-}
+
+    public function testInitChannelsAccount()
+    {
+        $helper = new refill\divert_account();
+        $helper->init_channels_account();
+    }
+
+    public function testStoreMember()
+    {
+        $ret = refill\store_member::instance()->get_member(13);
+        $ret = refill\store_member::instance()->get_member(13);
+    }
+}