Browse Source

添加sku暂存

sunhao 5 years ago
parent
commit
39831808c1

+ 73 - 36
app/Http/Controllers/Admin/GoodsController.php

@@ -120,11 +120,10 @@ class GoodsController extends Controller
120 120
             $mjArr['outerCode'] = $res;
121 121
 
122 122
             //sku
123
-            $sku = trim($request->input('sku'),';');
123
+            $sku = $request->input('sku');
124 124
             if(!empty($sku)){
125
-                $sku = explode(';', $sku);
126 125
                 foreach($sku as $key=>$item){
127
-                    $sku_data = explode(',', $item);
126
+                    $sku_data = explode('@@', $item);
128 127
                     $sku_insert_data = $mjArr['skuList'][$key] = ['propsName'=>$sku_data[0], 'price'=>$sku_data[1], 'createTime'=>date('Y-m-d H:i:s'), 'modifyTime'=>date('Y-m-d H:i:s')];
129 128
                     $sku_insert_data['goodsCode'] = $res;
130 129
                     $sku_insert_data['eshopCode'] = '99|34881';
@@ -133,9 +132,12 @@ class GoodsController extends Controller
133 132
                     $mjArr['skuList'][$key]['outerCode'] = $sku_ids;
134 133
                 }
135 134
             }
136
-            exit;
135
+
137 136
             //对接卖家云
138
-            $mj = Order::mjGoodsAdd($mjArr);
137
+            //$mj = Order::mjGoodsAdd($mjArr);
138
+            /* 同步卖家云商品code等信息 */
139
+
140
+            /* end */
139 141
             #记录操作日志
140 142
             $self_id = session('admin_id');
141 143
             $self_name = session('real_name');
@@ -160,11 +162,11 @@ class GoodsController extends Controller
160 162
     {
161 163
         
162 164
         $data = Goods::where('id', $id)->first();
163
-        $teamList = DB::table('teams')->select('id', 'name')->get();
164
-        $teamList = json_decode(json_encode($teamList), true);
165
-        return view('goods/edit', [       
165
+        $sku =  GoodsSkus::where('goodsCode', $id)->where('is_del', 0)->get();
166
+        return view('goods/edit', [         
166 167
             'goods' => $data,
167
-            'teamlist' => $teamList,
168
+            'sku_list' => $sku,
169
+            'id' => $id,
168 170
         ]);
169 171
 
170 172
     }
@@ -176,41 +178,76 @@ class GoodsController extends Controller
176 178
      */
177 179
     public function update(Request $request)
178 180
     {    
179
-        $name = (int)$request->input('name');
180
-        $id = (int)$request->input('id');        
181
-        $this->validate($request, [
182
-            'id'                  => 'required',
183
-            '_cost'          => 'required', 
184
-            '_fan_add'       => 'required',   
185
-            'name'             => 'required',   
186
-            'createTime'               => 'required|unique:cust_day_,createTime,'.$id.',id,name,'.$name,   
187
-        ], [                  
188
-            'id.required'              => 'id不能为空',                   
189
-            '_cost.required'      => '总成本不能为空',                   
190
-            '_fan_add.required'   => '总加粉数不能为空',                                    
191
-            'name.required'           => '团队不能为空',
192
-            'createTime.required'           => '日期不能为空',
193
-            'createTime.unique'           => '指定日期已存在',                                    
181
+        $id = (int)$request->input('id');
182
+        $this->validate($request, [  
183
+            'id'             => 'required',
184
+            'name'           => 'required',   
185
+            'productCode'           => 'required',     
186
+        ], [       
187
+            'id'             => '非法操作',                                                       
188
+            'name.required'           => '商品名不能为空',
189
+            'productCode.required'           => '商品货号不能为空',                                                                        
194 190
         ]);
195
-       
196
-        $goods = array();
197
-        $goods['_cost'] = $request->input('_cost'); 
198
-        $goods['_fan_add'] = $request->input('_fan_add'); 
199
-        $goods['createTime'] = $request->input('createTime'); 
200
-        $goods['name'] = $name; 
201 191
 
202
-        $res = DB::table('cust_day_')->where('id', $id)->update($goods);
192
+        $del_sku_ids = trim($request->input('del_sku_ids'),',');
193
+        $sku = $request->input('sku');
194
+        //数据库-修改数据
195
+        $goods = array();       
196
+        $goods['name'] = trim($request->input('name')); 
197
+        $goods['description'] = trim($request->input('description'));  //非必填
198
+        $goods['productCode'] = trim($request->input('productCode'));  
199
+        //图片上传 阿里云oss       
200
+        if ($request->hasFile('img') && $request->file('img')->isValid()) {
201
+            $file = $request->file('img');
202
+            $ossClient=new oss();
203
+            // 上传阿里云
204
+            $file = $ossClient->upload($file->getClientOriginalExtension(), $file->getRealPath(), 'upload/seafoodPic'.date("Y-m-d",time()).'/'.date('His'));
205
+            $img=$file['oss-request-url'];
206
+            $goods['picUrl']=str_replace("kx-youhuiquan.oss-cn-beijing.aliyuncs.com","imgs.726p.com",$img);
207
+        } 
208
+
209
+        $res = DB::table('goods')->where('id', $id)->update($goods); 
203 210
         if($res){
211
+            //卖家云必要参数拼接转化
212
+            $mjArr = $goods;
213
+            $mjArr['outerCode'] = $id;
214
+
204 215
             #记录操作日志
205 216
             $self_id = session('admin_id');
206
-            $self_name = session('real_name');            
207
-            $context = "修改运营上报数据";
217
+            $self_name = session('real_name');
218
+            $context = "修改商品数据";
208 219
             $type = 0; 
209
-            $tables = 'cust_day_';
220
+            $tables = 'goods,goods_skus';
210 221
             $data_id = $id;
211 222
             Oplog::addLog($self_id, $self_name, $context, $type, $tables, $data_id);
212
-        }        
213
-        return redirect('/admin/goods/index')->with('info', '更新成功');         
223
+
224
+        }elseif( empty($del_sku_ids) && empty($sku) ){
225
+            return redirect('/admin/goods/index')->with('info', '未做任何修改');
226
+        } 
227
+
228
+        if(!empty($sku)){
229
+            foreach($sku as $key=>$item){
230
+                $sku_data = explode('@@', $item);
231
+                $sku_insert_data = $mjArr['skuList'][$key] = ['propsName'=>$sku_data[0], 'price'=>$sku_data[1], 'createTime'=>date('Y-m-d H:i:s'), 'modifyTime'=>date('Y-m-d H:i:s')];
232
+                $sku_insert_data['goodsCode'] = $id;
233
+                $sku_insert_data['eshopCode'] = '99|34881';
234
+                $sku_ids = DB::table('goods_skus')->insertGetId($sku_insert_data);
235
+
236
+                $mjArr['skuList'][$key]['outerCode'] = $sku_ids;
237
+            }
238
+        }
239
+        if(!empty($del_sku_ids)){
240
+            $del_sku_ids = explode(',', $del_sku_ids);
241
+            $del_res = GoodsSkus::whereIn('id', $del_sku_ids)->update(['is_del'=>1]);
242
+        }
243
+
244
+        //对接卖家云
245
+        //$mj = Order::mjGoodsAdd($mjArr);
246
+        /* 同步卖家云商品code等信息 */
247
+
248
+        /* end */
249
+      
250
+        return redirect('/admin/goods/index')->with('info', '更新成功');       
214 251
     }
215 252
 
216 253
     /**

+ 19 - 1
app/Order.php

@@ -34,10 +34,28 @@ class Order extends Model
34 34
      * 添加商品
35 35
      */
36 36
     public static function mjGoodsAdd($goods){
37
-      $orderList["method"] = "maijiayun.eshop.goods.add";
37
+      $goods["method"] = "maijiayun.eshop.goods.add";
38 38
       $result = self::mjApi($goods);
39 39
       return $result;
40 40
     }
41
+  
42
+    /**
43
+     * 更新商品
44
+     */
45
+    public static function mjGoodsUpdate($goods){
46
+      $goods["method"] = "maijiayun.eshop.goods.update";
47
+      $result = self::mjApi($goods);
48
+      return $result;
49
+    }
50
+
51
+    /**
52
+     * 添加sku
53
+     */
54
+    public static function mjSkuAdd($sku){
55
+      $sku["method"] = "maijiayun.eshop.sku.add";
56
+      $result = self::mjApi($sku);
57
+      return $result;
58
+    }
41 59
 
42 60
    	public static function mjApi($params = array()){  		
43 61
    		$accessKey = "B1E69297B5DA44DAB35099A5F28F41D9"; //erp 生成的 accessKey

+ 31 - 4
resources/views/goods/create.blade.php

@@ -43,13 +43,25 @@
43 43
                     <textarea class="textarea" name="description">{{old('description')}}</textarea>
44 44
                 </div>
45 45
             </div>
46
+
46 47
             <div class="row cl">
47
-                <label class="form-label col-xs-4 col-sm-2">
48
-                    商品规格:</label>
48
+                <label class="form-label col-xs-4 col-sm-2">添加规格:</label>
49 49
                 <div class="formControls col-xs-6 col-sm-6">
50
-                    <input type="text" class="input-text" value="{{old('sku')}}" placeholder="示例: 0.5-0.7/斤/条,98;500克/包,108" name="sku">
50
+                    <span class="select-box">
51
+                        规格:<input type='text' value="" placeholder="示例:500克/包" name="propsName"/>
52
+                        &nbsp;&nbsp;价格:<input type="text" value="" placeholder="请填写对应规格价格(数字格式)" name="price">元
53
+                        &nbsp;&nbsp;<button type='button' onclick='add_goods()'> 确认</button>
54
+                    </span>
55
+                </div>               
56
+            </div><br>
57
+
58
+            <div class="row cl">
59
+                <label class="form-label col-xs-4 col-sm-2">
60
+                    已有规格:</label>
61
+                <div  id='goods_o' class="formControls col-xs-6 col-sm-6">
62
+                     
51 63
                 </div>
52
-            </div>
64
+            </div><br>
53 65
 
54 66
             <div class="row cl">
55 67
                 <div class="col-9 col-offset-2">
@@ -76,6 +88,21 @@
76 88
         function return_index(){
77 89
             location.href='/admin/goods/index';
78 90
         }
91
+        //全局变量
92
+        id_n = -101;
93
+        function add_goods(){
94
+            id_n++;
95
+            var propsName = $("input[name=propsName]").val();
96
+            var price = $("input[name=price]").val();
97
+
98
+            var str = "<p id='sku"+id_n+"'><font style='font-weight:bold;'>规格:<\/font>"+propsName+ " <font style='font-weight:bold;'>价格:<\/font>"+price+";"+ "&nbsp;&nbsp;<button type='button' onclick='del_sku("+id_n+")'> 移除<\/button> <input type='hidden' name='sku[]' value='"+propsName+'@@'+price+"'\/> " +"<\/p>";
99
+
100
+            $("#goods_o").append(str);
101
+            return false;
102
+        }
103
+        function del_sku(id){
104
+            $("#sku"+id).remove();
105
+        }
79 106
     </script>
80 107
     </body>
81 108
 @endsection

+ 77 - 5
resources/views/goods/edit.blade.php

@@ -9,16 +9,65 @@
9 9
         </div>
10 10
     @endif
11 11
     <div class="page-container">
12
-        <form action="/admin/admin/teamupdate" method="post" class="form form-horizontal">
12
+        <form action="/admin/goods/update" method="post" class="form form-horizontal" enctype="multipart/form-data">
13 13
             <input type="hidden" name="_token" value="{{ csrf_token() }}" />
14
-            <input type="hidden" name="id" value="{{$team['id']}}" />
14
+            <input type="hidden" name="id" value="{{$id}}" />
15 15
             <div class="row cl">
16 16
                 <label class="form-label col-xs-4 col-sm-2">
17
-                    团队名:</label>
17
+                    商品标题:</label>
18 18
                 <div class="formControls col-xs-6 col-sm-6">
19
-                    <input type="text" class="input-text" @if(old('name')) value="{{old('name')}}" @else value="{{$team['name']}}" @endif placeholder="" name="name" >
19
+                    <input type="text" class="input-text" value="{{$goods['name']}}" placeholder="" name="name">
20 20
                 </div>
21 21
             </div>
22
+            <div class="row cl">
23
+                <label class="form-label col-xs-4 col-sm-2">
24
+                    商品货号:</label>
25
+                <div class="formControls col-xs-6 col-sm-6">
26
+                    <input type="text" class="input-text" value="{{$goods['productCode']}}" placeholder="" name="productCode">
27
+                </div>
28
+            </div>
29
+            <div class="row cl">
30
+                <label class="form-label col-xs-4 col-sm-2">
31
+                    商品图片:</label>
32
+                <div class="formControls col-xs-6 col-sm-6">
33
+                    <div><img width="100" src="{{$goods['picUrl']?$goods['picUrl']:'/empty.png'}}"/></div><br>
34
+                        <span class="btn-upload">
35
+                          <input class="input-text upload-url radius" type="text" name="uploadfile-1" id="uploadfile-1" readonly><a href="javascript:void();" class="btn btn-primary radius"><i class="Hui-iconfont">&#xe642;</i> 上传图片</a>
36
+                          <input type="file" multiple name="img" class="input-file">
37
+                        </span><br>
38
+                    文件类型支持:jpg ,png ,ico ,文件大小不能超过1M
39
+                </div>
40
+            </div>
41
+            <div class="row cl">
42
+                <label class="form-label col-xs-4 col-sm-2">
43
+                    商品描述:</label>
44
+                <div class="formControls col-xs-6 col-sm-6">
45
+                    <textarea class="textarea" name="description">{{$goods['description']}}</textarea>
46
+                </div>
47
+            </div>
48
+
49
+            <div class="row cl">
50
+                <label class="form-label col-xs-4 col-sm-2">添加规格:</label>
51
+                <div class="formControls col-xs-6 col-sm-6">
52
+                    <span class="select-box">
53
+                        规格:<input type='text' value="" placeholder="示例:500克/包" name="propsName"/>
54
+                        &nbsp;&nbsp;价格:<input type="text" value="" placeholder="请填写对应规格价格(数字格式)" name="price">元
55
+                        &nbsp;&nbsp;<button type='button' onclick='add_goods()'> 确认</button>
56
+                    </span>
57
+                </div>               
58
+            </div><br>
59
+
60
+            <div class="row cl">
61
+                <label class="form-label col-xs-4 col-sm-2">
62
+                    已有规格:</label>
63
+                    <div id = 'goods_o' class="formControls col-xs-6 col-sm-6">
64
+                        @foreach( $sku_list as $sku )
65
+                        <p id='sku{{$sku["id"]}}'><font style='font-weight:bold;'>规格:</font>{{$sku['propsName']}} &nbsp;<font style='font-weight:bold;'>价格:</font>{{$sku['price']}}; &nbsp;&nbsp;<button type='button' onclick='del_sku_y({{$sku["id"]}})'> 移除</button> </p>
66
+                        @endforeach
67
+                    </div>
68
+
69
+                <input type='hidden' name='del_sku_ids' value = ''/>
70
+            </div><br>
22 71
             
23 72
             <div class="row cl">
24 73
                 <div class="col-9 col-offset-2">
@@ -43,7 +92,30 @@
43 92
         });
44 93
         /*返回*/
45 94
         function return_index(){
46
-            location.href='/admin/admin/teamindex';
95
+            location.href='/admin/goods/index';
96
+        }
97
+        //全局变量
98
+        id_n = -101;
99
+        function add_goods(){
100
+            id_n++;
101
+            var propsName = $("input[name=propsName]").val();
102
+            var price = $("input[name=price]").val();
103
+
104
+            var str = "<p id='sku"+id_n+"'><font style='font-weight:bold;'>规格:<\/font>"+propsName+ " <font style='font-weight:bold;'>价格:<\/font>"+price+";"+ "&nbsp;&nbsp;<button type='button' onclick='del_sku("+id_n+")'> 移除<\/button> <input type='hidden' name='sku[]' value='"+propsName+'@@'+price+"'\/> " +"<\/p>";
105
+
106
+            $("#goods_o").append(str);
107
+            return false;
108
+        }
109
+        function del_sku_y(id){
110
+            var del_id = $("input[name=del_sku_ids]").val();
111
+            var del_ids = del_id + id+',';
112
+            $("input[name=del_sku_ids]").val(del_ids);
113
+            $("#sku"+id).remove();
114
+
115
+        }
116
+
117
+        function del_sku(id){
118
+            $("#sku"+id).remove();
47 119
         }
48 120
     </script>
49 121
     </body>