修复编码格式
parent
7a0b6e3b17
commit
1032ab2633
|
|
@ -2,22 +2,22 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Helpers\Paginator;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\AdminPermission;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class AdminPermissionController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$permissions = (new AdminPermission())->toTree(AdminPermission::endPoint()->get());
|
||||
|
||||
return $this->json($this->formatPermissionsTreeToArray($permissions));
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化树
|
||||
*
|
||||
* @param array $permissions
|
||||
* @param array $permissions
|
||||
* @return void
|
||||
*/
|
||||
protected function formatPermissionsTreeToArray(array $permissions)
|
||||
|
|
@ -25,11 +25,12 @@ class AdminPermissionController extends Controller
|
|||
$res = [];
|
||||
foreach ($permissions as $permission) {
|
||||
$res[] = [
|
||||
'id' => $permission->id,
|
||||
'label' => $permission->name,
|
||||
'children' => $this->formatPermissionsTreeToArray($permission->children ?? []),
|
||||
'id' => $permission->id,
|
||||
'label' => $permission->name,
|
||||
'children' => $this->formatPermissionsTreeToArray($permission->children ?? []),
|
||||
];
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\AdminRole;
|
||||
use App\Helpers\Paginator;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Http\Requestes\AdminRoleRequest;
|
||||
use App\Http\Resources\AdminRoleResource;
|
||||
use App\Models\AdminRole;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AdminRoleController extends Controller
|
||||
{
|
||||
|
|
@ -15,6 +15,7 @@ class AdminRoleController extends Controller
|
|||
{
|
||||
$query = AdminRole::filter($request->input())->where('id', '>', '1');
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||
|
||||
return $this->json(AdminRoleResource::collection($list));
|
||||
}
|
||||
|
||||
|
|
@ -22,26 +23,30 @@ class AdminRoleController extends Controller
|
|||
{
|
||||
$permissionIds = $request->input('permission_ids', []);
|
||||
//验证slug唯一
|
||||
if(AdminRole::where('slug', $request->input('slug'))->exists()){
|
||||
if (AdminRole::where('slug', $request->input('slug'))->exists()) {
|
||||
return $this->error('该角色编码已存在');
|
||||
}
|
||||
try{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
//添加角色信息
|
||||
$role = AdminRole::create($request->input());
|
||||
//添加角色权限
|
||||
$role->permissions()->sync($permissionIds);
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('添加失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
public function show(AdminRole $adminRole){
|
||||
public function show(AdminRole $adminRole)
|
||||
{
|
||||
$adminRole->load('permissions');
|
||||
|
||||
return $this->json(AdminRoleResource::make($adminRole));
|
||||
}
|
||||
|
||||
|
|
@ -49,35 +54,40 @@ class AdminRoleController extends Controller
|
|||
{
|
||||
$permissionIds = $request->input('permission_ids', []);
|
||||
//验证slug唯一
|
||||
if(AdminRole::where('slug', $request->input('slug'))->where('id', '<>', $adminRole->id)->exists()){
|
||||
if (AdminRole::where('slug', $request->input('slug'))->where('id', '<>', $adminRole->id)->exists()) {
|
||||
return $this->error('该角色编码已存在');
|
||||
}
|
||||
try{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
//添加角色信息
|
||||
$adminRole->update($request->input());
|
||||
//添加角色权限
|
||||
$adminRole->permissions()->sync($permissionIds);
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('添加失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
public function destroy(AdminRole $adminRole){
|
||||
try{
|
||||
public function destroy(AdminRole $adminRole)
|
||||
{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
$adminRole->permissions()->sync([]);
|
||||
$adminRole->delete();
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('删除失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('删除成功!');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,31 +2,32 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\AdminUser;
|
||||
use App\Helpers\Paginator;
|
||||
use App\Http\Requestes\AdminUserRequest;
|
||||
use App\Http\Requestes\AdminUserUpdateRequest;
|
||||
use App\Http\Requestes\RestPasswordRequest;
|
||||
use App\Http\Resources\AdminUserResource;
|
||||
use App\Models\AdminUser;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Http\Requestes\AdminUserRequest;
|
||||
use App\Http\Resources\AdminUserResource;
|
||||
use App\Http\Requestes\RestPasswordRequest;
|
||||
use App\Http\Requestes\AdminUserUpdateRequest;
|
||||
|
||||
class AdminUserController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = AdminUser::filter($request->all())->where('id', '>', 1);
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50)) ;
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||
|
||||
return $this->json(AdminUserResource::collection($list));
|
||||
}
|
||||
|
||||
public function store(AdminUserRequest $request)
|
||||
{
|
||||
$baseIds = $request->input('base_ids', []);
|
||||
if(AdminUser::where('username', $request->input('username'))->exists()){
|
||||
if (AdminUser::where('username', $request->input('username'))->exists()) {
|
||||
return $this->error('该登录名已存在');
|
||||
}
|
||||
try{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
//添加管理员信息
|
||||
$input = $request->input();
|
||||
|
|
@ -37,25 +38,28 @@ class AdminUserController extends Controller
|
|||
//添加管理员角色关联;
|
||||
$user->roles()->sync($request->input('role_id'));
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('添加失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
public function show(AdminUser $adminUser){
|
||||
public function show(AdminUser $adminUser)
|
||||
{
|
||||
return $this->json(AdminUserResource::make($adminUser));
|
||||
}
|
||||
|
||||
public function update(AdminUser $adminUser, AdminUserUpdateRequest $request)
|
||||
{
|
||||
$baseIds = $request->input('base_ids', []);
|
||||
if(AdminUser::where('username', $request->input('username'))->where('id', '<>', $adminUser->id)->exists()){
|
||||
if (AdminUser::where('username', $request->input('username'))->where('id', '<>', $adminUser->id)->exists()) {
|
||||
return $this->error('该登录名已存在');
|
||||
}
|
||||
try{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
//添加管理员信息
|
||||
$adminUser->update($request->input());
|
||||
|
|
@ -64,56 +68,64 @@ class AdminUserController extends Controller
|
|||
//添加管理员角色关联;
|
||||
$adminUser->roles()->sync($request->input('role_id'));
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('修改失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('修改成功!');
|
||||
}
|
||||
|
||||
public function destroy(AdminUser $adminUser){
|
||||
if($adminUser->id == 1){
|
||||
public function destroy(AdminUser $adminUser)
|
||||
{
|
||||
if ($adminUser->id == 1) {
|
||||
return $this->error('删除失败,请稍后再试');
|
||||
}
|
||||
try{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
$adminUser->crops()->sync([]);
|
||||
$adminUser->roles()->sync([]);
|
||||
$adminUser->delete();
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('删除失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('删除成功!');
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用/禁用
|
||||
*
|
||||
* @param AdminUser $adminUser
|
||||
* @param AdminUser $adminUser
|
||||
* @return void
|
||||
*/
|
||||
public function endable(AdminUser $adminUser){
|
||||
if($adminUser->id == 1){
|
||||
public function endable(AdminUser $adminUser)
|
||||
{
|
||||
if ($adminUser->id == 1) {
|
||||
return $this->error('操作失败,请稍后再试');
|
||||
}
|
||||
$adminUser->update([
|
||||
'is_enable' => (int) !$adminUser->is_enable
|
||||
'is_enable' => (int) ! $adminUser->is_enable,
|
||||
]);
|
||||
|
||||
return $this->success('操作成功!');
|
||||
}
|
||||
|
||||
public function editPassword(AdminUser $adminUser, RestPasswordRequest $request){
|
||||
if($adminUser->id == 1){
|
||||
public function editPassword(AdminUser $adminUser, RestPasswordRequest $request)
|
||||
{
|
||||
if ($adminUser->id == 1) {
|
||||
return $this->error('操作失败,请稍后再试');
|
||||
}
|
||||
$adminUser->update([
|
||||
'password' => bcrypt($request->input('password'))
|
||||
'password' => bcrypt($request->input('password')),
|
||||
]);
|
||||
|
||||
return $this->success('修改成功!');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,75 +3,87 @@
|
|||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Helpers\Paginator;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\AgriculturalBase;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use App\Http\Requestes\AgriculturalBaseRequest;
|
||||
use App\Http\Resources\AgriculturalBaseResource;
|
||||
use App\Models\AgriculturalBase;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class AgriculturalBaseController extends Controller
|
||||
{
|
||||
/**
|
||||
* 基地数据列表
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function index(Request $request){
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = AgriculturalBase::with('crops')->filter($request->all())->sort();
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50)) ;
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||
|
||||
return AgriculturalBaseResource::collection($list);
|
||||
}
|
||||
|
||||
public function store(AgriculturalBaseRequest $request){
|
||||
public function store(AgriculturalBaseRequest $request)
|
||||
{
|
||||
$cropsIds = $request->input('crops_ids', []);
|
||||
try{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
//添加基地信息
|
||||
$base = AgriculturalBase::create($request->input());
|
||||
//添加基地农作物
|
||||
$base->crops()->sync($cropsIds);
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('添加失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('添加成功!');
|
||||
}
|
||||
|
||||
public function show(AgriculturalBase $agriculturalBasic){
|
||||
public function show(AgriculturalBase $agriculturalBasic)
|
||||
{
|
||||
return $this->json(AgriculturalBaseResource::make($agriculturalBasic));
|
||||
}
|
||||
|
||||
public function update(AgriculturalBase $agriculturalBasic, AgriculturalBaseRequest $request){
|
||||
public function update(AgriculturalBase $agriculturalBasic, AgriculturalBaseRequest $request)
|
||||
{
|
||||
$cropsIds = $request->input('crops_ids', []);
|
||||
try{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
//添加基地信息
|
||||
$agriculturalBasic->update($request->input());
|
||||
//添加基地农作物
|
||||
$agriculturalBasic->crops()->sync($cropsIds);
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('修改失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('修改成功!');
|
||||
}
|
||||
|
||||
public function destroy(AgriculturalBase $agriculturalBasic){
|
||||
try{
|
||||
public function destroy(AgriculturalBase $agriculturalBasic)
|
||||
{
|
||||
try {
|
||||
DB::beginTransaction();
|
||||
$agriculturalBasic->crops()->sync([]);
|
||||
$agriculturalBasic->delete();
|
||||
DB::commit();
|
||||
}catch(\Throwable $th){
|
||||
} catch(\Throwable $th) {
|
||||
DB::rollBack();
|
||||
report($th);
|
||||
|
||||
return $this->error('删除失败,请稍后再试');
|
||||
}
|
||||
|
||||
return $this->success('删除成功!');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ class AuthController extends Controller
|
|||
return $this->error('用户名或密码错误');
|
||||
}
|
||||
|
||||
if($user->is_enable !== 1){
|
||||
if ($user->is_enable !== 1) {
|
||||
return $this->error('用户状态异常请联系管理员');
|
||||
}
|
||||
|
||||
|
|
@ -33,6 +33,7 @@ class AuthController extends Controller
|
|||
protected function attemptUser(AdminUser $user, $name = 'api')
|
||||
{
|
||||
$token = $user->createToken($name)->plainTextToken;
|
||||
|
||||
return $this->json(['token' => $token, 'info' => $user, 'permissions' => $user->permissionIds()]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,21 +2,22 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\CropFlow;
|
||||
use App\Helpers\Paginator;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requestes\CropFlowRequest;
|
||||
use App\Http\Resources\CropFlowResource;
|
||||
use App\Http\Requestes\CropFlowUpdateRequest;
|
||||
use App\Http\Resources\CropFlowResource;
|
||||
use App\Models\CropFlow;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CropFlowController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = CropFlow::filter($request->input());
|
||||
$totalNum = $query->sum('sale');//总产量
|
||||
$totalNum = $query->sum('sale'); //总产量
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||
$list->load(['createdBy']);
|
||||
|
||||
return $this->json([
|
||||
'total' => $totalNum,
|
||||
'list' => CropFlowResource::collection($list),
|
||||
|
|
@ -26,7 +27,7 @@ class CropFlowController extends Controller
|
|||
public function store(CropFlowRequest $request)
|
||||
{
|
||||
$flows = $request->input('flows');
|
||||
CropFlow::insert(array_map(function($item) use ($request){
|
||||
CropFlow::insert(array_map(function ($item) use ($request) {
|
||||
return array_merge($item, [
|
||||
'time_year' => $request->input('time_year'),
|
||||
'crop_id' => $request->input('crop_id'),
|
||||
|
|
@ -36,26 +37,30 @@ class CropFlowController extends Controller
|
|||
'updated_at' => now(),
|
||||
]);
|
||||
}, $flows));
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
public function show(CropFlow $cropFlow)
|
||||
{
|
||||
$cropFlow->load(['crop', 'user']);
|
||||
|
||||
return $this->json(CropFlowResource::make($cropFlow));
|
||||
}
|
||||
|
||||
public function update(CropFlow $cropFlow, CropFlowUpdateRequest $request)
|
||||
{
|
||||
$cropFlow->update(array_merge($request->input(),
|
||||
['updated_by'=>auth('api')->user()?->id ?? 0,]
|
||||
['updated_by' => auth('api')->user()?->id ?? 0]
|
||||
));
|
||||
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
|
||||
public function destroy(CropFlow $cropFlow)
|
||||
{
|
||||
$cropFlow->delete();
|
||||
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\CropStructure;
|
||||
use App\Http\Requestes\CropStructureRequest;
|
||||
use App\Http\Resources\CropStructureResource;
|
||||
use App\Http\Requestes\CropStructureUpdateRequest;
|
||||
use App\Http\Resources\CropStructureResource;
|
||||
use App\Models\CropStructure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CropStructureController extends Controller
|
||||
{
|
||||
|
|
@ -14,24 +14,25 @@ class CropStructureController extends Controller
|
|||
{
|
||||
$list = CropStructure::with('cropsCate')->filter($request->input())->get();
|
||||
$totalOutput = $list->sum('crops_output');
|
||||
|
||||
return $this->json([
|
||||
'totalOutput' => $totalOutput,
|
||||
'list' => array_map(function($item) use ($totalOutput){
|
||||
'list' => array_map(function ($item) use ($totalOutput) {
|
||||
return [
|
||||
'id'=> $item['id'],
|
||||
'id' => $item['id'],
|
||||
'cate_name' => $item['crops_cate']['name'] ?? '',
|
||||
'cate_rate' => $totalOutput ? bcdiv($item['crops_output'],$totalOutput, 4) * 100 : 0,
|
||||
'cate_rate' => $totalOutput ? bcdiv($item['crops_output'], $totalOutput, 4) * 100 : 0,
|
||||
'year' => $item['time_year'],
|
||||
'crops_output' => number_format($item['crops_output']),
|
||||
];
|
||||
}, $list->toArray())
|
||||
}, $list->toArray()),
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(CropStructureRequest $request)
|
||||
{
|
||||
$structures = $request->input('structures');
|
||||
CropStructure::insert(array_map(function($item) use ($request){
|
||||
CropStructure::insert(array_map(function ($item) use ($request) {
|
||||
return array_merge($item, [
|
||||
'time_year' => $request->input('time_year'),
|
||||
'created_at' => now(),
|
||||
|
|
@ -42,8 +43,10 @@ class CropStructureController extends Controller
|
|||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
public function show(CropStructure $cropStructure){
|
||||
public function show(CropStructure $cropStructure)
|
||||
{
|
||||
$cropStructure->load('cropsCate');
|
||||
|
||||
return $this->json(CropStructureResource::make($cropStructure));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,31 +2,32 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\CropYield;
|
||||
use App\Helpers\Paginator;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requestes\CropYieldRequest;
|
||||
use App\Http\Resources\CropYieldResource;
|
||||
use App\Http\Requestes\CropYieldUpdateRequest;
|
||||
use App\Http\Resources\CropYieldResource;
|
||||
use App\Models\CropYield;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class CropYieldController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$query = CropYield::filter($request->all());
|
||||
$totalNum = $query->sum('yield');//总产量
|
||||
$totalNum = $query->sum('yield'); //总产量
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||
$list->load(['base', 'createdBy']);
|
||||
|
||||
return $this->json([
|
||||
'total' => $totalNum,
|
||||
'list' => CropYieldResource::collection($list)
|
||||
'list' => CropYieldResource::collection($list),
|
||||
]);
|
||||
}
|
||||
|
||||
public function store(CropYieldRequest $request)
|
||||
{
|
||||
$yields = $request->input('yields');
|
||||
CropYield::insert(array_map(function($item) use ($request){
|
||||
CropYield::insert(array_map(function ($item) use ($request) {
|
||||
return array_merge($item, [
|
||||
'time_year' => $request->input('time_year'),
|
||||
'crop_id' => $request->input('crop_id'),
|
||||
|
|
@ -36,26 +37,30 @@ class CropYieldController extends Controller
|
|||
'updated_at' => now(),
|
||||
]);
|
||||
}, $yields));
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
public function show(CropYield $cropYield)
|
||||
{
|
||||
$cropYield->load(['base', 'crop', 'createdBy']);
|
||||
|
||||
return $this->json(CropYieldResource::make($cropYield));
|
||||
}
|
||||
|
||||
public function update(CropYield $cropYield, CropYieldUpdateRequest $request)
|
||||
{
|
||||
$cropYield->update(array_merge($request->input(),
|
||||
['updated_by'=>auth('api')->user()?->id ?? 0,]
|
||||
['updated_by' => auth('api')->user()?->id ?? 0]
|
||||
));
|
||||
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
|
||||
public function destroy(CropYield $cropYield)
|
||||
{
|
||||
$cropYield->delete();
|
||||
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Device;
|
||||
use App\Enums\DeviceType;
|
||||
use App\Helpers\Paginator;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requestes\DeviceRequest;
|
||||
use App\Http\Resources\DeviceResource;
|
||||
use App\Models\Device;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class DeviceController extends Controller
|
||||
{
|
||||
|
|
@ -15,6 +15,7 @@ class DeviceController extends Controller
|
|||
{
|
||||
$query = Device::with('base')->filter($request->input());
|
||||
$list = $query->simplePaginate(Paginator::resolvePerPage('per_page', 20, 50));
|
||||
|
||||
return $this->json(DeviceResource::collection($list));
|
||||
}
|
||||
|
||||
|
|
@ -22,13 +23,14 @@ class DeviceController extends Controller
|
|||
{
|
||||
$input = $request->input();
|
||||
//如果不是监控设备,移除extends
|
||||
if($input['type'] != DeviceType::Monitor->value){
|
||||
if ($input['type'] != DeviceType::Monitor->value) {
|
||||
unset($input['extends']);
|
||||
}
|
||||
Device::create(array_merge($input, [
|
||||
'created_by' => auth('api')->user()?->id ?? 0,
|
||||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||||
]));
|
||||
|
||||
return $this->success('添加成功');
|
||||
}
|
||||
|
||||
|
|
@ -41,22 +43,25 @@ class DeviceController extends Controller
|
|||
{
|
||||
$input = $request->input();
|
||||
//如果不是监控设备,移除extends
|
||||
if($input['type'] != DeviceType::Monitor->value){
|
||||
if ($input['type'] != DeviceType::Monitor->value) {
|
||||
$input['extends'] = null;
|
||||
}
|
||||
$device->update(array_merge($input, [
|
||||
'updated_by' => auth('api')->user()?->id ?? 0,
|
||||
]));
|
||||
|
||||
return $this->success('修改成功');
|
||||
}
|
||||
|
||||
public function destroy(Device $device)
|
||||
{
|
||||
$device->delete();
|
||||
|
||||
return $this->success('删除成功');
|
||||
}
|
||||
|
||||
public function types(){
|
||||
public function types()
|
||||
{
|
||||
return $this->json(DeviceType::types());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ class UserController extends Controller
|
|||
public function info()
|
||||
{
|
||||
$user = auth('api')->user();
|
||||
|
||||
return $this->json(['info' => $user, 'permissions' => $user->permissionIds()]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -35,14 +35,14 @@ class AdminUserRequest extends FormRequest
|
|||
'username.alpha_num' => '用户名只能由字母和数字组成',
|
||||
'username.max' => '用户名最长100位',
|
||||
'password.required' => '请填写登录密码',
|
||||
'password.string'=> '请正确填写密码',
|
||||
'password.string' => '请正确填写密码',
|
||||
'password.min' => '密码长度不能低于6位',
|
||||
'password.max' => '密码长度不能超过32位',
|
||||
'name.required' => '请填写名称',
|
||||
'name.string' =>'请正确填写名称',
|
||||
'name.string' => '请正确填写名称',
|
||||
'name.max' => '名称长度不能超过100位',
|
||||
'status' => '请选择用户状态',
|
||||
'role_id' => "请选择角色"
|
||||
'role_id' => '请选择角色',
|
||||
];
|
||||
|
||||
return $messages;
|
||||
|
|
|
|||
|
|
@ -34,10 +34,10 @@ class AdminUserUpdateRequest extends FormRequest
|
|||
'username.alpha_num' => '用户名只能由字母和数字组成',
|
||||
'username.max' => '用户名最长100位',
|
||||
'name.required' => '请填写名称',
|
||||
'name.string' =>'请正确填写名称',
|
||||
'name.string' => '请正确填写名称',
|
||||
'name.max' => '名称长度不能超过100位',
|
||||
'status' => '请选择用户状态',
|
||||
'role_id' => "请选择角色"
|
||||
'role_id' => '请选择角色',
|
||||
];
|
||||
|
||||
return $messages;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class AgriculturalBaseRequest extends FormRequest
|
|||
'name' => 'required|string|max:100',
|
||||
'description' => 'nullable|string',
|
||||
'person' => 'required|string|max:100',
|
||||
'crops_ids'=> 'required|array|min:1',
|
||||
'crops_ids' => 'required|array|min:1',
|
||||
'areas' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
'workforce' => 'required|integer|min:0',
|
||||
'address' => 'nullable|string',
|
||||
|
|
@ -33,16 +33,16 @@ class AgriculturalBaseRequest extends FormRequest
|
|||
$messages = [
|
||||
'name.required' => '请填写基地名称',
|
||||
'name.max' => '基地名称不能超过100字',
|
||||
'description.string'=>'请正确填写基地介绍',
|
||||
'description.string' => '请正确填写基地介绍',
|
||||
'person.required' => '请填写基地负责人名称',
|
||||
'person.max' => '基地负责人名称不能超过100字',
|
||||
'crops_ids.required' => '请选择农作物',
|
||||
'crops_ids.min'=>'至少选择一种农作物',
|
||||
'crops_ids.min' => '至少选择一种农作物',
|
||||
'areas.required' => '请填写基地面积',
|
||||
'areas.regex' => '请正确填写基地面积',
|
||||
'workforce.required' => '请填写就业人数',
|
||||
'workforce.min' => '就业人数最小为0',
|
||||
'address.string'=>'请正确填写基地地址',
|
||||
'address.string' => '请正确填写基地地址',
|
||||
'address_lat.regex' => '请正确填写经度',
|
||||
'address_lng.regex' => '请正确填写纬度',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ class CropFlowRequest extends FormRequest
|
|||
{
|
||||
return [
|
||||
'time_year' => 'required|date_format:Y',
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'flows' => 'required|array|min:1',
|
||||
'flows.*'=>'required_array_keys:flow_name,sale'
|
||||
'flows.*' => 'required_array_keys:flow_name,sale',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ class CropFlowUpdateRequest extends FormRequest
|
|||
{
|
||||
return [
|
||||
'time_year' => 'required|date_format:Y',
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'sale' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
'flow_name'=> 'required|string|max:100',
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'sale' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
'flow_name' => 'required|string|max:100',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class CropStructureRequest extends FormRequest
|
|||
return [
|
||||
'time_year' => 'required|date_format:Y',
|
||||
'structures' => 'required|array|min:1',
|
||||
'structures.*'=>'required_array_keys:crops_cate_id,crops_output'
|
||||
'structures.*' => 'required_array_keys:crops_cate_id,crops_output',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -26,7 +26,7 @@ class CropStructureRequest extends FormRequest
|
|||
{
|
||||
$messages = [
|
||||
'time_year' => '请选择年份',
|
||||
'structures' => '请填写产业及产值'
|
||||
'structures' => '请填写产业及产值',
|
||||
];
|
||||
|
||||
return $messages;
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ class CropStructureUpdateRequest extends FormRequest
|
|||
{
|
||||
return [
|
||||
'time_year' => 'required|date_format:Y',
|
||||
'crops_cate_id' =>'required|integer|min:1',
|
||||
'crops_output' => 'required|regex:/^\d+(\.\d{1,2})?$/'
|
||||
'crops_cate_id' => 'required|integer|min:1',
|
||||
'crops_output' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -27,7 +27,7 @@ class CropStructureUpdateRequest extends FormRequest
|
|||
$messages = [
|
||||
'time_year' => '请选择年份',
|
||||
'crops_cate_id' => '请选择产业',
|
||||
'crops_output' => '请填写产值'
|
||||
'crops_output' => '请填写产值',
|
||||
];
|
||||
|
||||
return $messages;
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ class CropYieldRequest extends FormRequest
|
|||
{
|
||||
return [
|
||||
'time_year' => 'required|date_format:Y',
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'yields' => 'required|array|min:1',
|
||||
'yields.*'=>'required_array_keys:base_id,yield,cultivated,output'
|
||||
'yields.*' => 'required_array_keys:base_id,yield,cultivated,output',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,11 +17,11 @@ class CropYieldUpdateRequest extends FormRequest
|
|||
{
|
||||
return [
|
||||
'time_year' => 'required|date_format:Y',
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'base_id' => 'required|integer|min:0',
|
||||
'yield' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
'cultivated'=> 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
'output' => 'required|regex:/^\d+(\.\d{1,2})?$/'
|
||||
'crop_id' => 'required|integer|min:0',
|
||||
'base_id' => 'required|integer|min:0',
|
||||
'yield' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
'cultivated' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
'output' => 'required|regex:/^\d+(\.\d{1,2})?$/',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@
|
|||
namespace App\Http\Requestes;
|
||||
|
||||
use App\Enums\DeviceType;
|
||||
use Illuminate\Validation\Rules\Enum;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Contracts\Validation\Validator;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Http\Exceptions\HttpResponseException;
|
||||
use Illuminate\Validation\Rules\Enum;
|
||||
|
||||
class DeviceRequest extends FormRequest
|
||||
{
|
||||
|
|
@ -18,17 +18,17 @@ class DeviceRequest extends FormRequest
|
|||
public function rules()
|
||||
{
|
||||
return [
|
||||
'type' => ['required', new Enum(DeviceType::class)],
|
||||
'agricultural_base_id' => 'required|integer|min:0',
|
||||
'sn' => 'required|string|max:64',
|
||||
'monitoring_point' => 'required|string|max:100',
|
||||
'extends' => 'required_if:type,1',
|
||||
'extends.ip'=> 'required_if:type,1|string',
|
||||
'extends.port'=> 'required_if:type,1|string',
|
||||
'extends.rtsp_url'=> 'required_if:type,1|string',
|
||||
'extends.username'=> 'required_if:type,1|string',
|
||||
'extends.password'=> 'required_if:type,1|string',
|
||||
'extends.passage'=> 'required_if:type,1|string',
|
||||
'type' => ['required', new Enum(DeviceType::class)],
|
||||
'agricultural_base_id' => 'required|integer|min:0',
|
||||
'sn' => 'required|string|max:64',
|
||||
'monitoring_point' => 'required|string|max:100',
|
||||
'extends' => 'required_if:type,1',
|
||||
'extends.ip' => 'required_if:type,1|string',
|
||||
'extends.port' => 'required_if:type,1|string',
|
||||
'extends.rtsp_url' => 'required_if:type,1|string',
|
||||
'extends.username' => 'required_if:type,1|string',
|
||||
'extends.password' => 'required_if:type,1|string',
|
||||
'extends.passage' => 'required_if:type,1|string',
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -36,16 +36,16 @@ class DeviceRequest extends FormRequest
|
|||
{
|
||||
$messages = [
|
||||
'type' => '请选择设备类型',
|
||||
'agricultural_base_id' => '请选择基地',
|
||||
'sn' => '请填写设备编号',
|
||||
'agricultural_base_id' => '请选择基地',
|
||||
'sn' => '请填写设备编号',
|
||||
'monitoring_point' => '请填写监控点',
|
||||
'extends.required_if' =>'请填写监控设备信息',
|
||||
'extends.ip.required_if' =>'请填写监控设备IP',
|
||||
'extends.port.required_if' =>'请填写监控设备端口',
|
||||
'extends.rtsp_url.required_if' =>'请填写监控设备RTSP地址',
|
||||
'extends.username.required_if' =>'请填写监控设备登录名',
|
||||
'extends.password.required_if' =>'请填写监控设备登录密码',
|
||||
'extends.passage.required_if' =>'请填写监控设备播放通道',
|
||||
'extends.required_if' => '请填写监控设备信息',
|
||||
'extends.ip.required_if' => '请填写监控设备IP',
|
||||
'extends.port.required_if' => '请填写监控设备端口',
|
||||
'extends.rtsp_url.required_if' => '请填写监控设备RTSP地址',
|
||||
'extends.username.required_if' => '请填写监控设备登录名',
|
||||
'extends.password.required_if' => '请填写监控设备登录密码',
|
||||
'extends.passage.required_if' => '请填写监控设备播放通道',
|
||||
];
|
||||
|
||||
return $messages;
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ class RestPasswordRequest extends FormRequest
|
|||
{
|
||||
$messages = [
|
||||
'password.required' => '请填写登录密码',
|
||||
'password.string'=> '请正确填写密码',
|
||||
'password.string' => '请正确填写密码',
|
||||
'password.min' => '密码长度不能低于6位',
|
||||
'password.max' => '密码长度不能超过32位',
|
||||
'password.confirmed' => '两次密码不一致',
|
||||
|
|
|
|||
|
|
@ -3,22 +3,21 @@
|
|||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Peidikeji\Keywords\Http\Resources\KeywordResource;
|
||||
|
||||
class AdminRoleResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'slug'=> $this->slug,
|
||||
'slug' => $this->slug,
|
||||
'permissions' => $this->whenLoaded('permissions', function () {
|
||||
return $this->permissions->pluck('id');
|
||||
}, ''),
|
||||
|
|
|
|||
|
|
@ -3,27 +3,26 @@
|
|||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
use Peidikeji\Keywords\Http\Resources\KeywordResource;
|
||||
|
||||
class AdminUserResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'id' => $this->id,
|
||||
'username' => $this->username,
|
||||
'name' => $this->name,
|
||||
'avatar'=> $this->avatar,
|
||||
'avatar' => $this->avatar,
|
||||
'department' => $this->department,
|
||||
'phone' => $this->phone,
|
||||
'status' => $this->status,
|
||||
'is_enable'=> $this->is_enable,
|
||||
'is_enable' => $this->is_enable,
|
||||
'bases' => AgriculturalBaseResource::collection($this->whenloaded('bases')),
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,22 +10,22 @@ class AgriculturalBaseResource extends JsonResource
|
|||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'id' => $this->id,
|
||||
'name' => $this->name,
|
||||
'address' => $this->address ?? '',
|
||||
'address_lat' => $this->address_lat ?? '',
|
||||
'address_lng' => $this->address_lng ?? '',
|
||||
'description' => $this->description ?? '',
|
||||
'map' => $this->map ?? '',
|
||||
'areas' => ($this->areas ?? 0.00).' 亩',
|
||||
'workforce' => $this->workforce ?? 0,
|
||||
'crops' => KeywordResource::collection($this->whenLoaded('crops'))
|
||||
'map' => $this->map ?? '',
|
||||
'areas' => ($this->areas ?? 0.00).' 亩',
|
||||
'workforce' => $this->workforce ?? 0,
|
||||
'crops' => KeywordResource::collection($this->whenLoaded('crops')),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class CropFlowResource extends JsonResource
|
|||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
|
|
@ -17,16 +17,16 @@ class CropFlowResource extends JsonResource
|
|||
return [
|
||||
'id' => $this->id,
|
||||
'flow_name' => $this->flow_name,
|
||||
'crop_name' => $this->whenLoaded('crop', function (){
|
||||
'crop_name' => $this->whenLoaded('crop', function () {
|
||||
return $this->crop?->name;
|
||||
}, ''),
|
||||
'crop_id' => $this->crop_id,
|
||||
'time_year' => $this->time_year,
|
||||
'sale' => $this->sale,
|
||||
'created_by' => $this->whenLoaded('createdBy', function (){
|
||||
'created_by' => $this->whenLoaded('createdBy', function () {
|
||||
return $this->createdBy?->name;
|
||||
}, ''),//录入人
|
||||
'created_at' => strtotime($this->created_at) ?? 0,//录入时间
|
||||
}, ''), //录入人
|
||||
'created_at' => strtotime($this->created_at) ?? 0, //录入时间
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class CropStructureResource extends JsonResource
|
|||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class CropYieldResource extends JsonResource
|
|||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
|
|
@ -20,7 +20,7 @@ class CropYieldResource extends JsonResource
|
|||
return $this->base?->name;
|
||||
}, ''),
|
||||
'base_id' => $this->base_id,
|
||||
'crop_name' => $this->whenLoaded('crop', function (){
|
||||
'crop_name' => $this->whenLoaded('crop', function () {
|
||||
return $this->crop?->name;
|
||||
}, ''),
|
||||
'crop_id' => $this->crop_id,
|
||||
|
|
@ -28,10 +28,10 @@ class CropYieldResource extends JsonResource
|
|||
'yield' => $this->yield,
|
||||
'output' => $this->output,
|
||||
'cultivated' => $this->cultivated,
|
||||
'created_by' => $this->whenLoaded('createdBy', function (){
|
||||
'created_by' => $this->whenLoaded('createdBy', function () {
|
||||
return $this->createdBy?->name;
|
||||
}, ''),//录入人
|
||||
'created_at' => strtotime($this->created_at) ?? 0,//录入时间
|
||||
}, ''), //录入人
|
||||
'created_at' => strtotime($this->created_at) ?? 0, //录入时间
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,26 +9,26 @@ class DeviceResource extends JsonResource
|
|||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'type' => $this->type?->typeName() ?? '未知',
|
||||
'sn' => $this->sn,
|
||||
'base_name' => $this->whenLoaded('base', function (){
|
||||
'type' => $this->type?->typeName() ?? '未知',
|
||||
'sn' => $this->sn,
|
||||
'base_name' => $this->whenLoaded('base', function () {
|
||||
return $this->base?->name ?? '';
|
||||
}, ''),
|
||||
'base_id' => $this->agricultural_base_id,
|
||||
'monitoring_point' => $this->monitoring_point ?? '',
|
||||
'status' => $this->status?->value,
|
||||
'extends' => $this->extends ?? [],
|
||||
'created_by' => $this->whenLoaded('createdBy', function (){
|
||||
'created_by' => $this->whenLoaded('createdBy', function () {
|
||||
return $this->createdBy?->name;
|
||||
}, ''),//录入人
|
||||
'created_at' => strtotime($this->created_at) ?? 0,//录入时间
|
||||
}, ''), //录入人
|
||||
'created_at' => strtotime($this->created_at) ?? 0, //录入时间
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@
|
|||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class AdminRoleFilter extends ModelFilter
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@
|
|||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class AdminUserFilter extends ModelFilter
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,10 +2,8 @@
|
|||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class AgriculturalBaseFilter extends ModelFilter
|
||||
{
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class CropFlowFilter extends ModelFilter
|
||||
{
|
||||
public function year($y)
|
||||
{
|
||||
$y = $y ?? date('Y');//默认当前年份
|
||||
$y = $y ?? date('Y'); //默认当前年份
|
||||
|
||||
return $this->where('time_year', $y);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class CropStructureFilter extends ModelFilter
|
||||
{
|
||||
public function year($y)
|
||||
{
|
||||
$y = $y ?? date('Y');//默认当前年份
|
||||
$y = $y ?? date('Y'); //默认当前年份
|
||||
|
||||
return $this->where('time_year', $y);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class CropYieldFilter extends ModelFilter
|
||||
{
|
||||
public function year($y)
|
||||
{
|
||||
$y = $y ?? date('Y');//默认当前年份
|
||||
$y = $y ?? date('Y'); //默认当前年份
|
||||
|
||||
return $this->where('time_year', $y);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,20 +2,22 @@
|
|||
|
||||
namespace App\ModelFilters;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use EloquentFilter\ModelFilter;
|
||||
|
||||
class DeviceFilter extends ModelFilter
|
||||
{
|
||||
public function point($point){
|
||||
public function point($point)
|
||||
{
|
||||
return $this->where('monitoring_point', 'like', $point.'%');
|
||||
}
|
||||
|
||||
public function base($base){
|
||||
public function base($base)
|
||||
{
|
||||
return $this->where('agricultural_base_id', $base);
|
||||
}
|
||||
|
||||
public function type($type){
|
||||
public function type($type)
|
||||
{
|
||||
return $this->where('type', $type);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,14 +2,15 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use EloquentFilter\Filterable;
|
||||
use Dcat\Admin\Models\Permission as BaseAdminModel;
|
||||
use EloquentFilter\Filterable;
|
||||
|
||||
class AdminPermission extends BaseAdminModel
|
||||
{
|
||||
use Filterable;
|
||||
|
||||
public function scopeEndPoint($q){
|
||||
public function scopeEndPoint($q)
|
||||
{
|
||||
return $q->where('slug', 'like', 'endpoint%');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use EloquentFilter\Filterable;
|
||||
use Dcat\Admin\Models\Role as BaseAdminModel;
|
||||
use EloquentFilter\Filterable;
|
||||
|
||||
class AdminRole extends BaseAdminModel
|
||||
{
|
||||
|
|
|
|||
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use Dcat\Admin\Models\Administrator as BaseAdminModel;
|
||||
use EloquentFilter\Filterable;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
use Dcat\Admin\Models\Administrator as BaseAdminModel;
|
||||
|
||||
class AdminUser extends BaseAdminModel
|
||||
{
|
||||
|
|
@ -22,11 +22,13 @@ class AdminUser extends BaseAdminModel
|
|||
'password', 'remember_token',
|
||||
];
|
||||
|
||||
public function bases(){
|
||||
public function bases()
|
||||
{
|
||||
return $this->belongsToMany(AgriculturalBase::class, 'admin_user_bases', 'user_id', 'base_id');
|
||||
}
|
||||
|
||||
public function permissionIds(){
|
||||
public function permissionIds()
|
||||
{
|
||||
return $this->getCachePermissions()->pluck('id');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,12 +8,11 @@ use Peidikeji\Keywords\Models\Keywords;
|
|||
|
||||
class AgriculturalBase extends Model
|
||||
{
|
||||
|
||||
use Filterable;
|
||||
|
||||
protected $fillable = [
|
||||
'name', 'person', 'address', 'address_lat', 'address_lng',
|
||||
'description', 'map', 'areas', 'workforce'
|
||||
'description', 'map', 'areas', 'workforce',
|
||||
];
|
||||
|
||||
public function scopeSort($q)
|
||||
|
|
@ -21,7 +20,8 @@ class AgriculturalBase extends Model
|
|||
return $q->orderBy('created_at', 'desc');
|
||||
}
|
||||
|
||||
public function crops(){
|
||||
public function crops()
|
||||
{
|
||||
return $this->belongsToMany(Keywords::class, 'base_crops', 'base_id', 'crop_id');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class CropFlow extends Model
|
|||
|
||||
protected $fillable = [
|
||||
'crop_id', 'flow_name', 'time_year', 'sale', 'user_id',
|
||||
'created_by', 'updated_by'
|
||||
'created_by', 'updated_by',
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -20,7 +20,8 @@ class CropFlow extends Model
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function crop(){
|
||||
public function crop()
|
||||
{
|
||||
return $this->belongsTo(Keywords::class, 'crop_id');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ class CropYield extends Model
|
|||
|
||||
protected $fillable = [
|
||||
'base_id', 'crop_id', 'time_year', 'yield', 'cultivated', 'output', 'user_id',
|
||||
'created_by', 'updated_by'
|
||||
'created_by', 'updated_by',
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -20,7 +20,8 @@ class CropYield extends Model
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function base(){
|
||||
public function base()
|
||||
{
|
||||
return $this->belongsTo(AgriculturalBase::class, 'base_id');
|
||||
}
|
||||
|
||||
|
|
@ -29,7 +30,8 @@ class CropYield extends Model
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function crop(){
|
||||
public function crop()
|
||||
{
|
||||
return $this->belongsTo(Keywords::class, 'crop_id');
|
||||
}
|
||||
|
||||
|
|
@ -42,5 +44,4 @@ class CropYield extends Model
|
|||
{
|
||||
return $this->belongsTo(AdminUser::class, 'updated_by');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Enums\DeviceType;
|
||||
use App\Enums\DeviceStatus;
|
||||
use App\Enums\DeviceType;
|
||||
use EloquentFilter\Filterable;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class Device extends Model
|
||||
{
|
||||
|
|
@ -20,7 +20,7 @@ class Device extends Model
|
|||
protected $casts = [
|
||||
'type' => DeviceType::class,
|
||||
'status' => DeviceStatus::class,
|
||||
'extends' => 'array'
|
||||
'extends' => 'array',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
|
|
@ -36,7 +36,8 @@ class Device extends Model
|
|||
'updated_by',
|
||||
];
|
||||
|
||||
public function base(){
|
||||
public function base()
|
||||
{
|
||||
return $this->belongsTo(AgriculturalBase::class, 'agricultural_base_id');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ return new class extends Migration
|
|||
$table->comment('基地数据表');
|
||||
});
|
||||
|
||||
Schema::create('base_crops', function (Blueprint $table){
|
||||
Schema::create('base_crops', function (Blueprint $table) {
|
||||
$table->id();
|
||||
$table->unsignedBigInteger('base_id')->comment('基地ID');
|
||||
$table->unsignedBigInteger('crop_id')->comment('农作物ID');
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ namespace Database\Seeders;
|
|||
|
||||
use Dcat\Admin\Models\Permission;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class EndpointPermissionSeeder extends Seeder
|
||||
{
|
||||
|
|
@ -16,32 +15,32 @@ class EndpointPermissionSeeder extends Seeder
|
|||
public function run()
|
||||
{
|
||||
$permissions = [
|
||||
'endpoint' =>['name' => '系统权限', 'curd'=>false, 'in_path'=> true, 'children' => [
|
||||
'monitor_data' => ['name' =>'监测数据管理', 'curd' => false, 'children'=> [
|
||||
'weather' =>['name' =>'气象管理', 'curd'=>['index']],
|
||||
'camera' => ['name' =>'智能监控', 'curd'=>['index']],
|
||||
'soil' => ['name' =>'土壤监控', 'curd'=>['index'], 'children'=> ['setting'=>'设置']],
|
||||
'water' => ['name' =>'水质监控', 'curd'=>['index'], 'children'=> ['setting'=>'设置']]
|
||||
'endpoint' => ['name' => '系统权限', 'curd' => false, 'in_path' => true, 'children' => [
|
||||
'monitor_data' => ['name' => '监测数据管理', 'curd' => false, 'children' => [
|
||||
'weather' => ['name' => '气象管理', 'curd' => ['index']],
|
||||
'camera' => ['name' => '智能监控', 'curd' => ['index']],
|
||||
'soil' => ['name' => '土壤监控', 'curd' => ['index'], 'children' => ['setting' => '设置']],
|
||||
'water' => ['name' => '水质监控', 'curd' => ['index'], 'children' => ['setting' => '设置']],
|
||||
]],
|
||||
'base_data' => ['name' => '基础数据管理', 'curd' => false, 'children'=>[
|
||||
'citydata_statistics' => ['name'=>'全市基础数据', 'curd'=> ['index', 'edit']],
|
||||
'agricultural_basic' =>['name'=>'基地数据', 'curd'=>true],
|
||||
'crops_build' => ['name' =>'农业产业结构', 'curd'=>true],
|
||||
'crops_output'=> ['name' =>'产量排行榜','curd'=>true],
|
||||
'crops_flow' => ['name' =>'农产品流向', 'curd'=>true],
|
||||
'crops_price' => ['name' =>'农产品价格走势', 'curd'=>['index'], 'children'=> ['is_enable'=>'自动监测开关']],
|
||||
'base_data' => ['name' => '基础数据管理', 'curd' => false, 'children' => [
|
||||
'citydata_statistics' => ['name' => '全市基础数据', 'curd' => ['index', 'edit']],
|
||||
'agricultural_basic' => ['name' => '基地数据', 'curd' => true],
|
||||
'crops_build' => ['name' => '农业产业结构', 'curd' => true],
|
||||
'crops_output' => ['name' => '产量排行榜', 'curd' => true],
|
||||
'crops_flow' => ['name' => '农产品流向', 'curd' => true],
|
||||
'crops_price' => ['name' => '农产品价格走势', 'curd' => ['index'], 'children' => ['is_enable' => '自动监测开关']],
|
||||
]],
|
||||
'device_data' => ['name' => '设备管理', 'curd'=>false,'children'=>[
|
||||
'device' => ['name' =>'设备管理', 'curd'=>true],
|
||||
'device_data' => ['name' => '设备管理', 'curd' => false, 'children' => [
|
||||
'device' => ['name' => '设备管理', 'curd' => true],
|
||||
]],
|
||||
'manage'=>['name' =>'系统管理', 'curd'=>false, 'children'=>[
|
||||
'admin_users' => ['name' =>'管理员管理', 'curd'=>true, 'children'=>[
|
||||
'edit_password'=>'修改密码', 'enable'=>'启用/禁用'
|
||||
'manage' => ['name' => '系统管理', 'curd' => false, 'children' => [
|
||||
'admin_users' => ['name' => '管理员管理', 'curd' => true, 'children' => [
|
||||
'edit_password' => '修改密码', 'enable' => '启用/禁用',
|
||||
]],
|
||||
'admin_roles' =>['name'=>'角色管理', 'curd' =>true],
|
||||
'operation_log' => ['name' =>'操作日志', 'curd'=>['index']]
|
||||
]]
|
||||
]]
|
||||
'admin_roles' => ['name' => '角色管理', 'curd' => true],
|
||||
'operation_log' => ['name' => '操作日志', 'curd' => ['index']],
|
||||
]],
|
||||
]],
|
||||
];
|
||||
$this->createPermissionData($permissions);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,8 +23,7 @@ Route::group(['middleware' => 'auth:sanctum'], function () {
|
|||
Route::get('permissions', [AdminPermissionController::class, 'index']);
|
||||
Route::get('device-types', [DeviceController::class, 'types']);
|
||||
|
||||
Route::group(['as'=>'endpoint.'], function (){
|
||||
|
||||
Route::group(['as' => 'endpoint.'], function () {
|
||||
//全市基础数据
|
||||
Route::get('citydata-statistics', [CityDataController::class, 'statistics'])->name('citydata_statistics.index');
|
||||
//基地数据
|
||||
|
|
|
|||
Loading…
Reference in New Issue