field($field) ->order($order) ->paginate(['list_rows' => $pageSize, 'query' => request()->param()]); $page = $list->render(); $data['list'] = $list->toArray()['data']; $data['count'] = $list->total(); $data['last_page'] = $list->toArray()['last_page']; $data['page'] = $page; return $data; } /** * 插入方法 * @param string $date 日期 (格式: YYYY-MM-DD) * @param int $expense_type 支出类型,1 推广 ,2活动,3 发货 * @param float $amount 金额 * @param string $description 备注 * @return bool|int 插入成功返回主键ID,失败返回false */ public static function insertDatas($date, $expense_type, $amount, $description = '') { $data = [ 'profit_date' => $date, 'amount' => $amount, 'expense_type' => $expense_type, 'description' => $description, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]; return self::insertGetId($data); } /** * 查询当天总金额 * @param string $date 查询日期 (格式: YYYY-MM-DD) * @param string|null $startDate 开始日期 (可选) * @param string|null $endDate 结束日期 (可选) * @return float 返回总金额 */ public static function getTotalAmountByDate($date, $startDate = null, $endDate = null) { $query = self::where('profit_date', $date); if ($startDate && $endDate) { $query->whereBetween('profit_date', [$startDate, $endDate]); } return $query->sum('amount'); } public static function getTotalAmountByDates($startDate, $endDate) { $query = self::whereBetween('profit_date', [$startDate, $endDate]); return $query->sum('amount'); } /** * 查询每天的总金额,按日期分组排序 * @return array 返回每天的总金额,按日期分组 */ public static function getDailyTotalAmount() { return self::field('profit_date, SUM(amount) as total_amount') ->group('profit_date') ->order('profit_date', 'asc') ->select() ->toArray(); } /** * 删除方法 * @param int $id 记录ID * @return bool 删除成功返回true,失败返回false */ public static function deleteData($id) { return self::where('id', $id)->delete(); } /** * 修改方法 * @param int $id 记录ID * @param float $amount 修改后的金额 * @param string $description 修改后的备注 * @return bool 修改成功返回true,失败返回false */ public static function updateDatas($id, $amount, $description = '') { $data = [ 'amount' => $amount, 'description' => $description, 'updated_at' => date('Y-m-d H:i:s'), ]; return self::where('id', $id)->update($data); } }