ExpressionCategory.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. ->paginate(['list_rows'=>$limit,'page'=>$page]);
  31. } catch (Exception $e) {
  32. return $this->error($e->getMessage());
  33. }
  34. return $this->success(['count' => $count, 'list' => $list]);
  35. }
  36. //新增/编辑
  37. public function update()
  38. {
  39. try {
  40. $params = (new ExpressionCategoryValidate())->post()->goCheck('edit');
  41. $id = $params['id'] ?? 0;
  42. $status = $params['status'] ?? 1;
  43. $category_id = $params['category_id'] ?? 0;
  44. $language_code = $params['language_code'] ?? $this->lang;
  45. $exists = ExpressionCategoryLanguages::where('name', $params['name'])->where('language_code', $language_code)->find();
  46. if ($exists ) {
  47. if (!$id || $id != $exists->id) {
  48. return $this->error('分类名称已存在');
  49. }
  50. }
  51. if (!$category_id) {
  52. $category = ExpressionCategoryModel::create([
  53. 'category_id' => $category_id,
  54. ]);
  55. $category_id = $category->id;
  56. }
  57. if (empty($params['id'])) {
  58. $categoryLanguage = new ExpressionCategoryLanguages();
  59. } else {
  60. $categoryLanguage = ExpressionCategoryLanguages::where('id', $id)->find();
  61. if (!$categoryLanguage) {
  62. return $this->error('分类不存在');
  63. }
  64. }
  65. $categoryLanguage->category_id = $category_id;
  66. $categoryLanguage->name = $params['name'];
  67. $categoryLanguage->weight = $params['weight'];
  68. $categoryLanguage->status = $status;
  69. $categoryLanguage->language_code = $language_code;
  70. $categoryLanguage->save();
  71. } catch (Exception $e) {
  72. return $this->error($e->getMessage());
  73. }
  74. return $this->success([], '操作成功');
  75. }
  76. //设置状态
  77. public function setStatus()
  78. {
  79. try {
  80. $params = (new ExpressionCategoryValidate())->goCheck('id');
  81. $info = ExpressionCategoryLanguages::where('id', $params['id'])->find();
  82. if (!$info) {
  83. return $this->error('分类不存在');
  84. }
  85. $info->status = $info->status == 0 ? 1 : 0;
  86. $info->save();
  87. } catch (Exception $e) {
  88. return $this->error($e->getMessage());
  89. }
  90. return $this->success([], '操作成功');
  91. }
  92. //删除
  93. public function delete()
  94. {
  95. try {
  96. $params = (new ExpressionCategoryValidate())->goCheck('id');
  97. $info = ExpressionCategoryLanguages::where('id', $params['id'])->find();
  98. if (!$info) {
  99. return $this->error('分类不存在');
  100. }
  101. $category_id = $info->category_id;
  102. $info->delete();
  103. if (ExpressionCategoryLanguages::where('category_id', $category_id)->count() == 0) {
  104. ExpressionCategoryModel::where('id', $category_id)->delete();
  105. }
  106. } catch (Exception $e) {
  107. return $this->error($e->getMessage());
  108. }
  109. return $this->success([],'删除成功');
  110. }
  111. }