132 lines
6.1 KiB
PHP
132 lines
6.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\CommunityActivity;
|
|
use App\Models\Portrait;
|
|
use App\Models\PortraitRecord;
|
|
use App\Models\ProfileCourtship;
|
|
use App\Models\User;
|
|
use App\Models\UserInfo;
|
|
|
|
class PersonPortraitController extends Controller
|
|
{
|
|
//用户画像控制器
|
|
//填充用户画像内容
|
|
public function fullPortrait(Request $request,$user_id){
|
|
try {
|
|
$user = User::find($user_id);
|
|
if(empty($user)) return $this->failure('该用户不存在');
|
|
$interest_label = $request->interest;
|
|
$marry_in = $request->marry_in;
|
|
$character = $request->character;
|
|
$family_members = $request->family_members;
|
|
$state = $request->state;
|
|
$economic_situation_work = $request->economic_situation_work;
|
|
$economic_situation_job = $request->economic_situation_job;
|
|
$economic_situation_salary = $request->economic_situation_salary;
|
|
$house_array = ['has_house'=>$request->has_house,'house_location'=>$request->house_location];
|
|
$raw_family = $request->raw_family;
|
|
$work_requirement = $request->work_requirement;
|
|
$body_requirement = $request->body_requirement;
|
|
$child_array = ['single_accept'=>$request->single_accept,'divorce_accept'=>$request->divorce_accept,'child_accept'=>$request->child_accept];
|
|
$area_requirement = $request->area_requirement;
|
|
$economic_requirement = $request->economic_requirement;
|
|
$belief_requirement = $request->belief_requirement;
|
|
$family_requirement = $request->family_requirement;
|
|
$accept_age = null;
|
|
if($request->min_age || $request->max_age){
|
|
$accept_age = $request->min_age.'-'.$request->max_age;
|
|
}
|
|
// $m_user_id = $this->matchMerchantUser($user_id);
|
|
Portrait::updateOrCreate(['user_id'=>$user_id],[
|
|
'interest_label'=>$interest_label,
|
|
'marry_in'=>$marry_in,
|
|
'character'=>$character,
|
|
'family_members'=>$family_members,
|
|
'state'=>$state,
|
|
'economic_situation_work'=>$economic_situation_work,
|
|
'economic_situation_job'=>$economic_situation_job,
|
|
'economic_situation_salary'=>$economic_situation_salary,
|
|
'economic_situation_house'=>json_encode($house_array),
|
|
'raw_family'=>$raw_family,
|
|
'work_requirement'=>$work_requirement,
|
|
'body_requirement'=>$body_requirement,
|
|
'child_requirement'=>json_encode($child_array),
|
|
'area_requirement'=>$area_requirement,
|
|
'belief_requirement'=>$belief_requirement,
|
|
'family_requirement'=>$family_requirement,
|
|
'age_requirement'=>$accept_age,
|
|
'economic_requirement'=>$economic_requirement,
|
|
'admin_id'=>auth()->id(),
|
|
]);
|
|
if($request->enterprise_wechat || $request->communication_situation){
|
|
UserInfo::updateOrCreate(['user_id'=>$user_id],[
|
|
'communication_situation'=>$request->communication_situation,
|
|
'enterprise_wechat' => json_encode($request->enterprise_wechat),
|
|
]);
|
|
}
|
|
return $this->success('ok');
|
|
} catch (\Exception $e) {
|
|
$this->getError($e);
|
|
return $this->failure('服务器休息,请稍后再试');
|
|
}
|
|
}
|
|
|
|
//获取用户画像详情
|
|
public function userProtrait(Request $request,$user_id){
|
|
try {
|
|
$user = User::where('id',$user_id)->first();
|
|
if(empty($user)) return $this->failure('该用户不存在');
|
|
$profile = ProfileCourtship::firstOrCreate(['user_id'=>$user_id]);
|
|
$profile->mate_conditon = json_decode($profile->mate_conditon,true);
|
|
$info = UserInfo::where('user_id',$user_id)->select('user_id','enterprise_wechat','communication_situation')->first();
|
|
if($info) $info->enterprise_wechat = json_decode($info->enterprise_wechat);
|
|
$portrait = Portrait::where('user_id',$user_id)->first();
|
|
if(!$portrait){
|
|
return $this->success('ok',compact('portrait','info','user','profile'));
|
|
}
|
|
$portrait->child_requirement = json_decode($portrait->child_requirement,true);
|
|
$portrait->economic_situation_house = json_decode($portrait->economic_situation_house,true);
|
|
$portrait->belief = $profile->belief;
|
|
$portrait->interest_hobby = $profile->interest_hobby;
|
|
$mate_conditon = $profile->mate_conditon;
|
|
$age = '未填写';
|
|
if($mate_conditon){
|
|
if(array_key_exists('age',$mate_conditon)){
|
|
$age = $mate_conditon['age'];
|
|
}
|
|
}
|
|
$portrait->age = $age;
|
|
return $this->success('ok',compact('portrait','info','user','profile'));
|
|
} catch (\Exception $e) {
|
|
$this->getError($e);
|
|
return $this->failure('服务器休息,请稍后再试');
|
|
}
|
|
}
|
|
//推荐记录
|
|
public function recommendLog(Request $request,$user_id){
|
|
try {
|
|
$recommend = PortraitRecord::with('recommendUser:id,nickname,photo,circle_avatar,app_avatar')
|
|
->where('recommend_type','user')->whereHas('recommendUser')
|
|
->where('user_id',$user_id)->orderBy('id','desc')
|
|
->paginate();
|
|
foreach ($recommend as $key => $result) {
|
|
$match_type = $result->match_type;
|
|
if($result->$match_type){
|
|
$result->title = $result->$match_type->title;
|
|
unset($result->$match_type);
|
|
}else{
|
|
$result->title = '未获取';
|
|
}
|
|
}
|
|
return $this->success('ok',$recommend);
|
|
} catch (\Exception $e) {
|
|
$this->getError($e);
|
|
return $this->failure('服务器休息,请稍后再试');
|
|
}
|
|
}
|
|
}
|