AboutArticleForm.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  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\AboutArticle;
  9. use yii\base\Model;
  10. class AboutArticleForm extends Model
  11. {
  12. public $id;
  13. public $store_id;
  14. public $name;
  15. public $desc;
  16. public $sort;
  17. public $is_delete;
  18. public $is_have_page = 1;
  19. //搜索
  20. public $search_key;
  21. public $search_is_show;
  22. const SCENARIO_ADD = 'add';
  23. const SCENARIO_EDIT = 'edit';
  24. const SCENARIO_DEL = 'del';
  25. const SCENARIO_LIST = 'list';
  26. /**
  27. * {@inheritdoc}
  28. */
  29. public function rules()
  30. {
  31. return [
  32. [['sort', 'is_delete', 'store_id', 'is_have_page'], 'integer'],
  33. [['name'], 'string', 'max' => 255],
  34. [['desc'], 'string'],
  35. ['is_delete', 'default', 'value'=> AboutArticle::IS_DELETE_NO],
  36. [['name', 'desc', 'sort'],'required', 'on'=> [self::SCENARIO_ADD, self::SCENARIO_EDIT]],
  37. [['id'],'required', 'on'=> [self::SCENARIO_DEL, self::SCENARIO_EDIT]],
  38. ['id', 'string', 'on' => self::SCENARIO_DEL],
  39. ['search_key', 'string', 'on' => self::SCENARIO_LIST]
  40. ];
  41. }
  42. /**
  43. * {@inheritdoc}
  44. */
  45. public function attributeLabels()
  46. {
  47. return [
  48. 'id' => 'ID',
  49. 'name' => 'Name',
  50. 'desc' => '文章详情',
  51. 'sort' => 'Sort',
  52. 'is_delete' => 'Is Delete',
  53. 'store_id' => 'Store ID',
  54. ];
  55. }
  56. public function scenarios()
  57. {
  58. $scenarios = parent::scenarios();
  59. return $scenarios;
  60. }
  61. public function saveAboutArticle()
  62. {
  63. if ($this->validate()) {
  64. $t = \Yii::$app->db->beginTransaction();
  65. if ($this->scenario == self::SCENARIO_EDIT) {
  66. $model = AboutArticle::findOne(['id' => $this->id]);
  67. } else {
  68. $model = new AboutArticle();
  69. }
  70. $model->attributes = $this->attributes;
  71. if (!$model->save()) {
  72. $t->rollBack();
  73. return [
  74. 'code' => 1,
  75. 'msg' => $model->getErrorSummary(false)[0]
  76. ];
  77. }
  78. $t->commit();
  79. return [
  80. 'code' => 0,
  81. 'msg' => '保存成功'
  82. ];
  83. } else {
  84. // 验证失败:$errors 是一个包含错误信息的数组
  85. return [
  86. 'code' => 1,
  87. "msg" => $this->getErrorSummary(false)[0]
  88. ];
  89. }
  90. }
  91. public function searchAboutArticle()
  92. {
  93. $query = AboutArticle::find();
  94. if ($this->is_have_page) {
  95. $query->where(['is_delete' => AboutArticle::IS_DELETE_NO, 'store_id' => $this->store_id])->orderBy("sort desc,id desc");
  96. // 搜索
  97. if ($this->search_key) {
  98. $query->andWhere(['like', 'name', $this->search_key]);
  99. }
  100. $list = pagination_make($query);
  101. foreach ($list['list'] as &$val) {
  102. $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']);
  103. $val['updated_at'] = date('Y-m-d H:i:s', $val['updated_at']);
  104. }
  105. $data = [
  106. 'data' => $list['list'],
  107. 'pageNo' => $list['pageNo'],
  108. 'totalCount' => $list['totalCount']
  109. ];
  110. } else {
  111. $data = $query->where(['is_delete' => AboutArticle::IS_DELETE_NO, 'store_id' => get_store_id()])->orderBy("sort desc,id desc")->asArray()->all();
  112. foreach ($data as &$val) {
  113. $val['created_at'] = date('Y-m-d H:i:s', $val['created_at']);
  114. $val['updated_at'] = date('Y-m-d H:i:s', $val['updated_at']);
  115. }
  116. }
  117. return [
  118. 'code' => 0,
  119. 'msg' => 'success',
  120. 'data' => $data
  121. ];
  122. }
  123. public function delAboutArticle()
  124. {
  125. if ($this->validate()) {
  126. $t = \Yii::$app->db->beginTransaction();
  127. if ($this->scenario !== self::SCENARIO_DEL) {
  128. return [
  129. 'code' => 1,
  130. 'msg' => '删除失败'
  131. ];
  132. }
  133. $model = AboutArticle::findOne(['id' => $this->id]);
  134. if($this->id == 1){
  135. return [
  136. 'code' => 1,
  137. 'msg' => "关于我们不能被删除"
  138. ];
  139. }
  140. $model->is_delete = AboutArticle::IS_DELETE_YES;
  141. if (!$model || !$model->save()) {
  142. $t->rollBack();
  143. return [
  144. 'code' => 1,
  145. 'msg' => $model->getErrorSummary(false)[0]
  146. ];
  147. }
  148. $t->commit();
  149. return [
  150. 'code' => 0,
  151. 'msg' => '删除成功'
  152. ];
  153. // 所有输入数据都有效 all inputs are valid
  154. } else {
  155. // 验证失败:$errors 是一个包含错误信息的数组
  156. return [
  157. 'code' => 1,
  158. "msg" => $this->getErrorSummary(false)[0]
  159. ];
  160. }
  161. }
  162. public static function getAboutArticleList(){
  163. return AboutArticle::find()->where(['is_delete' => AboutArticle::IS_DELETE_NO])->orderBy(['sort desc, id desc'])->select('*')->asArray()->all();
  164. }
  165. }