123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705 |
- <?php
- namespace Modules\Service\Http\Controllers;
- use Modules\Service\Events\DHLogEvent;
- use App\Handlers\ImageUploadHandler;
- use App\Handlers\UploadFilesHandler;
- use Modules\Service\Jobs\ReckonDHMoneyInfoJob;
- use App\Models\DHActivityInfo;
- use App\Models\DHApply;
- use App\Models\DHGoodInfo;
- use App\Models\DHGoodTime;
- use App\Models\DHMoney;
- use App\Models\DHMoneyPct;
- use App\Models\Ordertest;
- use App\Models\SendGoodLog;
- use GuzzleHttp\Client;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\Log;
- use App\Models\Trace;
- use App\Models\User;
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- class DHApplyController extends Controller
- {
- /*
- * 退货登记单编码
- * **/
- private function DHNumber(){
- $str='DH_';
- $str=$str.random_int(11,99).time().random_int(111,999).Auth::user()->id;
- return $str;
- }
- /*
- *获取代理信息
- **/
- public function GetUser(Request $request){
- $search_name=$request->input('search_name');
- $user=User::query();
- $user=$user->withTrashed()->where('mobile','like',"%$search_name%")
- ->orwhere('nickname','like',"%$search_name%")
- ->orwhere('realname','like',"%$search_name%")->select('id','nickname','headimgurl','realname')->get();
- return $this->success($user);
- }
- /**
- 获取用户的进货关系
- **/
- public function GetInfo(Request $request){
- $id=$request->input('id');
- $user=User::where('id',$id)->with(['agent'])->withTrashed()->first();
- $jingli=[];
- $crown=[];
- if ($user->level==1){
- if ($user->agent->level==2){
- $jingli=['id'=>$user->agent->id,'mobile'=>$user->agent->mobile,'nickname'=>$user->agent->nickname,'avatar'=>$user->agent->headimgurl];
- $users=User::where('id',$user->agent->agent_id)->first();
- $crown=['id'=>$users->id,'mobile'=>$users->mobile,'nickname'=>$users->nickname,'avatar'=>$users->headimgurl];
- $data['crown']=$crown;
- $data['jingli']=$jingli;
- }else{
- $crown=['id'=>$user->agent->id,'mobile'=>$user->agent->mobile,'nickname'=>$user->agent->nickname,'avatar'=>$user->agent->headimgurl];
- $data['crown']=$crown;
- $data['jingli']=$jingli;
- }
- }elseif ($user->level==2){
- if ($user->agent->level==3){
- $crown=['id'=>$user->agent->id,'mobile'=>$user->agent->mobile,'nickname'=>$user->agent->nickname,'avatar'=>$user->agent->headimgurl];
- $data['crown']=$crown;
- $data['jingli']=$jingli;
- }
- }elseif($user->level==3){
- $data['crown']=$crown;
- $data['jingli']=$jingli;
- }
- return $this->success($data);
- }
- /**
- * 代理退货登记
- */
- public function CheckIn(Request $request){
- if (Auth::user()->id!='45' && Auth::user()->role_id ==23){
- return $this->error(500214,'该功能暂停使用');
- }
- $user_id=$request->input('user_id');
- $user_name=$request->input('user_name');
- $level=$request->input('level');
- $crown_id=$request->input('crown_id');
- $jingli_id=$request->input('jingli_id');
- $return_log=$request->input('return_log');
- $phone=$request->input('phone');
- $express_number=$request->input('express_number')??null;
- $express_arr=$request->input('express_arr');
- if ($express_number){
- $status=1;
- }else{
- $status=0;
- }
- $express_name=$request->input('express_name')??null;
- $express_code=$request->input('express_code')??null;
- $op_name=Auth::user()->name;
- $warea_id=Auth::user()->id;
- $dh_number=$this->DHNumber();
- $apply=new DHApply();
- $apply->user_id=$user_id;
- $apply->user_name=$user_name;
- $apply->level=$level;
- $apply->crown_id=$crown_id;
- $apply->jingli_id=$jingli_id;
- $apply->return_log=$return_log;
- $apply->phone=$phone;
- $apply->op_name=$op_name;
- $apply->warea_id=$warea_id;
- $apply->dh_number=$dh_number;
- $apply->express_num=$express_number;
- $apply->express_name=$express_name;
- $apply->express_code=$express_code;
- if (!is_null($express_arr)){
- $apply->express_json=json_encode($express_arr);
- }
- $apply->status=$status;
- $apply->save();
- // $data=[
- // 'log'=>'',
- // 'op_name'=>'',
- // 'dh_id'=>$apply->id,
- // 'type'=>0
- // ];
- // event(new DHLogEvent($data));
- return $this->success([]);
- }
- /*
- * 登记快递信息
- **/
- public function EditExpressInfo(Request $request){
- $express_num=$request->input('express_number');
- $express_name=$request->input('express_name');
- $express_code=$request->input('express_code');
- $express_arr=$request->input('express_arr');
- $id=$request->input('id');
- $apply=DHApply::find($id);
- $apply->express_num=$express_num;
- $apply->express_name=$express_name;
- $apply->express_code=$express_code;
- $apply->express_json=json_encode($express_arr);
- $apply->status=1;
- $apply->save();
- return $this->success([]);
- }
- /*
- *快递公司简称
- */
- public function GetExpressInfo(){
- $express_name=['顺丰速运', '百世快递', '中通快递', '申通快递', '圆通速递', '韵达速递', '邮政快递包裹', 'EMS', '京东快递', '优速快递', '德邦快递', '极兔速递', '众邮快递', '宅急送'];
- $express_code=['SF', 'HTKY', 'ZTO', 'STO', 'YTO', 'YD', 'YZPY', 'EMS', 'JD', 'UC', 'DBL', 'JTSD', 'ZYE', 'ZJS'];
- $data=[];
- foreach ($express_name as $k=>$v){
- $data[$express_code[$k]]=$v;
- }
- return $this->success($data);
- }
- /*
- *获取货物信息
- **/
- public function GetGoodInfo(Request $request){
- $id=$request->input('id');
- $good=DHGoodInfo::find($id);
- return $this->success(json_decode($good->depot_record_info));
- }
- /*
- * 用户签字
- * ***/
- public function UserSign(Request $request){
- $base64=$request->input('img');
- $id=$request->input('id');
- $status=5;
- $apply=DHApply::find($id);
- $apply->user_confirm_sign=$base64;
- $apply->status=$status;
- $apply->user_confirm_time=Carbon::now();
- $apply->user_confirm_status=0;
- $apply->save();
- $re=DHGoodInfo::where('dh_id',$id)->first();
- $re->user_record_info=$re->depot_record_info;
- $re->save();
- $data['id']=$re->id;
- ReckonDHMoneyInfoJob::dispatch($data);
- return $this->success([]);
- }
- /*
- *计算金额(当用户确认完成后,金额应该自动确认完成)
- * ****/
- /*
- * 代理公司确认金额
- * ***/
- public function SureMoney(Request $request){
- $id=$request->input('id');
- $apply=DHApply::find($id);
- $money_log=DHMoney::where('dh_id',$id)->orderBy('id')->get();
- return $this->success($money_log);
- }
- /*
- * 代理公司签字确认金额
- * ***/
- public function CrownMoneySign(Request $request){
- $base64=$request->input('img');
- $id=$request->input('id');
- $status=7;
- $apply=DHApply::find($id);
- $apply->crown_confirm_money_sign=$base64;
- $apply->status=$status;
- $apply->crown_confirm_money_time=Carbon::now();
- $apply->save();
- return $this->success([]);
- }
- /*
- * 上传退款截图
- * ***/
- public function UploadImg(Request $request){
- $img=$request->input('img');
- $id=$request->input('id');
- DHApply::where('id',$id)->update(['dh_money_img'=>$img,'status'=>8]);
- return $this->success([]);
- }
- /*
- * 代理公司查看退款截图
- * ****/
- public function CrownLookMoney(Request $request){
- $id=$request->input('id');
- $apply=DHApply::where('id',$id)->select('dh_money_img')->first();
- return $this->success($apply);
- }
- /*
- * 代理公司签字确认收到退款
- * ***/
- public function CrownLookMoneySign(Request $request){
- $base64=$request->input('img');
- $id=$request->input('id');
- $status=9;
- $apply=DHApply::find($id);
- $apply->crown_receive_money_sign=$base64;
- $apply->status=$status;
- $apply->crown_receive_money_time=Carbon::now();
- $apply->save();
- return $this->success([]);
- }
- /*
- * 代理签字确认收到钱,签字完成后,整个过程都已经完成
- * ***/
- public function UserConfirmMoneySign(Request $request){
- $base64=$request->input('img');
- $id=$request->input('id');
- $apply=DHApply::find($id);
- $apply->user_cofirm_money_sign=$base64;
- $apply->status=10;
- $apply->user_confirm_money_time=Carbon::now();
- $apply->save();
- return $this->success([]);
- }
- /*
- *登记信息列表
- * ***/
- public function GetApplyList(Request $request){
- $page_index=$request->input('page_index');
- $page_size=$request->input('page_size');
- $type=$request->input('status')??null;
- $num=($page_index-1)*$page_size;
- $query=DHApply::query();
- if (Auth::user()->id!='45' && Auth::user()->role_id ==23){
- return $this->error(500214,'该功能暂停使用');
- }
- if (is_numeric($type)){
- $query->where('status',$type);
- }
- $count=$query->count();
- $list=$query->with(['user','jingli','crown'])->orderByDesc('id')->take($page_size)->skip($num)->get();
- return $this->success_list($list,'',$count);
- }
- /*
- * 货物详情
- * ***/
- public function GoodDetail(Request $request)
- {
- $re=DHGoodInfo::where('dh_id',$request->input('id'))->first();
- if (!$re){
- return $this->error(40021,'暂无信息');
- }
- if ($re->status>4){
- $res=json_decode($re->user_record_info);
- }else{
- $res=json_decode($re->depot_record_info);
- }
- $data['good_info']=$res;
- $data['wear_info']=json_decode($re->wear_info);
- $data['nowear_info']=json_decode($re->nowear_info);
- $data['lack_soap']=$re->lack_soap;
- $data['lack_tote']=$re->lack_tote;
- // $data=[
- // [
- // 'good_name'=>'精装版',
- // 'list'=>[
- // ['time'=>'2021-01-11','sex'=>1,'size'=>'XL','num'=>2],
- // ['time'=>'2021-10-11','sex'=>0,'size'=>'XL','num'=>2],
- // ['time'=>'2021-01-11','sex'=>1,'size'=>'2XL','num'=>2],
- // ]
- // ],
- // [
- // 'good_name'=>'简约版',
- // 'list'=>[
- // ['time'=>'2021-01-11','sex'=>1,'size'=>'XL','num'=>2],
- // ['time'=>'2021-10-11','sex'=>0,'size'=>'XL','num'=>2],
- // ['time'=>'2021-01-11','sex'=>1,'size'=>'@XL','num'=>2],
- // ]
- // ]
- // ];
- return $this->success($data);
- }
- /***修改货物信息**/
- public function UpdateApplyInfo(Request $request){
- $id=$request->input('id');
- $info=$request->input('info');
- $total=$request->input('total');
- $remark=$request->input('remark');
- $input=$request->all();
- $info=json_encode($info);
- $dh=DHApply::find($id);
- $goodinfo=DHGoodInfo::where('dh_id',$dh->id)->first();
- $data['good_info']=json_decode($goodinfo->depot_record_info,true);
- $data['wear_info']=json_decode($goodinfo->wear_info);
- $data['nowear_info']=json_decode($goodinfo->nowear_info);
- $data['lack_soap']=$goodinfo->lack_soap;
- $data['lack_tote']=$goodinfo->lack_tote;
- $goodinfo->update_info=json_encode($data);
- $goodinfo->depot_record_info=$info;
- $goodinfo->total=$total;
- $goodinfo->wear_info=json_encode($input['wear']);
- $goodinfo->nowear_info=json_encode($input['not_wear']);
- $goodinfo->lack_soap=$data['lack_soap'];
- $goodinfo->lack_tote=$data['lack_tote'];
- $goodinfo->remark=Auth::user()->name.'修改了商品的信息,原因是'.$remark;
- $goodinfo->save();
- return $this->success([]);
- }
- // public function UploadMoneyImg(Request $request,ImageUploadHandler $imageUploadHandler){
- //// return $this->error(50021,'','暂停使用,开放时间另行通知');
- // if ($request->file('img')){
- // $re=$imageUploadHandler->save($request->img,'ReturnGood',Auth::user()->id);
- // if ($re){
- // return $this->success(['imgUrl'=>$re['path']]);
- // }
- // }
- // return $this->error(500236,'','上传失败');
- // }
- public function UploadMoneyImg(Request $request){
- // return $this->error(50021,'','暂停使用,开放时间另行通知');
- $file= $request->file('img');
- if($file){
- $path_url='dh_apply/return_goods';
- $upload= new UploadFilesHandler();
- $result= $upload->save($file, $path_url, Auth::user()->id, 'image');
- if($result){
- return $this->success(['imgUrl'=>$result['path']]);
- }
- }
- return $this->error(500236,'','上传失败');
- }
- public function GetStatus(Request $request){
- $id=$request->input('id');
- $re=DHApply::find($id);
- return $this->success($re);
- }
- /*
- * 获取信息
- * **/
- public function GetExpress(Request $request){
- $express=$request->input('express_number');
- $type=$request->input('type');
- if (!$type){
- // $re=DHApply::where('express_num',$express)->first();
- $re=DHApply::where('express_json','like',"%$express%")->first();
- }else{
- $re=DHApply::where('phone',$express)->limit(1)->orderByDesc('id')->first();
- }
- if ($re){
- if ($re->status>=4){
- return $this->error(500215,'当前快递信息已经登记!');
- }
- return $this->success(['id'=>$re->id]);
- }else{
- return $this->error(500215,'请还一个快递单号扫描');
- }
- }
- /*
- * 获取信息
- * ***/
- public function GetCodeInfo(Request $request){
- $code=$request->input('code');
- // $nums=stripos($code,'daweiboshi');
- $nums=stripos($code,'bid');
- if (is_numeric($nums)){
- $n=strripos($code,'bid');
- $m=strripos($code,'&');
- $id=mb_substr($code,$n+4,$m-$n-4);
- $number=mb_substr($code,$m+3);
- $client=new Client();
- $re=$client->get($code);
- $res=$re->getBody()->getContents();
- $data['name']='';
- $data['num']=1;
- $data['type']=1;
- $numbers=stripos($res,'精装版');
- if (!$numbers){
- $numbers=stripos($res,'简约版');
- if ($numbers){
- $data['name']='简约版';
- }else{
- $numbers=stripos($res,'老人版');
- if ($numbers){
- $data['name']='高腰版';
- }else{
- $numbers=stripos($res,'纯棉版');
- if ($numbers){
- $data['name']='纯棉版';
- }
- }
- }
- }else{
- $data['name']='精装版';
- }
- $client=new Client();
- $array=[
- 'form_params'=>[
- 'action'=>'customergetcustomjson',
- 'ID'=>$id,
- 'parameter1'=>$number
- ]
- ];
- $re=$client->post('http://fangwei.jiuweiyun.cn/ServiceAPI/usercenter/Manager.aspx',$array);
- $res=$re->getBody()->getContents();
- $e=json_decode($res,true);
- $array=json_decode($e['messages'],true);
- $len=count($array[0]);
- if (isset($array[0][$len-1])){
- if (isset($array[0][$len-1]['newtime'])){
- $data['time']=$array[0][$len-1]['newtime'];
- }
- }
- }else{
- // $nums=stripos($code,'auth');
- // if (!is_numeric($nums)){
- // return $this->error();
- // }
- // $n=strripos($code,'/');
- // $code=mb_substr($code,$n+1);
- $code=trim($code);
- $re=Trace::where('code',$code)->first();
- $data=[];
- if ($re){
- $data['type']=0;
- $data['goods_id']=$re->good_select_id;
- if ($re->model=='1:10'){
- if ($re->is_lowest==1){
- $data['num']=1;
- }else{
- $data['num']=10;
- }
- }elseif ($re->model=='1:12'){
- if ($re->is_lowest==1){
- $data['num']=1;
- }else{
- $data['num']=12;
- }
- }elseif ($re->model=='1:6:24'){
- if ($re->is_lowest==1){
- $data['num']=1;
- }else{
- if ($re->level==2){
- $data['num']=4;
- }else{
- $data['num']=24;
- }
- }
- }else{
- if ($re->is_lowest==1){
- $data['num']=1;
- }else{
- if ($re->level==2){
- $data['num']=6;
- }else{
- $data['num']=36;
- }
- }
- }
- $res=SendGoodLog::where('select_id',$re->id)->limit(1)->orderBy('id')->first();
- $data['time']=$res->created_at->toDateTimeString();
- $name=\DB::table('good_select')->where('id',$re->good_select_id)->value('name');
- $data['name']=$name;
- }else{
- return $this->error(500214,'请手动输入');
- }
- }
- Log::error($data);
- return $this->success($data);
- }
- /*
- * 提交信息
- * **/
- public function InsertGoodInfo(Request $request){
- $data=$request->all();
- $info=$request->input('info');
- $dh_id=$request->input('id');
- $total=$request->input('total');
- $info=json_encode($info);
- $apply=DHApply::find($dh_id);
- $apply->status=4;
- $apply->save();
- $goodinfo=new DHGoodInfo();
- $goodinfo->depot_record_info=$info;
- $goodinfo->dh_id=$dh_id;
- $goodinfo->total=$total;
- $goodinfo->crown_id=$apply->crown_id;
- $goodinfo->wear_info=json_encode($data['wear']);
- $goodinfo->nowear_info=json_encode($data['not_wear']);
- $goodinfo->lack_soap=$data['lack_soap'];
- $goodinfo->lack_tote=$data['lack_tote'];
- $goodinfo->save();
- return $this->success([]);
- }
- /*
- * 计算金额
- * ***/
- public function ReckonMoney(){
- $id='11';
- $data=DHGoodInfo::find($id);
- $data=json_decode($data->depot_record_info);
- $re=[];
- foreach ($data as $k=>$v){
- $good_name=$v->good_name;
- foreach ($v->list as $ke=>$va){
- $time=DHActivityInfo::where('time_end','<',$va->time)->orderByDesc('time_end')->limit(1)->value('time_end');
- if (is_null($time)){
- $time=$va->time;
- }
- $price=DHGoodTime::where('good_name',$good_name)
- ->where('time_start','<',$time)->where('time_end','>',$time)->where('level',3)->value('price');
- $data[$k]->list[$ke]->price=$price;
- }
- }
- dd($data);
- }
- /*
- * 修改退款明细
- * ***/
- public function UpdateReturnMoney(Request $request){
- $id=$request->input('id');
- $money=$request->input('money');
- $remark=$request->input('remark');
- $num=$request->input('num',null);
- $DHmoney=DHMoney::where('id',$id)->first();
- $DHmoney->money_log='修改了物品单价,原价格为:'.$DHmoney->money;
- $DHmoney->money=$money;
- if ($num){
- $DHmoney->good_num=$num;
- }
- $DHmoney->remark=$remark;
- $DHmoney->save();
- return $this->success([]);
- }
- /*
- * 增加退款明细
- * **/
- public function AddReturnMoney(Request $request){
- $money=$request->input('money');
- $num=$request->input('num');
- $good_name=$request->input('good_name');
- $dh_id=$request->input('dh_id');
- $dhmoney=new DHMoney();
- $dhmoney->dh_id=$dh_id;
- $dhmoney->money=$money;
- $dhmoney->type=$request->input('type');
- $dhmoney->good_num=$num;
- $dhmoney->good_name=$good_name;
- $dhmoney->is_recoup=$request->input('is_recoup');
- $dhmoney->save();
- return $this->success([]);
- }
- /**获取百度api的access_token**/
- public function GetAccessToken(){
- if (!Cache::get('BDaccesstoken')){
- $appkey='ck4R4Ek4Zw6phprGg2GvwxuZ';
- $secret='8tmI0IsPDFDAxlMmkGty70NFXGx2uA4g';
- $url='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='.$appkey.'&client_secret='.$secret;
- $client=new Client();
- $result=$client->post($url);
- $re=$result->getBody()->getContents();
- $re=json_decode($re,true);
- $minutes=30*24*60-1;
- Cache::put('BDaccesstoken',$re['access_token'],$minutes);
- }
- return Cache::get('BDaccesstoken');
- }
- // public function UploadImage(Request $request,ImageUploadHandler $imageUploadHandler){
- // if ($request->file('img')){
- // $re=$imageUploadHandler->save($request->file('img'),'QrCode',time());
- // return $this->success($re);
- // }
- // return $this->error(40012,'上传错误!');
- // }
- public function UploadImage(Request $request){
- $file= $request->file('img');
- if($file){
- $path_url='dh_apply/qr_code';
- $upload= new UploadFilesHandler();
- $result= $upload->save($file, $path_url, time(), 'image');
- if($result){
- return $this->success($result);
- }
- }
- return $this->error(40012,'上传错误!');
- }
- /**获取信息**/
- public function GetQrCode(Request $request){
- Log::error($request->all());
- $input=$request->input('arr');
- $access_token=$this->GetAccessToken();
- $data=[];
- foreach ($input as $k=>$v){
- $client=new Client();
- $array=[
- 'form_params'=>[
- 'url'=>$v,
- ],
- 'headers'=>[
- 'Content-Type'=>'application/x-www-form-urlencoded'
- ]
- ];
- $url='https://aip.baidubce.com/rest/2.0/ocr/v1/qrcode?access_token='.$access_token;
- $res=$client->post($url,$array);
- $re=json_decode($res->getBody()->getContents(),true);
- if (isset($re['codes_result'])){
- foreach ($re['codes_result'] as $ke=>$va){
- if (isset($va['text'])){
- $data[]=$va['text'][0];
- }
- }
- }
- $link=mb_substr($v,35);
- unlink(public_path($link));
- }
- return $this->success($data);
- }
- }
|