ShopController.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. <?php
  2. namespace App\Controllers\Admin;
  3. use App\Models\Shop;
  4. use App\Models\Bought;
  5. use App\Controllers\AdminController;
  6. use Ozdemir\Datatables\Datatables;
  7. use App\Utils\DatatablesHelper;
  8. class ShopController extends AdminController
  9. {
  10. public function index($request, $response, $args)
  11. {
  12. $table_config['total_column'] = array("op" => "操作", "id" => "ID", "name" => "商品名称",
  13. "price" => "价格", "content" => "商品内容",
  14. "auto_renew" => "自动续费", "auto_reset_bandwidth" => "续费时是否重置流量",
  15. "status" => "状态");
  16. $table_config['default_show_column'] = array();
  17. foreach ($table_config['total_column'] as $column => $value) {
  18. array_push($table_config['default_show_column'], $column);
  19. }
  20. $table_config['ajax_url'] = 'shop/ajax';
  21. return $this->view()->assign('table_config', $table_config)->display('admin/shop/index.tpl');
  22. }
  23. public function create($request, $response, $args)
  24. {
  25. return $this->view()->display('admin/shop/create.tpl');
  26. }
  27. public function add($request, $response, $args)
  28. {
  29. $shop = new Shop();
  30. $shop->name = $request->getParam('name');
  31. $shop->price = $request->getParam('price');
  32. $shop->auto_renew = $request->getParam('auto_renew');
  33. $shop->auto_reset_bandwidth = $request->getParam('auto_reset_bandwidth');
  34. $content=array();
  35. if ($request->getParam('bandwidth')!=0) {
  36. $content["bandwidth"]=$request->getParam('bandwidth');
  37. }
  38. if ($request->getParam('expire')!=0) {
  39. $content["expire"]=$request->getParam('expire');
  40. }
  41. if ($request->getParam('class')!=0) {
  42. $content["class"]=$request->getParam('class');
  43. }
  44. if ($request->getParam('class_expire')!=0) {
  45. $content["class_expire"]=$request->getParam('class_expire');
  46. }
  47. if ($request->getParam('reset')!=0) {
  48. $content["reset"]=$request->getParam('reset');
  49. }
  50. if ($request->getParam('reset_value')!=0) {
  51. $content["reset_value"]=$request->getParam('reset_value');
  52. }
  53. if ($request->getParam('reset_exp')!=0) {
  54. $content["reset_exp"]=$request->getParam('reset_exp');
  55. }
  56. if ($request->getParam('speedlimit')!=0) {
  57. $content["speedlimit"]=$request->getParam('speedlimit');
  58. }
  59. if ($request->getParam('connector')!=0) {
  60. $content["connector"]=$request->getParam('connector');
  61. }
  62. $shop->content=json_encode($content);
  63. if (!$shop->save()) {
  64. $rs['ret'] = 0;
  65. $rs['msg'] = "添加失败";
  66. return $response->getBody()->write(json_encode($rs));
  67. }
  68. $rs['ret'] = 1;
  69. $rs['msg'] = "添加成功";
  70. return $response->getBody()->write(json_encode($rs));
  71. }
  72. public function edit($request, $response, $args)
  73. {
  74. $id = $args['id'];
  75. $shop = Shop::find($id);
  76. if ($shop == null) {
  77. }
  78. return $this->view()->assign('shop', $shop)->display('admin/shop/edit.tpl');
  79. }
  80. public function update($request, $response, $args)
  81. {
  82. $id = $args['id'];
  83. $shop = Shop::find($id);
  84. $shop->name = $request->getParam('name');
  85. $shop->price = $request->getParam('price');
  86. $shop->auto_renew = $request->getParam('auto_renew');
  87. if ($shop->auto_reset_bandwidth == 1 && $request->getParam('auto_reset_bandwidth') == 0) {
  88. $boughts = Bought::where("shopid", $id)->get();
  89. foreach ($boughts as $bought) {
  90. $bought->renew=0;
  91. $bought->save();
  92. }
  93. }
  94. $shop->auto_reset_bandwidth = $request->getParam('auto_reset_bandwidth');
  95. $shop->status=1;
  96. $content=array();
  97. if ($request->getParam('bandwidth')!=0) {
  98. $content["bandwidth"]=$request->getParam('bandwidth');
  99. }
  100. if ($request->getParam('expire')!=0) {
  101. $content["expire"]=$request->getParam('expire');
  102. }
  103. if ($request->getParam('class')!=0) {
  104. $content["class"]=$request->getParam('class');
  105. }
  106. if ($request->getParam('class_expire')!=0) {
  107. $content["class_expire"]=$request->getParam('class_expire');
  108. }
  109. if ($request->getParam('reset')!=0) {
  110. $content["reset"]=$request->getParam('reset');
  111. }
  112. if ($request->getParam('reset_value')!=0) {
  113. $content["reset_value"]=$request->getParam('reset_value');
  114. }
  115. if ($request->getParam('reset_exp')!=0) {
  116. $content["reset_exp"]=$request->getParam('reset_exp');
  117. }
  118. if ($request->getParam('speedlimit')!=0) {
  119. $content["speedlimit"]=$request->getParam('speedlimit');
  120. }
  121. if ($request->getParam('connector')!=0) {
  122. $content["connector"]=$request->getParam('connector');
  123. }
  124. $shop->content=json_encode($content);
  125. if (!$shop->save()) {
  126. $rs['ret'] = 0;
  127. $rs['msg'] = "保存失败";
  128. return $response->getBody()->write(json_encode($rs));
  129. }
  130. $rs['ret'] = 1;
  131. $rs['msg'] = "保存成功";
  132. return $response->getBody()->write(json_encode($rs));
  133. }
  134. public function deleteGet($request, $response, $args)
  135. {
  136. $id = $request->getParam('id');
  137. $shop = Shop::find($id);
  138. $shop->status=0;
  139. if (!$shop->save()) {
  140. $rs['ret'] = 0;
  141. $rs['msg'] = "下架失败";
  142. return $response->getBody()->write(json_encode($rs));
  143. }
  144. $boughts = Bought::where("shopid", $id)->get();
  145. foreach ($boughts as $bought) {
  146. $bought->renew=0;
  147. $bought->save();
  148. }
  149. $rs['ret'] = 1;
  150. $rs['msg'] = "下架成功";
  151. return $response->getBody()->write(json_encode($rs));
  152. }
  153. public function bought($request, $response, $args)
  154. {
  155. $table_config['total_column'] = array("op" => "操作", "id" => "ID", "content" => "内容",
  156. "price" => "价格", "user_id" => "用户ID",
  157. "user_name" => "用户名", "renew" => "自动续费时间", "auto_reset_bandwidth" => "续费时是否重置流量",
  158. "datetime" => "自动重置");
  159. $table_config['default_show_column'] = array();
  160. foreach ($table_config['total_column'] as $column => $value) {
  161. array_push($table_config['default_show_column'], $column);
  162. }
  163. $table_config['ajax_url'] = 'bought/ajax';
  164. return $this->view()->assign('table_config', $table_config)->display('admin/shop/bought.tpl');
  165. }
  166. public function deleteBoughtGet($request, $response, $args)
  167. {
  168. $id = $request->getParam('id');
  169. $shop = Bought::find($id);
  170. $shop->renew=0;
  171. if (!$shop->save()) {
  172. $rs['ret'] = 0;
  173. $rs['msg'] = "退订失败";
  174. return $response->getBody()->write(json_encode($rs));
  175. }
  176. $rs['ret'] = 1;
  177. $rs['msg'] = "退订成功";
  178. return $response->getBody()->write(json_encode($rs));
  179. }
  180. public function ajax_shop($request, $response, $args)
  181. {
  182. $datatables = new Datatables(new DatatablesHelper());
  183. $datatables->query('Select id as op,id,name,price,content,auto_renew,auto_reset_bandwidth,status from shop');
  184. $datatables->edit('op', function ($data) {
  185. return '<a class="btn btn-brand" href="/admin/shop/'.$data['id'].'/edit">编辑</a>
  186. <a class="btn btn-brand-accent" '.($data['status'] == 0 ? "disabled" : 'id="row_delete_'.$data['id'].'" href="javascript:void(0);" onClick="delete_modal_show(\''.$data['id'].'\')"').'>下架</a>';
  187. });
  188. $datatables->edit('content', function ($data) {
  189. $shop = Shop::find($data['id']);
  190. return $shop->content();
  191. });
  192. $datatables->edit('auto_renew', function ($data) {
  193. if ($data['auto_renew'] == 0) {
  194. return "不自动续费";
  195. } else {
  196. return $data['auto_renew']." 天后续费";
  197. }
  198. });
  199. $datatables->edit('auto_reset_bandwidth', function ($data) {
  200. return $data['auto_reset_bandwidth'] == 0 ? '不自动重置' : '自动重置';
  201. });
  202. $datatables->edit('status', function ($data) {
  203. return $data['status'] == 1 ? '上架' : '下架';
  204. });
  205. $body = $response->getBody();
  206. $body->write($datatables->generate());
  207. }
  208. public function ajax_bought($request, $response, $args)
  209. {
  210. $datatables = new Datatables(new DatatablesHelper());
  211. $datatables->query('Select bought.id as op,bought.id as id,shop.id as content,bought.price,user.id as user_id,user.user_name,renew,shop.auto_reset_bandwidth,bought.datetime from bought,user,shop where bought.shopid = shop.id and bought.userid = user.id');
  212. $datatables->edit('op', function ($data) {
  213. return '<a class="btn btn-brand-accent" '.($data['renew'] == 0 ? "disabled" : ' id="row_delete_'.$data['id'].'" href="javascript:void(0);" onClick="delete_modal_show(\''.$data['id'].'\')"').'>中止</a>';
  214. });
  215. $datatables->edit('content', function ($data) {
  216. $shop = Shop::find($data['content']);
  217. return $shop->content();
  218. });
  219. $datatables->edit('renew', function ($data) {
  220. if ($data['renew'] == 0) {
  221. return "不自动续费";
  222. } else {
  223. return date('Y-m-d H:i:s', $data['renew'])." 续费";
  224. }
  225. });
  226. $datatables->edit('auto_reset_bandwidth', function ($data) {
  227. return $data['auto_reset_bandwidth'] == 0 ? '不自动重置' : '自动重置';
  228. });
  229. $datatables->edit('datetime', function ($data) {
  230. return date('Y-m-d H:i:s', $data['datetime']);
  231. });
  232. $body = $response->getBody();
  233. $body->write($datatables->generate());
  234. }
  235. }