| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324 |
- <?php
- namespace App\Http\Controllers\Admins;
- require_once (base_path().'/public/phpexcel/PHPExcel.php');
- require_once (base_path().'/public/phpexcel/PHPExcel/Writer/Excel2007.php');
- use App\Modes\AccountLog;
- use App\Modes\MsgTemplate;
- use App\Modes\User;
- use App\Modes\UserMsg;
- use App\Modes\UserWithdraw;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- class UserWithdrawController extends Controller
- {
- /**
- * 提现列表
- * @author lyh
- * @date 2019/4/10
- * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
- * @description
- * 显示字段:申请人ID、手机号、提现金额(元)、银行卡号、申请时间、审核状态
- * 查询条件:申请时间、申请人(手机号、id)
- */
- public function index(Request $request)
- {
- $validator = \Validator::make($param = $request->all(), [
- 'word' => 'integer',
- 'startTime' => 'date',
- 'endTime' => 'date',
- ]);
- if ($validator->fails()) {
- return showJsonErr($validator->errors()->first());
- }
- if (Admin()->is_frontend == 1) {
- return showJsonErr('抱歉,您没有权限查看该列表');
- }
- // \DB::enableQueryLog();
- $user = \DB::table('user_withdraw as up')
- ->join('user as u', 'u.id', '=', 'up.uid')
- ->leftJoin('user_bank as b','up.bank_number','=','b.bank_number')
- ->select([
- 'up.id',
- 'up.uid',
- 'u.mobile',
- 'up.money',
- 'up.bank_name',
- 'up.bank_number',
- 'up.status',
- 'up.created_at',
- 'b.username'
- ])
- ->orderByDesc('up.id');
- // 如果是地区管理员,则不显示同等级的用户信息
- if (\Auth::user()->is_super == 3) {
- $user->whereIn('u.id', getIds());
- }
- // 时间查询
- 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['endTime']);
- }
- //状态查询
- if(isset($param['status'])&&is_numeric($param['status'])){
- $user->where('up.status','=',$param['status']);
- }
- // 关键词查询
- if (!empty($param['word'])) {
- $user->where(function ($q)use ($param){
- $q->where('up.uid','=',$param['word'])
- ->orWhere('u.mobile','like','%'.$param['word'].'%');
- });
- //$user->where(\DB::raw("concat(up.uid,u.mobile)"), 'like', "%{$param['word']}%");
- }
- $user->groupBy('up.id');
- //echo $user->toSql();exit;
- $res = $user->paginate(perPage());
- if ($res->isNotEmpty()) {
- collect($res->items())->each(function ($item, $key) {
- });
- }
- // dd(\DB::connection()->getQueryLog(), $param);
- return showJsonSucc(1001, $res);
- }
- /**
- * 审核提现
- * @author lyh
- * @date 2019/4/10
- * @param Request $request
- * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response
- * @throws \Exception
- * @description
- */
- public function audit(Request $request)
- {
- $validator = \Validator::make($param = $request->all(), [
- 'ids' => 'required|array',
- 'status' => 'required|integer|in:1,2',
- //'audit_remark' => 'required_if:status,2'
- ]);
- if ($validator->fails()) {
- return showJsonErr($validator->errors()->first());
- }
- if($param['status']==2 && empty($param['audit_remark'])){
- return showJsonErr('请输入不通过原因');
- }
- if (Admin()->is_frontend == 1) {
- return showJsonErr('抱歉,您没有权限操作');
- }
- \DB::beginTransaction();
- try {
- foreach ($param['ids'] as $id) {
- $userWithdraw = UserWithdraw::find($id);
- if (empty($userWithdraw)) {
- return showJsonErr("抱歉,【id:{$id}】不存在");
- }
- if ($userWithdraw->status != 0) {
- \DB::rollBack();
- return showJsonErr("抱歉,提现记录【id:{$id}】不是待审核状态");
- }
- // 修改提现状态
- $modifyData = ['status' => $param['status']];
- if (!empty($param['audit_remark'])) {
- $modifyData['audit_remark'] = $param['audit_remark'];
- }
- UserWithdraw::whereId($id)->update($modifyData);
- $msg_content=MsgTemplate::getTemplateContent(12);
- $msgarr=['title'=>'提现审核通知','uid'=>$userWithdraw->uid,'type'=>2,'content'=>$msg_content];
- //退款 edit by wsl
- if ($param['status'] == 2) {
- User::whereId($userWithdraw->uid)->increment('balance', $userWithdraw->money);
- $msg_content=MsgTemplate::getTemplateContent(13);
- $msgarr=['title'=>'提现审核通知','uid'=>$userWithdraw->uid,'type'=>2,'content'=>$msg_content];
- // 提现添加流水记录
- $remark = "管理员拒绝提现申请,提现金额¥{$userWithdraw->money}已返回余额";
- $result = AccountLog::insert([
- 'uid' => $userWithdraw->uid,
- 'type' => 1,
- 'money_type' => 2,
- 'money' => (abs($userWithdraw->money)),
- 'current_money' => User::find($userWithdraw->uid)->balance,
- 'remark' => $remark
- ]);
- if (empty($result)) {
- \DB::rollBack();
- return showJsonErr('添加账号流水失败');
- }
- }
- UserMsg::SendGetui($msgarr);
- }
- \DB::commit();
- return showJsonSucc('审核成功');
- } catch (\Exception $e) {
- \DB::rollBack();
- return showJsonErr($e->getMessage());
- }
- }
- /**
- * 获取用户提现记录
- * @author lyh
- * @date 2019/4/9
- * @modify_author lyh
- * @modify_time 2019-4-26 12:22:47
- * @modify 确认已区分系统管理员与地区管理员权限
- * @param Request $request
- * @description
- */
- public function getListByUid(Request $request)
- {
- $validator = \Validator::make($param = $request->all(), [
- 'id' => 'required|exists:user,id'
- ]);
- if ($validator->fails()) {
- return showJsonErr($validator->errors()->first());
- }
- // 区分系统管理员与地区管理员数据
- if (\Auth::user()->is_super == 3 && !in_array(Admin()->id, getIds())) {
- return showJsonErr('抱歉,您没有权限查看该用户信息');
- }
- $uw = UserWithdraw::whereUid($param['id'])->select(['money', 'created_at'])->orderBy('created_at','desc');
- $result=$uw->paginate(perPage());
- return showJsonSucc(1001, $result);
- }
- /*
- * 导出提现记录 wsl
- * 20190725
- *
- * */
- public function outputToExcel(Request $request){
- $param=$request->all();
- if (Admin()->is_frontend == 1) {
- return showJsonErr('抱歉,您没有权限导出该列表');
- }
- // \DB::enableQueryLog();
- $user = \DB::table('user_withdraw as up')
- ->join('user as u', 'u.id', '=', 'up.uid')
- ->leftjoin('user_bank as b','up.bank_number','=','b.bank_number')
- ->select([
- 'up.id',
- 'up.uid',
- 'u.mobile',
- 'up.money',
- 'up.bank_name',
- 'up.bank_number',
- 'up.status',
- 'up.created_at',
- 'b.username'
- ])
- ->orderByDesc('up.id');
- // 如果是地区管理员,则不显示同等级的用户信息
- if (\Auth::user()->is_super == 3) {
- $user->whereIn('u.id', getIds());
- }
- // 时间查询
- if(!empty($param['startTime'])){
- $user->where('up.created_at','>',$param['startTime']);
- }
- if(!empty($param['endTime'])){
- $user->where('up.created_at','<',$param['endTime']);
- }
- //状态查询
- if(isset($param['status'])&&is_numeric($param['status'])){
- $user->where('up.status','=',$param['status']);
- }
- // 关键词查询
- if (!empty($param['word'])) {
- $user->where(function ($q)use ($param){
- $q->where('up.uid','=',$param['word'])
- ->orWhere('u.mobile','like','%'.$param['word'].'%');
- });
- //$user->where(\DB::raw("concat(up.uid,u.mobile)"), 'like', "%{$param['word']}%");
- }
- $user->groupBy('up.id');
- $list=$user->get();
- //$filename=\Auth::user()->mobile.'提现记录';
- $filename=\Auth::user()->mobile.'提现记录';
- $phpexcel=new \PHPExcel();
- $phpexcel->getProperties()
- ->setTitle($filename);
- $lines=[
- 'A'=>['title'=>'申请人ID','width'=>10],
- 'B'=>['title'=>'手机号','width'=>20],
- 'C'=>['title'=>'提现金额','width'=>15],
- 'D'=>['title'=>'收款人姓名','width'=>20],
- 'E'=>['title'=>'收款人账号','width'=>30],
- 'F'=>['title'=>'开户银行名称','width'=>30],
- 'G'=>['title'=>'申请日期','width'=>20],
- 'H'=>['title'=>'审核状态','width'=>10],
- ];
- $objtitle=$phpexcel->setActiveSheetIndex(0);
- foreach($lines as $k=>$v){
- $phpexcel->getActiveSheet()->getColumnDimension($k)->setWidth($v['width']);
- $objtitle->setCellValue($k.'1',$v['title']);
- }
- //填入数据
- $i=0;
- foreach($list as $key=>$item){
- $statusstr='';
- switch($item->status){
- case 0:$statusstr='待审核';break;
- case 1:$statusstr='审核通过';break;
- case 2:$statusstr='拒绝';break;
- }
- $itemvalues=[
- 'A'=>$item->uid,
- 'B'=>$item->mobile,
- 'C'=>$item->money,
- 'D'=>$item->username,
- 'E'=>$item->bank_number."\t",
- 'F'=>$item->bank_name,
- 'G'=>$item->created_at,
- 'H'=>$statusstr
- ];
- foreach($lines as $kk=>$vv){
- $phpexcel->getActiveSheet(0)->setCellValue($kk.($i+2),$itemvalues[$kk]);
- }
- $i++;
- }
- $phpexcel->setActiveSheetIndex(0);
- header('Content-Type: application/vnd.ms-excel');
- header('Content-Disposition: attachment;filename="' . @date('Y-m-d H:i:s') . '提现记录.xls"');
- header('Cache-Control: max-age=0');
- $objWriter = \PHPExcel_IOFactory::createWriter($phpexcel, 'Excel2007');
- $objWriter->save('php://output');
- /*
- $obj=\PHPExcel_IOFactory::createWriter($phpexcel,'Excel2007');
- $savepath=base_path().'/excel/'.$filename.'.xlsx';
- $obj->save($savepath);
- $r=file_exists($savepath);
- if($r){
- return showJsonSucc('导出文件成功',['url'=>$savepath]);
- }else{
- return showJsonErr('导出文件失败');
- }*/
- }
- }
|