2023-07-29 15:57:31 +08:00
< ? php
2023-08-01 15:41:14 +08:00
namespace app\common\model\informationg ;
2023-07-29 15:57:31 +08:00
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
{
2023-08-01 15:41:14 +08:00
/**
* @ notes 关联商机信息
* @ return \think\model\relation\HasOne
* @ author likeadmin
* @ date 2023 / 08 / 01 15 : 00
*/
public function informationInfo ()
{
return $this -> hasOne ( \app\common\model\informationg\UserInformationgDemand :: class , 'information_id' , 'id' );
}
2023-07-29 15:57:31 +08:00
2023-08-01 15:41:14 +08:00
public static function list ( $param , $page = 1 , $size = 10 )
{
2023-07-31 17:01:03 +08:00
return self :: where ( $param ) -> with ( 'company' )
2023-08-01 15:41:14 +08:00
-> 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' )
-> order ( 'id' , 'desc' )
-> 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 = [
2023-08-01 15:41:14 +08:00
'create_user_id' => $param [ 'admin_id' ],
2023-07-29 15:57:31 +08:00
'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 ();
2023-08-01 15:41:14 +08:00
try {
2023-07-29 15:57:31 +08:00
$result = self :: create ( $data );
2023-08-01 15:41:14 +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 ();
2023-08-01 15:41:14 +08:00
} catch ( \Exception $e ) {
2023-07-29 15:57:31 +08:00
Db :: rollback ();
BaseLogic :: setError ( $e -> getMessage ());
return false ;
}
return true ;
}
2023-08-01 15:41:14 +08:00
public static function informationg_demand ( $param , $id , $admin_id )
{
$data = [
'create_user_id' => $admin_id ,
'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 ,
2023-07-29 15:57:31 +08:00
];
UserInformationgDemand :: create ( $data );
}
2023-07-31 17:01:03 +08:00
2023-08-01 15:41:14 +08:00
public static function details ( $id )
{
$item = self :: where ( 'id' , $id ) -> field ( '*,area_id area_name,street_id street_name,village_id village_name,brigade_id brigade_name' ) -> find ();
$item [ 'family' ] = json_decode ( $item [ 'family' ], true );
$item [ 'child_arr' ] = json_decode ( $item [ 'child_arr' ], true );
$data = UserInformationgDemand :: where ( 'information_id' , $id ) -> order ( 'id' , 'desc' ) -> select ();
$item [ 'datas' ] = [];
$datas = [];
if ( $data ) {
foreach ( $data as $k => $v ) {
$a = json_decode ( $v [ 'data' ], true );
$arr = [
'id' => $v [ 'id' ],
'category_id' => $v [ 'category_id' ],
'category_child' => $v [ 'category_child' ],
'datas' => $a
2023-07-31 17:01:03 +08:00
];
2023-08-01 15:41:14 +08:00
if ( $a ) {
array_push ( $datas , $arr );
2023-07-31 17:01:03 +08:00
}
}
2023-08-01 15:41:14 +08:00
$item [ 'datas' ] = $datas ;
2023-07-31 17:01:03 +08:00
}
return $item ;
}
public function company ()
{
2023-08-01 15:41:14 +08:00
return $this -> hasOne ( Company :: class , 'id' , 'company_id' ) -> field ([ 'id' , 'company_name' , 'admin_id' ]);
2023-07-31 17:01:03 +08:00
}
public function getCityNameAttr ( $value )
{
return Db :: name ( 'geo_city' ) -> where ([ 'city_code' => $this -> city ]) -> value ( 'city_name' );
}
public function getAreaNameAttr ( $value )
{
2023-08-01 14:37:06 +08:00
return Db :: name ( 'geo_area' ) -> where ([ 'area_code' => $this -> area_id ]) -> value ( 'area_name' );
2023-07-31 17:01:03 +08:00
}
public function getStreetNameAttr ( $value )
{
2023-08-01 14:37:06 +08:00
return Db :: name ( 'geo_street' ) -> where ([ 'street_code' => $this -> street_id ]) -> value ( 'street_name' );
}
public function getVillageNameAttr ( $value )
{
2023-08-01 15:43:42 +08:00
return Db :: name ( 'geo_village' ) -> where ([ 'village_code' => $this -> village_id ]) -> value ( 'village_name' );
2023-08-01 14:37:06 +08:00
}
public function getBrigadeNameAttr ( $value )
{
return Db :: name ( 'geo_brigade' ) -> where ([ 'id' => $this -> brigade_id ]) -> value ( 'brigade_name' );
2023-07-31 17:01:03 +08:00
}
2023-07-29 15:57:31 +08:00
}