WxShopCouponController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. namespace App\Admin\Controllers\Shop;
  3. use App\Admin\Repositories\Shop\WxShopCoupon;
  4. use App\Models\Shop\WxShop;
  5. use App\Models\Shop\WxShopGoods;
  6. use App\Wen\Utils\AdminUtils;
  7. use App\Wen\Utils\Settings;
  8. use Dcat\Admin\Form;
  9. use Dcat\Admin\Grid;
  10. use Dcat\Admin\Show;
  11. use Dcat\Admin\Http\Controllers\AdminController;
  12. class WxShopCouponController extends AdminController
  13. {
  14. /**
  15. * Make a grid builder.
  16. *
  17. * @return Grid
  18. */
  19. protected function grid()
  20. {
  21. return Grid::make(new WxShopCoupon(), function (Grid $grid) {
  22. $grid->column('id')->sortable();
  23. $grid->column('type');
  24. $grid->column('num');
  25. $grid->column('min_purchase');
  26. $grid->column('goods');
  27. $grid->column('classifies');
  28. $grid->column('shops');
  29. $grid->column('users');
  30. $grid->column('start_time');
  31. $grid->column('end_time');
  32. $grid->column('status');
  33. $grid->column('created_at');
  34. $grid->column('updated_at')->sortable();
  35. $grid->filter(function (Grid\Filter $filter) {
  36. $filter->equal('id');
  37. });
  38. });
  39. }
  40. /**
  41. * Make a show builder.
  42. *
  43. * @param mixed $id
  44. *
  45. * @return Show
  46. */
  47. protected function detail($id)
  48. {
  49. return Show::make($id, new WxShopCoupon(), function (Show $show) {
  50. $show->field('id');
  51. $show->field('type');
  52. $show->field('num');
  53. $show->field('min_purchase');
  54. $show->field('goods');
  55. $show->field('classifies');
  56. $show->field('shops');
  57. $show->field('users');
  58. $show->field('start_time');
  59. $show->field('end_time');
  60. $show->field('status');
  61. $show->field('created_at');
  62. $show->field('updated_at');
  63. });
  64. }
  65. /**
  66. * Make a form builder.
  67. *
  68. * @return Form
  69. */
  70. protected function form()
  71. {
  72. $app_coin_name = Settings::get('app_coin_name', '硬币');
  73. return Form::make(new WxShopCoupon(), function (Form $form) use ($app_coin_name){
  74. global $__MINI_GLOBAL_IS_ADMIN_SUPER__;
  75. $modle = $form->model();
  76. $form->display('id');
  77. $form->radio('type')->options([1=>'固定金额', 2=>'比例'])->default(1)->required();
  78. $form->decimal('num')->required();
  79. $form->decimal('min_purchase')->default(0);
  80. $form->multipleSelect('goods', '商品')->options(function ($ids) {
  81. if($ids){
  82. $res = [];
  83. foreach ($ids as $id){
  84. $good = WxShopGoods::find($id);
  85. if ($good) {
  86. $res[$good->id] = $good->name;
  87. }
  88. }
  89. return $res;
  90. }
  91. })->ajax('select/shop/goods')->saveAsJson();
  92. $options = AdminUtils::get_admin_user_shop_classifys();
  93. if(_empty_($options)){
  94. $form->html(function () use ($modle, $app_coin_name, $__MINI_GLOBAL_IS_ADMIN_SUPER__){
  95. if($__MINI_GLOBAL_IS_ADMIN_SUPER__){
  96. return '<div style="background-color: transparent;color: #414750;padding: 10px;border-radius: 5px;color: red;">!!! 当前没有第三层级的商品分类,无法新增商品</div>';
  97. }else{
  98. return '<div style="background-color: transparent;color: #414750;padding: 10px;border-radius: 5px;color: red;">!!! 当前后台账号无绑定的店铺id,无法新增商品</div>';
  99. }
  100. }, '');
  101. }else{
  102. $form->multipleSelect('classifies','商品分类')->options($options)->saveAsJson();
  103. }
  104. $form->multipleSelect('shops')->options(function ($ids) {
  105. if($ids){
  106. $res = [];
  107. foreach ($ids as $id){
  108. $shop = WxShop::find($id);
  109. if ($shop) {
  110. $res[$shop->id] = $shop->shop_name;
  111. }
  112. }
  113. return $res;
  114. }
  115. })->ajax('select/shops')->saveAsJson();
  116. $form->multipleSelect('users')->options(function ($ids) {
  117. if($ids){
  118. $res = [];
  119. foreach ($ids as $id){
  120. $user = \App\Models\User\WxUser::find($id);
  121. if ($user) {
  122. $res[$user->id] = $user->user_name;
  123. }
  124. }
  125. return $res;
  126. }
  127. })->ajax('select/users')->saveAsJson();
  128. $form->datetime('start_time')->required();
  129. $form->datetime('end_time')->required();
  130. $form->switch('status')->options([0=>'未激活', 1=>'已激活'])->default(1)->required();
  131. $form->display('created_at');
  132. $form->display('updated_at');
  133. $form->deleting(function (Form $form){
  134. global $__MINI_GLOBAL_TENANT_ID__;
  135. if($__MINI_GLOBAL_TENANT_ID__ > 0){
  136. return $form->response()->error('权限不足,不可以删除其他分站对象');
  137. }
  138. });
  139. });
  140. }
  141. }