load->model('receiver/receiver_score_log_model'); $this->load->model('receiver/receiver_score_config_model'); $this->load->model('app/licheb/app_licheb_users_model'); $this->load->library('receiver/score_entity'); $this->load->model('receiver/receiver_score_day_model'); } public function index() { $biz_id = $this->input->get('biz_id'); $uid = $this->input->get('uid'); $getPage = $this->input->get('page'); $redis = &load_cache('redis'); $pageCacheKey = "RECEIVER_SCORE_PLAN_PAGE"; if ($getPage) { $page = $getPage; } else { $page = $redis->get($pageCacheKey) ?: 1; } $size = 100; $groups_string = implode(',', [App_licheb_users_model::GROUP_BIZ, App_licheb_users_model::GROUP_MANAGER]); $where = [ "group_id in ({$groups_string})" => null, 'status' => 1 ]; $biz_id && $where['biz_id'] = $biz_id; $uid && $where['id'] = $uid; $rows = $this->app_licheb_users_model->select($where, "id desc", $page, $size, 'id, uname, biz_id'); if ($rows) { $day = date('Y-m-d', strtotime("-1 day")); foreach ($rows as $item) { $result = Score_entity::init($day, $item['id'], $item['group_id'], $item['biz_id']); } } else { $msg = '执行完成'; echo $msg; debug_log("[info]# " . $msg, __FUNCTION__, $this->log_dir); } } //每日统计 public function scoreDay() { $day = date('Y-m-d', strtotime("-1 day")); $scoreLogModel = new Receiver_score_log_model(); $receiverScoreDayModel = new Receiver_score_day_model(); $redis = &load_cache('redis'); $page = 1; $size = 100; $where = [ 'day' => $day, ]; $rows = $scoreLogModel->select($where, "id desc", $page, $size, 'DISTINCT biz_id,uid,day'); if ($rows) { foreach ($rows as $item) { $where = [ 'biz_id' => $item['biz_id'], 'uid' => $item['uid'], 'day' => $day, 'type' => Receiver_score_day_model::TYPE_USER ]; $scoreDayRow = $receiverScoreDayModel->get($where); $scoreSum = $scoreLogModel->sum('score', ['uid' => $item['uid'], 'day' => $day]); $score = $scoreSum ? $scoreSum['score'] : 0; //获取上一天数据 $where = [ 'biz_id' => $item['biz_id'], 'uid' => $item['uid'], 'day<' => $day, 'type' => Receiver_score_day_model::TYPE_USER ]; $dayRow = $receiverScoreDayModel->select($where, 'day desc', 1, 1, 'score'); $change_score = $dayRow[0]['score'] ? $score - $dayRow[0]['score'] : $score; if ($scoreDayRow) { $receiverScoreDayModel->update(['score' => $score, 'change_score' => $change_score], ['id' => $scoreDayRow['id']]); } else { $addData = [ 'biz_id' => $item['biz_id'], 'uid' => $item['uid'], 'score' => $score, 'day' => $day, 'type' => Receiver_score_day_model::TYPE_USER, 'change_score' => $change_score, 'c_time' => time() ]; $receiverScoreDayModel->add($addData); } } } else { //合并门店数据 $this->scoreBizDay($day); } } public function scoreBizDay($day) { $receiverScoreDayModel = new Receiver_score_day_model(); $redis = &load_cache('redis'); $page = 1; $size = 100; $where = [ 'day' => $day, 'type' => Receiver_score_day_model::TYPE_USER ]; $rows = $receiverScoreDayModel->select($where, "id desc", $page, $size, 'DISTINCT biz_id,day'); if ($rows) { foreach ($rows as $item) { $where = [ 'biz_id' => $item['biz_id'], 'day' => $day, 'type' => Receiver_score_day_model::TYPE_BIZ ]; $scoreDayRow = $receiverScoreDayModel->get($where); $scoreSum = $receiverScoreDayModel->sum('score', ['biz_id' => $item['biz_id'], 'day' => $day]); $score = $scoreSum ? $scoreSum['score'] : 0; //获取上一天数据 $where = [ 'biz_id' => $item['biz_id'], 'day<' => $day, 'type' => Receiver_score_day_model::TYPE_BIZ ]; $dayRow = $receiverScoreDayModel->select($where, 'day desc', 1, 1, 'score'); $change_score = $dayRow[0]['score'] ? $score - $dayRow[0]['score'] : $score; if ($scoreDayRow) { $receiverScoreDayModel->update(['score' => $score, 'change_score' => $change_score], ['id' => $scoreDayRow['id']]); } else { $addData = [ 'biz_id' => $item['biz_id'], 'uid' => $item['uid'], 'score' => $score, 'day' => $day, 'type' => Receiver_score_day_model::TYPE_USER, 'change_score' => $change_score, 'c_time' => time() ]; $receiverScoreDayModel->add($addData); } } } } }