链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

233 lines
8.8 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. <?php
  2. namespace App\Admin\Controllers\v3;
  3. use App\Admin\Repositories\v3\Store;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Dcat\Admin\Controllers\AdminController;
  8. use App\Models\LanzuMmInfo as MminfoModel;
  9. use App\Models\v3\Market as MarketModel;
  10. use App\Admin\Common\StoreQRCode;
  11. use App\Models\v3\Store as StoreModel;
  12. use App\Models\v3\User as UserModel;
  13. use App\Models\v3\Category as CategoryModel;
  14. use App\Models\LanzuUserBalance as UserBalanceModel;
  15. class StoreController extends AdminController
  16. {
  17. /**
  18. * Make a grid builder.
  19. *
  20. * @return Grid
  21. */
  22. protected function grid()
  23. {
  24. return Grid::make(new Store(), function (Grid $grid) {
  25. $grid->model()->orderBy('id','desc');
  26. $grid->id->sortable();
  27. $grid->logo_url->image('',50);
  28. $grid->name;
  29. $grid->market_id->display(function ($marketId){
  30. $market = MarketModel::getMarketInfo($marketId,'name');
  31. return empty($market) ? '' : $market->name;
  32. });
  33. $grid->mm_user_id->display(function ($mmUserId){
  34. $mmUser = MminfoModel::getMmInfo($mmUserId,'name');
  35. return empty($mmUser) ? '' : $mmUser->name;
  36. });
  37. $grid->store_applet_img->image('',50);
  38. $grid->cash_code_img->image('',50);
  39. $grid->sort->sortable();
  40. $grid->is_rest->switch();
  41. $grid->is_open->switch();
  42. // 搜索
  43. $grid->filter(function (Grid\Filter $filter) {
  44. $filter->equal('id');
  45. $filter->like('name');
  46. });
  47. // 每页10条
  48. $grid->paginate(10);
  49. });
  50. }
  51. /**
  52. * Make a show builder.
  53. *
  54. * @param mixed $id
  55. *
  56. * @return Show
  57. */
  58. protected function detail($id)
  59. {
  60. return Show::make($id, new Store(), function (Show $show) {
  61. $show->row(function (Show\Row $show) {
  62. $show->width(6)->id;
  63. $show->width(6)->mm_user_id->as(function ($mmUserId){
  64. $item = MminfoModel::getMmInfo($mmUserId,'name');
  65. return empty($item) ? '' : $item->name;
  66. });
  67. $show->width(6)->market_id->as(function ($marketId){
  68. $item = MarketModel::getMarketInfo($marketId,'name');
  69. return empty($item) ? '' : $item->name;
  70. });
  71. $show->width(6)->category_id->as(function ($categoryId){
  72. $item = CategoryModel::getCategoryInfo($categoryId,'title');
  73. return empty($item) ? '' : $item->title;
  74. });
  75. $show->width(6)->name;
  76. $show->width(6)->logo->image();
  77. $show->width(6)->user_id->as(function ($userId){
  78. $item = UserModel::getUserInfo($userId,'nick_name');
  79. return empty($item) ? '' : $item->nick_name;
  80. });
  81. $show->width(6)->admin_id->as(function ($userId){
  82. $item = UserModel::getUserInfo($userId,'nick_name');
  83. return empty($item) ? '' : $item->nick_name;
  84. });
  85. $show->width(6)->business_license->image();
  86. $show->width(6)->zm_img->image();
  87. $show->width(6)->fm_img->image();
  88. $show->width(6)->tel;
  89. $show->width(6)->link_name;
  90. $show->width(6)->link_tel;
  91. $show->width(6)->time1;
  92. $show->width(6)->time2;
  93. $show->width(6)->time3;
  94. $show->width(6)->time4;
  95. });
  96. $show->row(function (Show\Row $show) {
  97. $show->width(6)->announcement;
  98. $show->width(6)->address;
  99. $show->width(6)->coordinates;
  100. $show->width(6)->is_rest_text;
  101. $show->width(6)->is_open_text;
  102. $show->width(6)->sort;
  103. // $show->width(6)->environment;
  104. $show->width(6)->expire_time;
  105. $show->width(6)->loudspeaker_imei;
  106. });
  107. // $show->created_at;
  108. // $show->updated_at;
  109. });
  110. }
  111. /**
  112. * Make a form builder.
  113. *
  114. * @return Form
  115. */
  116. protected function form()
  117. {
  118. return Form::make(new Store(), function (Form $form) {
  119. // 查询市场经理
  120. $mmList = MminfoModel::getMmInfoArray();
  121. // 查询市场
  122. $marketList = MarketModel::getMarket();
  123. // 查询一级分类
  124. $categoryList = CategoryModel::getCategoryArray([['parent_id','=',0]]);
  125. // 用户
  126. $userList = UserModel::getUserArray();
  127. $form->column(6, function (Form $form) use($mmList,$marketList,$categoryList){
  128. $form->hidden('id');
  129. $form->select('mm_user_id')->options($mmList);
  130. $form->select('market_id')->required()->options($marketList);
  131. $form->select('category_id')->options($categoryList);
  132. $form->text('name')->required()->maxLength(50);
  133. $form->image('logo')->required();
  134. $form->mobile('tel');
  135. $form->text('link_name')->required();
  136. $form->mobile('link_tel')->required();
  137. $form->number('sort');
  138. $form->switch('is_rest')
  139. ->customFormat(function ($v) {
  140. return $v == '休息' ? 1 : 0;
  141. })
  142. ->saving(function ($v) {
  143. return $v;
  144. });
  145. $form->switch('is_open')
  146. ->customFormat(function ($v) {
  147. return $v == '开启' ? 1 : 0;
  148. })
  149. ->saving(function ($v) {
  150. return $v;
  151. })->default(1);
  152. $form->text('address');
  153. });
  154. $form->column(6, function (Form $form) use($userList){
  155. $form->image('business_license')->required();
  156. $form->image('zm_img')->required();
  157. $form->image('fm_img')->required();
  158. $form->select('admin_id')->options($userList)->required();/*需要优化 一个用户只能绑定一家店铺*/
  159. $form->select('user_id')->options($userList)->required();/*需要优化 一个用户只能绑定一家店铺*/
  160. $form->time('time1')->format('HH:mm');
  161. $form->timeRange('time1','time2','营业时间段一')->required();
  162. $form->timeRange('time3','time4','营业时间段二')->format('HH:mm')
  163. ->rules('after:time2',['after'=>'选择的时间必须比时间段一结束时间大']);
  164. });
  165. $form->column(12, function (Form $form) {
  166. $form->map('lat','lng','地址');
  167. $form->textarea('introduction')->required();
  168. $form->textarea('announcement');
  169. $form->multipleImage('environment');
  170. });
  171. // $form->text('coordinates')->width(4)
  172. // ->placeholder('输入 经纬度,如: 108.281552,22.83731')
  173. // ->help("通过网址 <a href='https://lbs.amap.com/console/show/picker' target='_blank'>https://lbs.amap.com/console/show/picker</a> 获取经纬度");
  174. $form->saved(function (Form $form){
  175. $id = $form->getKey();
  176. $store = StoreModel::find($id);
  177. // 添加商户钱包
  178. $userBalance = UserBalanceModel::where([
  179. ['user_type','=',5],
  180. ['source_id','=',$id]
  181. ])->first();
  182. if(empty($userBalance)){
  183. $userBalance = new UserBalanceModel();
  184. $userBalance->user_type = 5;
  185. $userBalance->source_id = $id;
  186. $userBalance->save();
  187. }
  188. if($form->isCreating() && !empty($id)){
  189. $qrCode = new StoreQRCode();
  190. // 生成小程序码 店铺
  191. $sRes = $qrCode->SetStoreWeChatCode($id);
  192. // 生产小程序码 收银
  193. $pRes = $qrCode->SetPayWeChatCode($id);
  194. // 保存图片
  195. $store->store_applet_img = $sRes['status'] ? $sRes['path'] : '';
  196. $store->cash_code_img = $pRes['status'] ? $pRes['path'] : '';
  197. $store->save();
  198. // 剪裁图片
  199. // $form->image('cash_code_img')->crop(270, 270, [5, 5]);
  200. //店长账号
  201. }
  202. });
  203. $form->disableResetButton();
  204. $form->disableViewCheck();
  205. $form->disableEditingCheck();
  206. $form->disableCreatingCheck();
  207. });
  208. }
  209. }