cqpCow 1 år sedan
förälder
incheckning
d3bc8fda5b

+ 0 - 38
app/Http/Controllers/Api/Device/BaseController.php

@@ -1,38 +0,0 @@
-<?php
-
-namespace App\Http\Controllers\Api\Device;
-
-use App\Http\Controllers\Controller;
-
-class BaseController extends Controller
-{
-    public $user_info;
-    public function __construct()
-    {
-    }
-
-    // 返回json数据
-    protected function json_return($code=200,$msg="Success",$data=[]){
-        if(!is_array($data)&&!is_object($data)) {
-            $msg = $data;
-            $data = '';
-        }
-        if(empty($msg)) $msg = '操作成功';
-        return ['code'=>$code,'msg'=>$msg,'data'=>$data];
-    }
-
-
-    //用户行为记录,暂时放这里具体用不用后期再加
-    public function user_log($data,$user,$id,$perm_id,$remark){
-
-    }
-
-
-
-
-
-
-
-
-
-}

+ 0 - 22
app/Http/Controllers/Api/Device/DeviceController.php

@@ -1,22 +0,0 @@
-<?php
-namespace App\Http\Controllers\Api\Device;
-
-use App\Service\Device\DeviceService;
-use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Log;
-
-
-class DeviceController extends BaseController
-{
-    public function deviceList(Request $request){
-        $service = new DeviceService();
-        list($status,$data) = $service->deviceList();
-
-        if($status){
-            return $this->json_return(200,'',$data);
-        }else{
-            return $this->json_return(201,$data);
-        }
-
-    }
-}

+ 8 - 160
app/Http/Controllers/Api/EmployeeController.php

@@ -2,23 +2,13 @@
 
 namespace App\Http\Controllers\Api;
 
-
 use App\Service\EmployeeService;
-use App\Service\SysMenuService;
 use Illuminate\Http\Request;
 
-
 class EmployeeController extends BaseController
 {
-
-
-
-
-
     public function employeeEdit(Request $request)
     {
-
-
         $service = new EmployeeService();
         $user = $request->userData->toArray();
         list($status,$data) = $service->employeeEdit($request->all(),$user);
@@ -28,14 +18,11 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
 
     public function employeeAdd(Request $request)
     {
-
-
         $service = new EmployeeService();
         $user = $request->userData->toArray();
         list($status,$data) = $service->employeeAdd($request->all(),$user);
@@ -51,10 +38,7 @@ class EmployeeController extends BaseController
 
     public function employeeDel(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
         list($status,$data) = $service->employeeDel($request->all());
 
         if($status){
@@ -62,16 +46,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
 
     public function employeeList(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
         list($status,$data) = $service->employeeList($request->all());
 
         if($status){
@@ -79,17 +59,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
-
     public function roleEdit(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->roleEdit($request->all());
 
         if($status){
@@ -97,16 +72,13 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
 
     public function roleAdd(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->roleAdd($request->all(),$request->all());
 
         if($status){
@@ -114,16 +86,13 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
 
     public function roleDel(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->roleDel($request->all());
 
         if($status){
@@ -131,16 +100,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
 
     public function roleList(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
         list($status,$data) = $service->roleList($request->all());
 
         if($status){
@@ -148,17 +113,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
-
     public function departEdit(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->departEdit($request->all());
 
         if($status){
@@ -166,16 +126,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
     public function departAdd(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->departAdd($request->all(),$request->all());
 
         if($status){
@@ -183,16 +139,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
     public function departDel(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->departDel($request->all());
 
         if($status){
@@ -200,16 +152,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
 
     public function departList(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
         list($status,$data) = $service->departList($request->all());
 
         if($status){
@@ -217,84 +165,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
-    }
-
-
-    public function teamEdit(Request $request)
-    {
-
-
-        $service = new EmployeeService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->teamEdit($request->all());
-
-        if($status){
-            return $this->json_return(200,'',$data);
-        }else{
-            return $this->json_return(201,$data);
-        }
-
-    }
-
-
-    public function teamAdd(Request $request)
-    {
-
-
-        $service = new EmployeeService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->teamAdd($request->all(),$request->all());
-
-        if($status){
-            return $this->json_return(200,'',$data);
-        }else{
-            return $this->json_return(201,$data);
-        }
-
-    }
-
-
-    public function teamDel(Request $request)
-    {
-
-
-        $service = new EmployeeService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->teamDel($request->all());
-
-        if($status){
-            return $this->json_return(200,'',$data);
-        }else{
-            return $this->json_return(201,$data);
-        }
-
-    }
-
-
-    public function teamList(Request $request)
-    {
-
-
-        $service = new EmployeeService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->teamList($request->all());
-
-        if($status){
-            return $this->json_return(200,'',$data);
-        }else{
-            return $this->json_return(201,$data);
-        }
-
     }
 
-
     public function employeeDepart(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->employeeDepart($request->all());
 
         if($status){
@@ -302,35 +178,12 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
 
-
-
-    public function employeeTeam(Request $request)
-    {
-
-
-        $service = new EmployeeService();
-        $user = $request->get('auth');
-        list($status,$data) = $service->employeeTeam($request->all());
-
-        if($status){
-            return $this->json_return(200,'',$data);
-        }else{
-            return $this->json_return(201,$data);
-        }
-
-    }
-
-
-
     public function employeeRole(Request $request)
     {
-
-
         $service = new EmployeeService();
-        $user = $request->get('auth');
+        $user = $request->userData->toArray();
         list($status,$data) = $service->employeeRole($request->all());
 
         if($status){
@@ -338,10 +191,5 @@ class EmployeeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-
     }
-
-
-
-
 }

+ 77 - 0
app/Http/Controllers/Api/FinanceController.php

@@ -0,0 +1,77 @@
+<?php
+namespace App\Http\Controllers\Api;
+
+use App\Service\FinanceService;
+use Illuminate\Http\Request;
+
+class FinanceController extends BaseController{
+
+    public function financeEdit(Request $request){
+        $service = new FinanceService();
+        list($status,$data) = $service->financeEdit($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function financeAdd(Request $request){
+        $service = new FinanceService();
+        list($status,$data) = $service->financeAdd($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function financeDel(Request $request){
+        $service = new FinanceService();
+        $user = $request->userData->toArray();
+        list($status,$data) = $service->financeDel($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function financeList(Request $request){
+        $service = new FinanceService();
+        list($status,$data) = $service->financeList($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function financeDetailList(Request $request){
+        $service = new FinanceService();
+        list($status,$data) = $service->financeDetailList($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function financeImport(Request $request)
+    {
+        $service = new FinanceService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->financeImport($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+}

+ 0 - 4
app/Http/Controllers/Api/LoginController.php

@@ -4,7 +4,6 @@ namespace App\Http\Controllers\Api;
 use App\Service\EmployeeService;
 use App\Service\TokenService;
 use Illuminate\Http\Request;
-use Illuminate\Support\Facades\Log;
 
 //登录
 class LoginController extends BaseController
@@ -25,9 +24,6 @@ class LoginController extends BaseController
         list($bool, $return) = $result;
         if(! $bool) return $this->json_return(201,'',$return);
 
-        //日志
-        $res = Log::channel('login')->info("登录成功", $return);
-
         //生成token
         $jwtToken = TokenService::getToken($return['id']);
         $jwtToken = self::PERSONAL_COMPUTER . $jwtToken;

+ 2 - 2
app/Http/Middleware/CheckLogin.php

@@ -43,9 +43,9 @@ class CheckLogin
         if(! $state) return response()->json(['code'=>1,'msg'=>$data,'data'=>null]);
 
         //人员角色
-        $data['role'] = EmployeeService::getPersonRole($result);
+//        $data['role'] = EmployeeService::getPersonRole($result);
         //部门权限
-        $data['rule_depart'] = EmployeeService::getPersonDepart($result);
+//        $data['rule_depart'] = EmployeeService::getPersonDepart($result);
         //写入user信息
         $request->userData = $data;
 

+ 142 - 0
app/Import/Import.php

@@ -0,0 +1,142 @@
+<?php
+
+
+namespace  App\Import;
+
+use App\Model\Employee;
+use App\Model\Finance;
+use App\Model\FinanceDetail;
+use App\Model\Inventory;
+use App\Model\InventoryInSub;
+use App\Model\InventoryOutSub;
+use App\Model\InventorySub;
+use App\Model\RollFilm;
+use App\Model\RollFilmCompare;
+use App\Model\RollFilmInventory;
+use App\Model\Settings;
+use App\Model\Storehouse;
+use Illuminate\Support\Facades\DB;
+use Maatwebsite\Excel\Concerns\ToArray;
+
+class Import implements ToArray {
+    private $msg = '';
+    public $crt_id = 0;
+
+    public function array (array $array){
+        $this->handleData($array);
+    }
+
+    public function setCrt($crt_id){
+        $this->crt_id = $crt_id;
+    }
+
+    public function getMsg(){
+        return $this->msg;
+    }
+
+    public function setMsg($msg){
+        $this->msg = $msg;
+    }
+
+    public function handleData (array $array) {
+        // 去除表头
+        unset($array[0]);
+        if(empty($array)) {
+            $this->setMsg('数据不能为空!');
+            return ;
+        }
+
+        //第一次表格数据校验 非空  已经过滤数据
+        foreach ($array as $key => $value){
+            if(empty($value[0]) && empty($value[1]) && empty($value[2]) && empty($value[3])) {
+                unset($array[$key]);
+            }elseif(empty($value[0]) || empty($value[1]) || empty($value[2]) || empty($value[3])) {
+                $this->setMsg('数据必须完整填写!');
+                return ;
+            }else{
+                if(! is_numeric($value[3])){
+                    $this->setMsg('请输入正确的金额!');
+                    return ;
+                }
+            }
+        }
+
+        if(empty($array)) {
+            $this->setMsg('数据不能为空!');
+            return ;
+        }
+        $array = array_values($array);
+
+        //默认拆分金额
+        $setting = Settings::where('name','defaultAmount')->first();
+        if(empty($setting) || ! is_numeric($setting->value) || $setting->value <= 0) {
+            $this->setMsg('请确认默认拆分金额是否正确!');
+            return ;
+        }
+        $defaultAmount = (float)$setting->value;
+        //生成时间
+        $crt_time = time();
+        //出账主表和子表数据
+        $main = $sub = [];
+        foreach ($array as $key => $value){
+            //主表数据
+            $main[] = [
+                'finance_account_name' => $value[0],
+                'account' => $value[1],
+                'ifsc' => $value[2],
+                'amount' => $value[3],
+                'crt_id' => $this->crt_id,
+                'crt_time' => $crt_time
+            ];
+            $totalAmount = (float)$value[3];
+
+            $num = floor($totalAmount / $defaultAmount); // 拆分出来的次数
+            if((int)$num <= 1){
+                $sub[$key][] = [
+                    'amount' => $totalAmount
+                ];
+            }else{
+                $remainingAmount = $totalAmount % $defaultAmount; // 剩余的金额
+                $equalAmount = floor($totalAmount / $num); // 平均金额
+                $lastAmount = $equalAmount + $remainingAmount; // 最后金额(加上剩余的金额)
+                for ($i = 0;$i < (int)$num; $i++){
+                    if ($i == (int)$num - 1) {
+                        // 最后一次
+                        $tmp = $lastAmount;
+                    } else {
+                        $tmp = $equalAmount;
+                    }
+                    $sub[$key][] = [
+                        'amount' => $tmp
+                    ];
+                }
+            }
+        }
+
+        try{
+            DB::beginTransaction();
+
+            Finance::insert($main);
+            //获取上一次插入的所有id
+            $last_insert_id = Finance::where('crt_time',$crt_time)->select('id')->get()->toArray();
+            $last_insert_id = array_column($last_insert_id,'id');
+
+            $insert_sub = [];
+            foreach ($sub as $key => $value){
+                foreach ($value as $v){
+                    $insert_sub[] =  [
+                        'amount' => $v['amount'],
+                        'finance_id' => $last_insert_id[$key],
+                        'crt_time' => $crt_time
+                    ];
+                }
+            }unset($main);unset($sub);
+            FinanceDetail::insert($insert_sub);
+
+            DB::commit();
+        }catch (\Exception $e){
+            DB::rollBack();
+            $this->setMsg($e->getMessage());
+        }
+    }
+}

+ 13 - 0
app/Model/Finance.php

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

+ 13 - 0
app/Model/FinanceDetail.php

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

+ 13 - 0
app/Model/Settings.php

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

+ 39 - 105
app/Service/EmployeeService.php

@@ -12,6 +12,7 @@ use App\Model\EmployeeTeamPermission;
 use App\Model\Role;
 use App\Model\SysMenu;
 use App\Model\Team;
+use Illuminate\Support\Facades\Cache;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Hash;
 
@@ -27,7 +28,6 @@ class EmployeeService extends Service
 
         $model = new Employee();
         $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'];
@@ -47,7 +47,6 @@ class EmployeeService extends Service
         if(!$status) return [$status,$msg];
 
         $model = new Employee();
-        $model->id_card = $data['id_card']??'';
         $model->number = $data['number'] ;
         $model->mobile = $data['mobile'];
         $model->emp_name = $data['emp_name'];
@@ -74,7 +73,7 @@ class EmployeeService extends Service
     }
 
     public function employeeList($data){
-        $list = Employee::where('del_time',0)->select('id_card','emp_name','mobile','crt_time','account','is_admin','upd_time','id')->orderBy('id','desc');
+        $list = Employee::where('del_time',0)->select('emp_name','mobile','crt_time','account','is_admin','id')->orderBy('id','desc');
 
         $list = $this->limit($list,'',$data);
 
@@ -121,18 +120,13 @@ class EmployeeService extends Service
     }
 
     public function roleAdd($data,$user){
-
-
-//        if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
         list($status,$msg) = $this->roleRule($data);
         if(!$status) return [$status,$msg];
-        $first = SysMenu::where('title',$data['title'])->where('del_time',0)->first();
+        $first = Role::where('title',$data['title'])->where('del_time',0)->first();
         if(!empty($first))return [false,'名称已存在!'];
 
         $model = new Role();
-
         $model->title = $data['title'] ;
-
         $model->save();
 
         return [true,'保存成功!'];
@@ -223,67 +217,6 @@ class EmployeeService extends Service
         return [true,''];
     }
 
-
-    public function teamEdit($data){
-        list($status,$msg) = $this->teamRule($data,false);
-        if(!$status) return [$status,$msg];
-
-        $model = new Team();
-        $model = $model->where('id',$data['id'])->first();
-        $model->title = $data['title'];
-        $model->code = $data['code'];
-        $model->save();
-
-        return [true,'保存成功!'];
-    }
-
-    public function teamAdd($data,$user){
-        list($status,$msg) = $this->teamRule($data);
-        if(!$status) return [$status,$msg];
-
-        $model = new Team();
-        $model->title = $data['title'] ;
-        $model->code = $data['code'];
-        $model->save();
-
-        return [true,'保存成功!'];
-    }
-
-    public function teamDel($data){
-        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
-
-        Team::where('id',$data['id'])->update([
-            'del_time'=>time()
-        ]);
-
-        return [true,'删除成功'];
-    }
-
-    public function teamList($data){
-        $list = Team::where('del_time',0)->select('title','id','crt_time','upd_time','code')->orderBy('id','desc');
-
-        $list = $this->limit($list,'',$data);
-
-        return [200,$list];
-    }
-
-    public function teamRule($data,$is_add = true){
-        if($this->isEmpty($data,'title')) return [false,'名称不存在!'];
-        if($this->isEmpty($data,'code')) return [false,'编码不存在'];
-
-        $model = Team::where('title',$data['title'])
-            ->where('code',$data['code'])
-            ->where('del_time',0);
-        if(! $is_add){
-            if($this->isEmpty($data,'id')) return [false,'ID不能为空'];
-            $model->where('id','<>',$data['id']);
-        }
-        $bool = $model->exists();
-        if($bool) return [false,'名称和编码已存在!'];
-
-        return [true,''];
-    }
-
     public function employeeRole($data){
         $role_ids = [];
         $employee_ids = [];
@@ -342,55 +275,56 @@ class EmployeeService extends Service
         return [true,'保存成功!'];
     }
 
-    public function employeeTeam($data){
-        if($this->isEmpty($data,'insert')) return [false,'数据不能为空!'];
-
-        DB::beginTransaction();
-        try {
-            if($data['type'] == 1){
-                EmployeeTeamPermission::whereIn('team_id',$data['insert']['team_id'])->delete();
-            }else{
-                EmployeeTeamPermission::whereIn('employee_id',$data['insert']['employee_id'])->delete();
-            }
-
-            $insert = [];
-            foreach ($data['insert']['team_id'] as $t){
-                foreach ($data['insert']['employee_id'] as $e){
-                    $insert[] = [
-                        'team_id' => $t,
-                        'employee_id' => $e
-                    ];
-                }
-            }
-            EmployeeTeamPermission::insert($insert);
-
-            DB::commit();
-        }catch (\Throwable $exception){
-            DB::rollBack();
-            return [false,$exception->getMessage()];
-        }
-
-        return [true,'保存成功!'];
-    }
-
     public function loginRule($data){
         if($this->isEmpty($data,'account')) return [false,'账号不能为空!'];
-        if($this->isEmpty($data,'password')) return [false,'密码不存在!'];
+        if($this->isEmpty($data,'password')) return [false,'密码不能为空!'];
+        if($this->isLoginlimitation($data['account'])) return [false,'账号密码输入错误过多,30分钟内限制登录!'];
 
         $res = Employee::where('del_time',0)
             ->where('account', $data['account'])
             ->get()->toArray();
-
         if(empty($res)) return [false,'账号不存在或已被删除!'];
 
         $res = reset($res);
-        if(! Hash::check($data['password'], $res['password'])) return [false,'密码错误!'];
-        if($res['is_admin'] != Employee::IS_ADMIN) return [false,'该账号不能登录!'];
         if($res['state'] == Employee::NOT_USE) return [false,'账号停用!'];
+        if($res['is_admin'] != Employee::IS_ADMIN) return [false,'该账号不能登录!'];
+
+        //密码校验
+        if(! Hash::check($data['password'], $res['password'])) {
+            $msg = $this->errorSetLogin($data['account']);
+            return [false,$msg];
+        }
 
         return [true, ['id'=>$res['id'], 'name'=>$res['emp_name'], 'account' => $res['account']]];
     }
 
+    //设置登录错误次数(超过三次)
+    public function errorSetLogin($cacheKey){
+        if(Cache::has($cacheKey)){
+            $num = Cache::get($cacheKey);
+
+            $num++;
+            Cache::put($cacheKey,$num,30);
+            if($num >= 3){
+                return ['账号密码输入错误3次,30分钟内限制登录!'];
+            }else{
+                return ['账号密码输入错误第'. $num .'次!'];
+            }
+        }else{
+            Cache::add($cacheKey,1,30);
+            return ['密码输入错误!'];
+        }
+    }
+
+    //判断是否限制登录
+    public function isLoginlimitation($cacheKey){
+        if(Cache::has($cacheKey)){
+            $num = Cache::get($cacheKey);
+            if($num >= 3) return true;
+        }
+        return false;
+    }
+
     public static function checkUser($userId){
         $res = Employee::where('id', $userId)
             ->where('del_time',0)

+ 114 - 0
app/Service/FinanceService.php

@@ -0,0 +1,114 @@
+<?php
+
+namespace App\Service;
+
+use App\Import\Import;
+use App\Model\Employee;
+use App\Model\Finance;
+use App\Model\FinanceDetail;
+
+class FinanceService extends Service
+{
+    public function financeEdit($data,$user){
+        list($status,$msg) = $this->financeRule($data,false);
+        if(!$status) return [$status,$msg];
+
+        return [true,'保存成功!'];
+    }
+
+    public function financeAdd($data,$user){
+        list($status,$msg) = $this->financeRule($data);
+        if(!$status) return [$status,$msg];
+
+        return [true,'保存成功!'];
+    }
+
+    public function financeRule($data,$is_add = true){
+        return [true,''];
+    }
+
+    public function financeDel($data){
+        if($this->isEmpty($data,'id')) return [false,'ID必须!'];
+
+        Finance::where('id',$data['id'])->update([
+            'del_time'=>time()
+        ]);
+        FinanceDetail::where('id',$data['finance_id'])->update([
+            'del_time'=>time()
+        ]);
+
+        return [true,'删除成功'];
+    }
+
+    public function financeList($data){
+        $list = Finance::where('del_time',0)->select('id','finance_account_name','account','ifsc','amount','crt_id','crt_time')->orderBy('id','desc');
+
+        $list = $this->limit($list,'',$data);
+        $list = $this->fillFinanceList($list);
+
+        return [200,$list];
+    }
+
+    public function fillFinanceList($data){
+        if(empty($data['data'])) return $data;
+
+        $map = Employee::whereIn('id',array_unique(array_column($data['data'],'crt_id')))
+            ->pluck('emp_name','id')
+            ->toArray();
+
+        date_default_timezone_set('PRC');
+        foreach ($data['data'] as $key => $value){
+            $data['data'][$key]['crt_name'] = $map[$value['crt_id']] ?? '';
+            $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d",$value['crt_time']) : '';
+        }
+
+        return $data;
+    }
+
+    public function financeDetailList($data){
+        $list = FinanceDetail::where('del_time',0)->select('id','finance_id','amount','crt_time')->orderBy('id','desc');
+
+        $list = $this->limit($list,'',$data);
+        $list = $this->fillFinanceDetailList($list);
+
+        return [200,$list];
+    }
+
+    public function fillFinanceDetailList($data){
+        if(empty($data['data'])) return $data;
+
+        //主表信息
+        $finance = Finance::whereIn('id',array_unique(array_column($data['data'],'finance_id')))
+            ->select('id','finance_account_name','account','ifsc','amount as total_amount','crt_id')
+            ->get()->toArray();
+        $finance_map = array_column($finance,null,'id');
+
+        $map = Employee::whereIn('id',array_unique(array_column($finance,'crt_id')))
+            ->pluck('emp_name','id')
+            ->toArray();
+
+        date_default_timezone_set('PRC');
+        foreach ($data['data'] as $key => $value){
+            $tmp = $finance_map[$value['finance_id']] ?? [];
+            unset($tmp['id']);
+
+            $data['data'][$key]['crt_name'] = $map[$tmp['crt_id']] ?? '';
+            $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d",$value['crt_time']) : '';
+            $data['data'][$key] = array_merge_recursive($data['data'][$key],$tmp);
+        }
+
+        return $data;
+    }
+
+    public function financeImport($data,$user){
+        $import = new Import();
+        //设置导入人id
+        $import->setCrt($user['id']);
+        //导入
+        \Maatwebsite\Excel\Facades\Excel::import($import,$data['file']);
+
+        if($import->getMsg())  return [false, $import->getMsg()];
+
+        return [true, ''];
+    }
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 249 - 201
composer.lock


+ 5 - 1
routes/api.php

@@ -41,6 +41,10 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('roleList', 'Api\EmployeeController@roleList');
 
     $route->any('employeeDepart', 'Api\EmployeeController@employeeDepart');
-    $route->any('employeeTeam', 'Api\EmployeeController@employeeTeam');
     $route->any('employeeRole', 'Api\EmployeeController@employeeRole');
+
+    //出账
+    $route->any('financeList', 'Api\FinanceController@financeList');
+    $route->any('financeDetailList', 'Api\FinanceController@financeDetailList');
+    $route->any('financeImport', 'Api\FinanceController@financeImport');
 });

Vissa filer visades inte eftersom för många filer har ändrats