浏览代码

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

admin 1 年之前
父节点
当前提交
35e92fb1ba

+ 71 - 18
modules/Channel/Http/Controllers/PayTemplateController.php

@@ -3,14 +3,16 @@
 namespace Modules\Channel\Http\Controllers;
 namespace Modules\Channel\Http\Controllers;
 
 
 use Carbon\Carbon;
 use Carbon\Carbon;
-use Illuminate\Http\Request;
 use Catch\Base\CatchController;
 use Catch\Base\CatchController;
-use Modules\Common\Errors\Errors;
+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\PayProduct;
 use Modules\Channel\Models\PayTemplate;
 use Modules\Channel\Models\PayTemplate;
 use Modules\Channel\Models\PayTemplateItem;
 use Modules\Channel\Models\PayTemplateItem;
-use Modules\Channel\Exceptions\ChannelBusinessException;
 use Modules\Channel\Services\User\UserService;
 use Modules\Channel\Services\User\UserService;
+use Modules\Common\Errors\Errors;
 
 
 class PayTemplateController extends CatchController
 class PayTemplateController extends CatchController
 {
 {
@@ -35,16 +37,63 @@ class PayTemplateController extends CatchController
         if(UserService::userHasRole($uid,'administrator')){
         if(UserService::userHasRole($uid,'administrator')){
             $uid = 0;
             $uid = 0;
         }
         }
+        if($uid) {
+            $this->initPayTemplate($uid);
+        }
         $name = $request->get('name');
         $name = $request->get('name');
+        // 1-首充模板,2-非首充模板
+        $type = $request->input('type');
         $where = [[
         $where = [[
-            'uid','=',$uid
+            'uid','=',$uid,
+            'type', '=', $type,
         ]];
         ]];
         if($name){
         if($name){
             $where[] = ['name','like','%'.$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);
+            }
+        }
+    }
 
 
     /**
     /**
      * 添加模板
      * 添加模板
@@ -54,21 +103,24 @@ class PayTemplateController extends CatchController
      */
      */
     public function store(Request $request)
     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;
         $uid = $this->getLoginUser()->id;
         $name = $request->post('name');
         $name = $request->post('name');
+        // 0-非默认模板,1-默认模板
         $status = $request->post('status');
         $status = $request->post('status');
         $options = $request->post('options');
         $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')){
         if(UserService::userHasRole($uid,'administrator')){
             $uid = 0;
             $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);
         $option_list = json_decode($options,1);
         $data = [];
         $data = [];
         $default_optioin = 0;
         $default_optioin = 0;
@@ -101,11 +153,14 @@ class PayTemplateController extends CatchController
 
 
         $default_optioin = $default_optioin>0?$default_optioin:$option_list[0]['price'];
         $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){
         foreach($option_list as $option){
             $type = $option['type'];
             $type = $option['type'];
@@ -132,8 +187,7 @@ class PayTemplateController extends CatchController
      */
      */
     public function show($id)
     public function show($id)
     {
     {
-        //$uid = $this->getLoginUser()->id;
-        $uid= 1;
+        $uid = $this->getLoginUser()->id;
         if(UserService::userHasRole($uid,'administrator')){
         if(UserService::userHasRole($uid,'administrator')){
             $uid = 0;
             $uid = 0;
         }
         }
@@ -380,7 +434,6 @@ class PayTemplateController extends CatchController
     public function optionTypeList(){
     public function optionTypeList(){
         return [
         return [
             ['name'=>'普通充值','value'=>'COIN'],
             ['name'=>'普通充值','value'=>'COIN'],
-            ['name'=>'首充','value'=>'FIRST_COIN'],
             ['name'=>'包月','value'=>'MONTH'],
             ['name'=>'包月','value'=>'MONTH'],
             ['name'=>'包季','value'=>'QUARTER'],
             ['name'=>'包季','value'=>'QUARTER'],
             ['name'=>'包年','value'=>'YEAR']
             ['name'=>'包年','value'=>'YEAR']

+ 10 - 3
modules/Tuiguang/Http/Controllers/PromotionController.php

@@ -32,7 +32,6 @@ class PromotionController extends CatchController
         $miniprogramId = $request->input('miniprogram_id');
         $miniprogramId = $request->input('miniprogram_id');
         $result = DB::table('promotions')
         $result = DB::table('promotions')
             ->leftJoin('videos', 'videos.id', '=', 'promotions.video_id')
             ->leftJoin('videos', 'videos.id', '=', 'promotions.video_id')
-            ->leftJoin('miniprogram', 'miniprogram.id', '=', 'promotions.miniprogram_id')
             ->where(['promotions.is_enabled' => 1, 'promotions.uid' => $this->getLoginUserId()])
             ->where(['promotions.is_enabled' => 1, 'promotions.uid' => $this->getLoginUserId()])
             ->when($miniprogramId, function ($query, $miniprogramId) {
             ->when($miniprogramId, function ($query, $miniprogramId) {
                 return $query->where('promotions.miniprogram_id', $miniprogramId);
                 return $query->where('promotions.miniprogram_id', $miniprogramId);
@@ -54,7 +53,7 @@ class PromotionController extends CatchController
             })->orderBy('created_at', 'desc')
             })->orderBy('created_at', 'desc')
             ->select('promotions.id', 'promotions.name', 'promotions.created_at',
             ->select('promotions.id', 'promotions.name', 'promotions.created_at',
                 'videos.name as video_name', 'promotions.series_sequence', 'promotions.callback_type',
                 'videos.name as video_name', 'promotions.series_sequence', 'promotions.callback_type',
-                'promotions.callback_config_id', 'promotions.video_id', 'promotions.remark', 'promotions.status', 'miniprogram.name as miniprogram_name')
+                'promotions.callback_config_id', 'promotions.video_id', 'promotions.remark', 'promotions.status')
             ->paginate($request->input('limit', 15));
             ->paginate($request->input('limit', 15));
         foreach ($result as $item) {
         foreach ($result as $item) {
             $item->status_str = $item->status ? '启用':'禁用';
             $item->status_str = $item->status ? '启用':'禁用';
@@ -82,12 +81,16 @@ class PromotionController extends CatchController
 
 
     public function updateSeriesSequence(Request $request) {
     public function updateSeriesSequence(Request $request) {
         $this->validate($request, ['id' => 'required',
         $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')
         DB::table('promotions')
             ->where(['id' => $request->input('id'), 'uid' => $this->getLoginUserId(), 'is_enabled' => 1])
             ->where(['id' => $request->input('id'), 'uid' => $this->getLoginUserId(), 'is_enabled' => 1])
             ->update(['series_sequence' => $request->input('series_sequence'),
             ->update(['series_sequence' => $request->input('series_sequence'),
                 'remark' => $request->input('remark', ''),
                 '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')]);
                 'updated_at' => date('Y-m-d H:i:s')]);
 
 
         return 'ok';
         return 'ok';
@@ -99,6 +102,8 @@ class PromotionController extends CatchController
             'series_sequence' => 'required',
             'series_sequence' => 'required',
             'name' => 'required',
             'name' => 'required',
             'miniprogram_id' => 'required',
             'miniprogram_id' => 'required',
+            'first_charge_template_id' => 'required',
+            'not_first_charge_template_id' => 'required',
         ]);
         ]);
         $now = date('Y-m-d H:i:s');
         $now = date('Y-m-d H:i:s');
         DB::table('promotions')
         DB::table('promotions')
@@ -108,6 +113,8 @@ class PromotionController extends CatchController
                 'name' => $request->input('name'),
                 'name' => $request->input('name'),
                 'video_id' => $request->input('video_id'),
                 'video_id' => $request->input('video_id'),
                 'series_sequence' =>  $request->input('series_sequence'),
                 '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,
                 'created_at' => $now,
                 'updated_at' => $now,
                 'updated_at' => $now,
             ]);
             ]);