Quellcode durchsuchen

Merge branch 'test' of 121.36.198.49:zy_duanju/duanju_manage into test

zqwang vor 1 Jahr
Ursprung
Commit
3b159de618

+ 70 - 15
modules/Channel/Http/Controllers/PayTemplateController.php

@@ -4,7 +4,9 @@ namespace Modules\Channel\Http\Controllers;
 
 use Carbon\Carbon;
 use Catch\Base\CatchController;
+use Illuminate\Foundation\Validation\ValidatesRequests;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\DB;
 use Modules\Channel\Exceptions\ChannelBusinessException;
 use Modules\Channel\Models\PayProduct;
 use Modules\Channel\Models\PayTemplate;
@@ -14,6 +16,8 @@ use Modules\Common\Errors\Errors;
 
 class PayTemplateController extends CatchController
 {
+    use ValidatesRequests;
+
     public function __construct(protected readonly PayTemplate $payTemplate,protected readonly PayTemplateItem $payTemplateItem,protected readonly PayProduct $payProduct)
     {
 
@@ -36,16 +40,63 @@ class PayTemplateController extends CatchController
         if(UserService::userHasRole($uid,'administrator')){
             $uid = 0;
         }
+        if($uid) {
+            $this->initPayTemplate($uid);
+        }
         $name = $request->get('name');
+        // 1-首充模板,2-非首充模板
+        $type = $request->input('type');
         $where = [[
-            'uid','=',$uid
+            'uid','=',$uid,
+            'type', '=', $type,
         ]];
         if($name){
             $where[] = ['name','like','%'.$name.'%'];
         }
-        return $this->payTemplate->orderBy('id','desc')->where($where)->paginate(20);
+        $result = $this->payTemplate->orderBy('id','desc')->where($where)->paginate($request->input('limit', 20));
+        foreach ($result as $item) {
+            $item->status_str = $item->status ? '默认模板': '非默认模板';
+            $item->type_str = 1 == $item->type ? '首充模板' : '非首充模板';
+        }
+
+        return $result;
     }
 
+    /**
+     * 如果优化是没有设置充值模板,那么就是用官方模板进行初始化
+     * @param $uid
+     */
+    private function initPayTemplate($uid) {
+        if(!$this->payTemplate->where('uid', $uid)->count()) {
+            $systemPayTemplates = $this->payTemplate->where('uid', 0)->get();
+            $now = date('Y-m-d H:i:s');
+            foreach ($systemPayTemplates as $systemPayTemplate) {
+                $payTemplate = $this->payTemplate->create([
+                    'uid' => $uid,
+                    'name' => $systemPayTemplate->name,
+                    'status' => $systemPayTemplate->status,
+                    'type' => $systemPayTemplate->type,
+                ]);
+                $payTemplateItems = $this->payTemplateItem->where([
+                    'pay_template_id' => $systemPayTemplate->id, 'status' => 1,
+                ])->get();
+                $payTemplateItemDatas = [];
+
+                foreach ($payTemplateItems as $item) {
+                    $payTemplateItemDatas[] = [
+                        'pay_template_id' => $payTemplate->id,
+                        'pay_product_id' => $item->pay_product_id,
+                        'is_default' => $item->is_default,
+                        'status' => $item->status,
+                        'sequence' => $item->sequence,
+                        'created_at' => $now,
+                        'updated_at' => $now,
+                    ];
+                }
+                $this->payTemplateItem->insert($payTemplateItemDatas);
+            }
+        }
+    }
 
     /**
      * 添加模板
@@ -55,21 +106,24 @@ class PayTemplateController extends CatchController
      */
     public function store(Request $request)
     {
+        $this->validate($request, [
+            'name' => 'required',
+            'options' => 'required',
+            'status' => 'required|in:0,1',
+            'type' => 'required|in:1,2'
+        ]);
         $uid = $this->getLoginUser()->id;
         $name = $request->post('name');
+        // 0-非默认模板,1-默认模板
         $status = $request->post('status');
         $options = $request->post('options');
-        if(empty($name) || empty($options)){
-            ChannelBusinessException::throwError(Errors::PARAM_EMPTY);
-        }
+        // 1-首充模板,2-非首充模板
+        $type = $request->input('type');
+
         if(UserService::userHasRole($uid,'administrator')){
             $uid = 0;
         }
 
-        $exists = $this->payTemplate->where('uid',$uid)->where('name',$name)->count();
-        if($exists){
-            ChannelBusinessException::throwError(Errors::PAY_TEMPLATE_EXISTS_ERROR);
-        }
         $option_list = json_decode($options,1);
         $data = [];
         $default_optioin = 0;
@@ -102,11 +156,14 @@ class PayTemplateController extends CatchController
 
         $default_optioin = $default_optioin>0?$default_optioin:$option_list[0]['price'];
 
-        if($status == 1){
-            $this->payTemplate->where('uid',$uid)->update(['status'=>0]);
+        if($status == 1 && 0 == $uid){
+            $this->payTemplate->where([
+                'uid' => $uid, 'type' => $type
+            ])->update(['status'=>0]);
         }
 
-        $pay_template_info = $this->payTemplate->create(['name'=>$name,'uid'=>$uid,'status'=>$status]);
+        $pay_template_info = $this->payTemplate->create(['name'=>$name,'uid'=>$uid,
+            'type' => $type, 'status' => $status]);
 
         foreach($option_list as $option){
             $type = $option['type'];
@@ -133,8 +190,7 @@ class PayTemplateController extends CatchController
      */
     public function show($id)
     {
-        //$uid = $this->getLoginUser()->id;
-        $uid= 1;
+        $uid = $this->getLoginUser()->id;
         if(UserService::userHasRole($uid,'administrator')){
             $uid = 0;
         }
@@ -381,7 +437,6 @@ class PayTemplateController extends CatchController
     public function optionTypeList(){
         return [
             ['name'=>'普通充值','value'=>'COIN'],
-            ['name'=>'首充','value'=>'FIRST_COIN'],
             ['name'=>'包月','value'=>'MONTH'],
             ['name'=>'包季','value'=>'QUARTER'],
             ['name'=>'包年','value'=>'YEAR']

+ 9 - 6
modules/Channel/routes/route.php

@@ -19,13 +19,16 @@ Route::prefix('channel')->group(function () {
     Route::prefix('paytemplate')->group(function(){
         Route::get('optionTypeList',[PayTemplateController::class,'optionTypeListOutPut'])->withoutMiddleware(config('catch.route.middlewares'));
         Route::get('optionSequence',[PayTemplateController::class,'optionSequence'])->withoutMiddleware(config('catch.route.middlewares'));
-        Route::get('list',[PayTemplateController::class,'index']);
-        Route::get('show/{id}',[PayTemplateController::class,'show']);
-        Route::post('store',[PayTemplateController::class,'store']);
-        Route::post('update/{id}',[PayTemplateController::class,'update']);
+        Route::get('list',[PayTemplateController::class,'index'])->middleware(['roleCheck:administrator,optimizer']);
+        Route::get('show/{id}',[PayTemplateController::class,'show'])->middleware(['roleCheck:administrator,optimizer']);
+        Route::post('store',[PayTemplateController::class,'store'])->middleware(['roleCheck:administrator,optimizer']);
+        Route::post('update/{id}',[PayTemplateController::class,'update'])->middleware(['roleCheck:administrator,optimizer']);
+        /**
+         * @deprecated
+         */
         Route::post('updateStatus/{id}',[PayTemplateController::class,'updateStatus']);//->withoutMiddleware(config('catch.route.middlewares'));;
-        Route::post('updatePayTemplateItem/{id}',[PayTemplateController::class,'updatePayTemplateItem']);
-        Route::get('deleteOneItem/{id}',[PayTemplateController::class,'deleteOneItem']);
+        Route::post('updatePayTemplateItem/{id}',[PayTemplateController::class,'updatePayTemplateItem'])->middleware(['roleCheck:administrator,optimizer']);
+        Route::get('deleteOneItem/{id}',[PayTemplateController::class,'deleteOneItem'])->middleware(['roleCheck:administrator,optimizer']);
     });
     Route::prefix('wechat_min_user')->group(function (){
         // 微信小程用户信息

+ 1 - 1
modules/Jiesuan/routes/route.php

@@ -22,7 +22,7 @@ Route::prefix('jiesuanManage')->group(function () {
         Route::get('list', [JiesuanController::class, 'list']);
         Route::get('accountInfo', [JiesuanController::class, 'accountInfo']);
         Route::post('tixian', [JiesuanController::class, 'tixian'])->middleware(['roleCheck:company']);
-        Route::post('updateTicket/{id}', [JiesuanController::class, 'updateTicket'])->middleware(['roleCheck:company']);
+        Route::post('updateTicket/{id}', [JiesuanController::class, 'updateTicket'])->withoutMiddleware(config('catch.route.middlewares'));;
     });
 
     Route::prefix('financeCheck')->group(function(){

+ 9 - 1
modules/Tuiguang/Http/Controllers/PromotionController.php

@@ -83,12 +83,16 @@ class PromotionController extends CatchController
 
     public function updateSeriesSequence(Request $request) {
         $this->validate($request, ['id' => 'required',
-            'series_sequence' => 'required', 'remark' => 'nullable|string|max:140']);
+            'series_sequence' => 'required', 'remark' => 'nullable|string|max:140',
+            'first_charge_template_id' => 'required',
+            'not_first_charge_template_id' => 'required',]);
 
         DB::table('promotions')
             ->where(['id' => $request->input('id'), 'uid' => $this->getLoginUserId(), 'is_enabled' => 1])
             ->update(['series_sequence' => $request->input('series_sequence'),
                 'remark' => $request->input('remark', ''),
+                'first_charge_template_id' => $request->input('first_charge_template_id'),
+                'not_first_charge_template_id' => $request->input('not_first_charge_template_id'),
                 'updated_at' => date('Y-m-d H:i:s')]);
 
         return 'ok';
@@ -100,6 +104,8 @@ class PromotionController extends CatchController
             'series_sequence' => 'required',
             'name' => 'required',
             'miniprogram_id' => 'required',
+            'first_charge_template_id' => 'required',
+            'not_first_charge_template_id' => 'required',
         ]);
         $now = date('Y-m-d H:i:s');
         DB::table('promotions')
@@ -109,6 +115,8 @@ class PromotionController extends CatchController
                 'name' => $request->input('name'),
                 'video_id' => $request->input('video_id'),
                 'series_sequence' =>  $request->input('series_sequence'),
+                'first_charge_template_id' =>  $request->input('first_charge_template_id'),
+                'not_first_charge_template_id' =>  $request->input('not_first_charge_template_id'),
                 'created_at' => $now,
                 'updated_at' => $now,
             ]);

+ 21 - 0
tests/Channel/Http/Controllers/PayTemplateControllerTest.php

@@ -0,0 +1,21 @@
+<?php
+
+namespace Tests\Channel\Http\Controllers;
+
+use Modules\Channel\Http\Controllers\PayTemplateController;
+use PHPUnit\Framework\TestCase;
+use Tests\UsedTestCase;
+
+class PayTemplateControllerTest extends UsedTestCase
+{
+
+    public function testIndex()
+    {
+        $res = $this->withHeaders([
+            'Authorization' => 'Bearer '. $this->token,
+        ])->json('get','http://localhost/api/channel/paytemplate/list', [
+
+        ]);
+        $res->dump();
+    }
+}