TaskSystem/app/api/controller/InformationController.php

241 lines
8.3 KiB
PHP
Raw Normal View History

2023-07-29 15:57:31 +08:00
<?php
namespace app\api\controller;
2023-08-01 15:41:14 +08:00
use app\common\model\informationg\UserInformationg;
2023-07-29 15:57:31 +08:00
use app\common\logic\BaseLogic;
use app\common\model\informationg\UserInformationgDemand;
2023-08-12 16:54:08 +08:00
use app\common\model\task\Task;
2023-08-16 15:13:09 +08:00
use app\common\model\task_template\TaskTemplate;
2023-08-04 15:23:30 +08:00
use app\common\model\user\User;
use think\response\Json;
2023-07-29 15:57:31 +08:00
class InformationController extends BaseApiController
{
public array $notNeedLogin = ['farmerInfo','farmerLandInfo','farmerPondInfo'];
2023-07-29 15:57:31 +08:00
public function list()
{
$param = Request()->param();
[$page, $limit] = $this->getPage();
2023-08-21 09:28:09 +08:00
if (isset($param['user_id']) && $param['user_id'] > 0) {
$data[] = ['create_user_id', '=', $param['user_id']];
} else {
$data[] = ['company_id', '=', $this->userInfo['company_id']];
2023-08-05 16:14:43 +08:00
}
2023-08-21 09:28:09 +08:00
if (isset($param['arr']) && count($param['arr']) > 0) {
$data[] = ['id', 'in', $param['arr']];
2023-08-01 22:24:25 +08:00
}
2023-08-21 09:28:09 +08:00
if (isset($param['is_update'])) {
if ($param['is_update'] > 0) {
$data[] = ['is_update', '=', 1];
} else {
$data[] = ['is_update', '=', 0];
}
2023-08-17 17:34:23 +08:00
}
2023-08-21 09:28:09 +08:00
$res = UserInformationg::list($data, $page, $limit);
2023-07-29 15:57:31 +08:00
if ($res != true) {
2023-08-21 09:28:09 +08:00
return $this->fail(BaseLogic::getError());
2023-07-29 15:57:31 +08:00
}
2023-07-31 15:06:51 +08:00
return $this->success('ok', $res->toArray());
2023-07-29 15:57:31 +08:00
}
2023-08-02 15:05:21 +08:00
/**
* 添加
*/
2023-07-29 15:57:31 +08:00
public function add()
{
$param = Request()->param();
2023-08-21 09:28:09 +08:00
$user = User::where('id', $this->userId)->find();
if (isset($param['street']) && $param['street'] > 0) {
$param['street_id'] = $param['street'];
} else {
$param['street_id'] = $user['street'];
2023-08-09 17:16:23 +08:00
}
2023-08-21 09:28:09 +08:00
if (isset($param['village']) && $param['village'] > 0) {
$param['village_id'] = $param['village'];
} else {
$param['village_id'] = $user['village'];
2023-08-09 17:16:23 +08:00
}
2023-08-21 09:28:09 +08:00
if (isset($param['brigade']) && $param['brigade'] > 0) {
$param['brigade_id'] = $param['brigade'];
} else {
$param['brigade_id'] = $user['brigade'];
2023-08-09 17:16:23 +08:00
}
2023-07-29 15:57:31 +08:00
$param['admin_id'] = $this->userId;
2023-08-21 09:28:09 +08:00
$param['company_id'] = $this->userInfo['company_id'];
$param['province_id'] = $user['province'];
$param['city_id'] = $user['city'];
$param['area_id'] = $user['area'];
2023-07-29 15:57:31 +08:00
$res = UserInformationg::add($param);
if ($res != true) {
2023-08-21 09:28:09 +08:00
return $this->fail(BaseLogic::getError());
2023-07-29 15:57:31 +08:00
}
return $this->success('成功');
}
2023-08-21 09:28:09 +08:00
2023-08-02 15:05:21 +08:00
/**
* 详情
*/
2023-08-21 09:28:09 +08:00
public function details()
{
2023-07-31 17:01:03 +08:00
$param = Request()->param();
$res = UserInformationg::details($param['id']);
if ($res != true) {
2023-08-21 09:28:09 +08:00
return $this->fail(BaseLogic::getError());
2023-07-31 17:01:03 +08:00
}
2023-08-21 09:28:09 +08:00
return $this->success('成功', $res->toArray());
2023-07-31 17:01:03 +08:00
}
2023-08-02 15:05:21 +08:00
/**
* 商机更新
*/
2023-08-21 09:28:09 +08:00
public function opportunity_update()
{
2023-08-02 15:05:21 +08:00
$param = Request()->param();
foreach ($param['datas'] as $k => $v) {
2023-08-21 09:28:09 +08:00
$res = UserInformationg::informationg_demand($v, $param['id'], $this->userId);
2023-08-02 15:05:21 +08:00
}
if ($res != true) {
2023-08-21 09:28:09 +08:00
return $this->fail(BaseLogic::getError());
2023-08-02 15:05:21 +08:00
}
2023-08-21 09:28:09 +08:00
if (isset($param['task_id']) && $param['task_id'] > 0) {
$task = Task::where('id', $param['task_id'])->find();
$extend = $task['extend'];
if (isset($extend['informationg']['update'])) {
$extend['informationg']['update'] += 1;
} else {
$extend['informationg']['update'] = 1;
2023-08-18 17:10:39 +08:00
}
2023-08-21 09:28:09 +08:00
$extend['informationg']['ids'][] = $param['id'];
$task->extend = json_encode($extend);
if ($extend['informationg']['update'] >= 5) {
$task->status = 3;
2023-08-16 15:13:09 +08:00
}
2023-08-12 16:54:08 +08:00
$task->save();
2023-08-21 09:28:09 +08:00
TaskTemplate::where('id', $task['template_id'])->inc('information_count', 1)->update();
2023-08-12 16:54:08 +08:00
}
2023-08-21 09:28:09 +08:00
UserInformationg::where('id', $param['id'])->update(['update_time' => time(), 'is_update' => 1]);
2023-08-02 15:05:21 +08:00
return $this->success('成功');
}
/**
* 编辑
*/
2023-08-21 09:28:09 +08:00
public function edit()
{
2023-08-02 15:05:21 +08:00
$param = Request()->param();
$res = UserInformationg::edit($param);
if ($res != true) {
2023-08-21 09:28:09 +08:00
return $this->fail(BaseLogic::getError());
2023-08-02 15:05:21 +08:00
}
return $this->success('成功');
}
//获取农户信息,该接口溯源系统调用
public function farmerInfo(): Json
{
//获取参数
$params = $this->request->post(['user_id']);
if(empty($params['user_id'])){
2023-10-23 17:55:25 +08:00
return $this->fail('参数错误_worker');
}
//获取农户信息
2023-10-23 17:55:25 +08:00
$farmerInfo = UserInformationg::where('id', $params['user_id'])->field('id,create_user_id,company_id,name,phone,area_id,street_id,village_id,brigade_id,area_id area_name,street_id street_name,village_id village_name,brigade_id brigade_name')->findOrEmpty()->toArray();
if(empty($farmerInfo)){
return $this->fail('用户不存在_worker');
}
unset($farmerInfo['area_id'],$farmerInfo['street_id'],$farmerInfo['village_id'],$farmerInfo['brigade_id']);
$data = UserInformationgDemand::field('id,category_child,data')->where('information_id', $params['user_id'])->where('category_id',6)->where('category_child','in','7,32')->order('id', 'desc')->select()->toArray();
//是否是种植户
$farmerInfo['is_zz_user'] = false;
//是否是水产养殖户
$farmerInfo['is_sc_user'] = false;
//是否是家禽养殖户
$farmerInfo['is_jq_user'] = false;
//是否是大型动物养殖户
$farmerInfo['is_dw_user'] = false;
//土地总面积
$farmerInfo['total_land_area'] = 0;
//池塘总面积
$farmerInfo['total_pond_area'] = 0;
//家禽养殖场总面积
$farmerInfo['total_henhouse_area'] = 0;
//动物养殖场总面积
$farmerInfo['total_pasture_area'] = 0;
foreach($data as $v){
if($v['category_child'] == 7){
$farmerInfo['is_zz_user'] = true;
$farmerInfo['total_land_area'] += floatval($v['data']['area']);
$farmerInfo['land_detail'][] = [
'land_id' => $v['id'],
'land_area' => $v['data']['area'],
'land_notes' => $v['data']['notes'],
];
}
if($v['category_child'] == 32){
if($v['data']['breeding_type'] == 1){//水产
$farmerInfo['is_sc_user'] = true;
$farmerInfo['total_pond_area'] += floatval($v['data']['area']);
$farmerInfo['pond_detail'][] = [
'pond_id' => $v['id'],
'pond_area' => $v['data']['area'],
'pond_notes' => $v['data']['notes'],
];
}elseif ($v['data']['breeding_type'] == 2) {//脯乳动物
$farmerInfo['is_jq_user'] = true;
$farmerInfo['total_henhouse_area'] += floatval($v['data']['area']);
}elseif ($v['data']['breeding_type'] == 3){//家禽
$farmerInfo['is_dw_user'] = true;
$farmerInfo['total_pasture_area'] += floatval($v['data']['area']);
}
}
}
return $this->success('请求成功',$farmerInfo);
}
2023-10-23 17:55:25 +08:00
//获取农户土地信息
public function farmerLandInfo(): Json
{
//获取参数
$params = $this->request->post(['user_id','land_id']);
if(empty($params['user_id']) || empty($params['land_id'])){
return $this->fail('参数错误_worker');
}
//获取农户信息
$data = UserInformationgDemand::field('id,data')->where('id',$params['land_id'])->where('information_id', $params['user_id'])->where('category_id',6)->where('category_child',7)->findOrEmpty()->toArray();
2023-10-23 17:55:25 +08:00
if(empty($data)){
return $this->fail('数据不存在_worker');
}
$resData = [
'land_id' => $data['id'],
'land_area' => $data['data']['area']
];
return $this->success('请求成功',$resData);
}
//获取农户鱼塘信息
public function farmerPondInfo(): Json
{
//获取参数
$params = $this->request->post(['user_id','pond_id']);
if(empty($params['user_id']) || empty($params['pond_id'])){
return $this->fail('参数错误_worker');
}
//获取农户信息
$data = UserInformationgDemand::field('id,data')->where('id',$params['pond_id'])->where('information_id', $params['user_id'])->where('category_id',6)->where('category_child',32)->findOrEmpty()->toArray();
if(empty($data) || empty($data['data'])){
return $this->fail('数据不存在_worker');
}
if($data['data']['breeding_type'] != 1){
return $this->fail('数据错误_work');
}
$resData = [
'pond_id' => $data['id'],
'pond_area' => $data['data']['area']
];
return $this->success('请求成功',$resData);
}
2023-07-29 15:57:31 +08:00
}