'datetime:Y-m-d H:i:s' ]; protected $fillable = [ 'uniacid', 'uid', 'goods_id', 'order_id', 'order_goods_id', 'change_type', 'change_quantity', 'change_front', 'change_after', 'remark', 'created_at', 'source' ]; /** * Common: 贡献值变更记录 * Author: wu-hui * Time: 2023/11/03 9:39 * @param $search * @param string[] $field * @return array */ public function getList($search,$field = ['*']){ // 条件生成 $where = []; if($search['uid'] > 0) $where[] = ['uid','=',$search['uid']]; if($search['change_type'] >= 0 && $search['change_type'] != '') $where[] = ['change_type','=',$search['change_type']]; // 列表获取 $list = self::uniacid() ->select($field) ->where($where) ->with([ 'member' => function($query){ $query->select(['uid','nickname','realname','avatar']); } ]) ->orderBy('created_at','DESC') ->orderBy('id','DESC') ->paginate(10); return $list ? $list->toArray() : []; } /** * Common: 根据截至时间 获取全部用户持有的贡献值 * Author: wu-hui * Time: 2023/11/03 14:13 * @param $endTime * @return array|false|null */ public static function getAllList($endTime){ $idList = self::uniacid() ->select([DB::raw('max(id) as max_id')]) ->where('created_at','<=',$endTime) ->groupBy('uid') ->get() ->toArray(); $ids = array_column($idList,'max_id'); $list = self::uniacid() ->select(['uid','change_after']) ->whereIn('id',$ids) ->get() ->toArray(); return array_column($list,'change_after','uid'); } /** * Common: 一对一关联 用户信息 * Author: wu-hui * Time: 2023/11/03 9:35 * @return \Illuminate\Database\Eloquent\Relations\HasOne */ public function member(){ return $this->hasOne(Member::class,'uid','uid'); } }