Printer.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\printer\storeapi\controller;
  11. use addon\printer\model\PrinterOrder;
  12. use app\model\order\OrderCommon as OrderCommonModel;
  13. use addon\printer\model\PrinterTemplate;
  14. use addon\printer\model\Printer as PrinterModel;
  15. use app\storeapi\controller\BaseStoreApi;
  16. class Printer extends BaseStoreApi
  17. {
  18. /*
  19. * 小票打印列表
  20. */
  21. public function lists()
  22. {
  23. $model = new PrinterModel();
  24. $site_id = $this->params[ 'site_id' ] ?? 1;
  25. $store_id = $this->params[ 'store_id' ] ?? 1;
  26. $page = $this->params[ 'page' ] ?? 1;
  27. $page_size = $this->params[ 'page_size' ] ?? PAGE_LIST_ROWS;
  28. $condition[] = [ 'site_id', '=', $site_id ];
  29. $condition[] = [ 'store_id', '=', $store_id ];
  30. $list = $model->getPrinterPageList($condition, $page, $page_size, 'printer_id desc');
  31. return $this->response($list);
  32. }
  33. /**
  34. * 打印机信息
  35. * @return false|string
  36. */
  37. public function info()
  38. {
  39. $site_id = $this->params[ 'site_id' ] ?? 1;
  40. $store_id = $this->params[ 'store_id' ] ?? 1;
  41. $printer_id = $this->params[ 'printer_id' ] ?? 1;
  42. $model = new PrinterModel();
  43. $info = $model->getPrinterInfo([ [ 'printer_id', '=', $printer_id ], [ 'site_id', '=', $site_id ], [ 'store_id', '=', $store_id ] ]);
  44. $info[ 'data' ][ 'take_delivery_order_type' ] = explode(',', $info[ 'data' ][ 'take_delivery_order_type' ]);
  45. $info[ 'data' ][ 'order_pay_order_type' ] = explode(',', $info[ 'data' ][ 'order_pay_order_type' ]);
  46. $order_common_model = new OrderCommonModel();
  47. $order_type_list = $order_common_model->getOrderTypeStatusList();
  48. unset($order_type_list[ 'all' ]);
  49. $info[ 'data' ][ 'order_type_list' ] = $order_type_list;
  50. return $this->response($info);
  51. }
  52. public function getOrderType()
  53. {
  54. $order_common_model = new OrderCommonModel();
  55. $order_type_list = $order_common_model->getOrderTypeStatusList();
  56. unset($order_type_list[ 'all' ]);
  57. return $this->response($this->success($order_type_list));
  58. }
  59. /**
  60. * 打印机品牌
  61. * @return false|string
  62. */
  63. public function brand()
  64. {
  65. //打印机品牌
  66. $model = new PrinterModel();
  67. $brand = $model->getPrinterBrand();
  68. return $this->response($brand);
  69. }
  70. /**
  71. * 打印模板
  72. */
  73. public function template()
  74. {
  75. $site_id = $this->params[ 'site_id' ] ?? 1;
  76. $template_model = new PrinterTemplate();
  77. $condition = [
  78. [ 'site_id', '=', $site_id ],
  79. ];
  80. $template_list = $template_model->getPrinterTemplateList($condition, 'template_id,template_name,type', 'template_id desc');
  81. return $this->response($template_list);
  82. }
  83. /**
  84. * 添加小票打印
  85. */
  86. public function add()
  87. {
  88. $model = new PrinterModel();
  89. $data = [
  90. 'site_id' => $this->params[ 'site_id' ] ?? 1,
  91. 'printer_name' => $this->params[ 'printer_name' ] ?? '',
  92. 'brand' => $this->params[ 'brand' ] ?? '',
  93. 'printer_code' => $this->params[ 'printer_code' ] ?? '',
  94. 'printer_key' => $this->params[ 'printer_key' ] ?? '',
  95. 'open_id' => $this->params[ 'open_id' ] ?? '',
  96. 'apikey' => $this->params[ 'apikey' ] ?? '',
  97. 'store_id' => $this->params[ 'store_id' ] ?? 1,
  98. //订单
  99. 'order_pay_open' => $this->params[ 'order_pay_open' ] ?? 0,
  100. 'order_pay_template_id' => $this->params[ 'order_pay_template_id' ] ?? 0,
  101. 'order_pay_print_num' => $this->params[ 'order_pay_print_num' ] ?? 1,
  102. 'order_pay_order_type' => $this->params[ 'order_pay_order_type' ] ?? '',
  103. 'take_delivery_open' => $this->params[ 'take_delivery_open' ] ?? 0,
  104. 'take_delivery_template_id' => $this->params[ 'take_delivery_template_id' ] ?? 0,
  105. 'take_delivery_print_num' => $this->params[ 'take_delivery_print_num' ] ?? 1,
  106. 'take_delivery_order_type' => $this->params[ 'take_delivery_order_type' ] ?? '',
  107. 'manual_open' => $this->params[ 'manual_open' ] ?? 0,
  108. 'template_id' => $this->params[ 'template_id' ] ?? 0,
  109. 'print_num' => $this->params[ 'print_num' ] ?? 1,
  110. //充值
  111. 'recharge_open' => $this->params[ 'recharge_open' ] ?? 0,
  112. 'recharge_template_id' => $this->params[ 'recharge_template_id' ] ?? 0,
  113. 'recharge_print_num' => $this->params[ 'recharge_print_num' ] ?? 1,
  114. 'change_shifts_open' => $this->params[ 'change_shifts_open' ] ?? 0,
  115. 'change_shifts_template_id' => $this->params[ 'change_shifts_template_id' ] ?? 0,
  116. 'change_shifts_print_num' => $this->params[ 'change_shifts_print_num' ] ?? 1,
  117. ];
  118. if ($data[ 'order_pay_order_type' ]) $data[ 'order_pay_order_type' ] = ',' . $data[ 'order_pay_order_type' ] . ',';
  119. if ($data[ 'take_delivery_order_type' ]) $data[ 'take_delivery_order_type' ] = ',' . $data[ 'take_delivery_order_type' ] . ',';
  120. return $this->response($model->addPrinter($data));
  121. }
  122. /**
  123. * 编辑小票打印
  124. */
  125. public function edit()
  126. {
  127. $model = new PrinterModel();
  128. $data = [
  129. 'printer_id' => $this->params[ 'printer_id' ] ?? 1,
  130. 'site_id' => $this->params[ 'site_id' ] ?? 1,
  131. 'printer_name' => $this->params[ 'printer_name' ] ?? '',
  132. 'brand' => $this->params[ 'brand' ] ?? '',
  133. 'printer_code' => $this->params[ 'printer_code' ] ?? '',
  134. 'printer_key' => $this->params[ 'printer_key' ] ?? '',
  135. 'open_id' => $this->params[ 'open_id' ] ?? '',
  136. 'apikey' => $this->params[ 'apikey' ] ?? '',
  137. 'store_id' => $this->params[ 'store_id' ] ?? 1,
  138. //订单
  139. 'order_pay_open' => $this->params[ 'order_pay_open' ] ?? 0,
  140. 'order_pay_template_id' => $this->params[ 'order_pay_template_id' ] ?? 0,
  141. 'order_pay_print_num' => $this->params[ 'order_pay_print_num' ] ?? 1,
  142. 'order_pay_order_type' => $this->params[ 'order_pay_order_type' ] ?? '',
  143. 'take_delivery_open' => $this->params[ 'take_delivery_open' ] ?? 0,
  144. 'take_delivery_template_id' => $this->params[ 'take_delivery_template_id' ] ?? 0,
  145. 'take_delivery_print_num' => $this->params[ 'take_delivery_print_num' ] ?? 1,
  146. 'take_delivery_order_type' => $this->params[ 'take_delivery_order_type' ] ?? '',
  147. 'manual_open' => $this->params[ 'manual_open' ] ?? 0,
  148. 'template_id' => $this->params[ 'template_id' ] ?? 0,
  149. 'print_num' => $this->params[ 'print_num' ] ?? 1,
  150. //充值
  151. 'recharge_open' => $this->params[ 'recharge_open' ] ?? 0,
  152. 'recharge_template_id' => $this->params[ 'recharge_template_id' ] ?? 0,
  153. 'recharge_print_num' => $this->params[ 'recharge_print_num' ] ?? 1,
  154. 'change_shifts_open' => $this->params[ 'change_shifts_open' ] ?? 0,
  155. 'change_shifts_template_id' => $this->params[ 'change_shifts_template_id' ] ?? 0,
  156. 'change_shifts_print_num' => $this->params[ 'change_shifts_print_num' ] ?? 1,
  157. ];
  158. if ($data[ 'order_pay_order_type' ]) {
  159. $data[ 'order_pay_order_type' ] = ',' . $data[ 'order_pay_order_type' ] . ',';
  160. $data[ 'order_pay_order_type' ] = str_replace(',,', ',', $data[ 'order_pay_order_type' ]);
  161. }
  162. if ($data[ 'take_delivery_order_type' ]) {
  163. $data[ 'take_delivery_order_type' ] = ',' . $data[ 'take_delivery_order_type' ] . ',';
  164. $data[ 'take_delivery_order_type' ] = str_replace(',,', ',', $data[ 'take_delivery_order_type' ]);
  165. }
  166. return $this->response($model->editPrinter($data));
  167. }
  168. /*
  169. * 删除
  170. */
  171. public function deletePrinter()
  172. {
  173. $printer_id = $this->params[ 'printer_id' ] ?? 0;
  174. $store_id = $this->params[ 'store_id' ] ?? 0;
  175. $printer_model = new PrinterModel();
  176. $res = $printer_model->deletePrinter([ [ 'printer_id', '=', $printer_id ], [ 'store_id', '=', $store_id ] ]);
  177. return $this->response($res);
  178. }
  179. /**
  180. * 测试打印
  181. */
  182. public function testPrint()
  183. {
  184. $printer_id = $this->params[ 'printer_id' ] ?? 0;
  185. $site_id = $this->params[ 'site_id' ] ?? 1;
  186. $print_model = new PrinterOrder();
  187. $res = $print_model->testPrint($printer_id, $site_id);
  188. return $this->response($res);
  189. }
  190. /**
  191. * 刷新token
  192. */
  193. public function refreshToken()
  194. {
  195. $printer_id = $this->params[ 'printer_id' ] ?? 0;
  196. $site_id = $this->params[ 'site_id' ] ?? 1;
  197. $print_model = new PrinterModel();
  198. $res = $print_model->refreshToken($printer_id, $site_id);
  199. return $this->response($res);
  200. }
  201. }