123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 2017/9/28
- * Time: 上午10:16
- */
- defined('InShopNC') or exit('Access Invalid!');
- require_once(BASE_ROOT_PATH . '/helper/notify_helper.php');
- require_once(BASE_ROOT_PATH . '/helper/stat_helper.php');
- require_once(BASE_DATA_PATH . '/mobile/omsid.php');
- require_once(BASE_ROOT_PATH . '/helper/bonus_helper.php');
- require_once(BASE_ROOT_PATH . '/helper/bonus/witholder.php');
- require_once(BASE_ROOT_PATH . '/helper/bonus/norate_holder.php');
- require_once(BASE_ROOT_PATH . '/helper/notify_helper.php');
- require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
- require_once(BASE_ROOT_PATH . '/data/mobile/lrlz_staff.php');
- require_once(BASE_ROOT_PATH . '/helper/search/tcp_client.php');
- require_once(BASE_ROOT_PATH . '/helper/room/factory_client.php');
- class commandControl extends BaseCronControl
- {
- const admin_member_id = 36429;
- public function __construct()
- {
- parent::__construct();
- }
- //中秋节给员工发红包
- public function zqbonusOp()
- {
- $staffs = lrlz_staff();
- $type_sn = '76341506502791044726';
- bonus_helper::send_mobile($type_sn,$staffs,2);
- }
- public function init_commentsOp()
- {
- $mod = Model('goods');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = Model()->table('evaluate_goods')->field('geval_commonid,geval_goodsid')->order('geval_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- $cid = intval($item['geval_commonid']);
- if($cid <= 0) continue;
- $mod->editGoodsCommon(['comments' => array('exp', "comments+1")],['goods_commonid' => $cid]);
- }
- }
- }
- public function init_rewardOp()
- {
- $mod_member = Model('member');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_member->field('member_id')->order('member_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- $user = intval($item['member_id']);
- if($user <= 0) continue;
- $val = $mod_member->field('count(*) inviter_count' )->where(['inviter_id' => $user])->select();
- $invitees = intval($val[0]['inviter_count']);
- if($invitees <= 0) continue;
- $ret = $mod_member->editMember(['member_id' => $user],['invitees' => $invitees,'reward_amount' => $invitees * 30]);
- if($ret == false) {
- Log::record("update member_id = {$user} invitees and reward",Log::ERR);
- }
- }
- }
- }
- public function pass_followOp()
- {
- $mod_member = Model('member');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_member->field('member_id')->order('member_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- $user = intval($item['member_id']);
- if($user <= 0) continue;
- relation_helper::onLogin($user);
- }
- }
- }
- public function order_pushOp()
- {
- QueueClient::push('onAsyncBroadcastOrder',['pay_sn' => '330564181105825442','amount' => 1,'days' => 30]);
- }
- public function init_userOp()
- {
- $mod_stat = Model('stat_daily');
- $items = $mod_stat->field('date_id')->limit(false)->select();
- foreach ($items as $item)
- {
- $time = intval($item['date_id']);
- $stat = new statistics\stmember($time);
- $stat->init_user();
- }
- }
- private function find_user($mobile)
- {
- if(empty($mobile)) return false;
- $mod_member = Model('member');
- $infos = $mod_member->where(['member_mobile' => $mobile])->select();
- if(empty($infos)) return false;
- return intval($infos[0]['member_id']);
- }
- public function reset_bonusOp()
- {
- $mod_bonus = Model('user_bonus');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_bonus->field('*')->order('bonus_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- try
- {
- $bonus = bonus\user_bonus::create_by_param($item);
- $remain_amount = $bonus->bonus_value() - $bonus->send_amount() - $bonus->pay_amount();
- $ret = $mod_bonus->where(['bonus_id' => $bonus->bonus_id()])->update(['remain_amount' => $remain_amount]);
- Log::record("updata bonus_id = {$bonus->bonus_id()} ret={$ret}",Log::DEBUG);
- }
- catch (Exception $ex)
- {
- }
- }
- }
- }
- public function init_employeeOp()
- {
- $mod_member = Model('member');
- $mod_employee = Model();
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_employee->table('employee')->field('*')->order('mobile asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- try
- {
- $mobile = $item['mobile'];
- $name = $item['employee_name'];
- $workno = $item['workno'];
- $info = $mod_member->getMemberInfo(['member_mobile' => $mobile]);
- $minfo = new member_info($info);
- $member_id = $minfo->member_id();
- $mod_employee->table('employee')->where(['mobile' => $mobile])->update(['member_id' => $member_id]);
- }
- catch (Exception $ex)
- {
- Log::record("{$name} {$workno} {$mobile} not registed",Log::ERR);
- }
- }
- }
- }
- public function shake_roomOp()
- {
- $ret = room\factory_client::instance()->create_shake(self::admin_member_id);
- }
- public function init_member_bindOp()
- {
- $mod_member = Model('member');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_member->field('*')->order('member_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- $mobile = $item['member_mobile'];
- $member_id = intval($item['member_id']);
- if(empty($mobile)) {
- $mobile_bind = 0;
- } else {
- $mobile_bind = 1;
- }
- $openid = $item['member_wxopenid'];
- $unionid = $item['member_wxunionid'];
- if(empty($openid) && empty($unionid)) {
- $wxunion_bind = 0;
- } else {
- $wxunion_bind = 1;
- }
- $ret = $mod_member->editMember(['member_id' => $member_id],['member_mobile_bind' => $mobile_bind,'member_wechat_bind' => $wxunion_bind]);
- if($ret && $mod_member->affected_rows() >= 0) {
- Log::record("user: {$member_id} edit ok",Log::DEBUG);
- } else {
- Log::record("user: {$member_id} edit fail",Log::ERR);
- }
- }
- }
- }
- public function init_rewared_inviterOp()
- {
- $mod_member = Model('member');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_member->field('*')->order('member_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- $member_id = intval($item['member_id']);
- $ret = $mod_member->editMember(['member_id' => $member_id],['rewared_inviter' => 1]);
- if($ret && $mod_member->affected_rows() >= 0) {
- Log::record("user: {$member_id} edit ok",Log::DEBUG);
- } else {
- Log::record("user: {$member_id} edit fail",Log::ERR);
- }
- }
- }
- }
- public function init_shakeOp()
- {
- $ret = room\factory_client::instance()->create_shake(self::admin_member_id);
- }
- //修改商品价格,市场价,价格,底价
- public function init_lowest_priceOp()
- {
- Log::record(__METHOD__ . " start",Log::DEBUG);
- $mod_goods = Model('goods');
- $path = BASE_DATA_PATH . '/mobile/lowest_price.txt';
- $file = fopen($path,'r');
- $i = 0;
- while (!feof($file))
- {
- $line = fgets($file);
- $line = trim($line);
- $datas = explode("\t",$line);
- if(count($datas) == 3) {
- $goods_id = intval($datas[0]);
- $goods_price = intval($datas[1] * 100 + 0.5) / 100;
- $lowest_price = intval($datas[2] * 100 + 0.5) / 100;
- $result = $mod_goods->editGoods(['goods_marketprice' => $goods_price,'goods_price' => $goods_price,'goods_lowest_price' => $lowest_price],['goods_id' => $goods_id]);
- if($result == false) {
- Log::record("update goods_id = {$goods_id}",Log::ERR);
- }
- }
- else {
- Log::record("update err line ={$i}",Log::ERR);
- }
- $i++;
- }
- fclose($file);
- Log::record(__METHOD__ . " end",Log::DEBUG);
- }
- //去掉order bonus_rate
- public function remove_order_bonusrateOp()
- {
- $mod_order = Model('order');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_order->table('order')->field('*')->order('order_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- $order_id = intval($item['order_id']);
- $pd_amount = intval($item['pd_amount'] * 100 + 0.5);
- $bonus_rate = unserialize($item['bonus_rate']);
- $bonus_amount = unserialize($item['bonus_amount']);
- if($bonus_amount != false) continue;
- $data = [];
- if($bonus_rate != false)
- {
- $amount = 0;
- foreach ($bonus_rate as $rate => $money) {
- $amount += $money;
- }
- $data['bonus_amount'] = serialize(['user_bonus' => $amount]);
- }
- elseif($pd_amount > 0) {
- $data['bonus_amount'] = serialize(['user_bonus' => $pd_amount / 100]);
- }
- else {
- }
- $data['bonus_rate'] = '';
- $data['pd_amount'] = 0.00;
- $mod_order->editOrder($data,['order_id' => $order_id]);
- }
- }
- }
- public function stat_behaviorOp()
- {
- stat_helper::onDaiyBehavior(strtotime('2018-10-1'));
- stat_helper::onDaiyBehavior(strtotime('2018-10-2'));
- stat_helper::onDaiyBehavior(strtotime('2018-10-3'));
- stat_helper::onDaiyBehavior(strtotime('2018-10-4'));
- stat_helper::onDaiyBehavior(strtotime('2018-10-5'));
- stat_helper::onDaiyBehavior(strtotime('2018-10-6'));
- stat_helper::onDaiyBehavior(strtotime('2018-10-7'));
- }
- public function init_order_sumOp()
- {
- $mod_member = Model('member');
- $i = 0;
- while (true)
- {
- $start = $i * 1000;
- $items = $mod_member->field('*')->order('member_id asc')->limit("{$start},1000")->select();
- if(empty($items)) {
- return;
- }
- $i++;
- foreach ($items as $item)
- {
- $member_id = intval($item['member_id']);
- $this->update_orders($member_id);
- }
- }
- }
- private function update_orders($buyer_id)
- {
- $mod_order = Model('order');
- $items = $mod_order->table('order')->field('order_id')->where(['buyer_id' => $buyer_id,'order_state' => ORDER_STATE_SUCCESS])->order('order_id asc')->select();
- $sort_num = 1;
- foreach ($items as $order) {
- $order_id = intval($order['order_id']);
- $mod_order->editOrder(['order_num' => $sort_num],['order_id' => $order_id]);
- $sort_num++;
- }
- }
- public function update_pvOp()
- {
- $from = 1496592000;
- $now = strtotime(date('Y-m-d',time()));
- while ($from <= $now)
- {
- $this->update_daily_pv($from);
- $from += 86400;
- }
- }
- private function update_daily_pv($timestep){
- $mod_stat = Model('stat_daily');
- $info = $mod_stat->table('stat_daily')->field('call_record')->where(['date_id' => $timestep])->find();
- if(empty($info) || empty($info['call_record'])){
- return false;
- } else {
- $call_record = json_decode($info['call_record'],true);
- $sum = intval($call_record['ios_count']) + intval($call_record['android_count']) + intval($call_record['android_count']);
- if($sum > 0) {
- $mod_stat->table('stat_daily')->where(["date_id" => $timestep])->update(["pv" => $sum]);
- }
- }
- }
- }
|