12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace message;
- require_once(BASE_HELPER_PATH . '/refill/policy/PolicyUtil.php');
- use refill;
- use Log;
- class pubevent
- {
- public function onRefillBefore()
- {
- $this->_update_mixed_cfg();
- }
- private function _update_mixed_cfg()
- {
- $read_cfg = function ($cfg)
- {
- $lower_ratio = $cfg['lower_ratio'] ?? [];
- if (empty($lower_ratio)) {
- [$ratio, $period] = [0.0, 3600];
- } else {
- [$ratio, $period] = [$lower_ratio['ratio'], $lower_ratio['period']];
- }
- $profit_ratio = $cfg['profit_ratio'] ?? 0.0;
- $profit_formula = $cfg['profit_formula'] ?? 'qts';
- return ['ratio' => $ratio, 'period' => $period, 'profit_ratio' => $profit_ratio, 'profit_formula' => $profit_formula];
- };
- $mch_configs = function () use ($read_cfg)
- {
- $result = [];
- $i = 0;
- while (true)
- {
- $start = $i * 100;
- $items = Model()->table('merchant')->where(['mchid' => ['gt', 0], 'merchant_state' => 1])->field('mchid,retry_times_cfg,quality')->order('mchid asc')->limit("{$start},100")->select();
- if(empty($items)) {
- break;
- }
- $i++;
- foreach ($items as $item)
- {
- $mchid = intval($item['mchid']);
- $quality = intval($item['quality']);
- if($mchid <= 0 || $quality <= 0) continue;
- if (!refill\PolicyUtil::mixed_quality($quality)) {
- continue;
- }
- $retry_times_cfg = unserialize($item['retry_times_cfg']);
- if(empty($retry_times_cfg)) continue;
- $result[$mchid] = $read_cfg($retry_times_cfg);
- }
- }
- return $result;
- };
- $result = $mch_configs();
- $val = json_encode($result);
- Log::record("stat-merchant-mixed val = {$val}",Log::DEBUG);
- wkcachex('stat-merchant-mixed', $val, 'refill-');
- }
- }
|