0
0
Files
Babyclass/app/Admin/Controllers/OrganController.php##
2020-08-04 10:09:42 +08:00

190 lines
6.6 KiB
Plaintext

<?php
namespace App\Admin\Controllers;
use Admin;
use App\Models\Category;
use App\Models\Organ;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Validator;
class OrganController extends Controller
{
public function index(Request $request)
{
$title = $request->title;
$orderField = $request->orderField;
$orderDirection = $request->orderDirection;
$numPerPage = $request->numPerPage ?: 30;
$start = $request->start;
$end = $request->end;
$lists = Organ::when($title, function ($query) use ($title) {
$query->where('title', 'like', "%{$title}%");
})
->when($orderField, function ($query) use ($orderField, $orderDirection) {
$query->orderBy($orderField, $orderDirection);
})
->orderBy('created_at', 'desc')
->when($start && $end, function ($query) use ($start, $end) {
return $query->whereBetween('created_at', [$start, date('Y-m-d', strtotime("+1 days", strtotime($end)))]);
})->when($start && !$end, function ($query) use ($start) {
return $query->where('created_at', '>=', $start);
})->when(!$start && $end, function ($query) use ($end) {
return $query->where('created_at', '<=', date('Y-m-d', strtotime("+1 days", strtotime($end))));
})
->paginate($numPerPage);
return view('Admin::organ.index', compact('lists'));
}
public function create()
{
$provinces = \Area::index(0);
$categoies = Category::treeSelect(1);
dd(1);
return view('Admin::organ.create', compact('provinces', 'categoies'));
}
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'title' => 'required|min:2|max:50',
'mobile' => 'required',
'wechat' => 'required',
'province_sn' => 'required',
'city_sn' => 'required',
'area_sn' => 'required',
'address' => 'required',
'description' => 'required|min:4',
'content' => 'required|min:4',
'storage_id' => 'required',
], [
'title.required' => '机构名称必须填写',
'title.min' => '机构名称最少为:min字符',
'title.max' => '机构名称最多为:max字符',
'mobile.required' => '电话必须填写',
'wechat.required' => '微信必须填写',
'province_sn.required' => '请选择省',
'city_sn.required' => '请选择市',
'area_sn.required' => '请选择区',
'address.required' => '地址必须填写',
'description.required' => '简介必须填写',
'description.min' => '简介最少:min个字',
'content.required' => '内容必须填写',
'content.min' => '内容最少:min个字',
'storage_id.required' => '图片必须上传',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
try {
DB::transaction(function () use ($request) {
$organ = Organ::create($request->all());
});
return $this->success('操作成功', 'close');
} catch (\Exception $e) {
return $this->error('操作失败' . $e->getmessage());
}
}
public function edit(Organ $organ)
{
$provinces = \Area::index(0);
$cities = \Area::index($organ->province_sn);
$areas = \Area::index($organ->city_sn);
$categoies = Category::treeSelect(1);
return view('Admin::organ.edit', compact('organ', 'provinces', 'cities', 'areas', 'categoies'));
}
public function update(Request $request, Organ $organ)
{
$validator = Validator::make($request->all(), [
'title' => 'required|min:2|max:50',
'mobile' => 'required',
'wechat' => 'required',
'province_sn' => 'required',
'city_sn' => 'required',
'area_sn' => 'required',
'address' => 'required',
'description' => 'required|min:4',
'content' => 'required|min:4',
'storage_id' => 'required',
], [
'title.required' => '机构名称必须填写',
'title.min' => '机构名称最少为:min字符',
'title.max' => '机构名称最多为:max字符',
'mobile.required' => '电话必须填写',
'wechat.required' => '微信必须填写',
'province_sn.required' => '请选择省',
'city_sn.required' => '请选择市',
'area_sn.required' => '请选择区',
'address.required' => '地址必须填写',
'description.required' => '简介必须填写',
'description.min' => '简介最少:min个字',
'content.required' => '内容必须填写',
'content.min' => '内容最少:min个字',
'storage_id.required' => '图片必须上传',
]);
if ($validator->fails()) {
return $this->error($validator->errors()->first());
}
try {
DB::transaction(function () use ($organ, $request) {
$organ->update($request->all());
});
return $this->success('操作成功', 'close');
} catch (\Exception $e) {
return $this->error('操作失败' . $e->getmessage());
}
}
public function destroy(Organ $organ)
{
try {
DB::transaction(function () use ($organ) {
$organ->status = 0;
$organ->save();
});
return $this->success('操作成功');
} catch (\Exception $e) {
return $this->error('操作失败' . $e->getmessage());
}
}
/**
* 彻底删除单条目
* @Author:<C.Jason>
* @Date:2018-11-02T13:43:36+0800
* @param [type] $user [description]
* @return [type] [description]
*/
public function delete(Organ $organ)
{
try {
DB::transaction(function () use ($organ) {
$organ->delete();
});
return $this->success('操作成功');
} catch (\Exception $e) {
return $this->error('操作失败' . $e->getmessage());
}
}
}