Преглед изворни кода

【FIx】修复活动异常

liuxiangxin пре 2 месеци
родитељ
комит
3551df79f9

+ 3 - 3
app/Http/Controllers/Admin/RedpacketActive.php

@@ -310,9 +310,9 @@ class RedpacketActive extends Auth{
 		$oldData['tag_scope']		= explode(',',$oldData['tag_scope']);
         $oldData['tag_except']		= explode(',',$oldData['tag_except']);
 
-        $productScope               = explode(',',$oldData['product_scope']);
-        $phoneScope                 = explode(',',$oldData['phone_scope']);
-        $customScope                = explode(',',$oldData['custom_scope']);
+        $productScope               = $oldData['product_scope'] ? explode(',',$oldData['product_scope']) : [];
+        $phoneScope                 = $oldData['phone_scope'] ? explode(',',$oldData['phone_scope']) : [];
+        $customScope                = $oldData['custom_scope'] ? explode(',',$oldData['custom_scope']) : [];
         // 产品编码批量循环转ID
         foreach ($productScope as $key => $value) {
             // 重组

+ 0 - 6
app/Http/Controllers/Admin/RedpacketActiveReward.php

@@ -70,11 +70,8 @@ class RedpacketActiveReward extends Auth{
 		$maxProbability				= 100 - (int) $Model->query()->where([['active_id','=',$activeId]])->sum('probability');
 		// 获取列表
 		$activeList 				= $RedpacketActive->query()->get(['id','name'])->toArray();
-		// 奖品类型
-		$typeList					= $Model->getRewardTypeList();
 		// 分配数据
 		$this->assign('crumbs','新增');
-		$this->assign('typeList',$typeList);
 		$this->assign('activeList',$activeList);
 		$this->assign('maxProbability',$maxProbability);
 		// 加载模板
@@ -115,12 +112,9 @@ class RedpacketActiveReward extends Auth{
 		$maxProbability				= 100 - ((int) $Model->query()->where([['active_id','=',$oldData['active_id']]])->sum('probability')) + $oldData['probability'];
 		// 获取列表
 		$activeList 				= $RedpacketActive->query()->get(['id','name'])->toArray();
-		// 奖品类型
-		$typeList					= $Model->getRewardTypeList();
 		// 数据分配
 		$this->assign('crumbs','修改');
 		$this->assign('oldData',$oldData);
-		$this->assign('typeList',$typeList);
 		$this->assign('activeList',$activeList);
 		$this->assign('maxProbability',$maxProbability);
 		// 加载模板

+ 17 - 5
app/Http/Controllers/Api/Redpacket/Active.php

@@ -242,7 +242,12 @@ class Active extends Api{
 						// 发放红包
 						$result 				= $CustomAmount->trade($uid,$activeId,$rewardResult['money'],8,1,'红包活动');
 						// 发放失败,改为未中奖
-						if( isset($result['error']) ) $rewardIndex = 0;
+						if( isset($result['error']) ) {
+							// 回退数据
+							DB::rollBack();
+							// 提示
+							return				json_send(['code'=>'error','msg'=>'发生了点意外,请重试']);
+						}
 						// 发放成功,状态为已完成
 						$record['status']		= 8;
 					}else{
@@ -252,12 +257,19 @@ class Active extends Api{
                 }
             }
 			// 中奖记录奖品
-			if( $rewardIndex ) 				{
+			if( $rewardIndex ) 			{
 				// 记录,默认状态为1,进行中
-				$record['reward_id']		= $reward[$rewardIndex]['id'];
-				$record['money']			= $reward[$rewardIndex]['money'];
+				$record['reward_id']	= $reward[$rewardIndex]['id'];
+				$record['money']		= $reward[$rewardIndex]['money'];
 				// 扣减次数
-				$ActiveReward->edit($rewardResult['id'],['reward_total'=>DB::raw('reward_total+-1')]);
+				$result 				= $ActiveReward->edit($rewardResult['id'],['reward_total'=>DB::raw('reward_total+-1')]);
+				// 发放失败,改为未中奖
+				if( !$result ) 			{
+					// 回退数据
+					DB::rollBack();
+					// 提示
+					return				json_send(['code'=>'error','msg'=>'抽取异常,请重试']);
+				}
 			}
 			// 写入记录
 			$result 						= $ActiveRecord->add($record);

+ 1 - 1
app/Http/Requests/Api/Redpacket/ActiveRecord.php

@@ -1,4 +1,4 @@
-<?php namespace App\Http\Requests\Api\Lottery;
+<?php namespace App\Http\Requests\Api\Redpacket;
 
 use App\Http\Requests\BaseRequest;
 

+ 3 - 3
resources/views/admin/redpacket_active/edit.blade.php

@@ -67,9 +67,9 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-2">
 		<label class="control-label">参与人员</label>
 		<select name="custom_type" class="form-control" >
-			<option value="0" >不限</option>
-			<option value="1" >新用户</option>
-			<option value="2" >老用户</option>
+			<option value="0" @if( $oldData['custom_type'] == 0 ) selected @endif>不限</option>
+			<option value="1" @if( $oldData['custom_type'] == 1 ) selected @endif>新用户</option>
+			<option value="2" @if( $oldData['custom_type'] == 2 ) selected @endif>老用户</option>
 		</select>
 	</div>
 	<div class="form-group col-sm-2">