GoodsClass.php 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace bizMall\goods\classes;
  3. use common\components\util;
  4. use bizMall\base\classes\BaseClass;
  5. class GoodsClass extends BaseClass
  6. {
  7. public static $baseFile = '\bizMall\goods\models\Goods';
  8. //获取商品完整详情,包括商品的分类 ssh 2019.12.3
  9. public static function getGoodsInfo($id, $shop, $custom, $params)
  10. {
  11. $info = self::getById($id);
  12. if (empty($info)) {
  13. return [];
  14. }
  15. //暂时先用花店端的方法,后面再分离
  16. $list = \bizHd\goods\classes\GoodsClass::groupGoodsBaseInfo([$info], $shop, $custom, $params);
  17. return current($list);
  18. }
  19. public static function addGoods($data)
  20. {
  21. $categoryIdList = isset($data['categoryIdList']) && !empty($data['categoryIdList']) ? $data['categoryIdList'] : [];
  22. unset($data['categoryIdList']);
  23. if (empty($categoryIdList)) {
  24. util::fail('没有选择分类');
  25. }
  26. $goodsStyleList = isset($data['goodsStyleList']) && !empty($data['goodsStyleList']) ? $data['goodsStyleList'] : [];
  27. if (isset($data['goodsStyle']) && $data['goodsStyle'] == 1) {
  28. if (empty($goodsStyleList)) {
  29. util::fail('请填写款式');
  30. }
  31. foreach ($goodsStyleList as $goodsStyle) {
  32. if (empty($goodsStyle['styleName'])) {
  33. util::fail('请填写款式名称');
  34. }
  35. if (isset($goodsStyle['price']) == false || is_numeric($goodsStyle['price']) == false) {
  36. util::fail('请填写款式价格');
  37. }
  38. if (empty($goodsStyle['picture'])) {
  39. util::fail('请上传款式图片');
  40. }
  41. }
  42. } else {
  43. if (isset($data['price']) == false || is_numeric($data['price']) == false) {
  44. util::fail('请填写商品价格');
  45. }
  46. }
  47. //用商户id生成商品的编号
  48. $sjId = $data['sjId'];
  49. $data['createTime'] = date("Y-m-d H:i:s");
  50. $data['shopImg'] = json_encode($data['shopImg']);
  51. $data['briefContent'] = isset($data['briefContent']) ? $data['briefContent'] : '';
  52. $data['content'] = isset($data['content']) ? $data['content'] : '';
  53. $data['stock'] = isset($data['stock']) && is_numeric($data['stock']) && $data['stock'] >= 0 ? $data['stock'] : -1;
  54. $data['sold'] = isset($data['sold']) && is_numeric($data['sold']) && $data['sold'] >= 0 ? $data['sold'] : 0;
  55. $goodsInfo = self::add($data);
  56. $id = $goodsInfo['id'];
  57. $name = $goodsInfo['name'];
  58. //处理分类
  59. $mainId = $data['mainId'] ?? 0;
  60. $hasCategoryIdList = CategoryClass::getCategoryIds($mainId);
  61. $diff = array_diff($categoryIdList, $hasCategoryIdList);
  62. if (!empty($diff)) {
  63. util::fail('您使用了别人的分类');
  64. }
  65. $addCategory = [];
  66. foreach ($categoryIdList as $categoryId) {
  67. $addCategory[] = ['gId' => $id, 'name' => $name, 'cId' => $categoryId, 'sjId' => $data['sjId']];
  68. }
  69. GoodsCategoryClass::batchAdd($addCategory);
  70. //处理款式
  71. if (!empty($goodsStyleList) && $data['goodsStyle'] == 1) {
  72. $addStyle = [];
  73. foreach ($goodsStyleList as $goodsStyle) {
  74. $addStyle[] = ['styleName' => $goodsStyle['styleName'], 'goodsId' => $id, 'picture' => $goodsStyle['picture'], 'price' => $goodsStyle['price']];
  75. }
  76. GoodsStyleClass::batchAdd($addStyle);
  77. }
  78. return $goodsInfo;
  79. }
  80. //产品上下架 ssh 2019.12.8
  81. public static function changeStatus($id, $status)
  82. {
  83. self::updateById($id, ['status' => $status]);
  84. GoodsCategoryClass::updateByCondition(['gId' => $id], ['status' => $status]);
  85. }
  86. }