Goods.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace app\store\service;
  3. use app\common\service\Goods as GoodsService;
  4. use app\common\library\helper;
  5. use app\store\model\Goods as GoodsModel;
  6. use app\store\model\Category as CategoryModel;
  7. use app\store\model\Delivery as DeliveryModel;
  8. use app\store\model\user\Grade as GradeModel;
  9. use app\store\service\goods\Apply as GoodsApplyService;
  10. /**
  11. * 商品服务类
  12. * Class Goods
  13. * @package app\store\service
  14. */
  15. class Goods extends GoodsService
  16. {
  17. /**
  18. * 商品管理公共数据
  19. * @param GoodsModel|null $model
  20. * @param string $handle
  21. * @return array
  22. */
  23. public static function getEditData($model = null, $handle = 'edit')
  24. {
  25. // 商品分类
  26. $catgory = CategoryModel::getCacheTree();
  27. // 配送模板
  28. $delivery = DeliveryModel::getAll();
  29. // 会员等级列表
  30. $gradeList = GradeModel::getUsableList();
  31. // 商品sku数据
  32. $specData = helper::jsonEncode(static::getSpecData($model));
  33. // 商品规格是否锁定
  34. $isSpecLocked = static::checkSpecLocked($model, $handle);
  35. return compact('catgory', 'delivery', 'gradeList', 'specData', 'isSpecLocked');
  36. }
  37. /**
  38. * 验证商品是否允许删除
  39. * @param $goodsId
  40. * @return bool
  41. */
  42. public static function checkIsAllowDelete($goodsId)
  43. {
  44. return GoodsApplyService::checkIsAllowDelete($goodsId);
  45. }
  46. /**
  47. * 商品规格是否允许编辑
  48. * @param null $model
  49. * @param string $handle
  50. * @return bool
  51. */
  52. private static function checkSpecLocked($model = null, $handle = 'edit')
  53. {
  54. if ($model == null || $handle == 'copy') return false;
  55. return GoodsApplyService::checkSpecLocked($model['goods_id']);
  56. }
  57. }