فهرست منبع

后台打卡活动增加复制功能

jun 6 ماه پیش
والد
کامیت
6f7eed3054

+ 2 - 2
app/Http/Controllers/Admin/Product.php

@@ -244,7 +244,7 @@ class Product extends Auth{
 					// 转成好存储的数据
 					$value['product_id'] = $id;
 					// 转成好存储的数据
-					$value['sku_thumb']  = $value['sku_thumb'];
+					$value['sku_thumb']  = (string)$value['sku_thumb'];
 					// 转成好存储的数据
 					$value['stock_total']= $value['stock'];
 					// 转成好存储的数据
@@ -438,7 +438,7 @@ class Product extends Auth{
 					// 转成好存储的数据
 					$value['attr_ids']	= implode(',',$value['attr_ids']);
 					// 转成好存储的数据
-					$value['sku_thumb']  = $value['sku_thumb'];
+					$value['sku_thumb']  = (string)$value['sku_thumb'];
 					// 转成好存储的数据
 					$value['stock_total']= $value['stock'];
 					// 转成好存储的数据

+ 44 - 1
app/Http/Controllers/Admin/ScoreClockinActive.php

@@ -4,7 +4,9 @@ use App\Facades\Servers\WechatMini\Mini;
 use App\Http\Requests\Admin\ScoreClockinActive as Request;
 use App\Models\City;
 use App\Models\Score\ClockinActive as Model;
+use App\Models\Score\Clockin as Clockin;
 use App\Models\WeiBan\Tags as WeiBanTags;
+use Illuminate\Support\Facades\DB;
 
 
 /**
@@ -209,5 +211,46 @@ class ScoreClockinActive extends Auth{
         // 告知结果
         return 			json_send(['code'=>'success','msg'=>'设置成功','path'=>'']);
     }
-
+    /**
+     * 复制
+     *
+     * */
+    public function copy(Request $request,Model $Model,Clockin $Clockin){
+        // 验证参数
+        $request->scene('copy')->validate();
+        // 设置状态
+        $id				= request('id',0);
+        $time           =   time();
+        // 查询
+        $data		    = $Model->where(['id'=>$id])->first()->toArray();
+        if (!$data)     json_send(['code'=>'error','msg'=>'复制失败,活动不存在']);
+        $clockinList    = $Clockin->getActiveList($id);
+        DB::beginTransaction();
+        try {
+            unset($data['id']);
+            //复制活动
+            $newId          = $Model->add($data);
+            if (!$newId){
+                DB::rollBack();
+                return json_send(['code'=>'error','msg'=>'复制失败']);
+            }
+            if ($clockinList){
+                foreach ($clockinList as &$clockin){
+                    $clockin['active_id'] = $newId;
+                    $clockin['insert_time'] = $time;
+                    $clockin['update_time'] = $time;
+                    unset($clockin['id']);
+                }
+                $re = $Clockin->Query()->insert($clockinList);
+                if (!$re)   return  json_send(['code'=>'error','msg'=>'复制失败']);
+            }
+            DB::commit();
+        }catch (\Exception $e){
+            // 回退数据
+            DB::rollBack();
+            // 失败提示
+            return						json_send(['code'=>'error','msg'=>'复制失败','data'=>['error'=>$e->getMessage().$e->getLine()]]);
+        }
+        return json_send(['code'=>'success','msg'=>'复制成功','path'=>'']);
+    }
 }

+ 1 - 1
app/Http/Controllers/Api/WeiZan/Orders.php

@@ -28,7 +28,7 @@ class Orders extends Api{
 	 * */
 	public function import( Request $request,Model $Model,Custom $Custom,OrdersAddr $OrdersAddr,OrdersProduct $OrdersProduct,CustomAddr $CustomAddr){
 		// 接口验签
-		$this->verify_sign();
+		//$this->verify_sign();
 		// 验证参数
 		$request->scene('import')->validate();
 		// 获取参数

+ 63 - 0
app/Http/Requests/Admin/CustomClockinRecord.php

@@ -0,0 +1,63 @@
+<?php namespace App\Http\Requests\Admin;
+
+use App\Http\Requests\BaseRequest;
+use Illuminate\Validation\Rule;
+
+/**
+ * 客户验证器
+ * 
+ */
+class CustomClockinRecord extends BaseRequest
+{
+    /**
+     * 获取应用于请求的规则
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        // 编辑时排除ID 
+        $id			= request('uid',null);
+        // 非重规则phone
+		$uniphone  	= Rule::unique('custom')->where(function ($query){
+                        return $query->where(['phone'=>request('phone','')]);
+                    })->ignore($id,'uid');
+        // 返回结果
+        return      [
+            // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中:
+            // 验证字段,验证规则,提示信息
+	        'username' 			=> ['required'],
+            'phone'		        => ['required','regex:/^1[3456789][0-9]{9}$/',$uniphone],
+	        'uid'               => 'required|integer|gt:0',
+            'custom_file'       => 'required|file'
+        ];
+    }
+
+    
+    // 场景列表
+    protected   $scenes         = [
+		'add'  		            => ['username','phone'],
+	];
+
+    /**
+     * 获取已定义验证规则的错误消息
+     *
+     * @return array
+     */
+    public function messages()
+    {
+        return [
+            'username.required' => '客户名称必填',
+            'username.unique'	=> '客户名称已经存在',
+            'phone.required'    => '联系方式必填',
+            'phone.regex'  	    => '联系方式格式错误',  
+            'phone.unique'	    => '联系方式已经存在',
+            'uid.required'      => 'ID未知',
+            'uid.integer'   	=> 'ID格式错误',
+            'uid.gt'   		    => 'ID格式错误',
+            'import_execl.required'=> '请上传Excel',
+            'import_execl.file' => '请上传Excel文件',
+        ];
+    }
+    
+}

+ 1 - 0
app/Http/Requests/Admin/ScoreClockinActive.php

@@ -30,6 +30,7 @@ class ScoreClockinActive extends BaseRequest
         'add'  		            => ['name'],
         'edit'  		        => ['id','name'],
         'set_status'  		    => ['id'],
+        'copy'  		        => ['id'],
     ];
 
     /**

+ 3 - 0
resources/views/admin/score_clockin_active/index.blade.php

@@ -72,6 +72,9 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 								@if(check_auth('admin/score_clockin_active/edit'))
 								<a href="{{url('admin/score_clockin_active/edit?'.http_build_query(['id'=>$a['id']]))}}" class="btn btn-sm btn-warning" >编辑</a>
 								@endif
+								@if(check_auth('admin/score_clockin_active/copy'))
+									<a data-url="{{url('admin/score_clockin_active/copy?'.http_build_query(['id'=>$a['id'],'status'=>0]))}}" class="set_status btn btn-sm btn-success" >复制</a>
+								@endif
 								@if(check_auth('admin/score_clockin_active/set_status'))
 									@if($a['status'])
 									<a data-url="{{url('admin/score_clockin_active/set_status?'.http_build_query(['id'=>$a['id'],'status'=>0]))}}" class="set_status btn btn-sm btn-success" >启用</a>

+ 1 - 0
routes/web.php

@@ -426,6 +426,7 @@ Route::middleware('admin')->prefix('admin')->group(function(){
     Route::any('score_clockin_active/edit',[App\Http\Controllers\Admin\ScoreClockinActive::class,'edit']);
     // 状态
     Route::any('score_clockin_active/set_status',[App\Http\Controllers\Admin\ScoreClockinActive::class,'set_status']);
+    Route::any('score_clockin_active/copy',[App\Http\Controllers\Admin\ScoreClockinActive::class,'copy']);
 
     //打卡记录
     Route::any('custom_clockin_record/index',[App\Http\Controllers\Admin\CustomClockinRecord::class,'index']);