upgradeService = $upgradeService; } /** * 升级列表 * @author lyh * @date 2019/4/9 * @modify_author lyh * @modify_time 2019-4-26 12:33:08 * @modify 确认已区分系统管理员与地区管理员权限 * @param Request $request * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response * @description * 查询:城区、申请时间、申请人(id,手机号码) * 显示字段:所在城区、代理ID、手机号、当前等级、申请等级、申请日期 */ public function index(Request $request) { $validator = \Validator::make($param = $request->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('upgrade as up') ->join('user as u', 'u.id', '=', 'up.uid') ->select([ 'up.id', 'up.uid', 'up.province', 'up.city', 'up.district', 'u.mobile', 'up.user_level', 'up.apply_level', 'up.created_at' ]) ->where('up.status', 2) ->orderByDesc('id'); // 如果是地区管理员,则不显示同等级的用户信息 if (\Auth::user()->is_super == 3) { $user->whereIn('up.uid', getIds()); }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{ // 地区查询 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)); }); } 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,5' ]); if ($validator->fails()) { return showJsonErr($validator->errors()->first()); } \DB::beginTransaction(); try { foreach ($param['ids'] as $id) { $upgrade = Upgrade::find($id); if (empty($upgrade)) { return showJsonErr("抱歉,【id:{$id}】不存在"); } if ($upgrade->status != 2) { \DB::rollBack(); return showJsonErr("抱歉,升级【id:{$id}】不是待审核状态"); } //退款操作wsl 20190628 if($param['status']==5){ if ($upgrade['order_id']) { $order=Order::where('id','=',$upgrade->order_id) ->select('order_no','pay_no','price','pay_type') ->first(); if(empty($order)||$order->order_no==$order->pay_no) return showJsonErr('当前订单数据不完整无法原路退款!'); $remark='原路退款异常';$levelarr=['A','B','C','D','E','F','G']; if($order->pay_type==2 && $upgrade->status!=5){ $pay = \App::make('aliPay'); $r=$pay->getReturnInfo($order->order_no, $order->pay_no,$order->price); if($r->code==10000){ $remark='您申请升级的等级-'.$levelarr[$upgrade->apply_level-1].'-审核不通过,资金原路退回支付宝'; } }elseif($order->pay_type==3){ //微信退款 $pay = \App::make('wechat'); $r=$pay->getReturnInfo($order->order_no, $order->pay_no,$order->price,$order->price); if($r->return_code=='SUCCESS'){ $remark='您申请升级的等级-'.$levelarr[$upgrade->apply_level-1].'-审核不通过,资金原路退回微信'; } } AccountLog::saveDataByPost($upgrade->uid,44,$order->price,User::whereId($upgrade->uid)->value('balance'),2,1,$remark); } } // 修改升级记录状态 Upgrade::whereId($id)->update(['status' => $param['status']]); $msg_content=MsgTemplate::getTemplateContent(15); $msgarr=['title'=>'升级审核通知','uid'=>$upgrade->uid,'type'=>11,'content'=>$msg_content]; if ($param['status'] == 3) { // 修改用户等级 // 判断是否可以申请区域代理 $isApply = User::getIsApply($upgrade->apply_level); //升级给点币 (代理费折合点币) User::conversionCoin($upgrade->uid,$upgrade->money,1); User::whereId($upgrade->uid)->update(['level' => $upgrade->apply_level, 'is_apply' => $isApply]); // 修改订单有效 if ($upgrade->order_id) { Order::whereId($upgrade->order_id)->update(['status' => 3]); } $msg_content=MsgTemplate::getTemplateContent(14); $msgarr=['title'=>'升级审核通知','uid'=>$upgrade->uid,'type'=>11,'content'=>$msg_content]; // 交费升级 if ($upgrade->upgrade_way == 1) { // 交费升级添加账号流水 $remark = "用户【id:{$upgrade->uid}】交费¥{$upgrade->money}申请升级[{$upgrade->apply_level}]成功"; $result = AccountLog::insert([ 'uid' => $upgrade->uid, 'type' => 7, 'money_type' => 2, 'money' => -(abs($upgrade->money)), 'current_money' => User::find($upgrade->uid)->balance, 'remark' => $remark ]); if (empty($result)) { \DB::rollBack(); return showJsonErr('添加账号流水失败'); } // zch 新增累加用户账户统计信息 $this->upgradeService->incUserAccount($upgrade->uid,'agent_all_money',$upgrade->money); // 升级代理分佣 edit by wsl //lyh写的,不用了$this->upgradeService->commission($upgrade->uid, $upgrade->money); if(!empty($upgrade->money)) Order::UserFenYong($upgrade->money,$upgrade->uid,1);//1升级 } } UserMsg::SendGetui($msgarr); } \DB::commit(); return showJsonSucc('审核成功'); } catch (\Exception $e) { \DB::rollBack(); return showJsonErr($e->getMessage()); } } }