Spec.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php namespace Api\Lib;
  2. use Dever;
  3. class Spec
  4. {
  5. # 获取规格数据
  6. public function manage($table, $field, $id)
  7. {
  8. $result = [];
  9. if ($id) {
  10. $result = Dever::db($table)->select([$field => $id]);
  11. if ($result) {
  12. foreach ($result as &$v) {
  13. $v['type'] = 'show';
  14. $v['width'] = '100';
  15. $v['show'] = true;
  16. $v['fixed'] = true;
  17. $v['key'] = $v['name'];
  18. $value = Dever::db($table . '_value')->select([$field => $id, 'spec_id' => $v['id']]);
  19. if ($value) {
  20. foreach ($value as $k1 => $v1) {
  21. $value[$k1]['parent'] = $v['key'];
  22. $value[$k1]['name'] = $v1['value'];
  23. $value[$k1]['key'] = $v1['value'];
  24. if ($v1['is_checked'] == 1) {
  25. $value[$k1]['checked'] = true;
  26. } else {
  27. $value[$k1]['checked'] = false;
  28. }
  29. }
  30. }
  31. $v['value'] = $value;
  32. }
  33. }
  34. }
  35. return $result;
  36. }
  37. # 获取列表
  38. public function getList($where, $sku_id, $app)
  39. {
  40. $select = [];
  41. $where['state'] = 1;
  42. if ($sku_id) {
  43. $sku = Dever::db($app . '/sku')->find(['id' => $sku_id]);
  44. if ($sku) {
  45. $select = explode(',', $sku['key']);
  46. }
  47. }
  48. $data = Dever::db($app . '/spec')->select($where, ['col' => 'id,name']);
  49. if ($data) {
  50. foreach ($data as &$v) {
  51. $w = $where;
  52. $w['spec_id'] = $v['id'];
  53. unset($v['id']);
  54. $v['value'] = Dever::db($app . '/spec_value')->select($w, ['col' => 'id,value,pic']);
  55. if ($select) {
  56. foreach ($v['value'] as &$v1) {
  57. $v1['selected'] = false;
  58. if (in_array($v1['id'], $select)) {
  59. $v1['selected'] = true;
  60. }
  61. }
  62. }
  63. }
  64. }
  65. return $data;
  66. }
  67. }