liuzejian 1 рік тому
батько
коміт
6e7e79c1f3

+ 113 - 0
modules/Jiesuan/Http/Controllers/FinanceCheckController.php

@@ -0,0 +1,113 @@
+<?php
+
+namespace Modules\Jiesuan\Http\Controllers;
+
+use Catch\Base\CatchController;
+use Illuminate\Foundation\Validation\ValidatesRequests;
+use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
+use Modules\Common\Errors\Errors;
+use Modules\Common\Exceptions\CommonBusinessException;
+use Modules\Jiesuan\Services\BusinessmanService;
+use Modules\Jiesuan\Services\CompanyUserMoneyService;
+use Modules\Jiesuan\Services\ConstService;
+use Modules\User\Http\Controllers\UserTrait;
+
+class FinanceCheckController extends CatchController
+{
+    use UserTrait;
+    use ValidatesRequests;
+
+    /**
+     * 列表
+     * @param Request $request
+     */
+    public function list(Request $request) {
+        $this->validate($request, [
+            'status' => 'required|in:1,2,3,4,5'
+        ]);
+        $tixianStartAt = $request->input('tixian_start_at');
+        $tixianEndAt = $request->input('tixian_end_at');
+        $companyUid = $request->input('company_uid');
+        $owner_name = $request->input('owner_name');
+        $isExport = $request->input('is_export', false);
+
+        $sql = DB::table('tixian_records')
+            ->leftJoin('bank_cards','tixian_records.bank_card_id','bank_cards.id')
+            ->where('tixian_records.status', $request->input('status'))
+            ->when($tixianStartAt, function ($query, $tixianStartAt){
+                return $query->where('tixian_records.created_at', '>=', $tixianStartAt);
+            })->when($tixianEndAt, function ($query, $tixianEndAt){
+                return $query->where('tixian_records.created_at', '<=', $tixianEndAt . ' 23:59:59');
+            })->when($owner_name, function ($query, $owner_name) {
+                return $query->where('bank_cards.owner_name', 'like', '%'. $owner_name . '%');
+            })->when($companyUid, function ($query, $companyUid) {
+                return $query->where('tixian_records.company_uid', $companyUid);
+            })
+            ->select('tixian_records.id', 'tixian_records.company_uid', 'bank_cards.owner_name',
+                'tixian_records.status', 'bank_cards.business_id', 'tixian_records.tixian_money', 'tixian_records.created_at',
+            'bank_cards.card_no', 'bank_cards.name_of_payee', 'tixian_records.remark', 'tixian_records.updated_at')
+        ->orderBy('id', 'desc');
+        if($isExport) {
+            $result = $sql->get();
+        } else {
+            $result = $sql->paginate($request->input('limit', 15));
+        }
+        $businessmans = BusinessmanService::list()->keyBy('id');
+        foreach ($result as $item) {
+            $item->business_str = $businessmans->get($item->business_id)->username ?? '';
+            $item->status_str = ConstService::TIXIAN_CHECK_STATUS[$item->status] ?? '';
+        }
+        return $result;
+    }
+
+    /**
+     * 审核
+     * @param Request $request
+     */
+    public function check(Request $request) {
+        $this->validate($request, [
+            'status' => 'required|in:2,3',
+            'id' => 'required'
+        ]);
+
+        DB::table('tixian_records')
+            ->where([
+                'id' => $request->input('id'),
+                'status' => 1
+            ])->update([
+                'status' => $request->input('status'),
+                'updated_at' => date('Y-m-d H:i:s')
+            ]);
+
+        return 'ok';
+    }
+
+    /**
+     * 打款
+     * @param Request $request
+     */
+    public function remit(Request $request) {
+        $this->validate($request, [
+            'status' => 'required|in:4,5',
+            'id' => 'required',
+            'pay_channel' => 'required',
+            'pay_no' => 'required_if:status,4',
+            'remark' => 'nullable|string|max:256'
+        ]);
+
+        DB::table('tixian_records')
+            ->where([
+                'id' => $request->input('id'),
+                'status' => 3
+            ])->update([
+                'updated_at' => date('Y-m-d H:i:s'),
+                'status' => $request->input('status'),
+                'pay_channel' => $request->input('pay_channel'),
+                'pay_no' => $request->input('pay_no'),
+                'remark' => $request->input('remark')
+            ]);
+        return 'ok';
+    }
+
+}

+ 1 - 1
modules/Jiesuan/Services/ConstService.php

@@ -19,7 +19,7 @@ class ConstService
      */
     public const TIXIAN_CHECK_STATUS = [
         '1' => '待审核',
-        '2' => '审核失败',
+        '2' => '审核不通过',
         '3' => '待打款',
         '4' => '已打款',
         '5' => '打款失败'

+ 8 - 0
modules/Jiesuan/routes/route.php

@@ -2,7 +2,9 @@
 
 use Illuminate\Support\Facades\Route;
 use Modules\Jiesuan\Http\Controllers\BankAccountController;
+use Modules\Jiesuan\Http\Controllers\FinanceCheckController;
 use Modules\Jiesuan\Http\Controllers\JiesuanController;
+use PhpOffice\PhpSpreadsheet\Calculation\Statistical\Distributions\F;
 
 
 Route::prefix('jiesuanManage')->group(function () {
@@ -21,5 +23,11 @@ Route::prefix('jiesuanManage')->group(function () {
         Route::get('accountInfo', [JiesuanController::class, 'accountInfo']);
         Route::post('tixian', [JiesuanController::class, 'tixian']);
     });
+
+    Route::prefix('financeCheck')->group(function(){
+       Route::get('list', [FinanceCheckController::class, 'list']);
+       Route::post('check', [FinanceCheckController::class, 'check']);
+       Route::post('remit', [FinanceCheckController::class, 'remit']);
+    });
 });
 

+ 45 - 0
tests/Jiesuan/Http/Controllers/FinanceCheckControllerTest.php

@@ -0,0 +1,45 @@
+<?php
+
+namespace Tests\Jiesuan\Http\Controllers;
+
+use Modules\Jiesuan\Http\Controllers\FinanceCheckController;
+use PHPUnit\Framework\TestCase;
+use Tests\UsedTestCase;
+
+class FinanceCheckControllerTest extends UsedTestCase
+{
+
+    public function testList()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('get','http://localhost/api/jiesuanManage/financeCheck/list',[
+            'status' => 2
+        ]);
+        $res->dump();
+    }
+    public function testCheck()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('post','http://localhost/api/jiesuanManage/financeCheck/check',[
+            'status' => 2,
+            'id' => 1,
+        ]);
+        $res->dump();
+    }
+
+    public function testremit()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('post','http://localhost/api/jiesuanManage/financeCheck/remit',[
+            'status' => 4,
+            'id' => 1,
+            'pay_channel' => '治愈',
+            'pay_no' => '13214321',
+            'remark' => 'kjlj',
+        ]);
+        $res->dump();
+    }
+}

+ 2 - 2
tests/UsedTestCase.php

@@ -13,9 +13,9 @@ abstract class UsedTestCase extends BaseTestCase
     {
         parent::setUp(); // TODO: Change the autogenerated stub
         $tokenInfo = $this->post('http://localhost/api/login', [
-//            'email' => 'catch@admin.com',
+            'email' => 'catch@admin.com',
             'remember' => false,
-            'email' => 'xiaoli@qq.com',
+//            'email' => 'xiaoli@qq.com',
             'password' => 'catchadmin',
 //            'email' => 'aa4@test.com',
         ])->json();