HappinessGoods.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace addons\Happiness\common\models;
  3. use common\enums\StatusEnum;
  4. use common\models\base\BaseActiveRecord;
  5. use common\models\goods\Goods;
  6. use common\models\goods\GoodsAttr;
  7. use common\models\goods\GoodsCate;
  8. use common\models\goods\GoodsCateRelate;
  9. use common\models\user\User;
  10. use Yii;
  11. /**
  12. * This is the model class for table "qimall_addons_store_clerk".
  13. */
  14. class HappinessGoods extends BaseActiveRecord
  15. {
  16. /**
  17. * {@inheritdoc}
  18. */
  19. public static function tableName()
  20. {
  21. return '{{%addons_happiness_goods}}';
  22. }
  23. /**
  24. * {@inheritdoc}
  25. */
  26. public function rules()
  27. {
  28. return [
  29. [['mall_id', 'goods_id','label_id','min_num','warn_day', 'sales_num', 'is_on_sale', 'created_at', 'updated_at', 'status'], 'integer'],
  30. [['store_scale'],'number'],
  31. [['freight_type'], 'string'],
  32. ];
  33. }
  34. public function getGoods()
  35. {
  36. return $this->hasOne(Goods::class, ['id' => 'goods_id']);
  37. }
  38. // 分类关系
  39. public function getGoodsCateRelate()
  40. {
  41. return $this->hasMany(GoodsCateRelate::class, ['goods_id' => 'goods_id']);
  42. }
  43. // 分类
  44. public function getCats()
  45. {
  46. return $this->hasMany(GoodsCate::class, ['id' => 'cate_id'])
  47. // ->where(['mch_id' => 0])
  48. ->via('goodsCateRelate');
  49. }
  50. public function getAttr()
  51. {
  52. return $this->hasMany(GoodsAttr::class, ['goods_id' => 'goods_id'])->select('id as attr_id,goods_id,name,price,stock')->where(['is_show'=> 1, 'status' => 1]);
  53. }
  54. /**
  55. * @desc:保存数据
  56. * @Author: hua
  57. * @Date: 2021/10/23
  58. * @Time: 18:07
  59. * @Copyright: copyright (c) 2021 广东七件事集团
  60. * @param array $params
  61. * @return StoreClerk|false|null
  62. */
  63. public static function setData(array $params)
  64. {
  65. try {
  66. if (!empty($params['mall_id']) && (!empty($params['goods_id']) || !empty($params['id']))) {
  67. if (!empty($params['id'])) {
  68. $model = self::findOne(['mall_id' => $params['mall_id'], 'id' => $params['id'], 'status' => StatusEnum::ENABLED]);
  69. } else {
  70. $model = self::findOne(['mall_id' => $params['mall_id'], 'goods_id' => $params['goods_id'], 'status' => StatusEnum::ENABLED]);
  71. }
  72. if (empty($model)) {
  73. $model = new self();
  74. $model->loadDefaultValues();
  75. }
  76. } else {
  77. $model = new self();
  78. $model->loadDefaultValues();
  79. }
  80. if (!$model->load($params, '')) throw new \Exception($model->getErrorMessage());
  81. if (!$model->save()) throw new \Exception($model->getErrorMessage());
  82. if (isset($params['is_on_sale']) && $params['is_on_sale'] == 0 && !empty($model->goods_id)) {
  83. HappinessStoreGoods::updateAll(['is_on_sale' => $params['is_on_sale']], ['mall_id' => $params['mall_id'], 'goods_id' => $model->goods_id]);
  84. HappinessStoreGoodsAttr::updateAll(['is_on_sale' => $params['is_on_sale']], ['mall_id' => $params['mall_id'], 'goods_id' => $model->goods_id]);
  85. }
  86. return $model;
  87. } catch (\Exception $e) {
  88. self::$static_error = $e->getMessage();
  89. return false;
  90. }
  91. }
  92. }