Compare commits
6 Commits
f08ae4e411
...
b9ea4698c9
| Author | SHA1 | Date |
|---|---|---|
|
|
b9ea4698c9 | |
|
|
655c9ba04f | |
|
|
faf5e36069 | |
|
|
ed817193c0 | |
|
|
a1023e1e99 | |
|
|
16682ca3c3 |
|
|
@ -10,6 +10,8 @@ use App\Http\Resources\AdminUserResource;
|
|||
use App\Models\AdminUser;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Services\OperationLogService;
|
||||
use App\Enums\OperationType;
|
||||
|
||||
class AdminUserController extends Controller
|
||||
{
|
||||
|
|
@ -44,6 +46,7 @@ class AdminUserController extends Controller
|
|||
|
||||
return $this->error('添加失败,请稍后再试');
|
||||
}
|
||||
(new OperationLogService())->inLog(OperationType::Create, '', $user, $request->input());
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
|
@ -76,6 +79,7 @@ class AdminUserController extends Controller
|
|||
|
||||
return $this->error('修改失败,请稍后再试');
|
||||
}
|
||||
(new OperationLogService())->inLog(OperationType::Update, '', $adminUser, $request->input());
|
||||
|
||||
return $this->success('修改成功!');
|
||||
}
|
||||
|
|
@ -97,6 +101,7 @@ class AdminUserController extends Controller
|
|||
|
||||
return $this->error('删除失败,请稍后再试');
|
||||
}
|
||||
(new OperationLogService())->inLog(OperationType::Delete, '', $adminUser);
|
||||
|
||||
return $this->success('删除成功!');
|
||||
}
|
||||
|
|
@ -116,6 +121,10 @@ class AdminUserController extends Controller
|
|||
'is_enable' => (int) ! $adminUser->is_enable,
|
||||
]);
|
||||
|
||||
$statusMsg = $adminUser->is_enable ? '禁用':'启用';
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Update, $statusMsg.'-用户【'.$adminUser->name.'】');
|
||||
|
||||
return $this->success('操作成功!');
|
||||
}
|
||||
|
||||
|
|
@ -128,6 +137,9 @@ class AdminUserController extends Controller
|
|||
'password' => bcrypt($request->input('password')),
|
||||
]);
|
||||
|
||||
$statusMsg = '修改密码';
|
||||
(new OperationLogService())->inLog(OperationType::Update, $statusMsg.'-用户【'.$adminUser->name.'】');
|
||||
|
||||
return $this->success('修改成功!');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ use App\Models\AgriculturalBase;
|
|||
use App\Models\Device;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Services\OperationLogService;
|
||||
use App\Enums\OperationType;
|
||||
|
||||
class AgriculturalBaseController extends Controller
|
||||
{
|
||||
|
|
@ -51,6 +53,7 @@ class AgriculturalBaseController extends Controller
|
|||
|
||||
return $this->error('添加失败,请稍后再试');
|
||||
}
|
||||
(new OperationLogService())->inLog(OperationType::Create, '', $base, $request->input());
|
||||
|
||||
return $this->success('添加成功!');
|
||||
}
|
||||
|
|
@ -83,6 +86,8 @@ class AgriculturalBaseController extends Controller
|
|||
return $this->error('修改失败,请稍后再试');
|
||||
}
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Update, '', $agriculturalBasic, $request->input());
|
||||
|
||||
return $this->success('修改成功!');
|
||||
}
|
||||
|
||||
|
|
@ -100,6 +105,8 @@ class AgriculturalBaseController extends Controller
|
|||
return $this->error('删除失败,请稍后再试');
|
||||
}
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Delete, '', $agriculturalBasic);
|
||||
|
||||
return $this->success('删除成功!');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ namespace App\Http\Controllers;
|
|||
|
||||
use Peidikeji\Setting\Models\Setting;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\OperationLogService;
|
||||
use App\Enums\OperationType;
|
||||
|
||||
class CityDataController extends Controller
|
||||
{
|
||||
|
|
@ -35,7 +37,9 @@ class CityDataController extends Controller
|
|||
Setting::where('slug', $key)->update(['value->value'=>$value]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Update, '修改-全市基础数据统计', null, $input);
|
||||
|
||||
return $this->success();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ use App\Http\Resources\CropResource;
|
|||
use App\Models\Crop;
|
||||
use App\Models\CropYield;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\OperationLogService;
|
||||
use App\Enums\OperationType;
|
||||
|
||||
class CropController extends Controller
|
||||
{
|
||||
|
|
@ -26,7 +28,9 @@ class CropController extends Controller
|
|||
$parent = Crop::findOrFail($input['parent_id']);
|
||||
$input['path'] = ($parent?->path ?? '').$parent?->id.'-';
|
||||
}
|
||||
Crop::create($input);
|
||||
$crop = Crop::create($input);
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Create, '', $crop, $request->input());
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
|
@ -57,6 +61,8 @@ class CropController extends Controller
|
|||
|
||||
$crop->update(array_merge($request->input(), $input));
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Update, '', $crop, $request->input());
|
||||
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
|
||||
|
|
@ -73,6 +79,8 @@ class CropController extends Controller
|
|||
|
||||
$crop->delete();
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Delete, '', $crop);
|
||||
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ use App\Models\CropYield;
|
|||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Peidikeji\Keywords\Models\Keywords;
|
||||
use App\Services\OperationLogService;
|
||||
use App\Enums\OperationType;
|
||||
|
||||
class CropYieldController extends Controller
|
||||
{
|
||||
|
|
@ -42,12 +44,14 @@ class CropYieldController extends Controller
|
|||
|
||||
$crop = Crop::find($cropId);
|
||||
|
||||
CropYield::create(array_merge($request->input(), [
|
||||
$cropYield = CropYield::create(array_merge($request->input(), [
|
||||
'category_id' => $crop->category_id ?? 0,
|
||||
'created_by' => auth('api')->user()?->id ?? 0,
|
||||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||||
]));
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Create, '', $cropYield, $request->input());
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
|
|
@ -80,6 +84,8 @@ class CropYieldController extends Controller
|
|||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||||
]));
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Update, '', $cropYield, $request->input());
|
||||
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
|
||||
|
|
@ -87,6 +93,8 @@ class CropYieldController extends Controller
|
|||
{
|
||||
$cropYield->delete();
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Delete, '', $cropYield);
|
||||
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,6 +18,8 @@ use App\Models\AgriculturalBase;
|
|||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Carbon\Carbon;
|
||||
use App\Services\OperationLogService;
|
||||
use App\Enums\OperationType;
|
||||
|
||||
class DeviceController extends Controller
|
||||
{
|
||||
|
|
@ -36,11 +38,13 @@ class DeviceController extends Controller
|
|||
if ($input['type'] != DeviceType::Monitor->value) {
|
||||
unset($input['extends']);
|
||||
}
|
||||
Device::create(array_merge($input, [
|
||||
$device = Device::create(array_merge($input, [
|
||||
'created_by' => auth('api')->user()?->id ?? 0,
|
||||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||||
]));
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Create, '', $device, $request->input());
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
|
|
@ -60,6 +64,8 @@ class DeviceController extends Controller
|
|||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||||
]));
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Update, '', $device, $request->input());
|
||||
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
|
||||
|
|
@ -67,6 +73,8 @@ class DeviceController extends Controller
|
|||
{
|
||||
$device->delete();
|
||||
|
||||
(new OperationLogService())->inLog(OperationType::Delete, '', $device);
|
||||
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Helpers\Paginator;
|
||||
use App\Models\OperationLog;
|
||||
use App\Http\Resources\OperationLogResource;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class OperationLogController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = OperationLog::filter($request->all())->orderBy('created_at', 'desc');
|
||||
|
||||
$list = $query->paginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||
|
||||
return $this->json(OperationLogResource::collection($list));
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class OperationLogResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'user_name' => $this->user_name,
|
||||
'type' => $this->type,
|
||||
'message' => $this->message,
|
||||
'input_data' => $this->input_data,
|
||||
'created_at' => strtotime($this->created_at) ?? 0, //录入时间
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class OperationLogFilter extends ModelFilter
|
||||
{
|
||||
public function type($type){
|
||||
return $this->where('type', $type);
|
||||
}
|
||||
|
||||
public function user($user){
|
||||
return $this->where('user_id', $user);
|
||||
}
|
||||
}
|
||||
|
|
@ -5,10 +5,11 @@ namespace App\Models;
|
|||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Enums\OperationType;
|
||||
use EloquentFilter\Filterable;
|
||||
|
||||
class OperationLog extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use HasFactory, Filterable;
|
||||
|
||||
protected $casts = [
|
||||
'type' => OperationType::class,
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ class OperationLogService
|
|||
public function inLog(OperationType $type, ? String $message = '',? Model $model = null, ? Array $parms = null){
|
||||
$user = auth('api')->user();
|
||||
if(!$message){//如果没传message
|
||||
$message = (OperationType::types()[$type->value] ?? '') . __("models.".($model ? $model::class : "")). '【'.($model?->name ?? ($model?->id ?? 0)) .'】';
|
||||
$message = (OperationType::types()[$type->value] ?? '') .'-'. __("models.".($model ? $model::class : "")). '【'.($model?->name ?? ($model?->id ?? 0)) .'】';
|
||||
}
|
||||
$data = [
|
||||
'user_id' => $user?->id ?? 0,
|
||||
|
|
|
|||
|
|
@ -59,6 +59,9 @@ Route::group(['middleware' => 'auth:sanctum'], function () {
|
|||
//友情链接
|
||||
Route::apiResource('friend-links', FriendLinkController::class)->only(['index'])->names('friend_links');
|
||||
|
||||
//操作日志
|
||||
Route::apiResource('operation-logs', OperationLogController::class)->only(['index'])->names('operation_logs');
|
||||
|
||||
/**统计 **/
|
||||
Route::get('crop-yield-quarter-statics', [CropYieldController::class, 'quarterStaticsChart']); //季度统计
|
||||
Route::get('crop-yield-category-statics', [CropYieldController::class, 'categoryStaticsChart']); //行业统计产值
|
||||
|
|
|
|||
Loading…
Reference in New Issue