cqpCow 1 år sedan
förälder
incheckning
5b87955db2

+ 60 - 0
app/Http/Controllers/Api/BasicTypeController.php

@@ -0,0 +1,60 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Service\BasicTypeService;
+use Illuminate\Http\Request;
+
+class BasicTypeController extends BaseController
+{
+    public function basicTypeAdd(Request $request)
+    {
+        $service = new BasicTypeService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->basicTypeAdd($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function basicTypeEdit(Request $request)
+    {
+        $service = new BasicTypeService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->basicTypeEdit($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function basicTypeDel(Request $request)
+    {
+        $service = new BasicTypeService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->basicTypeDel($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function basicTypeList(Request $request)
+    {
+        $service = new BasicTypeService();
+        list($status,$data) = $service->basicTypeList($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+}

+ 61 - 0
app/Http/Controllers/Api/FollowUpRecordController.php

@@ -0,0 +1,61 @@
+<?php
+
+namespace App\Http\Controllers\Api;
+
+use App\Service\FollowUpRecordService;
+use Illuminate\Http\Request;
+
+class FollowUpRecordController extends BaseController
+{
+    public function followUpRecordEdit(Request $request)
+    {
+        $service = new FollowUpRecordService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->followUpRecordEdit($request->all(),$user);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+    
+    public function followUpRecordAdd(Request $request)
+    {
+        $service = new FollowUpRecordService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->followUpRecordAdd($request->all(),$user);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+    
+    public function followUpRecordDel(Request $request)
+    {
+        $service = new FollowUpRecordService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->followUpRecordDel($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function followUpRecordList(Request $request)
+    {
+        $service = new FollowUpRecordService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->followUpRecordList($request->all(),$user);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+}

+ 25 - 0
app/Model/BasicType.php

@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class BasicType extends Model
+{
+    protected $table = "basic_type"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+
+    public static $type = [
+        1 => '客户意向类型',
+        2 => '客户来源类型',
+        3 => '客户类型',
+        4 => '客户电话类型',
+        5 => '进展阶段类型',
+        6 => '客户状态类型',
+        7 => '决策关系类型',
+        8 => '级别类型',
+        9 => '状态类型',
+    ];
+}

+ 13 - 0
app/Model/FollowUpRecord.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace App\Model;
+
+use Illuminate\Database\Eloquent\Model;
+
+class FollowUpRecord extends Model
+{
+    protected $table = "follow_up_record"; //指定表
+    const CREATED_AT = 'crt_time';
+    const UPDATED_AT = 'upd_time';
+    protected $dateFormat = 'U';
+}

+ 95 - 0
app/Service/BasicTypeService.php

@@ -0,0 +1,95 @@
+<?php
+
+namespace App\Service;
+
+use App\Model\BasicType;
+
+class BasicTypeService extends Service
+{
+    public function basicTypeEdit($data){
+        list($status,$msg) = $this->basicTypeRule($data,false);
+        if(!$status) return [$status,$msg];
+
+        $update = $msg['data'][0];
+        BasicType::where('id',$data['id'])->update($update);
+
+        return [true,'保存成功!'];
+    }
+
+    public function basicTypeAdd($data){
+        list($status,$msg) = $this->basicTypeRule($data);
+        if(!$status) return [$status,$msg];
+
+        BasicType::insert($msg['data']);
+
+        return [true,'保存成功!'];
+    }
+
+    public function basicTypeDel($data){
+        if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
+
+        BasicType::whereIn('id',$data['id'])->update([
+            'del_time'=>time()
+        ]);
+
+        return [true,'删除成功'];
+    }
+
+    public function basicTypeList($data){
+        $model = BasicType::where('del_time',0)
+            ->select('title','id','type')
+            ->orderby('id', 'asc')
+            ->where('type',$data['type']);
+
+        if(! empty($data['title'])) $model->where('title', 'LIKE', '%'.$data['title'].'%');
+
+        $list = $this->limit($model,'',$data);
+        $list = $this->fillData($list);
+
+        return [true, $list];
+    }
+
+    public function basicTypeRule($data,$is_check = true){
+        if($this->isEmpty($data,'type')) return [false,'基础类型不能为空'];
+        if(! isset(BasicType::$type[$data['type']])) return [false,'基础类型不存在'];
+        if($this->isEmpty($data,'data')) return [false,'数据不能为空!'];
+
+        $title = array_column($data['data'],'title');
+        $title = array_map(function($val) {
+            return $val !== null ? $val : 0;
+        }, $title);
+        $title_count = array_count_values($title);
+        foreach ($title as $value){
+            if(empty($value)) return [false,'名称不能为空!'];
+            if($title_count[$value] > 1) return [false,'名称不能重复'];
+        }
+
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['type'] = $data['type'];
+            $data['data'][$key]['upd_time'] = time();
+            if($is_check){
+                $bool = BasicType::where('title',$value['title'])
+                    ->where('type',$data['type'])
+                    ->where('del_time',0)
+                    ->exists();
+                $data['data'][$key]['crt_time'] = time();
+            }else{
+                if($this->isEmpty($data,'id')) return [false,'id不能为空!'];
+                $bool = BasicType::where('title',$value['title'])
+                    ->where('type',$data['type'])
+                    ->where('id','<>',$data['id'])
+                    ->where('del_time',0)
+                    ->exists();
+            }
+            if($bool) return [false,'名称不能重复'];
+        }
+
+        return [true, $data];
+    }
+
+    public function fillData($data){
+        if(empty($data['data'])) return $data;
+
+        return $data;
+    }
+}

+ 105 - 0
app/Service/FollowUpRecordService.php

@@ -0,0 +1,105 @@
+<?php
+
+namespace App\Service;
+
+use App\Model\Depart;
+use App\Model\Employee;
+use App\Model\EmployeeRole;
+use App\Model\FollowUpRecord;
+use Illuminate\Support\Facades\DB;
+use Illuminate\Support\Facades\Hash;
+
+class FollowUpRecordService extends Service
+{
+    public function followUpRecordEdit($data,$user){
+        list($status,$msg) = $this->followUpRecordRule($data,false);
+        if(!$status) return [$status,$msg];
+
+        $model = new FollowUpRecord();
+        $model = $model->where('id',$data['id'])->first();
+        $model->id_card = $data['id_card']??'';
+        $model->number = $data['number'] ;
+        $model->mobile = $data['mobile'];
+        $model->emp_name = $data['emp_name'];
+        $model->is_admin = $data['is_admin'];
+        if($model->is_admin == 1){
+            $model->account = $data['account'];
+            if($data['password'] !== '********'){
+                $model->password   = Hash::make($data['password']);
+            }
+        }
+        $model->save();
+        return [true,'保存成功!'];
+    }
+
+    public function followUpRecordAdd($data,$user){
+        list($status,$msg) = $this->followUpRecordRule($data);
+        if(!$status) return [$status,$msg];
+
+        $model = new FollowUpRecord();
+        $model->id_card = $data['id_card']??'';
+        $model->number = $data['number'] ;
+        $model->mobile = $data['mobile'];
+        $model->emp_name = $data['emp_name'];
+        $model->state = 1;
+        $model->crt_id = $user['id'];
+        $model->is_admin = $data['is_admin'];
+        if($model->is_admin == 1){
+            $model->account = $data['account'];
+            $model->password = Hash::make($data['password']);
+        }
+        $model->save();
+
+        return [true,'保存成功!'];
+    }
+
+    public function followUpRecordDel($data,){
+        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
+
+        FollowUpRecord::where('id',$data['id'])->update([
+            'del_time'=>time()
+        ]);
+
+        return [true,'删除成功'];
+    }
+
+    public function followUpRecordList($data,$user){
+        $model = FollowUpRecord::where('del_time',0)
+            ->select('number','mobile','emp_name','id','entry_time','leave_time','is_technical','is_admin','state')
+            ->orderBy('id','desc');
+
+        if(! empty($data['state'])) $model->where('state',$data['state']);
+        if(! empty($data['mobile'])) $model->where('mobile', 'LIKE', '%'.$data['mobile'].'%');
+        if(! isset($data['all_emp'])) $model->where('id','<>',Employee::SPECIAL_ADMIN);
+
+        $list = $this->limit($model,'',$data);
+
+        //组织数据
+        $list = $this->organizationData($list);
+
+        return [true, $list];
+    }
+
+    public function organizationData($data) {
+        if (empty($data['data'])) return $data;
+
+        foreach ($data['data'] as $key => $value){
+
+        }
+        return $data;
+    }
+
+    public function followUpRecordRule($data,$is_add = true){
+        if($this->isEmpty($data,'number')) return [false,'工号不存在!'];
+        if($this->isEmpty($data,'mobile')) return [false,'手机号不存在!'];
+        if($this->isEmpty($data,'emp_name')) return [false,'姓名不存在!'];
+        if(! $is_add){
+            if($this->isEmpty($data,'id')) return [false,'ID不能为空!'];
+
+        }else{
+
+        }
+
+        return [true,''];
+    }
+}

+ 1 - 1
app/Service/SysMenuService.php

@@ -225,8 +225,8 @@ class SysMenuService extends Service
 
     public function fillMenuButton($data){
         $button = SysMenuButton::where('del_time',0)
-            ->select('id','title','sort','func','menu_id')
             ->whereIn('menu_id',array_column($data,'id'))
+            ->select('id','title','sort','func','menu_id')
             ->get()->toArray();
         $button_map = [];
         foreach ($button as $value){

+ 13 - 1
routes/api.php

@@ -20,7 +20,7 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
 Route::any('login', 'Api\LoginController@login');
 Route::any('test', 'Api\TestController@aa');
 Route::any('getHeaderWord', 'Api\HeaderWordController@getHeaderWord');
-Route::group(['middleware'=> []],function ($route){
+Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('HeaderSettingsAdd', 'Api\HeaderWordController@add');
     $route->any('HeaderSettingsDetail', 'Api\HeaderWordController@detail');
 
@@ -56,4 +56,16 @@ Route::group(['middleware'=> []],function ($route){
     $route->any('employeeDepart', 'Api\EmployeeController@employeeDepart');
     $route->any('employeeTeam', 'Api\EmployeeController@employeeTeam');
     $route->any('employeeRole', 'Api\EmployeeController@employeeRole');
+
+    //基础类型
+    $route->any('basicTypeList', 'Api\BasicTypeController@basicTypeList');
+    $route->any('basicTypeEdit', 'Api\BasicTypeController@basicTypeEdit');
+    $route->any('basicTypeAdd', 'Api\BasicTypeController@basicTypeAdd');
+    $route->any('basicTypeDel', 'Api\BasicTypeController@basicTypeDel');
+
+    //跟进记录
+    $route->any('followUpRecordList', 'Api\FollowUpRecordController@followUpRecordList');
+    $route->any('followUpRecordEdit', 'Api\FollowUpRecordController@followUpRecordEdit');
+    $route->any('followUpRecordAdd', 'Api\FollowUpRecordController@followUpRecordAdd');
+    $route->any('followUpRecordDel', 'Api\FollowUpRecordController@followUpRecordDel');
 });