order('add_time desc')->where('number', '<>', 0); $model = $model->where('category', $where['category']); if ($where['category'] == 'now_money') { if ($where['is_extract']) { $model = $model->where('type', 'in', ['extract', 'extract_fail']); } else { $model = $model->where('type', 'in', ['user_refund', 'user_pay', 'gold_extract']); } } else { $model = $model->where('type', 'in', ['extract', 'gold_turn_balance']); } $model = $model->field('FROM_UNIXTIME(add_time,"%Y-%m") as time,group_concat(id SEPARATOR ",") ids') ->group('time'); $model = $model->page((int)$where['page'], (int)$where['limit']); $list = ($list = $model->select()) ? $list->toArray() : []; $data = []; foreach ($list as $item) { $value['time'] = $item['time']; $value['list'] = self::where('id', 'in', $item['ids'])->field('FROM_UNIXTIME(add_time,"%Y-%m-%d %H:%i") as add_time,mer_id,title,pm,number,mark')->order('add_time DESC')->select(); array_push($data, $value); } $page = $where['page'] + 1; return compact('data', 'page'); } /**获取讲师金币收益 * @param $mer_id */ public static function userMerGoldPrice($mer_id) { return self::where(['mer_id' => $mer_id, 'category' => 'gold_num'])->where('type', 'in', ['extract'])->value('SUM(number)') ?: 0; } }