You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
221 lines
8.3 KiB
221 lines
8.3 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|
// +----------------------------------------------------------------------
|
|
// | 官方网址:https://www.niucloud.com
|
|
// +----------------------------------------------------------------------
|
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Niucloud Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\api\controller\apiController;
|
|
|
|
use app\Request;
|
|
use app\service\api\apiService\CustomerResourcesService;
|
|
use core\base\BaseApiService;
|
|
|
|
/**
|
|
* 客户资源相关接口
|
|
* Class Personnel
|
|
* @package app\api\controller\apiController
|
|
*/
|
|
class CustomerResources extends BaseApiService
|
|
{
|
|
|
|
|
|
//获取全部客户资源
|
|
public function getAll(Request $request){
|
|
|
|
$name = $request->param('name', '');//客户姓名
|
|
if(empty($name)){
|
|
return fail("缺少客户姓名");
|
|
}
|
|
|
|
$where = [
|
|
'name'=>$name
|
|
];
|
|
$res = (new CustomerResourcesService())->getAll($where);
|
|
if(!$res['code']){
|
|
return fail($res['msg']);
|
|
}
|
|
return success($res['data']);
|
|
}
|
|
|
|
//客户资源添加
|
|
public function add(Request $request){
|
|
|
|
$date = date('Y-m-d');
|
|
|
|
$promised_visit_time = $request->param('promised_visit_time', '');
|
|
if($promised_visit_time){
|
|
$promised_visit_time = date('Y-m-d H:i:s',strtotime($promised_visit_time));
|
|
}
|
|
|
|
|
|
$optional_class_time = $request->param('optional_class_time', '');
|
|
if($optional_class_time){
|
|
$optional_class_time = date('Y-m-d H:i:s',strtotime($optional_class_time));
|
|
}
|
|
|
|
$customer_resources_data = [
|
|
"create_year_month"=>date('Y-m'),
|
|
"create_date"=>date('Y-m-d'),
|
|
"source_channel" => $request->param('source_channel', ''),
|
|
"source" => $request->param('source', ''),
|
|
"consultant" => $request->param('consultant', ''),
|
|
"name" => $request->param('name', ''),
|
|
"age" => $request->param('age', ''),
|
|
"gender" => $request->param('gender', ''),
|
|
"phone_number" => $request->param('phone_number', ''),
|
|
"demand" => $request->param('demand', ''),
|
|
"decision_maker" => $request->param('decision_maker', ''),
|
|
"initial_intent" => $request->param('initial_intent', ''),
|
|
"status" => $request->param('status', ''),
|
|
"purchasing_power" => $request->param('purchasing_power', ''),
|
|
"cognitive_idea" => $request->param('cognitive_idea', ''),
|
|
"optional_class_time" => $optional_class_time,
|
|
"distance" => $request->param('distance', ''),
|
|
];
|
|
|
|
$six_speed_data = [
|
|
"purchase_power" => $request->param('purchasing_power', ''),
|
|
"concept_awareness" => $request->param('cognitive_idea', ''),
|
|
"promised_visit_time" => $promised_visit_time,//承诺到访时间
|
|
"preferred_class_time" => $optional_class_time,//可选上课时间
|
|
"distance" => $request->param('distance', ''),//距离
|
|
"communication" => $request->param('communication', ''),//沟通备注
|
|
"staff_id" => $request->param('staff_id', ''),//人员ID
|
|
];
|
|
|
|
foreach($customer_resources_data as $k=>$v){
|
|
if(!isset($v) || $v === ''){
|
|
return fail("缺少必填项{$k}");
|
|
}
|
|
}
|
|
foreach($six_speed_data as $k=>$v){
|
|
if(!isset($v) || $v === ''){
|
|
return fail("缺少必填项{$k}");
|
|
}
|
|
}
|
|
|
|
|
|
$res = (new CustomerResourcesService())->addData($customer_resources_data,$six_speed_data);
|
|
if(!$res['code']){
|
|
return fail($res['msg']);
|
|
}
|
|
return success([]);
|
|
}
|
|
|
|
//客户资源-编辑
|
|
public function edit(Request $request){
|
|
|
|
$resource_sharing_id = $request->param('resource_sharing_id', '');//资源共享id
|
|
|
|
$customer_resources_id = $request->param('id', '');//客户资源表id
|
|
|
|
$promised_visit_time = $request->param('promised_visit_time', '');
|
|
if($promised_visit_time){
|
|
$promised_visit_time = date('Y-m-d H:i:s',strtotime($promised_visit_time));
|
|
}
|
|
|
|
|
|
$optional_class_time = $request->param('optional_class_time', '');
|
|
if($optional_class_time){
|
|
$optional_class_time = date('Y-m-d H:i:s',strtotime($optional_class_time));
|
|
}
|
|
|
|
|
|
if(empty($customer_resources_id)){
|
|
return fail("缺少客户id");
|
|
}
|
|
|
|
$where=[
|
|
'id'=>$customer_resources_id
|
|
];
|
|
|
|
//客户资源数据
|
|
$customer_resources_data = [
|
|
"source_channel" => $request->param('source_channel', ''),//来源渠道
|
|
"source" => $request->param('source', ''),//来源
|
|
"name" => $request->param('name', ''),//姓名
|
|
"age" => $request->param('age', ''),//年龄
|
|
"gender" => $request->param('gender', ''),//性别
|
|
"phone_number" => $request->param('phone_number', ''),//联系电话
|
|
"demand" => $request->param('demand', ''),//需求
|
|
"decision_maker" => $request->param('decision_maker', ''),//决策人
|
|
"initial_intent" => $request->param('initial_intent', ''),//客户初步意向度
|
|
"status" => $request->param('status', ''),//客户状态
|
|
"purchasing_power" => $request->param('purchasing_power', ''),//购买力
|
|
"cognitive_idea" => $request->param('cognitive_idea', ''),//认知理念
|
|
"optional_class_time" => $optional_class_time,//可选上课时间
|
|
"distance" => $request->param('distance', ''),//距离
|
|
];
|
|
|
|
//六要素相关数据
|
|
$six_speed_data = [
|
|
"purchase_power" => $request->param('purchasing_power', ''),//需求购买力
|
|
"concept_awareness" => $request->param('cognitive_idea', ''),//认知理念
|
|
"promised_visit_time" => $promised_visit_time,//承诺到访时间
|
|
"preferred_class_time" => $optional_class_time,//可选上课时间
|
|
"distance" => $request->param('distance', ''),//距离
|
|
"communication" => $request->param('communication', ''),//沟通备注
|
|
"staff_id" => $request->param('staff_id', ''),//人员ID
|
|
|
|
"first_visit_status" => $request->param('first_visit_status', null),//一访情况
|
|
"second_visit_status" => $request->param('second_visit_status', null),//二访情况
|
|
];
|
|
|
|
foreach($customer_resources_data as $k=>$v){
|
|
if(!isset($v) || $v === ''){
|
|
return fail("缺少必填项{$k}");
|
|
}
|
|
}
|
|
foreach($six_speed_data as $k=>$v){
|
|
// 排除 first_visit_status 和 second_visit_status 的必填校验
|
|
if (in_array($k, ['first_visit_status', 'second_visit_status'])) {
|
|
continue;
|
|
}
|
|
if(!isset($v) || $v === ''){
|
|
return fail("缺少必填项{$k}");
|
|
}
|
|
}
|
|
|
|
|
|
$res = (new CustomerResourcesService())->editData($where,$customer_resources_data,$six_speed_data);
|
|
if(!$res['code']){
|
|
return fail($res['msg']);
|
|
}
|
|
return success([]);
|
|
}
|
|
|
|
//客户资源-修改记录列表
|
|
public function getEditLogList(Request $request){
|
|
//前端要传递分页(page,limit)参数
|
|
$customer_resource_id = $request->param('customer_resource_id','');
|
|
$type = $request->param('type','resource');//查询类型|resource=客户资源,six_speed=六要素
|
|
|
|
if(empty($customer_resource_id) || empty($type)){
|
|
return fail('缺少必要参数');
|
|
}
|
|
|
|
if(!in_array($type,['resource','six_speed'])){
|
|
return fail('类型不正确');
|
|
}
|
|
|
|
$where = [
|
|
'customer_resource_id' =>$customer_resource_id
|
|
];
|
|
|
|
if($type == 'resource'){
|
|
//resource=客户资源
|
|
$res =(new CustomerResourcesService())->getCustomerResourceChangesEditLog($where);
|
|
}else{
|
|
$res =(new CustomerResourcesService())->getSixSpeedModificationEditLog($where);
|
|
}
|
|
|
|
return success($res);
|
|
}
|
|
|
|
|
|
}
|
|
|