hasOne(\app\common\model\informationg\UserInformationgDemand::class, 'information_id', 'id'); } 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') ->order('id','desc') ->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'], 'sex'=>$param['sex'], 'id_card'=>$param['id_card'], '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) { if(isset($param['card_id']) &&$param['card_id'] >0){ $category_id=Db::name('category_business')->where('id',$param['card_id'])->value('pid'); $category_child=$param['card_id']; }else{ $category_id=0; $category_child=0; } $data = [ 'create_user_id' => $admin_id, 'category_id' => $category_id, 'category_child' => $category_child, 'data' => json_encode($param['datas']), 'create_time' => time(), 'update_time' => time(), 'status' => 1, 'information_id' => $id, ]; return UserInformationgDemand::create($data); } 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['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_id])->value('area_name'); } public function getStreetNameAttr($value) { return Db::name('geo_street')->where(['street_code' => $this->street_id])->value('street_name'); } public function getVillageNameAttr($value) { return Db::name('geo_village')->where(['village_code' => $this->village_id])->value('village_name'); } public function getBrigadeNameAttr($value) { return Db::name('geo_brigade')->where(['id' => $this->brigade_id])->value('brigade_name'); } }