love_php/app/Http/Controllers/Admin/PersonPortraitController.php
2026-04-02 09:20:51 +08:00

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('服务器休息,请稍后再试');
}
}
}