You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

233 lines
6.3 KiB

  1. <?php
  2. namespace common\models;
  3. use Yii;
  4. use yii\console\Exception;
  5. use yii\db\ActiveRecord;
  6. /**
  7. * This is the model class for table "cms_category".
  8. *
  9. * @property integer $cms_category_id
  10. * @property string $category_name
  11. * @property integer $show_sort
  12. * @property integer $delete_flag
  13. * @property string $create_time
  14. * @property string $update_time
  15. * @property string $update_user
  16. */
  17. class CmsCategory extends ActiveRecord
  18. {
  19. /**
  20. * @inheritdoc
  21. */
  22. public static function tableName()
  23. {
  24. return 'cms_category';
  25. }
  26. /**
  27. * @inheritdoc
  28. */
  29. public function rules()
  30. {
  31. return [
  32. [['category_name'], 'required'],
  33. [['show_sort', 'delete_flag','system'], 'integer'],
  34. [['create_time', 'update_time'], 'safe'],
  35. [['category_name', 'update_user'], 'string', 'max' => 50],
  36. [['category_code'],'string','max'=>255]
  37. ];
  38. }
  39. /**
  40. * @inheritdoc
  41. */
  42. public function attributeLabels()
  43. {
  44. return [
  45. 'cms_category_id' => 'Cms Category ID',
  46. 'category_name' => 'Category Name',
  47. 'show_sort' => 'Show Sort',
  48. 'delete_flag' => 'Delete Flag',
  49. 'create_time' => 'Create Time',
  50. 'update_time' => 'Update Time',
  51. 'update_user' => 'Update User',
  52. 'category_code' => 'Category Code',
  53. 'system' => 'System'
  54. ];
  55. }
  56. /**
  57. * Des:新增产品分类
  58. * Name: addProdCategory
  59. * @param $param
  60. * @return bool
  61. * @author zhangsq
  62. */
  63. public function addProdCategory($param){
  64. $prod_name = $param['prod_name'];
  65. $system_id = $param['system_id'];
  66. $values = [
  67. 'category_name' => $prod_name,
  68. 'system' => $system_id,
  69. 'create_time'=>date('Y-m-d H:i:s')
  70. ];
  71. $transaction = Yii::$app->db->beginTransaction();
  72. try{
  73. $this->attributes=$values;
  74. $res = $this->insert();
  75. if(!$res){
  76. return false;
  77. }
  78. $transaction ->commit();
  79. return true;
  80. }catch (Exception $e){
  81. $transaction->rollBack();
  82. return false;
  83. }
  84. }
  85. /**
  86. * Des: 获取产品分类列表
  87. * Name: getProdCategoryList
  88. * @param $param
  89. * @return array
  90. * @author zhangsq
  91. */
  92. public function getProdCategoryList($param){
  93. $page_size = $param['page_size'];
  94. $current_page = $param['current_page'];
  95. $system_id = $param['system_id'];
  96. $where = ['and',['=','delete_flag',0],['=','system',$system_id]];
  97. $offset = ($current_page - 1)*$page_size;
  98. $select = [
  99. 'a.cms_category_id',
  100. 'a.category_name',
  101. 'a.show_sort',
  102. 'img_url'=>'ifnull(b.img_url,"")',
  103. 'describe'=>'ifnull(b.category_describe,"")',
  104. 'city_id'=>'ifnull(b.area_id,"")',
  105. ];
  106. $result = self::find()->select($select)
  107. ->from(self::tableName().' as a')
  108. ->leftJoin('cms_category_extra as b','a.cms_category_id=b.category_id')
  109. ->where($where)
  110. ->orderBy('show_sort DESC')
  111. ->offset($offset)
  112. ->limit((int)$page_size)
  113. ->asArray()
  114. ->all();
  115. $result1 = self::find()->select('count(1) as count')
  116. ->from(self::tableName())
  117. ->asArray()
  118. ->where($where)
  119. ->one();
  120. $result1 = $result1['count'];
  121. return ['list'=> $result,'count' => $result1];
  122. }
  123. /**
  124. * Des:获取产品分类列表
  125. * Name: delProdCategory
  126. * @param $param
  127. * @return int
  128. * @author zhangsq
  129. */
  130. public function delProdCategory($param){
  131. $cms_category_id = $param['cms_category_id'];
  132. $system_id = $param['system_id'];
  133. $flag = self::updateAll(['delete_flag'=>1,'update_time'=>date('Y-m-d H:i:s')],['and',['=','system',$system_id],['=','cms_category_id',$cms_category_id]]);
  134. return $flag;
  135. }
  136. /**
  137. * Des:修改分类排序
  138. * Name: changeShowsort
  139. * @param $param
  140. * @return int
  141. * @author zhangsq
  142. */
  143. public function changeShowsort($param){
  144. $show_sort = $param['show_sort'];
  145. $system_id = $param['system_id'];
  146. $cms_category_id = $param['cms_category_id'];
  147. $flag = self::updateAll(['show_sort'=>$show_sort,'update_time'=>date('Y-m-d H:i:s')],['and',['=','system',$system_id],['=','cms_category_id',$cms_category_id],['=','delete_flag',0]]);
  148. return $flag;
  149. }
  150. /**
  151. * Des:修改分类排序
  152. * Name: getCategoryTitle
  153. * @param $system_id
  154. * @return array
  155. * @author zhangsq
  156. */
  157. public function getCategoryTitle($system_id){
  158. $where = ['and',['=','delete_flag',0],['=','system',$system_id]];
  159. $select = [
  160. 'cms_category_id',
  161. 'category_name',
  162. ];
  163. $result = self::find()->select($select)
  164. ->from(self::tableName())
  165. ->where($where)
  166. ->orderBy('show_sort DESC')
  167. ->asArray()
  168. ->all();
  169. return ['list'=> $result];
  170. }
  171. /**
  172. * Function Description:获取美食娱乐的分类id
  173. * Function Name: getFoodId
  174. * @return array|null|ActiveRecord
  175. * @author 田玲菲
  176. */
  177. public function getFoodId(){
  178. $where = ['and',['=','delete_flag',0],['=','category_name','美食娱乐']];
  179. $select = [
  180. 'cms_category_id',
  181. ];
  182. $result = self::find()->select($select)
  183. ->from(self::tableName())
  184. ->where($where)
  185. ->asArray()
  186. ->one();
  187. return $result;
  188. }
  189. /**
  190. * Function Description:获取所有有用的分类(仅目的地分类)
  191. * Function Name: getAllCategory
  192. * @return array|ActiveRecord[]
  193. * @author 田玲菲
  194. */
  195. public function getAllCategory(){
  196. $where = ['and',['=','a.delete_flag',0],['=','a.system',2]];
  197. $select = [
  198. 'a.cms_category_id',
  199. 'a.category_name'
  200. ];
  201. $result = self::find()->select($select)
  202. ->from(self::tableName().' a')
  203. ->innerJoin('cms_category_extra b','a.cms_category_id=b.category_id')
  204. ->where($where)
  205. ->asArray()
  206. ->all();
  207. return $result;
  208. }
  209. }