123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- <?php
- namespace catchAdmin\wind\controller;
- use catcher\base\CatchRequest as Request;
- use catcher\CatchResponse;
- use catcher\base\CatchController;
- use catchAdmin\wind\model\Wind as windModel;
- class Wind extends CatchController
- {
- protected $windModel;
-
- public function __construct(WindModel $windModel)
- {
- $this->windModel = $windModel;
- }
-
- /**
- * 列表
- * @time 2022年04月27日 10:49
- * @param Request $request
- */
- public function index(Request $request) : \think\Response
- {
- return CatchResponse::paginate($this->windModel->getList());
- }
-
- /**
- * 列表
- * @time 2022年04月27日 10:49
- * @param Request $request
- */
- public function getWindList(Request $request) : \think\Response
- {
- $list=$this->windModel->getWindList();
- foreach($list as $val){
- if($val['wind_shape']=='circle'){
- $val['center_lng']=$val['wind_info']['center']['lng'];
- $val['center_lat']=$val['wind_info']['center']['lat'];
- }
- if($val['wind_shape']=='polygon'){
- $val['center_lng']=$val['wind_info'][0]['lng'];
- $val['center_lat']=$val['wind_info'][0]['lat'];
- }
- }
- return CatchResponse::success($list);
- }
- /**
- * 保存信息
- * @time 2022年04月27日 10:49
- * @param Request $request
- */
- public function save(Request $request) : \think\Response
- {
- $post = $request->post();
-
- if (!isset($post['name']) || !$post['name']) {
- return CatchResponse::fail('风场名称不能为空');
- }
- if (!isset($post['wind_shape']) || !$post['wind_shape']) {
- return CatchResponse::fail('获取风场类型失败');
- }
- if (!isset($post['wind_info']) || !is_array($post['wind_info'])) {
- return CatchResponse::fail('获取风场坐标数据失败');
- }
- if (!isset($post['department_id']) || !is_array($post['department_id'])) {
- return CatchResponse::fail('获取风场所属部门失败');
- }
- // 检测名称重复
- if($this->windModel->where('name',$post['name'])->count()){
- return CatchResponse::fail('风场名称已存在');
- }
- $post['wind_info'] = json_encode($post['wind_info']);
- $post['department_id'] = array_pop($post['department_id']);
- return CatchResponse::success($this->windModel->storeBy($post));
- }
-
- /**
- * 读取
- * @time 2022年04月27日 10:49
- * @param $id
- */
- public function read($id) : \think\Response
- {
- return CatchResponse::success($this->windModel->findBy($id));
- }
-
- /**
- * 更新
- * @time 2022年04月27日 10:49
- * @param Request $request
- * @param $id
- */
- public function update(Request $request, $id) : \think\Response
- {
- $post = $request->post();
-
- if(isset($post['name'])){
- // 检测名称重复
- $n_id = $this->windModel->where('name',$post['name'])->value('id');
- if($n_id && ($n_id != $id)){
- return CatchResponse::fail('风场名称已存在');
- }
- }
- if(isset($post['department_id']) && is_array($post['department_id'])){
- $post['department_id'] = array_pop($post['department_id']);
- }
- $post['wind_info'] = json_encode($post['wind_info']);
- return CatchResponse::success($this->windModel->updateBy($id, $post));
- }
-
- /**
- * 删除
- * @time 2022年04月27日 10:49
- * @param $id
- */
- public function delete($id) : \think\Response
- {
- return CatchResponse::success($this->windModel->deleteBy($id,true));
- }
- /**
- * 获取风场下拉菜单
- * @time 2022年04月28日 19:53
- */
- public function getWindOptions(Request $request){
-
- $list=$this->windModel->field('id as value,name as text')->select();
- return CatchResponse::success($list);
- }
- }
|