all(), [ 'province' => 'exists:area,id', 'city' => 'exists:area,id', 'district' => 'exists:area,id', 'work' => 'integer', 'startTime' => 'date', 'endTime' => 'date', ]); if ($validator->fails()) { return showJsonErr($validator->errors()->first()); } // 如果当前管理员是地区管理员 if (Admin()->is_super == 3) { if (Admin()->level == 7 && $param['district'] != Admin()->district) { return showJsonErr('抱歉,您不能查看该地区的信息'); } if (Admin()->level == 8 && $param['city'] != Admin()->city) { return showJsonErr('抱歉,您不能查看该城市的信息'); } } $user = \DB::table('proxy_area as up') ->join('user as u', 'u.id', '=', 'up.uid') ->select([ 'up.id', 'up.province', 'up.city', 'up.district', 'u.mobile', 'up.uid', 'up.created_at' ]) ->where('up.status', 2) ->orderByDesc('id'); // 如果是地区管理员,则不显示同等级的用户信息 if (\Auth::user()->is_super == 3) { $user->where('up.user_level', '<', \Auth::user()->level); }else{ //管理员查看对应的代理 $district=AdminArea::getAdminArea(); if(!empty($district)){ if(!empty($district['city'])){ $user->whereCity($district['city']); if (!empty($param['district'])) { $user->where('up.district', $param['district']); } }else{ $user->where('up.district', $district['district']); } }else{ // 地区查询 //$user = whereAreaByParam($user, $param); if (!empty($param['province'])) { $user->where('up.province','=',$param['province']); } if (!empty($param['city'])) { $user->where('up.city','=',$param['city']); } if (!empty($param['district'])) { $user->where('up.district','=',$param['district']); } } } // 时间查询 if (!empty($param['startTime']) && !empty($param['endTime'])) { $user->whereBetween('up.created_at', [$param['startTime'], $param['endTime']]); } else if (!empty($param['endTime']) && empty($param['startTime'])) { $user->where('up.created_at', '<', $param['endTime']); } else if (empty($param['endTime']) && !empty($param['startTime'])) { $user->where('up.created_at', '>', $param['startTime']); } // 关键词查询 if (!empty($param['word'])) { $user->where(\DB::raw("concat(uid,mobile)"), 'like', "%{$param['word']}%"); } $res = $user->paginate(perPage()); if ($res->isNotEmpty()) { collect($res->items())->each(function ($item, $key) { $item->area = trim(Area::getName($item->province) . ' ' . Area::getName($item->city) . ' ' . Area::getName($item->district)); $user = User::find($item->uid); $item->currentArea = Area::getName($user->province) . ' ' . Area::getName($user->city) . ' ' . Area::getName($user->district); }); } return showJsonSucc(1001, $res); } /** * 城区代理审核 * @author lyh * @date 2019/4/9 * @param Request $request * @description */ public function audit(Request $request) { $validator = \Validator::make($param = $request->all(), [ 'ids' => 'required|array', 'status' => 'required|integer|in:3,4' ]); if ($validator->fails()) { return showJsonErr($validator->errors()->first()); } \DB::beginTransaction(); try { foreach ($param['ids'] as $id) { $proxyArea = ProxyArea::find($id); if (empty($proxyArea)) { return showJsonErr("抱歉,【id:{$id}】不存在"); } if ($proxyArea->status != 2) { \DB::rollBack(); return showJsonErr("抱歉,【id:{$id}】不是待审核状态"); } $p=Area::whereId($proxyArea->province)->value('name'); $c=Area::whereId($proxyArea->city)->value('name'); $d=Area::whereId($proxyArea->district)->value('name'); //退款操作wsl 20190628 if($param['status']==4 && !empty($proxyArea->order_id) && $proxyArea->order_id>0){ $order=Order::where('id','=',$proxyArea->order_id) ->select('order_no','pay_no','price','pay_type') ->first(); if(empty($order))return showJsonErr('当前订单数据不完整无法原路退款!'); if($order->pay_type==2 && $proxyArea->status!=4){ $pay = \App::make('aliPay'); $r=$pay->getReturnInfo($order->order_no, $order->pay_no,$order->price); if($r->code==10000){ $remark='您申请的-'.$p.$c.$d.'-代理审核不通过,资金原路退回支付宝'; } }elseif($order->pay_type==3 && $proxyArea->status!=4){ //微信退款 $pay = \App::make('wechat'); $r=$pay->getReturnInfo($order->order_no, $order->pay_no,$order->price,$order->price); if($r->return_code=='SUCCESS'){ $remark='您申请的-'.$p.$c.$d.'-代理审核不通过,资金原路退回微信'; } } AccountLog::saveDataByPost($proxyArea->uid,44,$order->price,User::whereId($proxyArea->uid)->value('balance'),2,1,$remark); } // 修改地区状态 $result = ProxyArea::whereId($id)->update(['status' => $param['status']]); if (empty($result)) { \DB::rollBack(); return showJsonErr('审核失败'); } $msg_content=MsgTemplate::getTemplateContent(10); $msgarr=['title'=>'区域代理审核通知','uid'=>$proxyArea->uid,'type'=>10,'content'=>$msg_content]; if ($param['status'] == 3) { \DB::enableQueryLog(); // 修改用户代理地区 $result = User::whereId($proxyArea->uid)->update([ // 'province' => $proxyArea->province, // 'city' => $proxyArea->city, // 'district' => $proxyArea->district, 'is_apply' => 0 ]); $msg_content=MsgTemplate::getTemplateContent(9); $msgarr=['title'=>'区域代理审核通知','uid'=>$proxyArea->uid,'type'=>10,'content'=>$msg_content]; //分佣 if($proxyArea->order_id != 0){ $order=Order::whereId($proxyArea->order_id)->first(); $payprice=$order->price; //代理费折合点币 User::conversionCoin($proxyArea->uid,$order['price'],4); if(!empty($order['price'])){ $order=$order->toArray(); Order::UserFenYong($order['price'],$order['uid'],$order['type']); } }else{ $payprice = 0; } $remark = "用户【id:{$proxyArea->uid}】交费¥{$payprice}申请【".$c.$d."】的区域代理成功"; AccountLog::insert([ 'uid' => $proxyArea->uid, 'type' => 8,//升级区域代理 'money_type' => 2, 'money' => -(abs($payprice)), 'current_money' => User::find($proxyArea->uid)->balance, 'remark' => $remark ]); // zch 新增累加用户账户统计信息 UpgradeService::incUserAccount($proxyArea->uid,'agent_all_money',abs($payprice)); if ($result != 1) { \DB::rollBack(); return showJsonErr($id . '-修改地区信息失败'); } } UserMsg::SendGetui($msgarr); } \DB::commit(); return showJsonSucc('审核成功'); } catch (\Exception $e) { \DB::rollBack(); return showJsonErr($e->getMessage()); } } }