cqpCow 1 anno fa
parent
commit
ab72116b25

+ 25 - 1
app/Http/Controllers/Api/CodeController.php

@@ -7,6 +7,31 @@ use Illuminate\Http\Request;
 //验证码
 class CodeController extends BaseController
 {
+    //发送登录验证码
+    public function sendLoginCode(Request $request){
+        $service = new CodeService();
+        list($status,$data) = $service->sendLoginCode($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    //发送确认验证码
+    public function sendConfirmCode(Request $request){
+        $service = new CodeService();
+        list($status,$data) = $service->sendConfirmCode($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    //没用
     public function sendCodeToWx(Request $request){
         $service = new CodeService();
         list($status,$data) = $service->sendCodeToWx($request->all(),$request->header('Authorization'));
@@ -16,6 +41,5 @@ class CodeController extends BaseController
         }else{
             return $this->json_return(201,$data);
         }
-        return $this->json_return(200,'', ['token' => $jwtToken]);
     }
 }

+ 2 - 2
app/Http/Controllers/Api/FinanceController.php

@@ -75,11 +75,11 @@ class FinanceController extends BaseController{
         }
     }
 
-    public function financeChangeStatus(Request $request)
+    public function financeConfirm(Request $request)
     {
         $service = new FinanceService();
         $userData = $request->userData->toArray();
-        list($status,$data) = $service->financeChangeStatus($request->all());
+        list($status,$data) = $service->financeConfirm($request->all());
 
         if($status){
             return $this->json_return(200,'',$data);

+ 7 - 21
app/Http/Controllers/Api/LoginController.php

@@ -1,6 +1,7 @@
 <?php
 namespace App\Http\Controllers\Api;
 
+use App\Service\CodeService;
 use App\Service\EmployeeService;
 use App\Service\LoginService;
 use App\Service\TokenService;
@@ -18,12 +19,16 @@ class LoginController extends BaseController
     ];
 
     public function login(Request $request){
-        $data = $request->only("account","password");
+        $data = $request->only("account","password","code");
 
         //ip 校验
-        $return  = (new LoginService())->loginRule($data);
+        $return = (new LoginService())->loginRule($data);
         if(! $return) return $this->json_return(201,'','IP不在允许登录范围!');
 
+        //code 校验
+        list($status,$msg) = (new CodeService())->loginCodeRule($data);
+        if(! $status) return $this->json_return(201,'',$msg);
+
         //登录
         $result = (new EmployeeService())->loginRule($data);
         list($bool, $return) = $result;
@@ -35,23 +40,4 @@ class LoginController extends BaseController
 
         return $this->json_return(200,'', ['token' => $jwtToken, 'emp_name'=>$return['name']]);
     }
-
-    public function loginMobile(Request $request){
-        $data = $request->only("account","password");
-
-        //ip 校验
-        $return  = (new LoginService())->loginRule($data);
-        if(! $return) return $this->json_return(201,'','IP不在允许登录范围!');
-
-        //登录
-        $result = (new EmployeeService())->loginRule($data);
-        list($bool, $return) = $result;
-        if(! $bool) return $this->json_return(201,'',$return);
-
-        //生成token
-        $jwtToken = TokenService::getToken($return['id']);
-        $jwtToken = self::MOBILE . $jwtToken;
-
-        return $this->json_return(200,'', ['token' => $jwtToken]);
-    }
 }

+ 5 - 3
app/Http/Middleware/CheckLogin.php

@@ -9,6 +9,8 @@ use App\Service\TokenService;
 
 class CheckLogin
 {
+    const CODES = 401;//未经授权
+
     /**
      * Handle an incoming request.
      *
@@ -20,7 +22,7 @@ class CheckLogin
     {
         $token=$request->header('Authorization');
         if (!isset($token)){
-            return  response()->json(['code'=>1,'msg'=>'缺少token','data'=>null]);
+            return  response()->json(['code'=>self::CODES,'msg'=>'缺少token','data'=>null]);
         }
 
         //登录来源前缀清除
@@ -34,13 +36,13 @@ class CheckLogin
         //校验token
         $result = TokenService::verifyToken($token);
         if ($result < 0){
-            return response()->json(['code'=>1,'msg'=>TokenService::error[$result],'data'=>null]);
+            return response()->json(['code'=>self::CODES,'msg'=>TokenService::error[$result],'data'=>null]);
         }
 
         //校验用户
         $checkResult = EmployeeService::checkUser($result);
         list($state, $data) = $checkResult;
-        if(! $state) return response()->json(['code'=>1,'msg'=>$data,'data'=>null]);
+        if(! $state) return response()->json(['code'=>self::CODES,'msg'=>$data,'data'=>null]);
 
         //人员角色
 //        $data['role'] = EmployeeService::getPersonRole($result);

+ 6 - 0
app/Model/FinanceDetail.php

@@ -10,4 +10,10 @@ class FinanceDetail extends Model
     const CREATED_AT = 'crt_time';
     const UPDATED_AT = 'upd_time';
     protected $dateFormat = 'U';
+
+    public static $status = [
+        0 => '未确认',
+        1 => '确认中',
+        2 => '已确认',
+    ];
 }

+ 105 - 9
app/Service/CodeService.php

@@ -6,6 +6,110 @@ use Illuminate\Support\Facades\Cache;
 
 class CodeService extends Service
 {
+    const CACHE_LOGIN = "LoginCode";//登录验证码前缀
+    const CACHE_CONFIRM = "ConfirmCode";//确认验证码前缀
+
+    //生成验证码
+    public function createCode(){
+        $length = 6;
+        $characters = '0123456789';
+        $code = '';
+
+        $characterLength = strlen($characters);
+        for ($i = 0; $i < $length; $i++) {
+            $randomIndex = mt_rand(0, $characterLength - 1);
+            $code .= $characters[$randomIndex];
+        }
+
+        return $code;
+    }
+
+    //登录验证码
+    public function sendLoginCode($data){
+        if(empty($data['account'])) return [false,'请先输入账号!'];
+
+        //键名
+        $cacheKey = self::CACHE_LOGIN . $data['account'];
+
+        //限制发送验证码
+        if(Cache::has($cacheKey)) return [false,'已发送验证码,请勿重复发送!'];
+
+        //获取验证码
+        $code = $this->createCode();
+
+        //发送验证码到手机 TODO
+        list($status,$msg) = $this->sendCode($code);
+        if(! $status) return [false,'发送验证码失败!'];
+
+        //成功后 缓存code 60s
+        Cache::add($cacheKey,$code,60);
+
+        return [true,''];
+    }
+
+    //确认验证码
+    public function sendConfirmCode($data){
+        if(empty($data['id'])) return [false,'ID不能为空!'];
+
+        //键名
+        $cacheKey = self::CACHE_CONFIRM . $data['id'];
+
+        //限制发送验证码
+        if(Cache::has($cacheKey)) return [false,'已发送验证码,请勿重复发送!'];
+
+        //获取验证码
+        $code = $this->createCode();
+
+        //发送验证码到手机 TODO
+        list($status,$msg) = $this->sendCode($code);
+        if(! $status) return [false,'发送验证码失败!'];
+
+        //成功后 缓存code 60s
+        Cache::add($cacheKey,$code,60);
+
+        return [true,''];
+    }
+
+    //发送验证码  TODO
+    public function sendCode($code){
+        return [true,''];
+    }
+
+    //验证登录验证码
+    public function loginCodeRule($data){
+        if(empty($data['account'])) return [false,'账号不能为空!'];
+        if(empty($data['code'])) return [false,'验证码不能为空!'];
+
+        $cacheKey = self::CACHE_LOGIN . $data['account'];
+        if(Cache::has($cacheKey)){
+            $code = Cache::get($cacheKey);
+            if($code != $data['code']) return [false,'验证码填写错误!'];
+            return [true, ''];
+        }
+
+        return [false, '验证码不正确!'];
+    }
+
+    //验证确认验证码
+    public function ConfirmCodeRule($data){
+        if(empty($data['code'])) return [false,'验证码不能为空!'];
+
+        $cacheKey = self::CACHE_CONFIRM . $data['id'];
+        if(Cache::has($cacheKey)){
+            $code = Cache::get($cacheKey);
+            if($code != $data['code']) return [false,'验证码填写错误!'];
+            return [true, ''];
+        }
+
+        return [false,'验证码不存在!'];
+    }
+
+
+
+
+
+
+    //------------------暂时用不到下面------------------------//
     public function sendCodeToWx($data,$token){
         $cacheKey = "code_" . $token;
         if(! $this->isSubmitlimitation($cacheKey)) return [false,'已发送验证码,请勿重复操作!'];
@@ -24,15 +128,7 @@ class CodeService extends Service
         }
     }
 
-    public function createCode(){
-        return "123123";
-    }
-
-    public function sendCode($code){
-        return [true,''];
-    }
-
-    //微信公众号发送 目前发现不行
+    //微信公众号发送
 //    public function sendCode($code){
 //        $serivce = new WxService();
 //        list($status,$msg) = $serivce->getToken();

+ 2 - 6
app/Service/EmployeeService.php

@@ -170,13 +170,9 @@ class EmployeeService extends Service
         $model->code = $data['code']??'';
         $model->save();
         return [true,'保存成功!'];
-
     }
 
     public function departAdd($data,$user){
-
-
-//        if($this->isEmpty($data,'title')) return [201,'名称不存在!'];
         list($status,$msg) = $this->departRule($data);
         if(!$status) return [$status,$msg];
         $first = Depart::where('title',$data['title'])->where('id','<>',$data['id'])->where('del_time',0)->first();
@@ -278,7 +274,6 @@ class EmployeeService extends Service
     public function loginRule($data){
         if($this->isEmpty($data,'account')) return [false,'账号不能为空!'];
         if($this->isEmpty($data,'password')) return [false,'密码不能为空!'];
-        if(LoginService::isLoginlimitation($data['account'])) return [false,'账号密码输入错误过多,30分钟内限制登录!'];
 
         $res = Employee::where('del_time',0)
             ->where('account', $data['account'])
@@ -302,7 +297,8 @@ class EmployeeService extends Service
         $res = Employee::where('id', $userId)
             ->where('del_time',0)
             ->where('is_admin',Employee::IS_ADMIN)
-            ->where('state',Employee::USE)->get()->first();
+            ->where('state',Employee::USE)
+            ->get()->first();
         if(empty($res)) return [false, '该账号无法登录,请联系管理员!'];
 
         return [true, $res];

+ 127 - 54
app/Service/FinanceService.php

@@ -3,9 +3,9 @@
 namespace App\Service;
 
 use App\Import\Import;
-use App\Model\Employee;
 use App\Model\Finance;
 use App\Model\FinanceDetail;
+use Illuminate\Support\Facades\Redis;
 
 class FinanceService extends Service
 {
@@ -41,16 +41,20 @@ class FinanceService extends Service
     }
 
     public function financeList($data){
-        $model = Finance::where('del_time',0)
-            ->select('id','finance_account_name','account','ifsc','amount','crt_id','crt_time')
-            ->orderBy('id','desc');
-
-        if(! empty($data['finance_account_name'])) $model->where('finance_account_name', 'LIKE', '%'.$data['finance_account_name'].'%');
-        if(! empty($data['account'])) $model->where('account', 'LIKE', '%'.$data['account'].'%');
-        if(! empty($data['ifsc'])) $model->where('ifsc', 'LIKE', '%'.$data['ifsc'].'%');
-        if(! empty($data['amount'])) $model->where('amount', $data['amount']);
-        if(! empty($data['crt_id'])) $model->where('crt_id', $data['crt_id']);
-        if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) $model->whereBetween('crt_time',[$data['crt_time'][0],$data['crt_time'][1]]);
+        $model = Finance::from('finance as a')
+            ->leftJoin('finance_detail as b','b.finance_id','a.id')
+            ->where('a.del_time',0)
+            ->where('b.del_time',0)
+            ->select('a.finance_account_name','a.account','a.ifsc','a.crt_time','b.id','b.amount','b.status','b.confirm_time')
+            ->orderBy('b.id','desc');
+
+        if(! empty($data['finance_account_name'])) $model->where('a.finance_account_name', 'LIKE', '%'.$data['finance_account_name'].'%');
+        if(! empty($data['account'])) $model->where('a.account', 'LIKE', '%'.$data['account'].'%');
+        if(! empty($data['ifsc'])) $model->where('a.ifsc', 'LIKE', '%'.$data['ifsc'].'%');
+        if(! empty($data['amount'])) $model->where('b.amount', $data['amount']);
+        if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) $model->whereBetween('a.crt_time',[$data['crt_time'][0],$data['crt_time'][1]]);
+        if(! empty($data['confirm_time'][0]) && ! empty($data['confirm_time'][1])) $model->whereBetween('b.confirm_time',[$data['confirm_time'][0],$data['confirm_time'][1]]);
+        if(isset($data['status'])) $model->where('b.status',$data['status']);
 
         $list = $this->limit($model,'',$data);
         $list = $this->fillFinanceList($list);
@@ -61,40 +65,66 @@ class FinanceService extends Service
     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]['confirm_time'] = $value['confirm_time'] ? date("Y-m-d",$value['confirm_time']) : '';
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d",$value['crt_time']) : '';
+            $data['data'][$key]['status_name'] = FinanceDetail::$status[$value['status']] ?? '';
         }
 
         return $data;
     }
 
+//    public function financeList($data){
+//        $model = Finance::where('del_time',0)
+//            ->select('id','finance_account_name','account','ifsc','amount','crt_id','crt_time','confirm_time')
+//            ->orderBy('id','desc');
+//
+//        if(! empty($data['finance_account_name'])) $model->where('finance_account_name', 'LIKE', '%'.$data['finance_account_name'].'%');
+//        if(! empty($data['account'])) $model->where('account', 'LIKE', '%'.$data['account'].'%');
+//        if(! empty($data['ifsc'])) $model->where('ifsc', 'LIKE', '%'.$data['ifsc'].'%');
+//        if(! empty($data['amount'])) $model->where('amount', $data['amount']);
+//        if(! empty($data['crt_id'])) $model->where('crt_id', $data['crt_id']);
+//        if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) $model->whereBetween('crt_time',[$data['crt_time'][0],$data['crt_time'][1]]);
+//        if(! empty($data['confirm_time'][0]) && ! empty($data['confirm_time'][1])) $model->whereBetween('confirm_time',[$data['confirm_time'][0],$data['confirm_time'][1]]);
+//
+//        $list = $this->limit($model,'',$data);
+//        $list = $this->fillFinanceList($list);
+//
+//        return [200,$list];
+//    }
+//
+//    public function fillFinanceList($data){
+//        if(empty($data['data'])) return $data;
+//
+//        $financeDetailMap = FinanceDetail::where('del_time',0)
+//            ->whereIn('finance_id',array_column($data['data'],'id'))
+//            ->select('finance_id','status')
+//            ->groupBy('finance_id')
+//            ->pluck('status','finance_id')->toArray();
+//        $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']) : '';
+//            $data['data'][$key]['status'] = FinanceDetail::$status[$financeDetailMap[$value['id']]] ?? '';
+//        }
+//
+//        return $data;
+//    }
+
     public function financeDetailList($data){
         $model = FinanceDetail::where('del_time',0)
-            ->select('id','finance_id','amount','crt_time')
+            ->select('id','finance_id','amount','crt_time','confirm_time','status','order_number')
             ->orderBy('id','desc');
 
-        if(! empty($data['finance_account_name']) || ! empty($data['account']) || ! empty($data['ifsc']) || ! empty($data['crt_id']) || ! empty($data['total_amount'])){
-            $search = '';
-            if(! empty($data['finance_account_name'])) $search .= "(finance_account_name LIKE '%" . $data['finance_account_name'] . "%') AND ";
-            if(! empty($data['account'])) $search .= "(account LIKE '%" . $data['account'] . "%') AND ";
-            if(! empty($data['ifsc'])) $search .= "(ifsc LIKE '%" . $data['ifsc'] . "%') AND ";
-            if(! empty($data['crt_id'])) $search .= "(crt_id = {$data['crt_id']}) AND ";
-            if(! empty($data['total_amount'])) $search .= "(amount = {$data['total_amount']}) AND ";
-            $search = rtrim($search,'AND ');
-            $search = "({$search})";
-            $result = Finance::where('del_time',0)
-                ->whereRaw($search)
-                ->select('id')
-                ->get()->toArray();
-            $model->whereIn('finance_id', array_column($result,'id'));
-        }
+        if(! empty($data['order_number'])) $model->where('order_number', 'LIKE', '%'.$data['order_number'].'%');
         if(! empty($data['amount'])) $model->where('amount', $data['amount']);
+        if(isset($data['status'])) $model->where('status',$data['status']);
+        if(! empty($data['confirm_time'][0]) && ! empty($data['confirm_time'][1])) $model->whereBetween('confirm_time',[$data['confirm_time'][0],$data['confirm_time'][1]]);
         if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) $model->whereBetween('crt_time',[$data['crt_time'][0],$data['crt_time'][1]]);
 
         $list = $this->limit($model,'',$data);
@@ -106,24 +136,11 @@ class FinanceService extends Service
     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]['status_name'] = FinanceDetail::$status[$value['status']] ?? '';
+            $data['data'][$key]['confirm_time'] = $value['confirm_time'] ? date("Y-m-d",$value['confirm_time']) : '';
             $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;
@@ -141,18 +158,74 @@ class FinanceService extends Service
         return [true, ''];
     }
 
-    public function financeChangeStatus($data){
+    protected function getData($id){
+        if(empty($id)) return [];
+
+        $model = FinanceDetail::from('finance_detail as a')
+            ->leftJoin('finance as b','b.id','a.finance_id')
+            ->where('a.del_time',0)
+            ->where('a.id',$id)
+            ->select('a.id','a.amount','a.status','b.finance_account_name','b.account','b.ifsc')
+            ->first();
+        if(! $model) return [];
+        return $model->toArray();
+    }
+
+    public function financeConfirm($data){
         if($this->isEmpty($data,'id')) return [false,'请选择数据!'];
+        //获取数据
+        $detail = $this->getData($data['id']);
+        if(empty($detail)) return [false,'确认数据不存在!'];
+        //是否已确认
+        if($detail['status'] == 2) return [false,'已确认,请勿重复操作!'];
+
+        //验证验证码
         if($this->isEmpty($data,'code')) return [false,'验证码不能为空!'];
+        list($status,$msg) = (new CodeService())->ConfirmCodeRule($data);
+        if(! $status) return [false,$msg];
+
+        //限制请求 发送支付申请
+        list($status,$return) = $this->limitingRequest(0, $detail);
+        if(! $status) return [false, $return];
+
+        //订单号
+        $order_number = $return;
+        FinanceDetail::where('id',$data['id'])->update([
+                'order_number' => $order_number,
+                'status' => 2,
+                'confirm_time' => time()
+        ]);
+
+        return [true,''];
+    }
 
-        //校验验证码 TODO
+    public function limitingRequest($a = 0, $data){
+        $key = "limitingRequest" .  $data['id'];
+        $value = Redis::get($key);
 
-        //校验通过删除 会话中的令牌 或者等待自己过期
+        if ($a == 5) return [false,'意外错误!'];//避免潜在的无限递归问题
 
-        //更新状态
-        Finance::whereIn('id',$data['id'])
-            ->update(['status' => 1]);
+        if ($value == 1) {
+            sleep(1);
+            $a++;
 
-        return [true,''];
+            if ($a > 3) return [false, '重复操作同一数据!'];
+
+            return $this->limitingRequest($a, $data);
+        }
+
+        Redis::setnx($key, 1);
+        Redis::expire($key, 5); //五秒后过期
+
+        // 发送支付 TODO
+        list($status, $msg, $orderNumber) = $this->paymentRequest($data);
+        if($status == 201) return [false, $msg];
+
+        return [true, $orderNumber];
+    }
+
+    //发送支付请求返回 TODO
+    public function paymentRequest($data){
+        return [200,'成功','测试订单号222222'];
     }
 }

+ 14 - 6
app/Service/LoginService.php

@@ -2,12 +2,14 @@
 
 namespace App\Service;
 
+use App\Model\Employee;
 use App\Model\Settings;
 use Illuminate\Support\Facades\Cache;
 
 class LoginService extends Service
 {
     const ALL = 'all';
+    const LOGIN_ERROR = "LoginError";
 
     public function loginRule($data){
         // 获取用户的IP地址
@@ -49,20 +51,26 @@ class LoginService extends Service
     }
 
     //设置登录错误次数(超过三次)
-    public static function errorSetLogin($cacheKey){
+    public static function errorSetLogin($account){
+        $cacheKey = self::LOGIN_ERROR . $account;
+
         if(Cache::has($cacheKey)){
             $num = Cache::get($cacheKey);
 
             $num++;
-            Cache::put($cacheKey,$num,30);
+            Cache::put($cacheKey,$num,1800);
             if($num >= 3){
-                return ['账号密码输入错误3次,30分钟内限制登录!'];
+                Employee::where('account',$account)->update([
+                    'state' => Employee::NOT_USE
+                ]);
+                Cache::forget($cacheKey);
+                return '账号密码输入错误3次,账号停用!';
             }else{
-                return ['账号密码输入错误第'. $num .'次!'];
+                return '账号密码输入错误第'. $num .'次!';
             }
         }else{
-            Cache::add($cacheKey,1,30);
-            return ['密码输入错误!'];
+            Cache::add($cacheKey,1,1800);
+            return '密码输入错误!';
         }
     }
 

BIN
public/download/出账模板.xlsx


+ 9 - 11
routes/api.php

@@ -17,9 +17,16 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
     return $request->user();
 });
 
-Route::any('login', 'Api\LoginController@login');
-Route::any('test', 'Api\TestController@aa');
+Route::any('login', 'Api\LoginController@login');//登录
+Route::any('sendLoginCode', 'Api\CodeController@sendLoginCode');//发送登录验证码
 Route::group(['middleware'=> ['checkLogin']],function ($route){
+    $route->any('sendConfirmCode', 'Api\CodeController@sendConfirmCode');//发送确认验证码
+
+    $route->any('financeList', 'Api\FinanceController@financeList');//财务出款
+    $route->any('financeDetailList', 'Api\FinanceController@financeDetailList');//出款明细
+    $route->any('financeImport', 'Api\FinanceController@financeImport');//财务出款导入
+    $route->any('financeConfirm', 'Api\FinanceController@financeConfirm');//确认
+
     $route->any('menuAdd', 'Api\SysMenuController@add');
     $route->any('menuEdit', 'Api\SysMenuController@edit');
     $route->any('menuDel', 'Api\SysMenuController@del');
@@ -42,13 +49,4 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
 
     $route->any('employeeDepart', 'Api\EmployeeController@employeeDepart');
     $route->any('employeeRole', 'Api\EmployeeController@employeeRole');
-
-    //验证码
-    $route->any('sendCodeToWx', 'Api\CodeController@sendCodeToWx');
-
-    //出账
-    $route->any('financeList', 'Api\FinanceController@financeList');
-    $route->any('financeDetailList', 'Api\FinanceController@financeDetailList');
-    $route->any('financeImport', 'Api\FinanceController@financeImport');
-    $route->any('financeChangeStatus', 'Api\FinanceController@financeChangeStatus');
 });