ExpressionCategory.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use app\admin\model\ExpressionCategory as ExpressionCategoryModel;
  5. use app\admin\model\ExpressionCategoryLanguages;
  6. use app\admin\validate\ExpressionCategoryValidate;
  7. use Exception;
  8. /**
  9. * 常用语分类管理
  10. */
  11. class ExpressionCategory extends BaseController
  12. {
  13. /**
  14. * @api {get} /expressioncategory/list 列表
  15. */
  16. function list()
  17. {
  18. try {
  19. $params = $this->request->param();
  20. $page = $params['page'] ?? 1;
  21. $limit = $params['limit'] ?? 15;
  22. $language_code = $params['language_code'] ?? $this->lang;
  23. $query = ExpressionCategoryLanguages::where('language_code', $language_code);
  24. if (isset($params['status'])) {
  25. $query->where('status', $params['status']);
  26. }
  27. $count = $query->count();
  28. $list = $query->where('language_code', $language_code)
  29. ->order('weight','desc')
  30. ->limit($limit)
  31. ->page($page)
  32. ->select();
  33. } catch (Exception $e) {
  34. return $this->error($e->getMessage());
  35. }
  36. return $this->success(['count' => $count, 'list' => $list]);
  37. }
  38. //新增/编辑
  39. public function update()
  40. {
  41. try {
  42. $params = (new ExpressionCategoryValidate())->post()->goCheck('edit');
  43. $id = $this->request->param('id',0);
  44. $status = $params['status'] ?? 1;
  45. $category_id = $params['category_id'] ?? 0;
  46. $language_code = $params['language_code'] ?? $this->lang;
  47. $exists = ExpressionCategoryLanguages::where('name', $params['name'])->where('language_code', $language_code)->find();
  48. if ($exists ) {
  49. if (!$id || $id != $exists->id) {
  50. return $this->error('分类名称已存在');
  51. }
  52. }
  53. if (!$category_id) {
  54. $category = ExpressionCategoryModel::create([
  55. 'created_at' => date('Y-m-d H:i:s'),
  56. ]);
  57. $category_id = $category->id;
  58. }
  59. if (empty($id)) {
  60. $categoryLanguage = new ExpressionCategoryLanguages();
  61. } else {
  62. $categoryLanguage = ExpressionCategoryLanguages::where('id', $id)->find();
  63. if (!$categoryLanguage) {
  64. return $this->error('分类不存在');
  65. }
  66. }
  67. $categoryLanguage->category_id = $category_id;
  68. $categoryLanguage->name = $params['name'];
  69. $categoryLanguage->weight = $params['weight'];
  70. $categoryLanguage->status = $status;
  71. $categoryLanguage->language_code = $language_code;
  72. $categoryLanguage->save();
  73. } catch (Exception $e) {
  74. return $this->error($e->getMessage());
  75. }
  76. return $this->success([], '操作成功');
  77. }
  78. //设置状态
  79. public function setStatus()
  80. {
  81. try {
  82. $params = (new ExpressionCategoryValidate())->goCheck('id');
  83. $info = ExpressionCategoryLanguages::where('id', $params['id'])->find();
  84. if (!$info) {
  85. return $this->error('分类不存在');
  86. }
  87. $info->status = $info->status == 0 ? 1 : 0;
  88. $info->save();
  89. } catch (Exception $e) {
  90. return $this->error($e->getMessage());
  91. }
  92. return $this->success([], '操作成功');
  93. }
  94. //删除
  95. public function delete()
  96. {
  97. try {
  98. $params = (new ExpressionCategoryValidate())->goCheck('id');
  99. $info = ExpressionCategoryLanguages::where('id', $params['id'])->find();
  100. if (!$info) {
  101. return $this->error('分类不存在');
  102. }
  103. $category_id = $info->category_id;
  104. $info->delete();
  105. if (ExpressionCategoryLanguages::where('category_id', $category_id)->count() == 0) {
  106. ExpressionCategoryModel::where('id', $category_id)->delete();
  107. }
  108. } catch (Exception $e) {
  109. return $this->error($e->getMessage());
  110. }
  111. return $this->success([],'删除成功');
  112. }
  113. }