|
@@ -3342,6 +3342,11 @@ class Database
|
|
|
$v['upload_call'] = $upload_call . '&key=' . $k;
|
|
|
}
|
|
|
|
|
|
+ if (isset($config['manage']['sku']) && $v['update'] == 'sku') {
|
|
|
+ $v['sku'] = $config['manage']['sku'];
|
|
|
+ $v['data'] = $data;
|
|
|
+ }
|
|
|
+
|
|
|
$result[$k] .= $this->create_update_html($k, $v, $data, false, $prefix);
|
|
|
|
|
|
$result[$k] .= '</div></div>';
|
|
@@ -3716,9 +3721,7 @@ class Database
|
|
|
$param['upload_search_value'] = $this->value($param['upload_search_value'], $data + $param);
|
|
|
}
|
|
|
|
|
|
- if ($param['update'] == 'load') {
|
|
|
- $param['where_id'] = $this->id;
|
|
|
- }
|
|
|
+ $param['where_id'] = $this->id;
|
|
|
|
|
|
$result .= Html::$method($param);
|
|
|
}
|
|
@@ -4161,60 +4164,95 @@ class Database
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (isset($config['manage']['sku'])) {
|
|
|
- $spec_table = $config['manage']['sku']['spec'];
|
|
|
- $sku_table = $config['manage']['sku']['sku'];
|
|
|
- }
|
|
|
-
|
|
|
- /*
|
|
|
- [{"id":1,"title":"颜色","child":[{"id":"1","title":"红","checked":true},{"id":"2","title":"黄","checked":false},{"id":"3","title":"蓝","checked":false}]},{"id":2,"title":"尺码","child":[{"id":"4","title":"S","checked":true},{"id":"5","title":"M","checked":true},{"id":"6","title":"L","checked":false},{"id":"7","title":"XL","checked":false}]},{"id":3,"title":"款式","child":[{"id":"8","title":"男款","checked":true},{"id":"9","title":"女款","checked":true}]},{"id":"4w627wudvpy000","title":"test","child":[{"id":"2kct9uahekm000","title":"111","checked":true},{"id":"vishp09dv4000","title":"222","checked":true}]}]
|
|
|
+ $this->spec($id, $config);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- skus[1-4-8-2kct9uahekm000][price]: 0
|
|
|
- */
|
|
|
+ Dever::out('yes');
|
|
|
+ }
|
|
|
|
|
|
- $spec = Dever::input('spec');
|
|
|
- $sku = Dever::input('skus');
|
|
|
- if ($spec && $sku) {
|
|
|
- if (!isset($spec_table)) {
|
|
|
- $spec_table = 'info_spec';
|
|
|
+ private function spec($id, $config)
|
|
|
+ {
|
|
|
+ if (isset($config['manage']['sku'])) {
|
|
|
+ $spec_table = $config['manage']['sku']['spec'];
|
|
|
+ $sku_table = $config['manage']['sku']['sku'];
|
|
|
+ }
|
|
|
+ if (!isset($sku_table)) {
|
|
|
+ $sku_table = 'info_sku';
|
|
|
+ }
|
|
|
+ $sku_table = $this->project . '/' . $sku_table;
|
|
|
+
|
|
|
+ $spec_type = Dever::input('update_spec_type');
|
|
|
+ if ($spec_type == 2) {
|
|
|
+ $spec = Dever::input('spec');
|
|
|
+ $sku = Dever::input('skus');
|
|
|
+ if ($spec && $sku) {
|
|
|
+ if (!isset($spec_table)) {
|
|
|
+ $spec_table = 'info_spec';
|
|
|
+ }
|
|
|
+ $spec_table = $this->project . '/' . $spec_table;
|
|
|
+ $spec_value_table = $spec_table . '_value';
|
|
|
+ $spec = Dever::json_decode($spec);
|
|
|
+ if ($spec) {
|
|
|
+ $sku_id = array();
|
|
|
+ Dever::db($spec_table)->updates(array('option_info_id' => $id, 'set_state' => 2));
|
|
|
+ Dever::db($spec_value_table)->updates(array('option_info_id' => $id, 'set_state' => 2));
|
|
|
+ foreach ($spec as $k1 => $v1) {
|
|
|
+ if (is_numeric($v1['id'])) {
|
|
|
+ $spec_id = Dever::db($spec_table)->update(array('where_id' => $v1['id'], 'set_state' => 1));
|
|
|
+ } else {
|
|
|
+ $spec_id = Dever::db($spec_table)->insert(array('name' => $v1['title'], 'info_id' => $id));
|
|
|
}
|
|
|
- $spec_table = $this->project . '/' . $spec_table;
|
|
|
- $spec_value_table = $spec_table . '_value';
|
|
|
- $spec = Dever::json_decode($spec);
|
|
|
- if ($spec) {
|
|
|
- $sku_id = array();
|
|
|
- Dever::db($spec_table)->updates(array('option_info_id' => $id, 'set_state' => 2));
|
|
|
- Dever::db($spec_value_table)->updates(array('option_info_id' => $id, 'set_state' => 2));
|
|
|
- foreach ($spec as $k1 => $v1) {
|
|
|
- if (is_numeric($v1['id'])) {
|
|
|
- $spec_id = Dever::db($spec_table)->update(array('where_id' => $v1['id'], 'set_state' => 1));
|
|
|
- } else {
|
|
|
- $spec_id = Dever::db($spec_table)->insert(array('name' => $v1['title'], 'info_id' => $id));
|
|
|
- }
|
|
|
- foreach ($v1['child'] as $k2 => $v2) {
|
|
|
- if (is_numeric($v2['id'])) {
|
|
|
- $sku_id[$v2['id']] = Dever::db($spec_value_table)->update(array('where_id' => $v2['id'], 'set_state' => 1));
|
|
|
- } else {
|
|
|
- $v2['checked'] = $v2['checked'] ? 1 : 2;
|
|
|
- $sku_id[$v2['id']] = Dever::db($spec_value_table)->insert(array('value' => $v2['title'], 'is_checked' => $v2['checked'], 'info_id' => $id, 'spec_id' => $spec_id));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //Dever::db($spec_table)->delete(array('info_id' => $id, 'state' => 2));
|
|
|
- if ($sku_id) {
|
|
|
- foreach ($sku as $k1 => $v1) {
|
|
|
- $temp = explode('-', $k1);
|
|
|
- }
|
|
|
+ foreach ($v1['child'] as $k2 => $v2) {
|
|
|
+ $v2['checked'] = $v2['checked'] ? 1 : 2;
|
|
|
+ if (is_numeric($v2['id'])) {
|
|
|
+ Dever::db($spec_value_table)->update(array('where_id' => $v2['id'], 'set_state' => 1, 'set_is_checked' => $v2['checked']));
|
|
|
+ } else {
|
|
|
+ $sku_id[$v2['id']] = Dever::db($spec_value_table)->insert(array('value' => $v2['title'], 'is_checked' => $v2['checked'], 'info_id' => $id, 'spec_id' => $spec_id));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ Dever::db($spec_table)->delete(array('info_id' => $id, 'state' => 2));
|
|
|
+ Dever::db($spec_value_table)->delete(array('info_id' => $id, 'state' => 2));
|
|
|
+
|
|
|
+ $this->sku($id, $sku_table, $sku, $sku_id);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ } else {
|
|
|
+ $sku = Dever::input('skus');
|
|
|
+ if ($sku) {
|
|
|
+ $this->sku($id, $sku_table, $sku);
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- Dever::out('yes');
|
|
|
+ private function sku($id, $sku_table, $sku, $sku_id = false)
|
|
|
+ {
|
|
|
+ Dever::db($sku_table)->updates(array('option_info_id' => $id, 'set_state' => 2));
|
|
|
+ foreach ($sku as $k1 => $v1) {
|
|
|
+ if ($sku_id) {
|
|
|
+ foreach ($sku_id as $k2 => $v2) {
|
|
|
+ $k1 = str_replace($k2, $v2, $k1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $sku_data = array();
|
|
|
+ $sku_data['info_id'] = $id;
|
|
|
+ $sku_data['key'] = $k1;
|
|
|
+ $sku_info = Dever::db($sku_table)->one($sku_data);
|
|
|
+ foreach ($v1 as $k3 => $v3) {
|
|
|
+ $sku_data[$k3] = $v3;
|
|
|
+ }
|
|
|
+ if ($sku_info) {
|
|
|
+ $sku_data['where_id'] = $sku_info['id'];
|
|
|
+ $sku_data['state'] = 1;
|
|
|
+ Dever::db($sku_table)->update($sku_data);
|
|
|
+ } else {
|
|
|
+ Dever::db($sku_table)->insert($sku_data);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Dever::db($sku_table)->delete(array('info_id' => $id, 'state' => 2));
|
|
|
}
|
|
|
|
|
|
public function struct_data($struct, $data, $old = array())
|
|
@@ -4330,8 +4368,6 @@ class Database
|
|
|
if ($old_name) {
|
|
|
$old[$i] = implode(',', $old_name);
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
|
|
|
if ($log[$j['name']] == 'null') {
|