2023-07-29 15:57:31 +08:00
< ? php
namespace app\common\model\information ;
use app\common\model\BaseModel ;
use think\facade\Db ;
use think\facade\Log ;
use app\common\logic\BaseLogic ;
2023-07-31 17:01:03 +08:00
use app\common\model\Company ;
2023-07-29 15:57:31 +08:00
class UserInformationg extends BaseModel
{
public static function list ( $param , $page = 1 , $size = 10 ){
2023-07-31 17:01:03 +08:00
return self :: where ( $param ) -> with ( 'company' )
-> field ( 'id,area_id,area_id as area_name,street_id,street_id as street_name,village_id,village_id as village_name, street_id as street_name,brigade_id,brigade_id as brigade_name,name,phone,age,address,create_time,update_time' )
-> page ( $page ) -> limit ( $size ) -> select ();
2023-07-29 15:57:31 +08:00
}
public static function add ( $param )
{
$family_json = json_encode ( $param [ 'family' ]);
$child_arr_json = json_encode ( $param [ 'child_arr' ]);
// 插入数据
$data = [
'create_user_id' => $param [ 'admin_id' ],
'name' => $param [ 'name' ],
'phone' => $param [ 'phone' ],
'age' => $param [ 'age' ],
'wechat' => $param [ 'wechat' ],
'area_id' => $param [ 'area_id' ],
'street_id' => $param [ 'street_id' ],
'village_id' => $param [ 'village_id' ],
'brigade_id' => $param [ 'brigade_id' ],
'address' => $param [ 'address' ],
'family' => $family_json ,
'child' => $param [ 'child' ],
'child_arr' => $child_arr_json ,
];
Db :: startTrans ();
try {
$result = self :: create ( $data );
2023-07-31 15:06:51 +08:00
foreach ( $param [ 'datas' ] as $k => $v ){
self :: informationg_demand ( $v , $result [ 'id' ], $param [ 'admin_id' ]);
2023-07-29 15:57:31 +08:00
}
2023-07-31 15:06:51 +08:00
// switch($param['data_type']){
// case 1:
// self::informationg_demand($param,$result['id']);
// break;
// }
2023-07-29 15:57:31 +08:00
Db :: commit ();
} catch ( \Exception $e ){
Db :: rollback ();
BaseLogic :: setError ( $e -> getMessage ());
return false ;
}
return true ;
}
2023-07-31 15:06:51 +08:00
public static function informationg_demand ( $param , $id , $admin_id ){
2023-07-29 15:57:31 +08:00
$data = [
2023-07-31 15:06:51 +08:00
'create_user_id' => $admin_id ,
2023-07-29 15:57:31 +08:00
'category_id' => $param [ 'category_id' ] ? ? 0 ,
'category_child' => $param [ 'category_child' ] ? ? 0 ,
'data' => json_encode ( $param [ 'datas' ]),
'create_time' => time (),
'update_time' => time (),
'status' => 1 ,
'information_id' => $id ,
];
UserInformationgDemand :: create ( $data );
}
2023-07-31 17:01:03 +08:00
public static function details ( $id ){
$item = self :: where ( 'id' , $id ) -> find ();
$item [ 'family' ] = json_decode ( $item [ 'family' ], true );
$item [ 'child_arr' ] = json_decode ( $item [ 'child_arr' ], true );
$data = UserInformationgDemand :: where ( 'create_user_id' , $item [ 'create_user_id' ]) -> select ();
$item [ 'datas' ] = [];
if ( $data ){
foreach ( $data as $k => $v ){
$datas = [];
$a = json_decode ( $v [ 'data' ], true );
$arr = [
'category_id' => $v [ 'category_id' ],
'category_child' => $v [ 'category_child' ],
'datas' => $a
];
if ( $a ){
array_push ( $datas , $arr );
}
$item [ 'datas' ] = $datas ;
}
}
return $item ;
}
public function company ()
{
return $this -> hasOne ( Company :: class , 'id' , 'company_id' ) -> field ([ 'id' , 'company_name' , 'admin_id' ]);
}
public function getCityNameAttr ( $value )
{
return Db :: name ( 'geo_city' ) -> where ([ 'city_code' => $this -> city ]) -> value ( 'city_name' );
}
public function getAreaNameAttr ( $value )
{
return Db :: name ( 'geo_area' ) -> where ([ 'area_code' => $this -> area ]) -> value ( 'area_name' );
}
public function getStreetNameAttr ( $value )
{
return Db :: name ( 'geo_street' ) -> where ([ 'street_code' => $this -> street ]) -> value ( 'street_name' );
}
2023-07-29 15:57:31 +08:00
}