Explorar o código

【Mod】优化修改新人抽奖功能

liuxiangxin hai 2 meses
pai
achega
cb1dc4694c

+ 5 - 1
app/Http/Controllers/Admin/LotteryRecruitment.php

@@ -58,7 +58,7 @@ class LotteryRecruitment extends Auth{
         // 不存在数据
         if ( is_null($link) ) {
             // 从数据库获取数据
-            $link              = Mini::getUrlLink('pages/recruitment/lottery','id='.$id);
+            $link              = Mini::getUrlLink('pages/recruitment/lottery_new','id='.$id);
             // 存起来
             cache(['admin:lottery:recruitment:urllink:'.$id=>$link],$link ? now()->addDays(28) : now()->addMinutes(3));
         }
@@ -92,6 +92,8 @@ class LotteryRecruitment extends Auth{
 			$data['city_ids']		= implode(',',$cityIds);
 			$data['tag_scope']		= implode(',',$tagScope);
 			$data['status']			= 1;
+            // 如果操作失败
+            if( $data['max_reward'] > $data['lucky_num'] )  return json_send(['code'=>'error','msg'=>'中奖次数不能大于抽奖次数']);
             // 写入数据表
             $id						= $Model->add($data);
             // 如果操作失败
@@ -149,6 +151,8 @@ class LotteryRecruitment extends Auth{
 			$tagScope				= request('tag_scope',[]);
 			$data['city_ids']		= implode(',',$cityIds);
 			$data['tag_scope']		= implode(',',$tagScope);
+            // 如果操作失败
+            if( $data['max_reward'] > $data['lucky_num'] )  return json_send(['code'=>'error','msg'=>'中奖次数不能大于抽奖次数']);
             // 写入数据表
             $result					= $Model->edit($id,$data);
             // 如果操作失败

+ 2 - 2
app/Http/Controllers/Api/Lottery/Recruitment.php

@@ -216,11 +216,11 @@ class Recruitment extends Api{
                             $record['status']= 8;
                         }
                     }
-					// 如果是实物,要求填写地址,状态设置为0
+					// 如果是虚拟物品
                     if( $rewardResult['reward_type'] == 4 ) $record['status'] = 1;
                     // 如果是实物,要求填写地址,状态设置为0
                     if( $rewardResult['reward_type'] == 5 ) $record['status'] = 0;
-					// 如果是实物,要求填写地址,状态设置为0
+					// 如果是其他
                     if( $rewardResult['reward_type'] == 6 ) $record['status'] = 1;
                 }
             }

+ 2 - 2
app/Http/Controllers/Api/Lottery/RecruitmentRecord.php

@@ -19,7 +19,7 @@ class RecruitmentRecord extends Api{
 	 * 获取抽奖记录		/api/lottery_recruitment_record/get_list
 	 * 
 	 * */
-	public function get_list(Request $request,Model $Model){
+	public function get_list(Request $request,Model $Model,RecruitmentReward $RecruitmentReward){
 		// 接口验签
 		// $this->verify_sign();
 		// 验证参数
@@ -31,7 +31,7 @@ class RecruitmentRecord extends Api{
 		// 
 		$map							= [['custom_uid','=',$uid],['lottery_id','=',$lotteryId],['reward_id','>',0]];
 		// 获取客户城市的数据
-		$list			                = $Model->query()->where($map)->orderByDesc('id')->get(['id','reward_name','contact_addr','status','insert_time'])->toArray();
+		$list			                = $Model->query()->where($map)->orderByDesc('id')->get(['id','reward_id','reward_name','contact_addr','status','insert_time'])->toArray();
 		// 处理请求
 		foreach ($list as $key => $value ) {
 			// 处理数据

+ 1 - 1
app/Models/Lottery/OrderReward.php

@@ -122,7 +122,7 @@ class OrderReward extends Model
             if( $lotteryId == $value['lottery_id'] )  $list[] = $value;
         }
         // 追加一个谢谢参与
-        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>6,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
+        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>0,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
         // 返回结果
         return                 $list;
     }

+ 1 - 1
app/Models/Lottery/RecruitmentReward.php

@@ -122,7 +122,7 @@ class RecruitmentReward extends Model
             if( $lotteryId == $value['lottery_id'] )  $list[] = $value;
         }
         // 追加一个谢谢参与
-        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>6,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
+        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>0,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
         // 返回结果
         return                 $list;
     }

+ 1 - 1
app/Models/Lottery/RiddleReward.php

@@ -122,7 +122,7 @@ class RiddleReward extends Model
             if( $lotteryId == $value['lottery_id'] )  $list[] = $value;
         }
         // 追加一个谢谢参与
-        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>6,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
+        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>0,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
         // 返回结果
         return                 $list;
     }

+ 1 - 1
app/Models/Lottery/ScoreReward.php

@@ -122,7 +122,7 @@ class ScoreReward extends Model
             if( $lotteryId == $value['lottery_id'] )  $list[] = $value;
         }
         // 追加一个谢谢参与
-        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>6,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
+        if( $list )            array_unshift($list,['id'=>0,'reward_name'=>'谢谢参与','reward_thumb'=>'','reward_type'=>0,'reward_total'=>1,'reward_info'=>'','probability'=>0,'lottery_id'=>$lotteryId]);
         // 返回结果
         return                 $list;
     }

+ 1 - 1
resources/views/admin/lottery_recruitment/index.blade.php

@@ -58,7 +58,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 									@endif
 								@endif
 							</td>
-							<td>/pages/recruitment/lottery?id={{$a['id']}}</td>
+							<td>/pages/recruitment/lottery_new?id={{$a['id']}}</td>
 							<td>{{$a['mp_urllink']}}</td>
 							<td> {{date('Y/m/d H:i:s',$a['update_time'])}}</td>
 							<td>

+ 1 - 1
resources/views/admin/poster/index.blade.php

@@ -22,7 +22,7 @@
 				<option value="pages/orders/lottery">下单抽奖</option>
 				<option value="pages/activity/index">答题活动</option>
 				<option value="pages/activity/lottery">答题抽奖</option>
-				<option value="pages/recruitment/lottery">拉新抽奖</option>
+				<option value="pages/recruitment/lottery_new">拉新抽奖</option>
 			</select>
 		</div>
 		<div class="form-group col-sm-12">

+ 42 - 4
resources/views/admin/video_course/add.blade.php

@@ -14,7 +14,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		</div>
 	</div>
 	<div class="form-group col-sm-2">
-		<label class="control-label">课程视频</label>
+		<label class="control-label">课程视频 [720P]</label>
 		<div id="video_src">
 			<a id="video_upload" href="javascript:;" class="img-thumb" >
 				<video src="{{path_compat('')}}" poster="{{path_compat('')}}" height="100" width="100" ></video>
@@ -60,6 +60,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	editor.render("container");
 </script>
 <script type="text/javascript">
+
 	$('#video_upload').on('click', function() {
 		// 定义预签名URL
 		var signedUrl	= '';
@@ -93,7 +94,8 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			}
 		});
 		
-		$(document).on('change','#form-upload-file',function(){
+		// 上传文件
+		$(document).off('change', '#form-upload-file').on('change','#form-upload-file',function(){
 			// 获取文件
 			const fileInput = document.getElementById('form-upload-file');
 			const file = fileInput.files[0];
@@ -102,10 +104,46 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 				art.dialog({content: '请上传文件',lock: true,ok: function() {}});
 				return ;
 			}
-			// 调用上传
-			upload(file, signedUrl);
+			// // 如果没有上传文件
+			// if ( file.size >= 524288000 ) {
+			// 	art.dialog({content: '上传视频不允许大于500MB',lock: true,ok: function() {}});
+			// 	return ;
+			// }
+
+			const result = checkVideoResolution(file);
+			result.then(function($re){
+				if( !$re ){
+					art.dialog({content: '上传视频不允许大于1280*720',lock: true,ok: function() {}});
+					return ;
+				}
+				// 调用上传
+				upload(file, signedUrl);
+			});
+
+			return ;
 		})
 
+
+		const checkVideoResolution =  (file) => {
+			return new Promise((resolve, reject) => {
+				const video = document.createElement('video',{}); // 创建一个临时的video元素
+				const url = URL.createObjectURL(file); // 创建一个指向文件的URL
+				video.src = url; // 设置video元素的源为文件URL
+				video.muted = true; // 静音视频,避免自动播放问题
+				// 等待元数据加载完成
+				video.onloadedmetadata =  function (){ // 等待元数据加载完成
+					URL.revokeObjectURL(url); // 释放URL对象
+					if (video.videoWidth > 1280 || video.videoHeight > 720) {
+						video.remove();
+						resolve(false);
+					} else {
+						video.remove();
+						resolve(true);
+					}
+				};
+			})
+		}
+
 		const upload = async (file, presignedUrl) => {
 			// 提示上传中
 			art.dialog({id:'loading',lock: true,title:'视频上传中'});

+ 39 - 4
resources/views/admin/video_course/edit.blade.php

@@ -14,7 +14,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		</div>
 	</div>
 	<div class="form-group col-sm-2">
-		<label class="control-label">课程视频</label>
+		<label class="control-label">课程视频 [720P]</label>
 		<div id="video_src">
 			<a id="video_upload" href="javascript:;" class="img-thumb" >
 				<video src="{{$oldData['video_src']}}" height="100" width="100" ></video>
@@ -94,7 +94,8 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			}
 		});
 		
-		$(document).on('change','#form-upload-file',function(){
+		// 上传文件
+		$(document).off('change', '#form-upload-file').on('change','#form-upload-file',function(){
 			// 获取文件
 			const fileInput = document.getElementById('form-upload-file');
 			const file = fileInput.files[0];
@@ -103,10 +104,44 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 				art.dialog({content: '请上传文件',lock: true,ok: function() {}});
 				return ;
 			}
-			// 调用上传
-			upload(file, signedUrl);
+			// // 如果没有上传文件
+			// if ( file.size >= 524288000 ) {
+			// 	art.dialog({content: '上传视频不允许大于500MB',lock: true,ok: function() {}});
+			// 	return ;
+			// }
+			const result = checkVideoResolution(file);
+			result.then(function($re){
+				if( !$re ){
+					art.dialog({content: '上传视频不允许大于1280*720',lock: true,ok: function() {}});
+					return ;
+				}
+				// 调用上传
+				upload(file, signedUrl);
+			});
+
+			return ;
 		})
 
+		const checkVideoResolution =  (file) => {
+			return new Promise((resolve, reject) => {
+				const video = document.createElement('video',{}); // 创建一个临时的video元素
+				const url = URL.createObjectURL(file); // 创建一个指向文件的URL
+				video.src = url; // 设置video元素的源为文件URL
+				video.muted = true; // 静音视频,避免自动播放问题
+				// 等待元数据加载完成
+				video.onloadedmetadata =  function (){ // 等待元数据加载完成
+					URL.revokeObjectURL(url); // 释放URL对象
+					if (video.videoWidth > 1280 || video.videoHeight > 720) {
+						video.remove();
+						resolve(false);
+					} else {
+						video.remove();
+						resolve(true);
+					}
+				};
+			})
+		}
+
 		const upload = async (file, presignedUrl) => {
 			// 提示上传中
 			art.dialog({id:'loading',lock: true,title:'视频上传中'});