CardForm.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\admin\models;
  8. use app\models\Card;
  9. use yii\base\Model;
  10. class CardForm extends Model
  11. {
  12. public $id;
  13. public $store_id;
  14. public $name;
  15. public $pic_url;
  16. public $content;
  17. public $is_delete;
  18. //搜索
  19. public $search_key;
  20. public $search_is_show;
  21. const SCENARIO_ADD = 'add';
  22. const SCENARIO_EDIT = 'edit';
  23. const SCENARIO_DEL = 'del';
  24. const SCENARIO_LIST = 'list';
  25. /**
  26. * {@inheritdoc}
  27. */
  28. public function rules()
  29. {
  30. return [
  31. [['store_id', 'is_delete'], 'integer'],
  32. [['content'], 'string'],
  33. [['name'], 'string', 'max' => 255],
  34. [['pic_url'], 'string', 'max' => 2048],
  35. ['is_delete', 'default', 'value'=> Card::IS_DELETE_NO],
  36. [['name', 'pic_url', 'content'],'required', 'on'=> [self::SCENARIO_ADD, self::SCENARIO_EDIT]],
  37. [['id'],'required', 'on'=> [self::SCENARIO_DEL, self::SCENARIO_EDIT]],
  38. ['search_key', 'string', 'on' => self::SCENARIO_LIST]
  39. ];
  40. }
  41. /**
  42. * {@inheritdoc}
  43. */
  44. public function attributeLabels()
  45. {
  46. return [
  47. 'id' => 'ID',
  48. 'store_id' => 'Store ID',
  49. 'name' => '卡券名称',
  50. 'pic_url' => 'Pic Url',
  51. 'content' => '卡券描述',
  52. 'is_delete' => 'Is Delete',
  53. ];
  54. }
  55. public function scenarios()
  56. {
  57. $scenarios = parent::scenarios();
  58. return $scenarios;
  59. }
  60. public function saveCard()
  61. {
  62. if ($this->validate()) {
  63. $t = \Yii::$app->db->beginTransaction();
  64. if ($this->scenario == self::SCENARIO_EDIT) {
  65. $model = Card::findOne(['id' => $this->id]);
  66. } else {
  67. $model = new Card();
  68. }
  69. $model->attributes = $this->attributes;
  70. if (!$model->save()) {
  71. $t->rollBack();
  72. return [
  73. 'code' => 1,
  74. 'msg' => $model->getErrorSummary(false)[0]
  75. ];
  76. }
  77. $t->commit();
  78. return [
  79. 'code' => 0,
  80. 'msg' => '保存成功'
  81. ];
  82. } else {
  83. // 验证失败:$errors 是一个包含错误信息的数组
  84. return [
  85. 'code' => 1,
  86. "msg" => $this->getErrorSummary(false)[0]
  87. ];
  88. }
  89. }
  90. public function searchCard()
  91. {
  92. $query = Card::find();
  93. $query->where(['is_delete' => Card::IS_DELETE_NO, 'store_id' => $this->store_id])->orderBy("id desc");
  94. // 搜索
  95. if ($this->search_key) {
  96. $query->andWhere(['like', 'name', $this->search_key]);
  97. }
  98. $list = pagination_make($query);
  99. foreach ($list['list'] as &$val) {
  100. $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']);
  101. }
  102. return [
  103. 'code' => 0,
  104. 'msg' => 'success',
  105. 'data' => [
  106. 'data' => $list['list'],
  107. 'pageNo' => $list['pageNo'],
  108. 'totalCount' => $list['totalCount']
  109. ]
  110. ];
  111. }
  112. public function delCard()
  113. {
  114. if ($this->validate()) {
  115. $t = \Yii::$app->db->beginTransaction();
  116. if ($this->scenario !== self::SCENARIO_DEL) {
  117. return [
  118. 'code' => 1,
  119. 'msg' => '删除失败'
  120. ];
  121. }
  122. $model = Card::findOne(['id' => $this->id]);
  123. $model->is_delete = Card::IS_DELETE_YES;
  124. if (!$model || !$model->save()) {
  125. $t->rollBack();
  126. return [
  127. 'code' => 1,
  128. 'msg' => $model->getErrorSummary(false)[0]
  129. ];
  130. }
  131. $t->commit();
  132. return [
  133. 'code' => 0,
  134. 'msg' => '删除成功'
  135. ];
  136. // 所有输入数据都有效 all inputs are valid
  137. } else {
  138. // 验证失败:$errors 是一个包含错误信息的数组
  139. return [
  140. 'code' => 1,
  141. "msg" => $this->getErrorSummary(false)[0]
  142. ];
  143. }
  144. }
  145. public static function getCardList(){
  146. return Card::find()->where(['is_delete' => Card::IS_DELETE_NO])->orderBy(['id desc'])->select('*')->asArray()->all();
  147. }
  148. }