Ver código fonte

【Add】页面分享配置增加ID区别

liuxiangxin 3 meses atrás
pai
commit
ae2bf4ed76

+ 44 - 3
app/Http/Controllers/Admin/ShareMessage.php

@@ -1,6 +1,11 @@
 <?php namespace App\Http\Controllers\Admin;
 
 use App\Http\Requests\Admin\ShareMessage as Request;
+use App\Models\Product;
+use App\Models\Coupon\Active as CouponActive;
+use App\Models\Riddle\Active as RiddleActive;
+use App\Models\Score\ClockinActive;
+use App\Models\RecruitmentActive;
 use App\Models\ShareMessage as Model;
 
 /**
@@ -21,11 +26,39 @@ class ShareMessage extends Auth{
 	 * 列表页
 	 * 
 	 * */
-    public function index(Model $Model){
+    public function index(Model $Model,Product $Product,CouponActive $CouponActive,RecruitmentActive $RecruitmentActive,RiddleActive $RiddleActive,ClockinActive $ClockinActive){
 		// 查询条件
 		$map 					= [];
 		// 查询数据
 		$list					= $Model->query()->where($map)->orderByDesc('id')->paginate(config('page_num',10));
+		// 循环处理数据
+		foreach($list as $key=>$value){
+			// 产品名称/活动名称
+			$value['item_name']	= '';
+			// 判断页面,获取对应的数据
+			if( $value['pages'] == 'pages/product/index' && $value['item_id'] ) {
+				$value['item_name']	= $Product->getOne($value['item_id'],'name');
+				$value['item_id']	= $Product->idToCode($value['item_id']);
+			}
+			// 判断页面,获取对应的数据
+			if( $value['pages'] == 'pages/coupon/active' && $value['item_id'] ) {
+				$value['item_name']	= $CouponActive->getOne($value['item_id'],'name');
+			}
+			// 判断页面,获取对应的数据
+			if( $value['pages'] == 'pages/recruitment/index' && $value['item_id'] ) {
+				$value['item_name']	= $RecruitmentActive->getOne($value['item_id'],'name');
+			}
+			// 判断页面,获取对应的数据
+			if( $value['pages'] == 'pages/activity/index' && $value['item_id'] ) {
+				$value['item_name']	= $RiddleActive->getOne($value['item_id'],'name');
+			}
+			// 判断页面,获取对应的数据
+			if( $value['pages'] == 'pages/score/clockin' && $value['item_id'] ) {
+				$value['item_name']	= $ClockinActive->getOne($value['item_id'],'name');
+			}
+			// 赋值数据
+			$list[$key]			= $value;
+		}
 		// 页面列表
 		$pagesList 				= $Model->getPagesList();
 		// 分配数据
@@ -40,7 +73,7 @@ class ShareMessage extends Auth{
 	 * 添加
 	 * 
 	 * */
-	public function add(Request $request,Model $Model){
+	public function add(Request $request,Model $Model,Product $Product){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -48,6 +81,9 @@ class ShareMessage extends Auth{
 			$data['pages']			= request('pages','');
 			$data['title']			= request('title','');
 			$data['image_url']		= request('image_url','');
+			$data['item_id']		= request('item_id','');
+			// 编码转ID
+			$data['item_id'] 		= $data['pages'] == 'pages/product/index' ? $Product->codeToId($data['item_id']) : intval($data['item_id']);
 			// 写入数据表
 			$id						= $Model->add($data);
 			// 如果操作失败
@@ -70,7 +106,7 @@ class ShareMessage extends Auth{
 	 * 修改
 	 * 
 	 * */
-	public function edit(Request $request,Model $Model){
+	public function edit(Request $request,Model $Model,Product $Product){
 		// 接收参数
 		$id							= request('id',0);
 		// 查询用户
@@ -83,6 +119,9 @@ class ShareMessage extends Auth{
 			$data['pages']			= request('pages','');
 			$data['title']			= request('title','');
 			$data['image_url']		= request('image_url','');
+			$data['item_id']		= request('item_id','');
+			// 编码转ID
+			$data['item_id'] 		= $data['pages'] == 'pages/product/index' ? $Product->codeToId($data['item_id']) : intval($data['item_id']);
 			// 写入数据表
 			$result					= $Model->edit($id,$data);
 			// 如果操作失败
@@ -94,6 +133,8 @@ class ShareMessage extends Auth{
 		}
 		// 错误告知
 		if( !$oldData )				return $this->error('查无数据');
+		// 编码转ID
+		$oldData['item_id'] 		= $oldData['pages'] == 'pages/product/index' ? $Product->idToCode($oldData['item_id']) : intval($oldData['item_id']);
 		// 页面列表
 		$pagesList 					= $Model->getPagesList();
 		// 分配数据

+ 31 - 2
app/Http/Controllers/Api/ShareMessage.php

@@ -22,11 +22,40 @@ class ShareMessage extends Api{
 		// 检查登录
 		$uid							= $this->getUid();
 		// 查新客户类型
-		$list			                = $Model->getList();
-
+		$list			                = $Model->getPagesList();
+		// 循环页面
+		foreach ($list as $pages => $value) {
+			// 获取页面数据
+			$value						= $Model->getOneByPage($pages,0);
+			// 重新赋值
+			$list[$pages]				= $value;
+		}
+		// 返回结果
 		$list							= array_values($list);
 		// 返回结果
 		return							json_send(['code'=>'success','msg'=>'获取成功','data'=>$list]);
 	}
+
+	/**
+	 * 获取客户信息			/api/share_message/get_item
+	 * 
+	 * */
+	public function get_item(Model $Model){
+		// 接口验签
+		// $this->verify_sign();
+		// 检查登录
+		$uid							= $this->getUid();
+		// 接收参数
+		$pages							= request('pages','pages/index/index');
+		$itemId							= request('item_id',0);
+		// 查询对应配置
+		$data			                = $Model->getOneByPage($pages,$itemId);
+		// 如果没有对应的配置,获取默认的配置
+		if( !$data ) 					$data = $Model->getOneByPage($pages,0);
+		// 如果都没有
+		$data							= $data ? $data : (object)[];
+		// 返回结果
+		return							json_send(['code'=>'success','msg'=>'获取成功','data'=>$data]);
+	}
 	
 }

+ 30 - 10
app/Models/ShareMessage.php

@@ -23,10 +23,14 @@ class ShareMessage extends Model
     private  $pagesList = [
                             'pages/index/index'=>'首页',
                             'pages/car/index'=>'购物车',
+                            'pages/user/index'=>'个人中心',
                             'pages/score/clockin'=>'积分签到',
                             'pages/score/index'=>'积分产品',
-                            'pages/user/index'=>'个人中心',
-                            'pages/score/lottery'=>'积分抽奖'
+                            'pages/score/lottery'=>'积分抽奖',
+                            'pages/coupon/active'=>'领券活动',
+                            'pages/recruitment/index'=>'拉新活动',
+                            'pages/activity/index'=>'答题活动',
+                            'pages/product/index'=>'产品详情',
                         ];
 
     /**
@@ -85,26 +89,42 @@ class ShareMessage extends Model
     public function getList($force = false)
     {
         // 结果数据
-        $list                  = $force ? [] : cache('admin:share:message:list');
+        $list                           = $force ? [] : cache('admin:share:message:list');
         // 不存在数据
         if ( !$list ) {
             // 从数据库获取数据
-            $data              = $this->query()->where([['status','=',0]])->get(['id','pages','title','image_url','path']);
+            $data                       = $this->query()->where([['status','=',0]])->get(['id','pages','title','image_url','item_id','path']);
             // 是否有数据
-            $data              = $data ? $data->toArray() : [];
+            $data                       = $data ? $data->toArray() : [];
             // 循环处理数据
-            $list              = [];
+            $list                       = [];
             // 进行更新
             foreach ($data as $value) {
                 // 数据处理
                 $value['image_url']	   = $value['image_url'] ? path_compat($value['image_url']) : '';
                 // 重组数据
-                $list[$value['pages']] = $value;
+                $list[$value['pages']][$value['item_id']] = $value;
             }
             // 存起来
             cache(['admin:share:message:list'=>$list]);
         }
         // 返回结果
+        return                          $list;
+    }
+
+    /**
+     * 获取配置
+     * 
+     * @param   string    $pages      页面
+     * 
+     */
+    public function getListByPage($pages)
+    {
+        // 获取列表数据
+        $list                   = $this->getList();
+        // 获取数据
+        $list                   = isset($list[$pages]) ? $list[$pages] : [];
+        // 返回值
         return                  $list;
     }
 
@@ -115,12 +135,12 @@ class ShareMessage extends Model
      * @param   string    $field     指定字段
      * 
      */
-    public function getOneByPage($pages,$field='')
+    public function getOneByPage($pages,$itemId=0,$field='')
     {
         // 获取列表数据
-        $list                   = $this->getList();
+        $list                   = $this->getListByPage($pages);
         // 获取数据
-        $one                    = isset($list[$pages]) ? $list[$pages] : [];
+        $one                    = isset($list[$itemId]) ? $list[$itemId] : [];
         // 返回值
         return                  empty($field) ? $one : ( isset($one[$field]) ? $one[$field] : null);
     }

+ 4 - 0
resources/views/admin/share_message/add.blade.php

@@ -25,6 +25,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col-sm-5">
+		<label class="control-label">产品编码/活动ID</label>
+		<input class="form-control" type="text" placeholder="产品编码/活动ID" name="item_id" value="0" />
+	</div>
 	<div class="form-group col-sm-12">
 		@csrf
 		<input id="send" type="submit" value="提交" class="btn btn-primary btn-block" />

+ 4 - 0
resources/views/admin/share_message/edit.blade.php

@@ -25,6 +25,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col-sm-5">
+		<label class="control-label">产品编码/活动ID</label>
+		<input class="form-control" type="text" placeholder="产品编码/活动ID" name="item_id" value="{{$oldData['item_id']}}" />
+	</div>
 	<div class="form-group col-sm-12">
 		@csrf
 		<input type="hidden" name="id" id="id" value="{{$oldData['id']}}" />

+ 5 - 1
resources/views/admin/share_message/index.blade.php

@@ -17,7 +17,9 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 				<thead>
 					<tr>
 						<th>ID</th>
-						<th>分享页面</th>
+						<th>配置页面</th>
+						<th>产品编码/活动ID</th>
+						<th>产品名称/活动名称</th>
 						<th>分享标题</th>
 						<th>分享图标</th>
 						<th>状态</th>
@@ -37,6 +39,8 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 									@endif
 								@endforeach
 							</td>
+							<td>{{$a['item_id']}}</td>
+							<td>{{$a['item_name']}}</td>
 							<td>{{$a['title']}}</td>
 							<td> <img src="{{path_compat($a['image_url'])}}" alt="" height="30"> </td>
 							<td>{{$a['status']?'停用':'启用'}}</td>

+ 1 - 0
routes/api.php

@@ -203,6 +203,7 @@ Route::any('orders/cancel_regiment',[\App\Http\Controllers\Api\Orders::class,'ca
  * 
  * */
 Route::any('share_message/get_list',[\App\Http\Controllers\Api\ShareMessage::class,'get_list']);
+Route::any('share_message/get_item',[\App\Http\Controllers\Api\ShareMessage::class,'get_item']);
 
 /**
  * 拉新活动