Browse Source

feat(customer-resources): 添加一访二访功能并优化客户资源处理逻辑

- 在 CustomerResources 控制器中添加 first_visit_status 和 second_visit_status 字段
- 修改 CustomerResourcesService 服务,增加创建用户账号逻辑
- 优化 ResourceSharingService 中的数据处理方式
master
liutong 10 months ago
parent
commit
26c26e8d8d
  1. 7
      niucloud/app/api/controller/apiController/CustomerResources.php
  2. 41
      niucloud/app/service/api/apiService/CustomerResourcesService.php
  3. 6
      niucloud/app/service/api/apiService/ResourceSharingService.php

7
niucloud/app/api/controller/apiController/CustomerResources.php

@ -131,6 +131,9 @@ class CustomerResources extends BaseApiService
"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){
@ -139,6 +142,10 @@ class CustomerResources extends BaseApiService
}
}
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}");
}

41
niucloud/app/service/api/apiService/CustomerResourcesService.php

@ -15,6 +15,7 @@ use app\model\campus_person_role\CampusPersonRole;
use app\model\customer_resource_changes\CustomerResourceChanges;
use app\model\customer_resources\CustomerResources;
use app\model\dict\Dict;
use app\model\member\Member;
use app\model\personnel\Personnel;
use app\model\resource_sharing\ResourceSharing;
use app\model\six_speed\SixSpeed;
@ -122,10 +123,47 @@ class CustomerResourcesService extends BaseApiService
//开启事物
Db::startTrans();
try {
$customer_resources = CustomerResources::where('id', $where['id'])->find();
$six_speed = SixSpeed::where('resource_id', $where['id'])->find();
if ($customer_resources) {
$customer_resources = $customer_resources->toArray();
if(!$customer_resources['member_id'] && $six_speed){
//新数据存在一访问 或者旧数据存在一访的情况 && 这用户没注册过member账号的情况下才给他创建member账号
if(!empty($six_speed_data['first_visit_status']) || $six_speed['first_visit_status']){
$sex = 0;
switch ($customer_resources_data['gender']) {
case 'male'://男
$sex = 1;
break;
case 'female'://女
$sex = 2;
break;
default://其他
$sex = 0;
break;
}
$password = create_password($customer_resources_data['phone_number']);//创建密码
//给用户创建member账号
$member_id = Member::insertGetId([
'username'=>$customer_resources_data['phone_number'],//会员用户名
'mobile'=>$customer_resources_data['phone_number'],//手机号
'password'=>$password,//会员密码
'nickname'=>$customer_resources_data['name'],//会员昵称
'sex'=>$sex,//性别 0保密 1男 2女
'member_time'=>time(),//成为会员时间
]);
if($member_id){
$customer_resources_data['member_id'] = $member_id;
}else{
Db::rollback();
$res['msg'] = '创建用户账号失败';
return $res;
}
}
}
}
$update_1 = CustomerResources::where('id', $where['id'])->update($customer_resources_data);//客户资源表
if (!$update_1) {
@ -157,7 +195,6 @@ class CustomerResourcesService extends BaseApiService
$six_speed_data['resource_id'] = $where['id'];
//查六要素是否存在
$six_speed = SixSpeed::where('resource_id', $where['id'])->find();
if ($six_speed) {
$six_speed = $six_speed->toArray();
//更新六要素

6
niucloud/app/service/api/apiService/ResourceSharingService.php

@ -115,15 +115,19 @@ class ResourceSharingService extends BaseApiService
]);
}
])->field($field)->find();
if($data){
$data = $data->toArray();
}
if (!empty($data['customerResource'])) {
$data['customerResource']['cj_count'] = OrderTable::where('resource_id', $data['customerResource']['id'])
->where('order_status', 'paid')
->count();//成交次数
}
// dd(123123,$data);
if ($data) {
$res['code'] = 1;
$res['msg'] = '操作成功';
$res['data'] = $data->toArray();
$res['data'] = $data;
} else {
$res['code'] = 0;

Loading…
Cancel
Save