链街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.

150 lines
4.8 KiB

  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\LanzuMmInfo;
  4. use App\Models\AdminUsers;
  5. use App\Models\ImsCjdcMarket;
  6. use App\Models\LanzuMpInfo as mpInfo;
  7. use Dcat\Admin\Form;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Show;
  10. use Dcat\Admin\Controllers\AdminController;
  11. use Illuminate\Support\Facades\Hash;
  12. use App\Models\LanzuMmInfo as mmInfo;
  13. class LanzuMmInfoController extends AdminController
  14. {
  15. /**
  16. * Make a grid builder.
  17. *
  18. * @return Grid
  19. */
  20. protected function grid()
  21. {
  22. return Grid::make(new LanzuMmInfo(), function (Grid $grid) {
  23. $grid->id->sortable();
  24. $grid->name;
  25. $grid->phone;
  26. $grid->column('market_id','所属市场')->display(function ($id){
  27. $market = ImsCjdcMarket::find($id);
  28. return $market->name;
  29. });
  30. $grid->id_frond->image('',50,50);
  31. $grid->id_back->image('',50,50);
  32. $grid->id_number;
  33. $grid->column('status','状态')->display(function ($status){
  34. if ($status==1){
  35. return '正常';
  36. }else{
  37. return '禁用';
  38. }
  39. });
  40. $grid->created_at->display(function ($time){
  41. return date('Y-m-d H:i:s',$time);
  42. });
  43. $grid->filter(function (Grid\Filter $filter) {
  44. $filter->equal('id');
  45. });
  46. });
  47. }
  48. /**
  49. * Make a show builder.
  50. *
  51. * @param mixed $id
  52. *
  53. * @return Show
  54. */
  55. protected function detail($id)
  56. {
  57. return Show::make($id, new LanzuMmInfo(), function (Show $show) {
  58. $show->id;
  59. $show->name;
  60. $show->phone;
  61. $show->market_id;
  62. $show->id_frond->image();
  63. $show->id_back->image();
  64. $show->id_number;
  65. $show->admin_user_id;
  66. $show->status;
  67. $show->is_del;
  68. $show->created_at;
  69. $show->updated_at;
  70. });
  71. }
  72. /**
  73. * Make a form builder.
  74. *
  75. * @return Form
  76. */
  77. protected function form()
  78. {
  79. return Form::make(new LanzuMmInfo(), function (Form $form) {
  80. $form->display('id');
  81. $form->text('name')->required();
  82. $form->text('phone')->required();
  83. $form->select('market_id','所属市场')->options('/api/getMarket')->required();
  84. $form->text('user_id','小程序用户ID')->required();
  85. $form->image('id_frond')->uniqueName();
  86. $form->image('id_back')->uniqueName();
  87. $form->text('id_number');
  88. $form->radio('status','状态')->options(['禁用','启用'])->default(1);
  89. $form->saved(function (Form $form,$result){
  90. $adu = new AdminUsers();
  91. if ($form->isCreating()){
  92. $newId = $result;
  93. if (!$newId){
  94. return $form->error('市场经理添加失败');
  95. }
  96. $mm = mmInfo::find($newId);
  97. //>>1.添加市场经理前,去查询是否已存在相同的帐号
  98. $count = $adu->where(['username'=>$form->phone])->count();
  99. if ($count){
  100. $mm->delete();
  101. return $form->error('该手机号作为登陆帐号已存在!');
  102. }
  103. //>>2.添加市场经理登陆帐号
  104. $adu->username = $form->phone;
  105. $adu->password = Hash::make(substr($form->phone,-5));
  106. $adu->name = $form->name;
  107. $adu->status = $form->status;
  108. $res = $adu->save();
  109. if (!$res){
  110. //删除刚添加的服务商
  111. $mm->delete();
  112. return $form->error('市场经理添加失败');
  113. }
  114. //>>3.将帐号id关联到市场经理
  115. $mm->admin_user_id = $adu->id;
  116. $mm->save();
  117. }else{
  118. //>>4.编辑时同步登陆帐号状态
  119. $id = $form->getKey();
  120. $mm = mmInfo::find($id);
  121. $ad = $adu->find($mm->admin_user_id);
  122. $ad->status = $form->status;
  123. $ad->save();
  124. }
  125. });
  126. });
  127. }
  128. /**
  129. * 获取市场信息
  130. * @return \Illuminate\Http\JsonResponse
  131. */
  132. protected function getMarket()
  133. {
  134. $markets = ImsCjdcMarket::all();
  135. $data = [];
  136. foreach ($markets as $market){
  137. $item = [];
  138. $item['id'] = $market->id;
  139. $item['text'] = $market->name;
  140. $data[] = $item;
  141. }
  142. return response()->json($data);
  143. }
  144. }