cqp há 6 meses atrás
pai
commit
9b0eeb3a19

+ 10 - 0
app/Http/Controllers/Api/MayCurController.php

@@ -25,4 +25,14 @@ class MayCurController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function loan(Request $request){
+        list($bool, $data) = (new MayCurServerService())->loan($request->all());
+
+        if($bool){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 85 - 0
app/Service/MayCurServerService.php

@@ -171,6 +171,91 @@ class MayCurServerService extends Service
         return [true, $result['data'] ?? []];
     }
 
+    public function loan($data){
+        //校验
+        list($status, $msg) = $this->loanRule($data);
+        if(! $status) return [false, $msg];
+        //获取token
+        list($status, $token) = $this->getToken();
+        if(! $status) return [false, $token];
+
+        $header = $this->head;
+        //每刻所有配置
+        $url_array = $this->param;
+        //组织获取参数
+        $url = $this->domain_url . $url_array['loan'];
+        $header = array_merge(['Content-Type:application/json'], $header);
+        list($status, $result) = $this->post_helper($url,$msg, $header);
+        if(! $status) return [$status, $result];
+        if(isset($result['code']) && $result['code'] != 'ACK') return [false, $result['message']];
+
+        //组织返回数据
+        if(empty($result['data'])) return [true, $result['data']];
+
+        //获取报销单详情填充
+        list($status, $return) = $this->loanDetailGet($result['data']);
+        if(! $status) return [false, $return];
+
+        return [true, $return];
+    }
+
+    public function loanRule($data){
+        if(empty($data['createdAtStart']) || empty($data['createdAtEnd'])) return [false, '单据的创建时间不能为空'];
+        $createAtStart = strtotime($data['createdAtStart'] . '00:00:00');
+        $createdAtEnd = strtotime($data['createdAtEnd'] . '23:59:59');
+        if(empty($createAtStart)) return [false, '单据的创建开始时间格式错误'];
+        if(empty($createdAtEnd)) return [false, '单据的创建结束时间格式错误'];
+
+        $pageNo = 1;
+        $pageSize = 10;
+        if(! empty($data['pageNo'])) $pageNo = $data['pageNo'];
+        if(! empty($data['pageSize'])) {
+            if($data['pageSize'] >= 100) {
+                $pageSize = 10;
+            }else{
+                $pageSize = $data['pageSize'];
+            }
+        }
+
+        $return = [
+            'createdAtStart' => $createAtStart * 1000,
+            'createdAtEnd' => $createdAtEnd * 1000,
+            'pageNo' => $pageNo,
+            'pageSize' => $pageSize,
+        ];
+
+        return [true, $return];
+    }
+
+    public function loanDetailGet($list){
+        if(empty($list['list'])) return [true, $list];
+
+        foreach ($list['list'] as $key => $value){
+            list($status, $msg) = $this->loanDetail($value);
+            if(! $status) return [false, $msg];
+
+            $list['list'][$key]['loanDetail'] = $msg;
+        }
+
+        return [true, $list];
+    }
+
+    public function loanDetail($data){
+        if(empty($data['formCode'])) return [false, ["借款单详情请求缺失formCode"]];
+
+        $header = $this->head;
+        //每刻所有配置
+        $url_array = $this->param;
+        //组织获取参数
+        $url = $this->domain_url . $url_array['loanDetail'] . $data['formCode'];
+        $header = array_merge(['Content-Type:application/json'], $header);
+        list($status, $result) = $this->get_helper($url,$header);
+        if(! $status) return [$status, $result];
+        if(isset($result['code']) && $result['code'] != 'ACK') return [false, $result['message']];
+
+        return [true, $result['data'] ?? []];
+    }
+
     public function post_helper($url, $data, $header = [], $timeout = 20){
         Log::channel('apiMcLog')->info('每刻POST', ["api" => $url , "param" => $data ,"header" => $header]);
 

+ 4 - 0
config/maycur.php

@@ -17,4 +17,8 @@ return [
     'reimburse' => '/api/openapi/form/v2/reimburse',
     //报销单详情
     'reimburseDetail' => '/api/openapi/form/reimburse/detail',
+    //借款单
+    'loan' => '/api/openapi/form/v2/loan',
+    //借款单详情
+    'loanDetail' => '/api/openapi/form/loan/',
 ];

+ 2 - 1
routes/maycur.php

@@ -18,4 +18,5 @@ Route::middleware('auth:api')->get('/user', function (Request $request) {
 });
 
 //Route::any('getToken', 'Api\MayCurController@getToken');
-Route::any('reimburse', 'Api\MayCurController@reimburse');
+Route::any('reimburse', 'Api\MayCurController@reimburse');
+Route::any('loan', 'Api\MayCurController@loan');