2023-07-29 15:57:31 +08:00
< ? php
namespace app\api\controller ;
2023-10-30 15:53:24 +08:00
use app\common\model\Company ;
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 ;
2023-10-21 17:58:56 +08:00
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 ;
2023-10-21 17:58:56 +08:00
use think\response\Json ;
2023-07-29 15:57:31 +08:00
class InformationController extends BaseApiController
{
2023-11-02 16:42:39 +08:00
public array $notNeedLogin = [ 'groupServiceInfo' , 'captainInfo' , 'farmerInfo' , 'farmerInfoByPhone' , 'farmerLandInfo' , 'farmerPondInfo' , 'farmerList' ];
2023-10-21 17:58:56 +08:00
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 ( '成功' );
}
2023-10-21 17:58:56 +08:00
2023-10-30 15:53:24 +08:00
//获取吓阻服务公司用户信息
public function groupServiceInfo () : Json
{
//获取参数
$params = $this -> request -> post ([ 'user_id' ]);
if ( empty ( $params [ 'user_id' ])){
return $this -> fail ( '参数错误_worker' );
}
$userData = User :: field ( 'id,company_id,nickname as name,avatar' ) -> where ( 'id' , $params [ 'user_id' ]) -> findOrEmpty ();
if ( $userData -> isEmpty ()){
return $this -> fail ( '用户数据不存在' );
}
$companyData = Company :: field ( 'id,company_name,company_type' ) -> where ( 'id' , $userData [ 'company_id' ]) -> findOrEmpty ();
if ( $companyData -> isEmpty () || $companyData [ 'company_type' ] != 18 ){
return $this -> fail ( '当前用户不是小组服务公司用户' );
}
$userData [ 'company_name' ] = $companyData [ 'company_name' ];
//获取小组服务公司下面的队长
$captainList = User :: field ( 'id,nickname as name,avatar,province,province province_name,city,city city_name,area,area area_name,street,street street_name,village,village village_name,brigade,brigade brigade_name' ) -> where ( 'company_id' , $userData [ 'company_id' ]) -> where ( 'is_captain' , 1 ) -> select () -> each ( function ( $item ){
$item [ 'address' ] = $item [ 'province_name' ] . $item [ 'city_name' ] . $item [ 'area_name' ] . $item [ 'street_name' ] . $item [ 'village_name' ] . $item [ 'brigade_name' ];
unset ( $item [ 'province' ], $item [ 'province_name' ], $item [ 'city' ], $item [ 'city_name' ], $item [ 'area' ], $item [ 'area_name' ], $item [ 'street' ], $item [ 'street_name' ], $item [ 'village' ], $item [ 'village_name' ], $item [ 'brigade' ], $item [ 'brigade_name' ]);
$farmerList = UserInformationg :: where ( 'create_user_id' , $item [ 'id' ]) -> field ( 'id' ) -> select () -> each ( function ( $val ){
//获取农户档案详情
$information = UserInformationgDemand :: field ( 'id,category_child,data' ) -> where ( 'information_id' , $val [ 'id' ]) -> where ( 'category_id' , 6 ) -> where ( 'category_child' , 'in' , '7,32' ) -> order ( 'id' , 'desc' ) -> select () -> toArray ();
//总面积
$val [ 'land_total_area' ] = 0 ;
$val [ 'pond_total_area' ] = 0 ;
$val [ 'animal_total_area' ] = 0 ;
$val [ 'poultry_total_area' ] = 0 ;
//种养类型
$val [ 'is_zz_user' ] = false ;
$val [ 'is_sc_user' ] = false ;
$val [ 'is_jc_user' ] = false ;
$val [ 'is_jq_user' ] = false ;
foreach ( $information as $v ){
if ( $v [ 'category_child' ] == 7 ){
$val [ 'is_zz_user' ] = true ;
$val [ 'land_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
}
if ( $v [ 'category_child' ] == 32 ){
if ( $v [ 'data' ][ 'breeding_type' ] == 1 ){ //水产
$val [ 'is_sc_user' ] = true ;
$val [ 'pond_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
} elseif ( $v [ 'data' ][ 'breeding_type' ] == 2 ) { //脯乳动物
$val [ 'is_jc_user' ] = true ;
$val [ 'animal_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
} elseif ( $v [ 'data' ][ 'breeding_type' ] == 3 ){ //家禽
$val [ 'is_jq_user' ] = true ;
$val [ 'poultry_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
}
}
}
$val [ 'total_area' ] = $val [ 'land_total_area' ] + $val [ 'pond_total_area' ] + $val [ 'animal_total_area' ] + $val [ 'poultry_total_area' ];
return $val ;
}) -> toArray ();
$item [ 'farmer_total' ] = count ( $farmerList );
$item [ 'farmer_area' ] = array_sum ( array_column ( $farmerList , 'total_area' ));
$item [ 'farmer_zz_total' ] = 0 ;
$item [ 'farmer_sc_total' ] = 0 ;
$item [ 'farmer_jc_total' ] = 0 ;
$item [ 'farmer_jq_total' ] = 0 ;
$item [ 'farmer_zz_area' ] = 0 ;
$item [ 'farmer_sc_area' ] = 0 ;
$item [ 'farmer_jc_area' ] = 0 ;
$item [ 'farmer_jq_area' ] = 0 ;
foreach ( $farmerList as $v ){
if ( $v [ 'is_zz_user' ]){
$item [ 'farmer_zz_total' ] += 1 ;
}
if ( $v [ 'is_sc_user' ]){
$item [ 'farmer_sc_total' ] += 1 ;
}
if ( $v [ 'is_jc_user' ]){
$item [ 'farmer_jc_total' ] += 1 ;
}
if ( $v [ 'is_jq_user' ]){
$item [ 'farmer_jq_total' ] += 1 ;
}
$item [ 'farmer_zz_area' ] += $v [ 'land_total_area' ];
$item [ 'farmer_sc_area' ] += $v [ 'pond_total_area' ];
$item [ 'farmer_jc_area' ] += $v [ 'animal_total_area' ];
$item [ 'farmer_jq_area' ] += $v [ 'poultry_total_area' ];
}
return $item ;
}) -> toArray ();
$userData [ 'captain_list' ] = $captainList ;
return $this -> success ( '请求成功' , $userData -> toArray ());
}
2023-10-30 15:00:14 +08:00
//获取生产队长信息
2023-10-30 15:03:06 +08:00
public function captainInfo () : Json
{
2023-10-30 15:00:14 +08:00
//获取参数
$params = $this -> request -> post ([ 'user_id' ]);
if ( empty ( $params [ 'user_id' ])){
return $this -> fail ( '参数错误_worker' );
}
2023-10-30 15:53:24 +08:00
$userData = User :: field ( 'id,nickname as name,avatar,province,province province_name,city,city city_name,area,area area_name,street,street street_name,village,village village_name,brigade,brigade brigade_name' ) -> where ( 'id' , $params [ 'user_id' ]) -> where ( 'is_captain' , 1 ) -> findOrEmpty ();
2023-10-30 15:00:14 +08:00
if ( $userData -> isEmpty ()){
return $this -> fail ( '用户数据不存在' );
}
$userData [ 'address' ] = $userData [ 'province_name' ] . $userData [ 'city_name' ] . $userData [ 'area_name' ] . $userData [ 'street_name' ] . $userData [ 'village_name' ] . $userData [ 'brigade_name' ];
unset ( $userData [ 'province' ], $userData [ 'province_name' ], $userData [ 'city' ], $userData [ 'city_name' ], $userData [ 'area' ], $userData [ 'area_name' ], $userData [ 'street' ], $userData [ 'street_name' ], $userData [ 'village' ], $userData [ 'village_name' ], $userData [ 'brigade' ], $userData [ 'brigade_name' ]);
//获取生产队长下面的农户
$farmerList = UserInformationg :: where ( 'create_user_id' , $params [ 'user_id' ]) -> field ( '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' ) -> select () -> each ( function ( $item ){
$item [ 'address' ] = $item [ 'area_name' ] . $item [ 'street_name' ] . $item [ 'village_name' ] . $item [ 'brigade_name' ];
unset ( $item [ 'area_id' ], $item [ 'area_name' ], $item [ 'street_id' ], $item [ 'street_name' ], $item [ 'village_id' ], $item [ 'village_name' ], $item [ 'brigade_id' ], $item [ 'brigade_name' ]);
//获取农户档案详情
$information = UserInformationgDemand :: field ( 'id,category_child,data' ) -> where ( 'information_id' , $item [ 'id' ]) -> where ( 'category_id' , 6 ) -> where ( 'category_child' , 'in' , '7,32' ) -> order ( 'id' , 'desc' ) -> select () -> toArray ();
//总面积
$item [ 'land_total_area' ] = 0 ;
$item [ 'pond_total_area' ] = 0 ;
$item [ 'animal_total_area' ] = 0 ;
$item [ 'poultry_total_area' ] = 0 ;
//种养类型
$item [ 'is_zz_user' ] = false ;
$item [ 'is_sc_user' ] = false ;
$item [ 'is_jc_user' ] = false ;
$item [ 'is_jq_user' ] = false ;
foreach ( $information as $v ){
if ( $v [ 'category_child' ] == 7 ){
$item [ 'is_zz_user' ] = true ;
$item [ 'land_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
}
if ( $v [ 'category_child' ] == 32 ){
if ( $v [ 'data' ][ 'breeding_type' ] == 1 ){ //水产
$item [ 'is_sc_user' ] = true ;
$item [ 'pond_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
} elseif ( $v [ 'data' ][ 'breeding_type' ] == 2 ) { //脯乳动物
$item [ 'is_jc_user' ] = true ;
$item [ 'animal_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
} elseif ( $v [ 'data' ][ 'breeding_type' ] == 3 ){ //家禽
$item [ 'is_jq_user' ] = true ;
$item [ 'poultry_total_area' ] += floatval ( $v [ 'data' ][ 'area' ]);
}
}
}
$item [ 'total_area' ] = $item [ 'land_total_area' ] + $item [ 'pond_total_area' ] + $item [ 'animal_total_area' ] + $item [ 'poultry_total_area' ];
return $item ;
}) -> toArray ();
$userData [ 'farmer_total' ] = count ( $farmerList );
$userData [ 'farmer_area' ] = array_sum ( array_column ( $farmerList , 'total_area' ));
$userData [ 'farmer_zz_total' ] = 0 ;
$userData [ 'farmer_sc_total' ] = 0 ;
$userData [ 'farmer_jc_total' ] = 0 ;
$userData [ 'farmer_jq_total' ] = 0 ;
$userData [ 'farmer_zz_area' ] = 0 ;
$userData [ 'farmer_sc_area' ] = 0 ;
$userData [ 'farmer_jc_area' ] = 0 ;
$userData [ 'farmer_jq_area' ] = 0 ;
foreach ( $farmerList as $v ){
if ( $v [ 'is_zz_user' ]){
$userData [ 'farmer_zz_total' ] += 1 ;
}
if ( $v [ 'is_sc_user' ]){
$userData [ 'farmer_sc_total' ] += 1 ;
}
if ( $v [ 'is_jc_user' ]){
$userData [ 'farmer_jc_total' ] += 1 ;
}
if ( $v [ 'is_jq_user' ]){
$userData [ 'farmer_jq_total' ] += 1 ;
}
$userData [ 'farmer_zz_area' ] += $v [ 'land_total_area' ];
$userData [ 'farmer_sc_area' ] += $v [ 'pond_total_area' ];
$userData [ 'farmer_jc_area' ] += $v [ 'animal_total_area' ];
$userData [ 'farmer_jq_area' ] += $v [ 'poultry_total_area' ];
}
$userData [ 'farmer_list' ] = $farmerList ;
2023-10-30 15:03:06 +08:00
return $this -> success ( '请求成功' , $userData -> toArray ());
2023-10-30 15:00:14 +08:00
}
2023-10-21 17:58:56 +08:00
//获取农户信息,该接口溯源系统调用
public function farmerInfo () : Json
{
//获取参数
2023-10-23 09:32:15 +08:00
$params = $this -> request -> post ([ 'user_id' ]);
2023-10-21 17:58:56 +08:00
if ( empty ( $params [ 'user_id' ])){
2023-10-23 17:55:25 +08:00
return $this -> fail ( '参数错误_worker' );
2023-10-21 17:58:56 +08:00
}
//获取农户信息
2023-11-01 16:29:15 +08:00
$farmerInfo = UserInformationg :: alias ( 'f' )
-> leftJoin ( 'company c' , 'f.company_id = c.id' )
-> leftJoin ( 'user u' , 'u.id = f.create_user_id' )
-> leftJoin ( 'user g' , 'g.id = c.user_id' )
-> where ( 'f.id' , $params [ 'user_id' ])
-> field ( 'f.id,f.create_user_id,f.company_id,f.name,f.phone,f.area_id,f.street_id,f.village_id,f.brigade_id,f.area_id area_name,f.street_id street_name,f.village_id village_name,f.brigade_id brigade_name,c.company_name,f.address,u.nickname as captain_name,g.nickname as group_name' )
-> findOrEmpty () -> toArray ();
2023-10-23 17:55:25 +08:00
if ( empty ( $farmerInfo )){
return $this -> fail ( '用户不存在_worker' );
}
2023-10-21 17:58:56 +08:00
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
2023-11-02 16:42:39 +08:00
//通过手机号码查找农户
public function farmerInfoByPhone () : Json
{
$params = $this -> request -> post ([ 'phone' ]);
if ( empty ( $params [ 'phone' ])){
return $this -> fail ( '参数错误' );
}
$data = UserInformationg :: where ( 'phone' , $params [ 'phone' ])
-> field ( '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,address' )
-> findOrEmpty ();
return ! $data -> isEmpty () ? $this -> success ( '请求成功' , $data -> toArray ()) : $this -> fail ( '请求失败' );
}
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' );
}
//获取农户信息
2023-10-26 09:14:28 +08:00
$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 );
}
2023-10-26 09:14:28 +08:00
//获取农户鱼塘信息
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-11-01 11:24:07 +08:00
//获取农户列表
2023-11-01 16:29:15 +08:00
public function farmerList () : Json
{
2023-11-01 11:24:07 +08:00
$params = $this -> request -> post ([ 'farmer_name' , 'farmer_phone' , 'group_name' , 'captain_name' , 'page_no' , 'page_size' ]);
if ( empty ( $params [ 'page_no' ]) || empty ( $params [ 'page_size' ])){
return $this -> fail ( '参数错误' );
}
2023-11-01 16:29:15 +08:00
$search = [];
if ( ! empty ( $params [ 'farmer_name' ])){
$search [] = [ 'f.name' , 'like' , '%' . $params [ 'farmer_name' ] . '%' ];
}
if ( ! empty ( $params [ 'farmer_phone' ])){
$search [] = [ 'f.phone' , 'like' , '%' . $params [ 'farmer_phone' ] . '%' ];
}
if ( ! empty ( $params [ 'group_name' ])){
$search [] = [ 'g.nickname' , 'like' , '%' . $params [ 'group_name' ] . '%' ];
}
if ( ! empty ( $params [ 'captain_name' ])){
$search [] = [ 'u.nickname' , 'like' , '%' . $params [ 'captain_name' ] . '%' ];
}
2023-11-01 11:24:07 +08:00
$data = UserInformationg :: alias ( 'f' )
2023-11-01 16:29:15 +08:00
-> field ( 'f.id,f.create_user_id,f.company_id,f.name,f.phone,f.area_id,f.street_id,f.village_id,f.brigade_id,c.company_name,u.nickname as captain_name,g.nickname as group_name,f.area_id area_name,f.street_id street_name,f.village_id village_name,f.brigade_id brigade_name,f.address' )
2023-11-01 11:24:07 +08:00
-> leftJoin ( 'company c' , 'f.company_id = c.id' )
-> leftJoin ( 'user u' , 'u.id = f.create_user_id' )
-> leftJoin ( 'user g' , 'g.id = c.user_id' )
2023-11-01 16:29:15 +08:00
-> where ( $search )
-> page ( $params [ 'page_no' ], $params [ 'page_size' ]) -> order ( 'id desc' ) -> select ()
-> each ( function ( $item ){
$item [ 'address' ] = $item [ 'area_name' ] . $item [ 'street_name' ] . $item [ 'village_name' ] . $item [ 'brigade_name' ] . $item [ 'address' ];
unset ( $item [ 'area_name' ], $item [ 'street_name' ], $item [ 'village_name' ], $item [ 'brigade_name' ], $item [ 'area_id' ], $item [ 'street_id' ], $item [ 'village_id' ], $item [ 'brigade_id' ]);
$userInformationgDemand = UserInformationgDemand :: field ( 'id,category_child,data' ) -> where ( 'information_id' , $item [ 'id' ]) -> where ( 'category_id' , 6 ) -> where ( 'category_child' , 'in' , '7,32' ) -> order ( 'id' , 'desc' ) -> select () -> toArray ();
//是否是种植户
$is_zz_user = false ;
//是否是水产养殖户
$is_sc_user = false ;
//是否是家禽养殖户
$is_jq_user = false ;
//是否是大型动物养殖户
$is_dw_user = false ;
//土地总面积
$total_land_area = 0 ;
//池塘总面积
$total_pond_area = 0 ;
//家禽养殖场总面积
$total_henhouse_area = 0 ;
//动物养殖场总面积
$total_pasture_area = 0 ;
foreach ( $userInformationgDemand as $v ){
if ( $v [ 'category_child' ] == 7 ){
$is_zz_user = true ;
$total_land_area += floatval ( $v [ 'data' ][ 'area' ]);
}
if ( $v [ 'category_child' ] == 32 ){
if ( $v [ 'data' ][ 'breeding_type' ] == 1 ){ //水产
$is_sc_user = true ;
$total_pond_area += floatval ( $v [ 'data' ][ 'area' ]);
} elseif ( $v [ 'data' ][ 'breeding_type' ] == 2 ) { //脯乳动物
$is_jq_user = true ;
$total_henhouse_area += floatval ( $v [ 'data' ][ 'area' ]);
} elseif ( $v [ 'data' ][ 'breeding_type' ] == 3 ){ //家禽
$is_dw_user = true ;
$total_pasture_area += floatval ( $v [ 'data' ][ 'area' ]);
}
}
}
$str = [];
$area = [];
if ( $is_zz_user ){
$str [] = '种植户' ;
$area [] = $total_land_area ;
}
if ( $is_sc_user ){
$str [] = '水产养殖户' ;
$area [] = $total_pond_area ;
}
if ( $is_jq_user ){
$str [] = '家禽养殖户' ;
$area [] = $total_henhouse_area ;
}
if ( $is_dw_user ){
$str [] = '家畜养殖户' ;
$area [] = $total_pasture_area ;
}
$item [ 'farmer_type' ] = implode ( '/' , $str );
$item [ 'farmer_area' ] = implode ( '/' , $area );
return $item ;
}) -> toArray ();
$count = UserInformationg :: alias ( 'f' )
-> field ( 'f.id,f.create_user_id,f.company_id,f.name,f.phone,f.area_id,f.street_id,f.village_id,f.brigade_id,c.company_name,u.nickname as captain_name,g.nickname as group_name,f.area_id area_name,f.street_id street_name,f.village_id village_name,f.brigade_id brigade_name,f.address' )
-> leftJoin ( 'company c' , 'f.company_id = c.id' )
-> leftJoin ( 'user u' , 'u.id = f.create_user_id' )
-> leftJoin ( 'user g' , 'g.id = c.user_id' )
-> where ( $search )
-> count ();
$result = [
'count' => $count ,
'page_no' => $params [ 'page_no' ],
'page_size' => $params [ 'page_size' ],
'lists' => $data
];
return $this -> success ( '请求成功' , $result );
2023-11-01 11:24:07 +08:00
}
2023-07-29 15:57:31 +08:00
}