123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810 |
- <?php
- namespace Modules\Manager\Http\Controllers;
- use App\Imports\ExpressImport;
- use App\Models\Express;
- use App\Models\Goodtest;
- use App\Models\Ordertest;
- use App\Models\Version;
- use App\Models\Message;
- use Carbon\Carbon;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Storage;
- use Maatwebsite\Excel\Facades\Excel;
- class VersionController extends Controller
- {
- /*
- * 下载数据
- * **/
- public function GetSendLog(){
- ini_set('memory_limit', '4096M');
- $rows=[
- "op_name"=>'操作人',
- "op_phone"=>'操作人手机号',
- "accept_name"=>'所属者昵称',
- "accept_phone"=>'所属者手机号',
- "level"=>'等级',
- "note"=>'备注',
- "created_at"=>'发货时间',
- ];
- // $a=Trace::where("i")
- $re=\DB::table('sendgood_log')
- ->join('se_code','se_code.id','=','sendgood_log.select_id')
- ->whereBetween('sendgood_log.created_at',['2021-03-16 00:00:00','2021-03-17 00:00:00'])
- // ->where('')
- ->where('sendgood_log.type',0)
- ->select('sendgood_log.*','se_code.level','se_code.is_lowest')
- ->get();
- $arr=[];
- foreach ($re as $k=>$v){
- $arr[$k]['op_name']=$v->op_name;
- $arr[$k]['op_phone']=$v->op_phone;
- $arr[$k]['accept_name']=$v->accept_name;
- $arr[$k]['accept_phone']=$v->accept_phone;
- if ($v->is_lowest==1){
- $arr[$k]['level']='小码';
- }else{
- if ($v->level==1){
- $arr[$k]['level']='大码';
- }else{
- $arr[$k]['level']='中码';
- }
- }
- $arr[$k]['note']=$v->note;
- $arr[$k]['created_at']=$v->created_at;
- // $arr[$k]['level']=
- }
- $filename=date("YmdHi").Str_random(6).'-'.'.csv';
- header('Content-Description: File Transfer');
- header('Content-Type: application/vnd.ms-excel');
- header('Content-Disposition: attachment; filename="'. $filename .'"');
- header('Expires: 0');
- header('Cache-Control: must-revalidate');
- header('Pragma: public');
- $fp = fopen('php://output', 'a');//打开output流
- mb_convert_variables('GBK', 'UTF-8', $rows);
- fputcsv($fp, $rows);
- foreach ($arr as $db){
- $data=[$db['op_name'],$db['op_phone'],$db['accept_name'],$db['accept_phone'],$db['level'],$db['note'],$db['created_at']];
- // $data=[env('APP_TRACE').$db['code'],$db['security_code'],$db['pid'],$db['sort'],$db['model'],$db['level']];
- mb_convert_variables('GBK', 'UTF-8', $data);
- fputcsv($fp, $data);
- }
- unset($dbs);
- ob_flush();
- flush();
- fclose($fp);
- exit();
- }
- public function GetCache(){
- $data=Goodtest::where('is_show',2)->get();
- foreach ($data as $k=>$v){
- dump(Cache::get('dwbs_good_num'.$v->id));
- }
- }
- //获取app版本信息列表
- public function getVersionList(Request $request){
- $input=$request->all();
- $page_size=$input['page_size'];
- $page_index=$input['page_index'];
- $num = ($page_index - 1) * $page_size;
- $type=$input['type'];
- $search_name=$input['search_name'];
- $data=Version::query();
- if($search_name){
- $data->where('version', 'like', '%' . $search_name . '%');
- }
- if($type!='all'){
- $data->where('type',$type);
- }
- $count=$data->count();
- if($count==0){
- $this->error('400001','没有数据');
- }
- $list=$data->orderBy('id', 'desc')
- ->skip($num)->take($page_size)->get();
- if(empty($list)){
- return $this->error('400002','没有获取到数据');
- }
- return $this->success_list($list,'success',$count);
- }
- //上传安装包
- // public function uploadAppVersion(Request $request){
- // $path = $request->file('file')->store('/app/versions');
- // $url = Storage::url($path);
- // if($url){
- // return $this->success($url);
- // }
- // return $this->error();
- // }
- public function uploadAppVersion(Request $request)
- {
- //上传文件
- if (!$request->hasFile('file')) {
- return $this->error('450001','请上传文件');
- }
- //设置文件后缀白名单
- $allowExt = ["apk"];
- //设置存储目录
- $tmpPath = '/storage/version/';
- Log::info($tmpPath);
- // 绝对路径
- $dirPath = public_path($tmpPath);
- Log::info($dirPath);
- //如果目标目录不能创建
- if (!is_dir($dirPath) && !mkdir($dirPath, 0777, true)) {
- return $this->error('450001','上传目录没有创建文件夹权限');
- }
- //如果目标目录没有写入权限
- if (is_dir($dirPath) && !is_writable($dirPath)) {
- return $this->error('450001','上传目录没有写入权限');
- }
- //获取文件
- $file = $request->file('file');
- //校验文件
- if (!isset($file) || !$file->isValid()) {
- return $this->error('450001','上传失败');
- }
- $ext = $file->getClientOriginalExtension(); //上传文件的后缀
- //判断是否是Excel
- if (empty($ext) || !in_array(strtolower($ext), $allowExt)) {
- return $this->error('450001','不允许的文件类型');
- }
- //生成文件名
- $fileName = uniqid(mt_rand('100','999')) . '.' . $ext;
- Log::info($fileName);
- try {
- //存储文件
- $file->move($dirPath, $fileName);
- // 获取文件路径
- $filename = $dirPath . '/' . $fileName;
- if (!is_file($filename)) {
- return $this->error('450001','未找到该文件');
- }
- $url = Storage::url('/version/' . $fileName);
- return $this->success($url);
- } catch (\Exception $ex) {
- return $this->error('450001',$ex->getMessage());
- }
- }
- //添加app版本信息
- public function uploadVersion(Request $request){
- $input=$request->all();
- if($input['type']==1){
- $ver='安卓系统';
- }else{
- $ver='IOS系统';
- }
- if(Version::where('version',$input['version'])->where('type',$input['type'])->exists()){
- return $this->error('450001',$ver.'已存在该版本号');
- }
- if(Version::where('code',$input['code'])->where('type',$input['type'])->exists()){
- return $this->error('450001',$ver.'已存在该版本code');
- }
- $data['version']=$input['version'];
- $data['status']=1;
- $data['code']=$input['code'];
- $data['type']=$input['type'];
- $data['is_force']=$input['is_force'];
- $data['url']=$input['url'];
- $data['message']=$input['message'];
- $data['md5']=md5_file($input['url']);
- $row=Version::create($data);
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加app版本成功,app版本id:'.$row->id);
- return $this->success([]);
- }
- return $this->error();
- }
- //修改app版本信息
- public function updateVersion(Request $request){
- $input=$request->all();
- if($input['type']==1){
- $ver='安卓系统';
- }else{
- $ver='IOS系统';
- }
- if(Version::where('id','!=',$input['id'])->where('version',$input['version'])->where('type',$input['type'])->exists()){
- return $this->error('450001',$ver.'已存在该版本号');
- }
- if(Version::where('id','!=',$input['id'])->where('code',$input['code'])->where('type',$input['type'])->exists()){
- return $this->error('450001',$ver.'已存在该版本code');
- }
- $data['version']=$input['version'];
- $data['url']=$input['url'];
- $data['code']=$input['code'];
- $data['type']=$input['type'];
- $data['is_force']=$input['is_force'];
- $data['message']=$input['message'];
- $data['md5']=md5_file($input['url']);
- $row=Version::where('id',$input['id'])->update($data);
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改app版本成功,app版本id:'.$input['id']);
- return $this->success([]);
- }
- return $this->error();
- }
- /* app版本上线 */
- public function setVersionTop(Request $request){
- $input=$request->all();
- $version=Version::find($input['id']);
- Version::where('status',0)->where('type',$version->type)->update(['status'=>'1']);
- $row=Version::where('id',$input['id'])->update(['status'=>'0']);
- if($version->type==1){
- $ver='安卓系统';
- }else{
- $ver='IOS系统';
- }
- if($row){
- $message['title']=$ver.'APP新版更新';
- $message['type']='1';
- $message['data']=$ver.'APP新版更新,最新版本号:'.$version->version;
- $message['status']='0';
- Message::create($message);
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')操作'.$ver.'app版本('.$version->version.')上线成功,app版本id:'.$input['id']);
- return $this->success([]);
- } else {
- return $this->error();
- }
- }
- //删除app版本信息
- public function destoryVersion(Request $request){
- $input=$request->all();
- $info=Version::find($input['id']);
- $row=$info->delete();
- if($row){
- Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')删除app版本成功,app版本id:'.$input['id']);
- return $this->success([]);
- }
- return $this->error();
- }
- public function send_orders(Request $request){
- $file = $request->file('file');
- if ( !$file->isValid()) { //判断文件是否有效
- return redirect()
- ->back()
- ->withErrors('文件上传失败,请重新上传');
- }
- $array = Excel::toArray(new ExpressImport, request()->file('file'));
- if(count($array)>10001){
- return $this->error('450001',"单次最多导入10000条数据");
- }
- $one = array_shift($array[0]);
- $express_num_keys=array_search('快递单号',$one);
- if(!$express_num_keys && !is_numeric($express_num_keys)){
- return $this->error('450001',"表头无'快递单号'字段");
- }
- $arr=array_column($array[0],$express_num_keys);
- $time=Carbon::now()->toDateTimeString();
- $time1=Carbon::now()->timestamp;
- $file = $request->file('file');
- if ( !$file->isValid()) { //判断文件是否有效
- return redirect()
- ->back()
- ->withErrors('文件上传失败,请重新上传');
- }
- // if( $file->getClientOriginalExtension() != 'xlsx' && $file->getClientOriginalExtension() != 'xls' ) {
- // return $this->error( 450001 , '上传文件类型错误,文件后缀为 xlsx 或 xls' );
- // }
- // $aa=Excel::import(new ExpressImport, request()->file('file'));
- $array = Excel::toArray(new ExpressImport, request()->file('file'));
- if(count($array)>5001){
- return $this->error('450001',"单次最多导入5000条数据");
- }
- $newArr=[];
- $one = array_shift($array[0]);
- $express_num_keys=array_search('快递单号',$one);
- if(!$express_num_keys){
- return $this->error('450001',"表头无'快递单号'字段");
- }
- $order_num_keys=array_search('订单编号',$one);
- if(!$express_num_keys){
- return $this->error('450001',"表头无'订单编号'字段");
- }
- $express_total=array_search('数据求和',$one);
- if(!$express_total){
- return $this->error('450001',"表头无'数据求和'字段");
- }
- $express_com_keys=array_search('快递公司',$one);
- if(!$express_num_keys){
- return $this->error('450001',"表头无'快递公司'字段");
- }
- $express_status_keys=array_search('发货状态',$one);
- if(!$express_status_keys){
- return $this->error('450001',"表头无'发货状态'字段");
- }
- $remark_keys=array_search('备注',$one);
- if(!$remark_keys){
- return $this->error('450001',"表头无'备注'字段");
- }
- $F_XL_SIZE=array_search('女4XL',$one);
- if(!$F_XL_SIZE){
- $l_keys=array_search('L',$one);
- $xl_keys=array_search('XL',$one);
- $xxl_keys=array_search('XXL',$one);
- $xxxl_keys=array_search('XXXL',$one);
- $vm_keys=array_search('女M',$one);
- $vl_keys=array_search('女L',$one);
- $vxl_keys=array_search('女XL',$one);
- $vxxl_keys=array_search('女XXL',$one);
- $vxxxl_keys=array_search('女XXXL',$one);
- $wxl_keys=array_search('5XL',$one);
- $keys=[$l_keys,$xl_keys,$xxl_keys,$xxxl_keys,$vm_keys,$vl_keys,$vxl_keys,$vxxl_keys,$vxxxl_keys,$wxl_keys];
- }else{
- $vxxxl_keys=array_search('4XL',$one);
- $wxl_keys=array_search('5XL',$one);
- $vxl_keys=array_search('女3XL',$one);
- $vxxl_keys=array_search('女4XL',$one);
- $keys=[$vxxxl_keys,$wxl_keys,$vxl_keys,$vxxl_keys];
- }
- $express_code=['中通快递'=>'ZTO','中通快运'=>'ZTOKY','德邦快递'=>'DBL','德邦物流'=>'DBL','邮政'=>'EMS','韵达快递'=>'YD'];
- $arres=[];
- $o=0;
- $new_arr=[];
- $z=0;
- foreach ($array[0] as $k=>$v){
- $st='';
- if ($v[$express_com_keys]!='中通快运'){
- $arres[$o]=$v;
- if ($v[$express_com_keys]=='中通快递'){
- $patterns = "/\d+/";
- preg_match_all($patterns,$v[$express_num_keys],$aa);
- foreach ($aa[0] as $kee=>$vaa){
- $st.=$vaa;
- }
- $new_arr[$z]=$st;
- }else{
- $new_arr[$z]=$v[$express_num_keys];
- }
- $z++;
- }
- }
- $res=Express::whereIn('express_number',$new_arr)->pluck('express_number')->toArray();
- if (count($res)>0){
- $ar_r=array_intersect($new_arr,$res);
- $que_express_str=implode(',',$ar_r);
- // return $this->error('450001','快递单号:'.$que_express_str.'已经上传',$ar_r);
- }
- // foreach ($array[0] as $k=>$v){
- // if ($v[$express_com_keys]!='中通快运'){
- // $new_arr[$z]=$v[$express_num_keys];
- // $z++;
- // }
- // }
- $express_nums=array_column($arres,$express_num_keys);
- $unique_express_nums=array_unique($express_nums);
- $que_express_nums=array_diff_assoc($express_nums,$unique_express_nums);
- if(count($que_express_nums)>0){
- $que_express_str=implode(',',$que_express_nums);
- return $this->error('450001','快递单号'.$que_express_str.'重复出现');
- }
- $statusArr=[];$arr=[];
- $area_list=[];
- $order_num=[];
- foreach ($array[0] as $key => $value) {
- $order_num[]=$value[0];
- $area_list[$value[0]][] = $value;
- }
- $order_num=array_values(array_unique($order_num));
- $order=Ordertest::whereIn('order_num',$order_num)->whereNotIn('status',[0,1])->pluck('order_num')->toArray();
- if (count($order_num)!=count($order)){
- $arrss=array_values(array_diff($order_num,$order));
- if ($arrss){
- return $this->error(200154,'订单编号为:'.implode(',',$arrss).'的订单状态不正确');
- }
- }
- $is=0;
- //将表格中的数据以订单号为键值生成对应的数组
- foreach ($area_list as $k=>$v){
- $arr_order[$is]['order_num']=$k;
- $arr_order[$is]['express_code']=$v[0][$express_num_keys];
- $arr_order[$is]['express_com']=$v[0][$express_com_keys];
- $is++;
- }
- DB::beginTransaction();
- try {
- foreach ($array[0] as $key => $val) {
- $statusArr[$val[$order_num_keys]][] = $val[$express_status_keys];
- $arr[$val[$order_num_keys]] = array_unique($statusArr[$val[$order_num_keys]]);
- if (count($arr[$val[$order_num_keys]]) > 1) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,订单编号:' . $val[$order_num_keys] . '发货状态不一致');
- }
- if (empty($val[$order_num_keys])) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,订单编号为空');
- }
- // $order = Ordertest::where('order_num', $val[$order_num_keys])->first();
- // if (empty($order)) {
- // return $this->error('450001', '第' . ($key + 2) . '行附近,订单编号:' . $val[$order_num_keys] . '订单信息不存在');
- // }
- // if ($order->status == 0 || $order->status == 1) {
- // return $this->error(450001, '第' . ($key + 2) . '行附近,订单编号:' . $val[$order_num_keys] . '的订单处于待订单审核或者待财务审核状态中');
- // }
- if (empty($val[$express_total])) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,数据求和为空');
- }
- if (empty($val[$express_num_keys])) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,快递单号为空');
- }
- if (empty($val[$express_com_keys])) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,快递公司为空');
- }
- if (empty($express_code[$val[$express_com_keys]])) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,快递公司名称有误');
- }
- if ($express_com_keys=='中通快运'){
- $express = Express::where('express_number', $val[$express_num_keys])->where('created_at','<',$time)->first();
- if ($express) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,快递单号:' . $val[$express_num_keys] . '物流信息已存在');
- }
- }else{
- $express = Express::where('express_number', $val[$express_num_keys])->first();
- if ($express) {
- return $this->error('450001', '第' . ($key + 2) . '行附近,快递单号:' . $val[$express_num_keys] . '物流信息已存在');
- }
- }
- }
- // return $this->success((Carbon::now()->timestamp)-$time1);
- $i=0;
- $ks=0;
- $d=[];
- foreach ($area_list as $ke=>$va){
- $time2=Carbon::now()->timestamp;
- $order=Ordertest::where('order_num',$ke)->first();
- // $number=Express::where('order_id',$order->id)->where('is_gift',0)->groupBy('number')->get()->count();
- // $count=Express::where('order_id',$order->id)->where('is_gift',0)->count();
- $total=Express::where('order_id',$order->id)->where('is_gift',0)->sum('total');
- // foreach ($va as $key=>$val){
- // $total_new=0;
- // $exp=new Express();
- // if (!empty($newArr[$i]['note'])) {
- // $exp->note = $newArr[$i]['note'] . ',';
- // } else {
- // $exp->note = '';
- // }
- // $exp->order_id = $order->id;
- // $exp->user_id = $order->user_id;
- // if ($val[$express_com_keys]=='中通快递'){
- // $patterns = "/\d+/";
- // $st='';
- // preg_match_all($patterns,$val[$express_num_keys],$aa);
- // foreach ($aa[0] as $kee=>$vaa){
- // $st.=$vaa;
- // }
- // $exp->express_number=$st;
- // }else{
- // $exp->express_number = $val[$express_num_keys];
- // }
- //
- // if ($val[$express_com_keys]=='邮政'){
- // $exp->express_com = $val[$express_com_keys].'EMS';
- // }else{
- // $exp->express_com = $val[$express_com_keys];
- // }
- //
- // $exp->express_code = $express_code[$val[$express_com_keys]];
- // $exp->remark = $val[$remark_keys];
- // $data = '';
- // $datas=[];
- // $l=0;
- //// foreach ($keys as $k => $v) {
- //// if (!empty($val[$v])) {
- //// if (empty($data)) {
- //// $data .= $one[$v] . ':' . $val[$v];
- //// } else {
- //// $data .= '+' . $one[$v] . ':' . $val[$v];
- //// }
- //// $nums=mb_strlen($val[$v]);
- //// if ($nums==2){
- //// $re=mb_strstr($val[$v],'精');
- //// if ($re){
- //// $n=mb_strlen($val[$v]);
- //// $num=mb_substr($val[$v],0,$n-1);
- //// $kuan='精装版';
- //// $ku=0;
- //// }else{
- //// $re=mb_strstr($val[$v],'简');
- //// if ($re){
- //// $n=mb_strlen($val[$v]);
- //// $num=mb_substr($val[$v],0,$n-1);
- //// $kuan='简约版';
- //// $ku=1;
- //// }else{
- //// $re=mb_strstr($val[$v],'棉');
- //// if ($re){
- //// $n=mb_strlen($val[$v]);
- //// $num=mb_substr($val[$v],0,$n-1);
- //// $kuan='棉老版';
- //// $ku=3;
- //// }else{
- //// $re=mb_strstr($val[$v],'老');
- //// if ($re){
- //// $n=mb_strlen($val[$v]);
- //// $num=mb_substr($val[$v],0,$n-1);
- //// $kuan='老人版';
- //// $ku=2;
- //// }else{
- //// return $this->error(50021,'尺码不对','');
- //// }
- //// }
- //// }
- //// }
- //// if (!$F_XL_SIZE){
- //// if ($k<=3){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$num,'kuan'=>$kuan,'ku'=>$ku];
- //// $total+=$num;
- //// $total_new+=$num;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$num,'kuna'=>$kuan,'ku'=>$ku];
- //// $total+=$num;
- //// $total_new+=$num;
- //// }
- //// }else{
- //// if ($k<=1){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$num,'kuan'=>$kuan,'ku'=>$ku];
- //// $total+=$num;
- //// $total_new+=$num;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$num,'kuna'=>$kuan,'ku'=>$ku];
- //// $total+=$num;
- //// $total_new+=$num;
- //// }
- //// }
- ////
- //// $l++;
- //// $count++;
- //// }else{
- //// if ($nums%2!=0){
- //// $re_1=mb_strstr($val[$v],'精');
- //// if ($re_1){
- //// $numss=mb_strlen($re_1);
- //// $aa=mb_substr($val[$v],$nums-$numss-2,2);
- //// if (!is_numeric($aa)){
- //// return $this->error(500024,'尺码对应的数量不对,请核对数量0',[$val[$v]]);
- //// }
- //// if (!$F_XL_SIZE){
- //// if ($k<=3){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }else{
- //// if ($k<=1){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }
- ////
- //// $l++;
- //// $count++;
- //// }
- //// }else{
- //// $re_1=mb_strstr($val[$v],'精');
- //// if ($re_1){
- //// $numss=mb_strlen($re_1);
- //// $aa=mb_substr($val[$v],$nums-$numss-1,1);
- //// if (!is_numeric($aa)){
- //// return $this->error(500024,'尺码对应的数量不对,请核对数量1');
- //// }
- //// if (!$F_XL_SIZE){
- //// if ($k<=3){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }else{
- //// if ($k<=1){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'精装版','ku'=>0];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }
- ////
- //// $l++;
- //// $count++;
- //// }
- //// }
- ////
- //// $re_2=mb_strstr($val[$v],'简');
- //// if ($re_2){
- //// $numss=mb_strlen($re_2);
- //// $aa=mb_substr($val[$v],$nums-$numss-1,1);
- //// if (!is_numeric($aa)){
- //// return $this->error(500024,'尺码对应的数量不对,请核对数量2'.$aa);
- //// }
- //// if (!$F_XL_SIZE){
- //// if ($k<=3){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'简约版','ku'=>1];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'简约版','ku'=>1];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }else{
- //// if ($k<=1){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'简约版','ku'=>1];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'简约版','ku'=>1];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }
- ////
- //// $l++;
- //// $count++;
- //// }
- //// $re_3=mb_strstr($val[$v],'老');
- //// if ($re_3){
- //// $numss=mb_strlen($re_3);
- //// $aa=mb_substr($val[$v],$nums-$numss-1,1);
- //// if (!is_numeric($aa)){
- //// return $this->error(500024,'尺码对应的数量不对,请核对数量3'.$val[$v]);
- //// }
- //// if (!$F_XL_SIZE){
- //// if ($k<=3){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'老人版','ku'=>2];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'老人版','ku'=>2];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }else{
- //// if ($k<=1){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'老人版','ku'=>2];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'老人版','ku'=>2];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }
- ////
- //// $l++;
- //// $count++;
- //// }
- //// $re_4=mb_strstr($val[$v],'棉');
- //// if ($re_4){
- //// $numss=mb_strlen($re_4);
- //// $aa=mb_substr($val[$v],$nums-$numss-1,1);
- //// if (!is_numeric($aa)){
- //// return $this->error(500024,'尺码对应的数量不对,请核对数量4');
- //// }
- //// if (!$F_XL_SIZE){
- //// if ($k<=3){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'棉老版','ku'=>3];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'棉老版','ku'=>3];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }else{
- //// if ($k<=1){
- //// $datas[$l]=['sex'=>'男款','sexs'=>1,'size'=>$one[$v],'num'=>$aa,'kuan'=>'棉老版','ku'=>3];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }else{
- //// $datas[$l]=['sex'=>'女款','sexs'=>0,'size'=>mb_substr($one[$v],1),'num'=>$aa,'kuna'=>'棉老版','ku'=>3];
- //// $total+=$aa;
- //// $total_new+=$aa;
- //// }
- //// }
- ////
- //// $l++;
- //// $count++;
- //// }
- ////
- //// if (!$re_1&&!$re_2&&!$re_3&&!$re_4){
- //// return $this->error(522201,'尺码对应的数量信息不正确'.$val[$v],[$v]);
- //// }
- //// }
- ////
- //// }
- //// }
- //
- // $exp->note .= $data;
- // $exp->notes = json_encode($datas);
- // $exp->status = 0;
- // $exp->number = $number+1;
- // $exp->count = $key+1;
- // $exp->total = $total_new;
- // if (!$exp->save()){
- // throw new \Exception(1);
- // }
- // foreach ($datas as $kes=>$vals){
- // $es=new ExpressStorage();
- // $str_count=substr_count($vals['size'],'X');
- // if ($str_count>=2){
- // $vals['size']=$str_count.'XL';
- // }
- // $es->user_id=$order->good_user_id;
- // $es->express_id=$exp->id;
- // $es->sex=$vals['sexs'];
- // $es->size=$vals['size'];
- // $es->num=$vals['num'];
- // $es->type=$vals['ku'];
- // if (!$es->save()){
- // throw new \Exception(1);
- // }
- // }
- // }
- $totals=0;
- $str='';
- foreach ($va as $k=>$v){
- foreach ($keys as $key=>$val){
- $str.=$v[$val];
- }
- }
- $patterns = "/\d+/";
- preg_match_all($patterns,$str,$aa);
- foreach ($aa[0] as $k=>$v){
- $totals+=$v;
- }
- $total+=$totals;
- if ($total==$order->total){
- $order->track_status=2;
- }elseif ($total<$order->total){
- $order->track_status=1;
- }else{
- return $this->error(52201,$ke.'数量出错了');
- }
- // $order->number+=$count;
- // $order->save();
- }
- // Log::error($newArr);
- // Express::insert($newArr);
- DB::commit();
- return $this->success([]);
- }catch(\Exception $e){
- DB::rollBack();
- Log::error($e);
- return $this->error(5001,$e->getMessage());
- }
- }
- }
|