suyuan-breed/app/api/controller/FenceHouseController.php

131 lines
4.4 KiB
PHP
Raw Permalink Normal View History

2024-01-15 17:10:07 +08:00
<?php
namespace app\api\controller;
use app\adminapi\logic\fence_house\FenceHouseLogic;
use app\adminapi\validate\fence_house\FenceHouseValidate;
2024-01-25 13:37:49 +08:00
use app\api\lists\FenceHouseLists;
2024-01-30 09:32:08 +08:00
use app\common\model\fence_house\FenceHouse;
2024-01-30 09:11:31 +08:00
use think\facade\Db;
2024-01-17 11:59:25 +08:00
use think\response\Json;
2024-01-15 17:10:07 +08:00
class FenceHouseController extends BaseApiController
{
2024-01-25 13:37:49 +08:00
public function list()
{
return $this->dataLists(new FenceHouseLists());
}
2024-01-15 17:10:07 +08:00
public function add()
{
$params = (new FenceHouseValidate())->post()->goCheck('add');
$result = FenceHouseLogic::add($params);
if (true === $result) {
return $this->success('添加成功', [], 1, 1);
}
return $this->fail(FenceHouseLogic::getError());
}
/**
* @notes 编辑
* @return \think\response\Json
* @author likeadmin
* @date 2024/01/10 15:15
*/
public function edit()
{
$params = (new FenceHouseValidate())->post()->goCheck('edit');
$result = FenceHouseLogic::edit($params);
if (true === $result) {
return $this->success('编辑成功', [], 1, 1);
}
return $this->fail(FenceHouseLogic::getError());
}
public function detail()
{
$params = (new FenceHouseValidate())->goCheck('detail');
$result = FenceHouseLogic::detail($params);
return $this->data($result);
}
2024-01-17 11:59:25 +08:00
/**
* @return Json
*/
public function datas(): Json
{
2024-01-31 16:24:24 +08:00
$params['user_id'] = $this->userId;
2024-01-17 11:59:25 +08:00
$datas = (new FenceHouseLogic())->datas($params);
return $this->data($datas);
}
2024-01-30 09:11:31 +08:00
// 离栏操作
public function leave()
{
$params = $this->request->param();
2024-01-30 14:53:44 +08:00
$params['user_id'] = $this->userId;
2024-01-30 14:27:53 +08:00
$params['create_time'] = date('Y-m-d H:i:s', time());
$params['update_time'] = date('Y-m-d H:i:s', time());
2024-01-30 09:11:31 +08:00
Db::name('leave_fence_house_log')->insert($params);
return $this->success('离栏成功');
}
2024-01-30 09:32:08 +08:00
// 离栏列表
public function leaveList()
{
$params = $this->request->param();
$pageNo = $params['page_no'] ?? 1;
2024-01-30 16:00:15 +08:00
$where = [];
if (!empty($params['keyword'])) {
$where[] = ['animal_sn', 'like', '%' . $params['keyword'] . '%'];
}
2024-01-30 16:04:59 +08:00
$lists = Db::name('leave_fence_house_log')->where('user_id', $this->userId)->where($where)->append(['fence_house_name'])->withAttr('fence_house_name',function ($value, $data){
2024-01-30 09:32:08 +08:00
return FenceHouse::where('id', $data['fence_house_id'])->value('fence_house_name');
})->page($pageNo, $params['page_size'])->select();
$data = [
'lists' => $lists,
'count' => Db::name('leave_fence_house_log')->where('user_id', $this->userId)->count(),
'page_no' => $pageNo,
'page_size' => $params['page_size'],
];
return $this->success('成功', $data);
}
2024-01-30 09:11:31 +08:00
// 换栏操作
public function exchange()
{
$params = $this->request->param();
2024-01-30 14:53:44 +08:00
$params['user_id'] = $this->userId;
2024-01-30 14:27:53 +08:00
$params['create_time'] = date('Y-m-d H:i:s', time());
$params['update_time'] = date('Y-m-d H:i:s', time());
2024-01-30 09:11:31 +08:00
Db::name('change_fence_house_log')->insert($params);
return $this->success('换栏成功');
}
2024-01-30 09:32:08 +08:00
public function exchangeList()
{
$params = $this->request->param();
2024-01-30 16:00:15 +08:00
$where = [];
if (!empty($params['keyword'])) {
$where[] = ['animal_sn', 'like', '%' . $params['keyword'] . '%'];
}
2024-01-30 09:32:08 +08:00
$pageNo = $params['page_no'] ?? 1;
2024-01-30 16:04:59 +08:00
$lists = Db::name('change_fence_house_log')->where('user_id', $this->userId)->where($where)->append(['old_fence_house_name', 'new_fence_house_name'])
2024-01-30 09:32:08 +08:00
->withAttr('old_fence_house_name',function ($value, $data){
return FenceHouse::where('id', $data['old_fence_house_id'])->value('fence_house_name');
})
->withAttr('new_fence_house_name',function ($value, $data){
return FenceHouse::where('id', $data['new_fence_house_id'])->value('fence_house_name');
})
->page($pageNo, $params['page_size'])
->select();
$data = [
'lists' => $lists,
'count' => Db::name('change_fence_house_log')->where('user_id', $this->userId)->count(),
'page_no' => $pageNo,
'page_size' => $params['page_size'],
];
return $this->success('成功', $data);
}
2024-01-15 17:10:07 +08:00
}