MemberController.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Requests\MemberCreateRequest;
  4. use App\Http\Requests\MemberUpdateRequest;
  5. use App\Http\Requests\MemberUpdateMoneyRequest;
  6. use App\Models\Member;
  7. use App\Models\MoneyDetails;
  8. use App\Models\MembersDetailed;
  9. use App\Models;
  10. use Illuminate\Http\Request;
  11. use App\Http\Controllers\Controller;
  12. use Illuminate\Support\Facades\DB;
  13. class MemberController extends Controller
  14. {
  15. /**
  16. * Display a listing of the resource.
  17. *
  18. * @return \Illuminate\Http\Response
  19. */
  20. public function index()
  21. {
  22. return view('admin.member.index');
  23. }
  24. public function data(Request $request)
  25. {
  26. $model = Member::query();
  27. $model = $model
  28. ->select(['phone', 'name', 'members.created_at', 'identity', 'is_deleted', 'membersDetailed_cash', 'members_id', 'membersDetailed_delete'])
  29. ->join('membersDetailed', 'membersDetailed.members_id', 'members.id');
  30. if ($request->get('name')){
  31. $model = $model->where('name','like','%'.$request->get('name').'%');
  32. }
  33. if ($request->get('phone')){
  34. $model = $model->where('phone','like','%'.$request->get('phone').'%');
  35. }
  36. $res = $model
  37. ->orderBy('created_at','desc')
  38. ->paginate($request->get('limit',30))
  39. ->toArray();
  40. $data = [
  41. 'code' => 0,
  42. 'msg' => '正在请求中...',
  43. 'count' => $res['total'],
  44. 'data' => $res['data']
  45. ];
  46. return response()->json($data);
  47. }
  48. public function getDetailedInfo()
  49. {
  50. return view('admin.member.detailedInfo');
  51. }
  52. public function dataDetailedInfo(Request $request)
  53. {
  54. $model = MoneyDetails::query();
  55. $startTime = $request->get('startTime') ?? '1900-01-01 00:00:00';
  56. $endTime = $request->get('endTime') ?? '3000-12-12 00:00:00';
  57. $modelBetween = [$startTime, $endTime];
  58. $model = $model
  59. ->where(['members_id' => $request->get('members_id'), 'moneyDetails_status' => 1])
  60. -> whereBetween('moneyDetails_time', $modelBetween);
  61. if ($request->get('type')){
  62. $model = $model->where(['moneyDetails_type' => $request->get('type')]);
  63. }
  64. if ($request->get('describe')){
  65. $model = $model->where('moneyDetails_describe','like','%'.$request->get('describe').'%');
  66. }
  67. $res = $model
  68. ->orderBy('moneyDetails_time','desc')
  69. ->paginate($request->get('limit',30))
  70. ->toArray();
  71. $data = [
  72. 'code' => 0,
  73. 'msg' => '正在请求中...',
  74. 'count' => $res['total'],
  75. 'data' => $res['data']
  76. ];
  77. return response()->json($data);
  78. }
  79. public function resetPassword(Request $request)
  80. {
  81. $ids = $request->get('ids');
  82. $memberModel = new Member;
  83. $uuid = $memberModel->select('uuid')->where(['id'=>$ids[0]])->first();
  84. $user['password'] = createPasswd(trim('123456'), $uuid->uuid);
  85. if (empty($ids)){
  86. return response()->json(['code'=>1,'msg'=>'请选择要重置密码的用户']);
  87. }
  88. if (Member::whereIn('id',$ids)->update($user)){
  89. return response()->json(['code'=>0,'msg'=>'密码重置成功']);
  90. }
  91. return response()->json(['code'=>1,'msg'=>'密码重置失败']);
  92. }
  93. public function editMoney($id)
  94. {
  95. $member = Member::findOrFail($id);
  96. return view('admin.member.editMoney',compact('member'));
  97. }
  98. public function updateMoney(MemberUpdateMoneyRequest $request, $id)
  99. {
  100. $model = MembersDetailed::query();
  101. $cash = $model->select('membersDetailed_cash')->where(['members_id'=>$id, 'membersDetailed_delete'=>0])->first();
  102. $money = $request->get('money');
  103. $type = $request->get('type');
  104. $nowMoney = 0;
  105. $msg = '';
  106. if ($type==1){
  107. $msg = '充值';
  108. $nowMoney = $cash->membersDetailed_cash + $money;
  109. } elseif ($type==2) {
  110. $msg = '扣款';
  111. $nowMoney = $cash->membersDetailed_cash - $money;
  112. if ($nowMoney<0) {
  113. return redirect()->to(route('admin.member'))->withErrors('用户余额不足');
  114. }
  115. }
  116. DB::beginTransaction();
  117. $updateMoney = $model->where('members_id',$id)->update(['membersDetailed_cash'=>$nowMoney]);
  118. // 添加记录
  119. $uuid = getUUID();
  120. $moneyDetailsModel = new Models\MoneyDetails;
  121. $describe = '后台' . $msg;
  122. $data = [
  123. 'moneyDetails_identity' => $uuid,
  124. 'members_id' => $id,
  125. 'moneyDetails_money' => $money,
  126. 'moneyDetails_time' => date('Y-m-d H:i:s'),
  127. 'moneyDetails_type' => $type,
  128. 'moneyDetails_cash' => $nowMoney,
  129. 'moneyDetails_describe' => $describe,
  130. 'moneyDetails_status' => 1,
  131. ];
  132. $add = $moneyDetailsModel->insert($data);
  133. if ($updateMoney && $add){
  134. DB::commit();
  135. $msg = $msg . '成功';
  136. return redirect()->to(route('admin.member'))->with(['status'=>$msg]);
  137. } else {
  138. DB::rollBack();
  139. return response()->json(['code'=>1,'msg'=>'操作失败']);
  140. }
  141. }
  142. /**
  143. * Show the form for creating a new resource.
  144. *
  145. * @return \Illuminate\Http\Response
  146. */
  147. public function create()
  148. {
  149. return view('admin.member.create');
  150. }
  151. /**
  152. * Store a newly created resource in storage.
  153. *
  154. * @param \Illuminate\Http\Request $request
  155. * @return \Illuminate\Http\Response
  156. */
  157. public function store(MemberCreateRequest $request)
  158. {
  159. $data = $request->all();
  160. // $data['password'] = bcrypt($data['password']);
  161. $data['uuid'] = \Faker\Provider\Uuid::uuid();
  162. $data['password'] = createPasswd(trim($data['password']),$data['uuid']);
  163. if (Member::create($data)){
  164. return redirect()->to(route('admin.member'))->with(['status'=>'添加账号成功']);
  165. }
  166. return redirect()->to(route('admin.member'))->withErrors('系统错误');
  167. }
  168. /**
  169. * Show the form for editing the specified resource.
  170. *
  171. * @param int $id
  172. * @return \Illuminate\Http\Response
  173. */
  174. public function edit($id)
  175. {
  176. $member = Member::findOrFail($id);
  177. return view('admin.member.edit',compact('member'));
  178. }
  179. /**
  180. * Update the specified resource in storage.
  181. *
  182. * @param \Illuminate\Http\Request $request
  183. * @param int $id
  184. * @return \Illuminate\Http\Response
  185. */
  186. public function update(MemberUpdateRequest $request, $id)
  187. {
  188. $member = Member::findOrFail($id);
  189. $data = $request->except('password');
  190. if ($request->get('password')){
  191. $data['password'] =createPasswd(trim($request->get('password')),$member['uuid']);
  192. }
  193. if ($member->update($data)){
  194. return redirect()->to(route('admin.member'))->with(['status'=>'更新用户成功']);
  195. }
  196. return redirect()->to(route('admin.member'))->withErrors('系统错误');
  197. }
  198. /**
  199. * Remove the specified resource from storage.
  200. *
  201. * @param int $id
  202. * @return \Illuminate\Http\Response
  203. */
  204. public function destroy(Request $request)
  205. {
  206. $ids = $request->get('ids');
  207. $status = $request->get('status') == 0 ? 1 : 0;
  208. if (empty($ids)){
  209. return response()->json(['code'=>1,'msg'=>'请选择更改状态项']);
  210. }
  211. if (Member::whereIn('id',$ids)->update(['is_deleted'=>$status])){
  212. return response()->json(['code'=>0,'msg'=>'更改状态成功']);
  213. }
  214. return response()->json(['code'=>1,'msg'=>'更改状态失败']);
  215. }
  216. }