TaskSystem/app/common/model/information/UserInformationg.php
2023-07-31 17:01:03 +08:00

121 lines
3.9 KiB
PHP

<?php
namespace app\common\model\information;
use app\common\model\BaseModel;
use think\facade\Db;
use think\facade\Log;
use app\common\logic\BaseLogic;
use app\common\model\Company;
class UserInformationg extends BaseModel
{
public static function list($param,$page=1,$size=10){
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();
}
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);
foreach($param['datas'] as $k=>$v){
self::informationg_demand($v,$result['id'],$param['admin_id']);
}
// switch($param['data_type']){
// case 1:
// self::informationg_demand($param,$result['id']);
// break;
// }
Db::commit();
}catch(\Exception $e){
Db::rollback();
BaseLogic::setError($e->getMessage());
return false;
}
return true;
}
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,
];
UserInformationgDemand::create($data);
}
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');
}
}