ConfigController.php 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. namespace app\controller;
  3. use Illuminate\Support\Arr;
  4. use Respect\Validation\Validator;
  5. use support\Db;
  6. use support\Request;
  7. use hg\apidoc\annotation as Apidoc;
  8. #[Apidoc\Title("配置信息+新闻新闻")]
  9. #[Apidoc\Group("Config")]
  10. #[Apidoc\Sort(2)]
  11. class ConfigController
  12. {
  13. #[Apidoc\Title("配置")]
  14. #[Apidoc\Url("api/config/data.html")]
  15. #[Apidoc\Method("POST")]
  16. #[Apidoc\Returned(name: "association", type: "string", require: true, desc: '社群', default: '')]
  17. #[Apidoc\Returned(name: "service", type: "string", require: true, desc: '客服', default: '')]
  18. #[Apidoc\Returned(name: "affiche", type: "array", require: true, desc: '公告', default: '')]
  19. #[Apidoc\Returned(name: "mp4", type: "string", require: true, desc: '视频', default: '')]
  20. #[Apidoc\Returned(name: "company_introduction", type: "string", require: true, desc: '公司介绍', default: '')]
  21. #[Apidoc\Returned(name: "corporate_governance", type: "string", require: true, desc: '审查报告', default: '')]
  22. #[Apidoc\Returned(name: "public_policy", type: "string", require: true, desc: '公共政策', default: '')]
  23. #[Apidoc\Returned(name: "compliance_and_integrity", type: "string", require: true, desc: '营业执照', default: '')]
  24. #[Apidoc\Returned(name: "intelligent_world", type: "string", require: true, desc: '智能世界', default: '')]
  25. #[Apidoc\Returned(name: "micro_chat", type: "string", require: true, desc: '助力微聊', default: '')]
  26. #[Apidoc\Returned(name: "booster_potato", type: "string", require: true, desc: '助力土豆', default: '')]
  27. #[Apidoc\Returned(name: "service_txt", type: "string", require: true, desc: '客服富文本', default: '')]
  28. public function data(Request $request)
  29. {
  30. $data = Db::table('wa_system')->first();
  31. $affiche = [];
  32. if ($data->affiche) {
  33. $affiche[] = imgtxt($data->affiche);
  34. }
  35. if ($data->affiche_one) {
  36. $affiche[] = imgtxt($data->affiche_one);
  37. }
  38. if ($data->affiche_two) {
  39. $affiche[] = imgtxt($data->affiche_two);
  40. }
  41. if ($data->affiche_three) {
  42. $affiche[] = imgtxt($data->affiche_three);
  43. }
  44. $articledata = Db::table('wa_article')
  45. ->where('article_type_id', 2)
  46. ->select(['id', 'name', 'describe', 'img', 'created_at'])
  47. ->orderBy('id')
  48. ->get()->toArray();
  49. return success([
  50. 'association' => imgtxt($data->association),
  51. 'service' => $data->service,
  52. 'affiche' => $affiche,
  53. 'mp4' => getenv('MP4'),
  54. 'company_introduction' => imgtxt($data->company_introduction),
  55. 'corporate_governance' => imgtxt($data->corporate_governance),
  56. 'public_policy' => imgtxt($data->public_policy),
  57. 'compliance_and_integrity' => imgtxt($data->compliance_and_integrity),
  58. 'intelligent_world' => imgtxt($data->intelligent_world),
  59. 'micro_chat' => $data->micro_chat,
  60. 'booster_potato' => $data->booster_potato,
  61. 'service_txt' => imgtxt($data->service_txt),
  62. 'article_data' => $articledata,
  63. ]);
  64. }
  65. #[Apidoc\Title("新闻列表")]
  66. #[Apidoc\Url("api/config/article.html")]
  67. #[Apidoc\Method("POST")]
  68. #[Apidoc\Param("page", type: "int", require: true, desc: "页面", mock: 1)]
  69. #[Apidoc\Param("limit", type: "int", require: true, desc: "输出条数", mock: 10)]
  70. #[Apidoc\Returned(name: "id", type: "int", require: true, desc: '文章ID', default: '')]
  71. #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '文章标题', default: '')]
  72. #[Apidoc\Returned(name: "describe", type: "string", require: true, desc: '文章描述', default: '')]
  73. #[Apidoc\Returned(name: "img", type: "string", require: true, desc: '文章封面图', default: '')]
  74. #[Apidoc\Returned(name: "created_at", type: "string", require: true, desc: '创建时间', default: '')]
  75. #[Apidoc\Returned(name: "article_type_id", type: "string", require: true, desc: '1=新闻中心,2=热门话题', default: '')]
  76. public function article(Request $request)
  77. {
  78. try {
  79. $param = $request->param_data;
  80. Validator::input($param, [
  81. 'page' => Validator::notEmpty()->intType()->setName('页面'),
  82. 'limit' => Validator::notEmpty()->intType()->setName('输出条数'),
  83. ]);
  84. $data = Db::table('wa_article')
  85. ->where('article_type_id', 1)
  86. ->select(['id', 'name', 'describe', 'img', 'created_at'])
  87. ->orderBy('id')
  88. ->paginate(Arr::get($param, 'limit', 10))->toArray();
  89. foreach ($data['data'] as $k => $v) {
  90. $data['data'][$k]->img = imageToBase64($v->img);
  91. }
  92. } catch (\Throwable $exception) {
  93. return error($exception->getMessage());
  94. }
  95. return success($data);
  96. }
  97. #[Apidoc\Title("新闻详情")]
  98. #[Apidoc\Url("api/config/articledetails.html")]
  99. #[Apidoc\Method("POST")]
  100. #[Apidoc\Param("id", type: "int", require: true, desc: "文章ID", mock: 20)]
  101. #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '文章标题', default: '')]
  102. #[Apidoc\Returned(name: "txt", type: "string", require: true, desc: '文章详情【富文本内容】', default: '')]
  103. public function articleDetails(Request $request)
  104. {
  105. try {
  106. $param = $request->param_data;
  107. Validator::input($param, [
  108. 'id' => Validator::notEmpty()->intType()->setName('文章ID'),
  109. ]);
  110. $data = Db::table('wa_article')->where('id', $param['id'])->select(['txt', 'name'])->first();
  111. $data->txt = imgtxt($data->txt);
  112. } catch (\Throwable $exception) {
  113. return error($exception->getMessage());
  114. }
  115. return success($data);
  116. }
  117. #[Apidoc\Title("支付通道")]
  118. #[Apidoc\Url("api/config/pay_aisle.html")]
  119. #[Apidoc\Method("POST")]
  120. #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '名称', default: '支付宝')]
  121. #[Apidoc\Returned(name: "characteristic", type: "int", require: true, desc: '支付标识', default: '1')]
  122. #[Apidoc\Returned(name: "type", type: "int", require: true, desc: '渠道类型', default: '1')]
  123. #[Apidoc\Returned(name: "img", type: "string", require: true, desc: '图标', default: '')]
  124. public function payAisle()
  125. {
  126. $data = Db::table('wa_pay_aisle')->where('state', 1)->orderBy('sort')->select(['name', 'characteristic', 'type', 'img'])->get();
  127. foreach ($data as $k => $v) {
  128. $data[$k]->img = imageToBase64($v->img);
  129. }
  130. return success($data);
  131. }
  132. }