CloudStockBonusPoolLevel.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace addons\CloudStock\common\models;
  3. use common\enums\StatusEnum;
  4. use common\models\base\BaseActiveRecord;
  5. use Yii;
  6. use Exception;
  7. /**
  8. * This is the model class for table "qimall_addons_cloud_stock_bonus_pool_level".
  9. *
  10. * @property int $id
  11. * @property int $mall_id 商城id
  12. * @property int $level 等级权重id
  13. * @property int $cloud_stock_level 代理等级
  14. * @property string $name 等级名称
  15. * @property string|null $checked_condition_values 升级条件
  16. * @property string|null $checked_condition_keys 升级条件选中的key集合
  17. * @property int $condition_type 0 未选择、1满足其一 2、满足所有
  18. * @property int $upgrade_type_condition 是否开启条件升级
  19. * @property string $explain 等级说明
  20. * @property float $money 当前池金额
  21. * @property float $total_money 累计池金额
  22. * @property string|null $goods_setting 商品设置
  23. * @property int $status 状态[-1:删除;0:禁用;1启用]
  24. * @property int $created_at
  25. * @property int $updated_at
  26. */
  27. class CloudStockBonusPoolLevel extends BaseActiveRecord
  28. {
  29. /**
  30. * {@inheritdoc}
  31. */
  32. public static function tableName()
  33. {
  34. return '{{%addons_cloud_stock_bonus_pool_level}}';
  35. }
  36. /**
  37. * {@inheritdoc}
  38. */
  39. public function rules()
  40. {
  41. return [
  42. [['mall_id', 'name'], 'required'],
  43. [['mall_id', 'level', 'condition_type', 'upgrade_type_condition', 'status', 'created_at', 'updated_at'], 'integer'],
  44. [['checked_condition_values', 'checked_condition_keys', 'goods_setting'], 'string'],
  45. [['money', 'total_money'], 'number'],
  46. [['name'], 'string', 'max' => 255],
  47. [['explain'], 'string', 'max' => 5000],
  48. [['cloud_stock_level'], 'string', 'max' => 5000],
  49. ];
  50. }
  51. /**
  52. * {@inheritdoc}
  53. */
  54. public function attributeLabels()
  55. {
  56. return [
  57. 'id' => 'ID',
  58. 'mall_id' => '商城id',
  59. 'level' => '等级权重id',
  60. 'cloud_stock_level' => '代理等级',
  61. 'name' => '等级名称',
  62. 'checked_condition_values' => '升级条件',
  63. 'checked_condition_keys' => '升级条件选中的key集合',
  64. 'condition_type' => '0 未选择、1满足其一 2、满足所有',
  65. 'upgrade_type_condition' => '是否开启条件升级',
  66. 'explain' => '等级说明',
  67. 'money' => '当前池金额',
  68. 'total_money' => '累计池金额',
  69. 'goods_setting' => '商品设置',
  70. 'status' => '状态[-1:删除;0:禁用;1启用]',
  71. 'created_at' => 'Created At',
  72. 'updated_at' => 'Updated At',
  73. ];
  74. }
  75. public static function setData(array $params){
  76. try{
  77. if(!empty($params['id'])){
  78. $model = self::findOne(['and',['id' => $params['id'],'mall_id' => $params['mall_id']],['<>','status',StatusEnum::DELETE]]);
  79. if(empty($model)) throw new \Exception('等级不存在或已删除');
  80. // 判断等级是否有被修改
  81. if ($model->level != $params['level']) {
  82. $user = CloudStockBonusPoolUser::find()->where(['mall_id' => $model->mall_id, 'level' => $model->level, 'status' => StatusEnum::ENABLED])->asArray()->one();
  83. if ($user) throw new Exception('该等级下存在用户,不能被修改');
  84. }
  85. }else{
  86. $model = new self();
  87. $model->mall_id = $params['mall_id'];
  88. $model->loadDefaultValues();
  89. }
  90. if(!$model->load($params,'') || !$model->save()){
  91. throw new Exception($model->getErrorMessage());
  92. }
  93. return $model->toArray();
  94. }catch(\Exception $e){
  95. self::$static_error = $e->getMessage();
  96. return false;
  97. }
  98. }
  99. public static function getMap($mall_id)
  100. {
  101. $data = [];
  102. $list = self::find()->select('level,name')->where(['mall_id' => $mall_id, 'status' => [StatusEnum::ENABLED,StatusEnum::DISABLED]])->orderBy('level asc')->asArray()->all();
  103. if ($list) {
  104. foreach ($list as $item) {
  105. $data[$item['level']] = $item['name'];
  106. }
  107. }
  108. return $data;
  109. }
  110. }