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

211 lines
7.4 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Common\Auth;
  4. use App\Admin\Common\Type;
  5. use App\Admin\Repositories\LanzuMmInfo;
  6. use App\Models\AdminUsers;
  7. use \App\Models\AdminRoles;
  8. use \App\Models\AdminRoleUsers;
  9. use App\Models\ImsCjdcMarket;
  10. use App\Models\ImsCjdcUser;
  11. use App\Models\LanzuMmWithdraw;
  12. use App\Models\LanzuMpInfo;
  13. use App\Models\LanzuMpInfo as mpInfo;
  14. use App\Models\MpBalance;
  15. use Dcat\Admin\Form;
  16. use Dcat\Admin\Grid;
  17. use Dcat\Admin\Show;
  18. use Dcat\Admin\Controllers\AdminController;
  19. use Illuminate\Support\Facades\Hash;
  20. use App\Models\LanzuMmInfo as mmInfo;
  21. use Dcat\Admin\Admin;
  22. class LanzuMmInfoController extends AdminController
  23. {
  24. /**
  25. * Make a grid builder.
  26. *
  27. * @return Grid
  28. */
  29. protected function grid()
  30. {
  31. return Grid::make(new LanzuMmInfo(), function (Grid $grid) {
  32. $grid->model()->orderBy('created_at','desc');
  33. $user = Admin::user();
  34. //根据登陆帐户获取服务商信息
  35. $mp_info = mpInfo::where('admin_user_id', $user->id)->first();
  36. if ($mp_info) {//如果没有获取到对应的服务商信息,说明该帐号没有绑定服务商
  37. $mk = ImsCjdcMarket::where('mp_id', $mp_info->id)->get()->pluck('id');
  38. $mk_ids = [-1];
  39. if (count($mk) > 0) {
  40. $mk_ids = $mk;
  41. }
  42. $grid->model()->whereIn('market_id', $mk_ids);
  43. }
  44. $grid->id->sortable();
  45. $grid->name;
  46. $grid->phone;
  47. $grid->column('market_id', '所属市场')->display(function ($id) {
  48. $market = ImsCjdcMarket::find($id);
  49. return $market->name;
  50. });
  51. $grid->column('可提现金额')->display(function () {
  52. return MpBalance::getBalance($this->admin_user_id, Type::BALANCE_USER_TYPE_MM);
  53. });
  54. $grid->id_frond->image('', 50, 50);
  55. $grid->id_back->image('', 50, 50);
  56. $grid->id_number;
  57. $grid->column('status', '状态')->display(function ($status) {
  58. if ($status == 1) {
  59. return '正常';
  60. } else {
  61. return '禁用';
  62. }
  63. });
  64. $grid->created_at->display(function ($time) {
  65. return date('Y-m-d H:i:s', $time);
  66. });
  67. $grid->filter(function (Grid\Filter $filter) {
  68. $filter->like('name')->placeholder('输入经理名称');
  69. $filter->equal('phone')->placeholder('输入电话');
  70. });
  71. });
  72. }
  73. /**
  74. * Make a show builder.
  75. *
  76. * @param mixed $id
  77. *
  78. * @return Show
  79. */
  80. protected function detail($id)
  81. {
  82. return Show::make($id, new LanzuMmInfo(), function (Show $show) {
  83. $show->name;
  84. $show->phone;
  85. $show->market_id()->as(function ($id) {
  86. $market = ImsCjdcMarket::find($id);
  87. return $market->name;
  88. });
  89. $show->id_frond->image();
  90. $show->id_back->image();
  91. $show->id_number;
  92. $show->status()->using([1 => '正常', 0 => '禁用']);
  93. $show->created_at()->as(function ($time) {
  94. if ($time) {
  95. return date('Y-m-d H:i', $time);
  96. } else {
  97. return '-';
  98. }
  99. });
  100. $show->updated_at()->as(function ($time) {
  101. if ($time) {
  102. return date('Y-m-d H:i', $time);
  103. } else {
  104. return '-';
  105. }
  106. });
  107. });
  108. }
  109. /**
  110. * Make a form builder.
  111. *
  112. * @return Form
  113. */
  114. protected function form()
  115. {
  116. return Form::make(new LanzuMmInfo(), function (Form $form) {
  117. $form->display('id');
  118. $form->text('user_id', '懒ID')->placeholder('对应懒族小程序个人中心的懒ID')->required();
  119. $form->text('name')->required();
  120. $form->text('phone')->required();
  121. $form->select('market_id', '所属市场')->options('/api/getMarket')->required();
  122. $form->image('id_frond')->uniqueName();
  123. $form->image('id_back')->uniqueName();
  124. $form->text('id_number');
  125. $form->radio('status', '状态')->options(['禁用', '启用'])->default(1);
  126. $form->saving(function (Form $form){
  127. //保存前,校验懒ID是否有效
  128. if ($form->user_id){
  129. $count = ImsCjdcUser::where('id', $form->user_id)->count();
  130. if (!$count) {
  131. return $form->error('该懒ID无效');
  132. }
  133. if ($form->isCreating()){
  134. //校验懒ID是否已被绑定
  135. $count = mmInfo::where('user_id',$form->user_id)->count();
  136. if ($count) {
  137. return $form->error('懒ID已被绑定');
  138. }
  139. }else{
  140. if ($form->user_id!=$form->model()->user_id){
  141. $count = mmInfo::where('user_id',$form->user_id)->count();
  142. if ($count) {
  143. return $form->error('懒ID已被绑定');
  144. }
  145. }
  146. }
  147. }
  148. });
  149. $form->saved(function (Form $form, $mmid) {
  150. $model = new mmInfo();
  151. if ($form->isCreating()) {
  152. $res = Auth::addAdminUser($form, $model, $mmid, 'lanzu_mm', Type::BALANCE_USER_TYPE_MM);
  153. if ($res == -1) {
  154. return $form->error('该手机号作为登陆帐号已存在!');
  155. } elseif ($res == -2) {
  156. return $form->error('添加失败!');
  157. }
  158. } else {
  159. //>>4.编辑时同步登陆帐号状态
  160. $adu = new AdminUsers();
  161. $id = $form->getKey();
  162. $mm = mmInfo::find($id);
  163. $ad = $adu->find($mm->admin_user_id);
  164. $ad->status = $form->status;
  165. $ad->save();
  166. }
  167. });
  168. $form->deleted(function (Form $form, $result) {
  169. $aduids = array_column($form->model()->toArray(), 'admin_user_id');
  170. $mids = array_column($form->model()->toArray(), 'id');
  171. //删除对应的登陆帐号
  172. AdminUsers::whereIn('id', $aduids)->delete();
  173. //删除提现记录
  174. LanzuMmWithdraw::whereIn('mm_id',$mids)->update(['deleted_at'=>time()]);
  175. });
  176. });
  177. }
  178. /**
  179. * 获取市场信息
  180. * @return \Illuminate\Http\JsonResponse
  181. */
  182. protected function getMarket()
  183. {
  184. $user = Admin::user();
  185. $mp = LanzuMpInfo::where('admin_user_id', $user->id)->first();
  186. $data = [];
  187. if ($mp) {
  188. $markets = ImsCjdcMarket::where('mp_id', $mp->id)->get();
  189. foreach ($markets as $market) {
  190. $item = [];
  191. $item['id'] = $market->id;
  192. $item['text'] = $market->name;
  193. $data[] = $item;
  194. }
  195. }
  196. return response()->json($data);
  197. }
  198. }