Printer.php 10 KB

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