| 
														
															@@ -8,10 +8,10 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     {
 
														 | 
														
														 | 
														
															     {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         parent::__construct('update', $load, $id);
 
														 | 
														
														 | 
														
															         parent::__construct('update', $load, $id);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public function get($value = array(), &$option = array())
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public function get(&$value = array(), &$option = array())
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     {
 
														 | 
														
														 | 
														
															     {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         $func = $this->checkFunc();
 
														 | 
														
														 | 
														
															         $func = $this->checkFunc();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        $remote = $show = array();
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        $remote = $show = $spec = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         $data['update'] = $data['field'] = $data['option'] = array();
 
														 | 
														
														 | 
														
															         $data['update'] = $data['field'] = $data['option'] = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         $this->setting('field', $data['update'], true, 'text');
 
														 | 
														
														 | 
														
															         $this->setting('field', $data['update'], true, 'text');
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         foreach ($data['update'] as $k => $v) {
 
														 | 
														
														 | 
														
															         foreach ($data['update'] as $k => $v) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -19,13 +19,18 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $v['value'] = array();
 
														 | 
														
														 | 
														
															                 $v['value'] = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (isset($v['remote'])) {
 
														 | 
														
														 | 
														
															             if (isset($v['remote'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                # 需要设置remote
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                $remote[$v['key']] = array($k, $v['remote']);
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $remote[$v['key']] = array($k, $v['remote'], $v['key']);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if (isset($v['spec_data'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $spec[$v['key']] = array($k, $v['spec_data'], $v['key'] . '_spec');
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (isset($v['show']) && is_string($v['show'])) {
 
														 | 
														
														 | 
														
															             if (isset($v['show']) && is_string($v['show'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $show[$v['key']] = array($k, $v['show']);
 
														 | 
														
														 | 
														
															                 $show[$v['key']] = array($k, $v['show']);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $data['field'][$v['key']] = $v['value'];
 
														 | 
														
														 | 
														
															             $data['field'][$v['key']] = $v['value'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if ($v['type'] == 'sku') {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $data['field'][$v['key'] . '_spec'] = [];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (isset($v['option'])) {
 
														 | 
														
														 | 
														
															             if (isset($v['option'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $data['option'][$v['key']] = $v['option'];
 
														 | 
														
														 | 
														
															                 $data['option'][$v['key']] = $v['option'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 unset($data['update'][$k]['option']);
 
														 | 
														
														 | 
														
															                 unset($data['update'][$k]['option']);
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -53,15 +58,31 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if ($this->info) {
 
														 | 
														
														 | 
														
															         if ($this->info) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $info = $this->info;
 
														 | 
														
														 | 
														
															             $info = $this->info;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $this->setInfo($info, $data, $remote, $show);
 
														 | 
														
														 | 
														
															             $this->setInfo($info, $data, $remote, $show);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if ($spec) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                foreach ($spec as $k => $v) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $data['update'][$spec[$k][0]]['remote'] = Dever::url($spec[$k][1]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $result = Dever::call($spec[$k][1], array($this->info['id']));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if ($result) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $data['field'][$spec[$k][2]] = $result;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } elseif ($value) {
 
														 | 
														
														 | 
														
															         } elseif ($value) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            foreach ($value as $k => $v) {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                $this->setInfo($v, $data, $remote, $show);
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            foreach ($value as $k => &$v) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $this->setInfo($v, $data, $remote, $show, 2);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $option[$k] = $data['option'];
 
														 | 
														
														 | 
														
															                 $option[$k] = $data['option'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } else {
 
														 | 
														
														 | 
														
															         } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if ($remote) {
 
														 | 
														
														 | 
														
															             if ($remote) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $info = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 foreach ($remote as $k => $v) {
 
														 | 
														
														 | 
														
															                 foreach ($remote as $k => $v) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     $data['update'][$v[0]]['remote'] = Dever::url($v[1]);
 
														 | 
														
														 | 
														
															                     $data['update'][$v[0]]['remote'] = Dever::url($v[1]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if (isset($v[2]) && isset($data['option'][$v[2]]) && $data['option'][$v[2]] & $m = Dever::isset($data['option'][$v[2]][0], 'id')) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $result = Dever::call($v[1], array($m), 'api');
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if ($result) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $this->setUpdate($info, $data, $result);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }
 
														 | 
														
														 | 
														
															                 }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if ($show) {
 
														 | 
														
														 | 
														
															             if ($show) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -82,7 +103,7 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         return $data;
 
														 | 
														
														 | 
														
															         return $data;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private function setInfo($info, &$data, $remote, $show)
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private function setInfo(&$info, &$data, $remote, $show, $type = 1)
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     {
 
														 | 
														
														 | 
														
															     {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         foreach ($info as $k => $v) {
 
														 | 
														
														 | 
														
															         foreach ($info as $k => $v) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (isset($data['field'][$k])) {
 
														 | 
														
														 | 
														
															             if (isset($data['field'][$k])) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -93,16 +114,17 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         $v = array();
 
														 | 
														
														 | 
														
															                         $v = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }
 
														 | 
														
														 | 
														
															                     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }
 
														 | 
														
														 | 
														
															                 }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (isset($this->config['field'][$k]) && isset($this->config['field'][$k]['update'])) {
 
														 | 
														
														 | 
														
															                 if (isset($this->config['field'][$k]) && isset($this->config['field'][$k]['update'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     $v = $this->config['field'][$k]['update'];
 
														 | 
														
														 | 
														
															                     $v = $this->config['field'][$k]['update'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }
 
														 | 
														
														 | 
														
															                 }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                $data['field'][$k] = $v;
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if ($type == 1) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $data['field'][$k] = $v;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (isset($remote[$k])) {
 
														 | 
														
														 | 
														
															                 if (isset($remote[$k])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     $data['update'][$remote[$k][0]]['remote'] = Dever::url($remote[$k][1]);
 
														 | 
														
														 | 
														
															                     $data['update'][$remote[$k][0]]['remote'] = Dever::url($remote[$k][1]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     $result = Dever::call($remote[$k][1], array($v), 'api');
 
														 | 
														
														 | 
														
															                     $result = Dever::call($remote[$k][1], array($v), 'api');
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     if ($result) {
 
														 | 
														
														 | 
														
															                     if ($result) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        $this->setUpdate($data['update'], $data['option'], $result);
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $this->setUpdate($info, $data, $result);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }
 
														 | 
														
														 | 
														
															                     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }
 
														 | 
														
														 | 
														
															                 }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (isset($show[$k])) {
 
														 | 
														
														 | 
														
															                 if (isset($show[$k])) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -112,15 +134,21 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
 
														 | 
														
														 | 
														
															 
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private function setUpdate(&$update, &$option, $result)
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private function setUpdate(&$info, &$data, $result)
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     {
 
														 | 
														
														 | 
														
															     {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        foreach ($update as $k => $v) {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        foreach ($data['update'] as $k => $v) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (isset($result[$v['key']])) {
 
														 | 
														
														 | 
														
															             if (isset($result[$v['key']])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (isset($result[$v['key']]['option'])) {
 
														 | 
														
														 | 
														
															                 if (isset($result[$v['key']]['option'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    $option[$v['key']] = $result[$v['key']]['option'];
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $data['option'][$v['key']] = $result[$v['key']]['option'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     unset($result[$v['key']]['option']);
 
														 | 
														
														 | 
														
															                     unset($result[$v['key']]['option']);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }
 
														 | 
														
														 | 
														
															                 }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                $update[$k] = array_merge($update[$k], $result[$v['key']]);
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (empty($data['field'][$v['key']]) && isset($result[$v['key']]['value'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $data['field'][$v['key']] = $result[$v['key']]['value'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (isset($result[$v['key']]['set']) && $info) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $info = array_merge($info, $result[$v['key']]['set']);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $data['update'][$k] = array_merge($data['update'][$k], $result[$v['key']]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -234,7 +262,7 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         $update = array();
 
														 | 
														
														 | 
														
															         $update = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         $this->setting('field', $update, true, 'text');
 
														 | 
														
														 | 
														
															         $this->setting('field', $update, true, 'text');
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if ($update) {
 
														 | 
														
														 | 
														
															         if ($update) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            $data = $other = array();
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            $data = $other = $sku = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $input = Dever::input();
 
														 | 
														
														 | 
														
															             $input = Dever::input();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $id = false;
 
														 | 
														
														 | 
														
															             $id = false;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (isset($input['id']) && $input['id'] > 0) {
 
														 | 
														
														 | 
														
															             if (isset($input['id']) && $input['id'] > 0) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -245,7 +273,9 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     if (isset($v['rules'])) {
 
														 | 
														
														 | 
														
															                     if (isset($v['rules'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         $this->checkRules($v, $input[$v['key']]);
 
														 | 
														
														 | 
														
															                         $this->checkRules($v, $input[$v['key']]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }
 
														 | 
														
														 | 
														
															                     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    if (strpos($v['key'], '/')) {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if ($v['type'] == 'sku') {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $sku[$v['key']] = array($v['where'], $v['content']['field'], $v['spec'], $v['spec_field'], $input[$v['key'] . '_spec'], $input[$v['key']]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    } elseif (strpos($v['key'], '/')) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         $other[$v['key']] = array($v['where'], $v['content']['field'], $v['content']['drag'], $input[$v['key']]);
 
														 | 
														
														 | 
														
															                         $other[$v['key']] = array($v['where'], $v['content']['field'], $v['content']['drag'], $input[$v['key']]);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } else {
 
														 | 
														
														 | 
														
															                     } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         $this->doData($data, $v['key'], $input[$v['key']]);
 
														 | 
														
														 | 
														
															                         $this->doData($data, $v['key'], $input[$v['key']]);
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -281,6 +311,7 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $this->end($id, $data);
 
														 | 
														
														 | 
														
															             $this->end($id, $data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $this->other($id, $data, $other);
 
														 | 
														
														 | 
														
															             $this->other($id, $data, $other);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            $this->sku($id, $data, $sku);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             return '操作成功';
 
														 | 
														
														 | 
														
															             return '操作成功';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -358,6 +389,9 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     {
 
														 | 
														
														 | 
														
															     {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if ($other) {
 
														 | 
														
														 | 
														
															         if ($other) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             foreach ($other as $k => $v) {
 
														 | 
														
														 | 
														
															             foreach ($other as $k => $v) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (strpos($k, '#')) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $k = str_replace('#', '', $k);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $common = $v[0];
 
														 | 
														
														 | 
														
															                 $common = $v[0];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $update = $v[1];
 
														 | 
														
														 | 
														
															                 $update = $v[1];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $drag = $v[2];
 
														 | 
														
														 | 
														
															                 $drag = $v[2];
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -368,10 +402,14 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         $value['id'] = $v1['id'];
 
														 | 
														
														 | 
														
															                         $value['id'] = $v1['id'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }
 
														 | 
														
														 | 
														
															                     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     foreach ($common as $k2 => $v2) {
 
														 | 
														
														 | 
														
															                     foreach ($common as $k2 => $v2) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        if ($v2 == 'id') {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            $value[$k2] = $rid;
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        } elseif (isset($data[$v2])) {
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            $value[$k2] = $data[$v2];
 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if (!is_array($v2)) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if ($v2 == 'id') {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                $value[$k2] = $rid;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } elseif (isset($data[$v2])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                $value[$k2] = $data[$v2];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                $value[$k2] = $v2;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         }
 
														 | 
														
														 | 
														
															                         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }
 
														 | 
														
														 | 
														
															                     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     foreach ($update as $k2 => $v2) {
 
														 | 
														
														 | 
														
															                     foreach ($update as $k2 => $v2) {
 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -393,4 +431,96 @@ class Update extends Page 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             }
 
														 | 
														
														 | 
														
															             }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }
 
														 | 
														
														 | 
														
															         }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     }
 
														 | 
														
														 | 
														
															     }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private function sku($rid, $data, $sku)
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        if ($sku) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            foreach ($sku as $k => $v) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if (strpos($k, '#')) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $k = str_replace('#', '', $k);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $common = $v[0];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $update = $v[1];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $spec_table = $v[2];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $spec_value_table = $spec_table . '_value';
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $spec_field = $v[3];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $spec = $v[4];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $input = $v[5];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                $value = $spec_value = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Dever::db($spec_table)->update(array($spec_field => $rid), array('state' => 2));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Dever::db($spec_value_table)->update(array($spec_field => $rid), array('state' => 2));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                foreach ($spec as $k1 => &$v1) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $spec_data = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $spec_data['state'] = 1;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $spec_data[$spec_field] = $rid;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $spec_data['name'] = $v1['name'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $spec_data['sort'] = $k1+1;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if (isset($v1['id']) && $v1['id']) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        Dever::db($spec_table)->update($v1['id'], $spec_data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $v1['id'] = Dever::db($spec_table)->insert($spec_data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if ($v1['id']) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        foreach ($v1['value'] as $k2 => &$v2) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value_data = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value_data['state'] = 1;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value_data[$spec_field] = $rid;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value_data['spec_id'] = $v1['id'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value_data['value'] = $v2['value'] ?? $v2['name'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value_data['sort'] = $k2+1;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value_data['is_checked'] = $v2['checked'] == 'true' ? 1 : 2;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if (isset($v2['id']) && $v2['id']) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                Dever::db($spec_value_table)->update($v2['id'], $spec_value_data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                $v2['id'] = Dever::db($spec_value_table)->insert($spec_value_data);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $spec_value[$spec_data['name']][$spec_value_data['value']] = array($v1['id'] . '_' . $v2['id'], $spec_data['sort']);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Dever::db($spec_table)->delete(array($spec_field => $rid, 'state' => 2));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Dever::db($spec_value_table)->delete(array($spec_field => $rid, 'state' => 2));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Dever::db($k)->update(array($spec_field => $rid), array('state' => 2));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                foreach ($input as $k1 => $v1) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if (isset($v1['id'])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $value['id'] = $v1['id'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    foreach ($common as $k2 => $v2) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if (!is_array($v2)) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if ($v2 == 'id') {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                $value[$k2] = $rid;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } elseif (isset($data[$v2])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                $value[$k2] = $data[$v2];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                $value[$k2] = $v2;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    foreach ($update as $k2 => $v2) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if (isset($v1[$k2])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $value[$k2] = $v1[$k2];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $value['key'] = array();
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    foreach ($v1 as $k2 => $v2) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if (isset($spec_value[$k2]) && isset($spec_value[$k2][$v2])) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            $value['key'][$spec_value[$k2][$v2][1]] = $spec_value[$k2][$v2][0];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if ($value['key']) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $value['key'] = implode(',' , $value['key']);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    $value['state'] = 1;
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    if (isset($value['id']) && $value['id'] > 0) {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        $id = $value['id'];
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        unset($value['id']);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        Dever::db($k)->update($id, $value);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    } else {
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        Dever::db($k)->insert($value);
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                Dever::db($k)->delete(array($spec_field => $rid, 'state' => 2));
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    }
 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |