TableNumberController.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\plugins\food\controllers;
  8. use app\plugins\food\models\FoodTableNumber;
  9. use app\utils\QrCode;
  10. class TableNumberController extends BaseController
  11. {
  12. /**
  13. * 平台获取商品列表
  14. * @return \yii\web\Response
  15. */
  16. public function actionList()
  17. {
  18. $num = get_params('num');
  19. $query = FoodTableNumber::find()->where([
  20. 'is_delete' => 0,
  21. 'store_id' => get_store_id(),
  22. ]);
  23. if ($num) {
  24. $query->andWhere(['num' => $num]);
  25. }
  26. $pagination = pagination_make($query);
  27. $list = $pagination['list'];
  28. return [
  29. 'code' => 0,
  30. 'msg' => 'success',
  31. 'data' => [
  32. 'data' => $list,
  33. 'pageNo' => $pagination['pageNo'],
  34. 'totalCount' => $pagination['totalCount'],
  35. ],
  36. ];
  37. }
  38. public function actionAdd()
  39. {
  40. $store_id = post_params('storeId', get_store_id());
  41. $params = [
  42. 'num' => post_params('num', ''),
  43. 'remark' => post_params('remark'),
  44. ];
  45. $is = FoodTableNumber::find()->where([
  46. 'store_id' => $store_id,
  47. 'num' => $params['num'],
  48. 'is_delete' => 0,
  49. ])->one();
  50. if ($is) {
  51. return [
  52. 'code' => 1,
  53. 'msg' => '桌号已经存在!'
  54. ];
  55. }
  56. $form = new FoodTableNumber();
  57. $form->store_id = $store_id;
  58. $form->num = $params['num'];
  59. $form->remark = $params['remark'];
  60. if ($form->save()) {
  61. return [
  62. 'code' => 0,
  63. 'msg' => '创建成功!'
  64. ];
  65. }
  66. return [
  67. 'code' => 1,
  68. 'msg' => '创建失败!'
  69. ];
  70. }
  71. public function actionEdit()
  72. {
  73. $store_id = post_params('storeId', get_store_id());
  74. $params = [
  75. 'id' => post_params('id'),
  76. 'num' => post_params('num', ''),
  77. 'remark' => post_params('remark'),
  78. ];
  79. $is = FoodTableNumber::find()->where([
  80. 'store_id' => $store_id,
  81. 'num' => $params['num'],
  82. 'is_delete' => 0,
  83. ])->andWhere(['<>', 'id', $params['id']])->one();
  84. if ($is) {
  85. return [
  86. 'code' => 1,
  87. 'msg' => '桌号已经存在!'
  88. ];
  89. }
  90. $form = FoodTableNumber::findOne($params['id']);
  91. if (!$form) {
  92. return [
  93. 'code' => 1,
  94. 'msg' => '记录不存在!'
  95. ];
  96. }
  97. $form->num = $params['num'];
  98. $form->remark = $params['remark'];
  99. if ($form->save()) {
  100. return [
  101. 'code' => 0,
  102. 'msg' => '创建成功!'
  103. ];
  104. }
  105. return [
  106. 'code' => 1,
  107. 'msg' => '创建失败!'
  108. ];
  109. }
  110. public function actionDel()
  111. {
  112. $id = post_params('id');
  113. $form = FoodTableNumber::findOne($id);
  114. if (!$form) {
  115. return [
  116. 'code' => 1,
  117. 'msg' => '记录不存在!'
  118. ];
  119. }
  120. $form->is_delete = FoodTableNumber::DELETE_STATUS_TRUE;
  121. if ($form->save()) {
  122. return [
  123. 'code' => 0,
  124. 'msg' => '删除成功!'
  125. ];
  126. }
  127. return [
  128. 'code' => 1,
  129. 'msg' => '删除失败!'
  130. ];
  131. }
  132. public function actionDownQr()
  133. {
  134. $num = get_params('num', 0);
  135. $store_id = get_store_id();
  136. $filename = md5($store_id . '-' . $num);
  137. $path = \Yii::$app->runtimePath . '/image/' . $filename . '.jpg';
  138. $pic_url = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/runtime/image/' . $filename . '.jpg');
  139. if (file_exists($path)) {
  140. return [
  141. 'code' => 0,
  142. 'data' => [
  143. 'qr_url' => $pic_url,
  144. ]
  145. ];
  146. }
  147. $text = str_replace('http://', 'https://', \Yii::$app->request->hostInfo . '/food/' . $store_id . '?table_num=' . $num);
  148. QrCode::image($text, 500, false, 'L', 'JPEG', 0, ['255,255,255', '0,0,0'], 1, false, $path);
  149. $goods_qrcode = new \claviska\SimpleImage($path);
  150. $bgPath = \Yii::$app->basePath . '/web/v1/statics/images/alipay-bg.png';
  151. $bg = new \claviska\SimpleImage($bgPath);
  152. $bg->overlay($goods_qrcode, 'top left', 1, 200, 350);
  153. $bg->toFile($path, 'image/jpeg', 85);
  154. return [
  155. 'code' => 0,
  156. 'data' => [
  157. 'qr_url' => $pic_url,
  158. ]
  159. ];
  160. }
  161. }