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]); } } } }