123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608 |
- <?php
- namespace Modules\Manager\Http\Controllers;
- use App\Handlers\UploadFilesHandler;
- use App\Models\Goodattr;
- use App\Models\GoodsLog;
- use App\Models\Goodtest;
- use App\Models\User;
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Facades\Validator;
- class GoodtestController extends Controller
- {
- public function index()
- {
- $ad = '{"name":"\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5","desc":"\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5","img_url":"http:\/\/app-admin.hopa.cc\/storage\/goods\/rWui3gKdHgbTpJFlZYK9QRi6zb3RAeoKnV7W0vk2.jpeg","banner_url":["http:\/\/app-admin.hopa.cc\/storage\/goods\/xlJqsN7ViqJb2OPLFpQf2AJ0RfqpyCHmgKXKnygE.jpeg"],"content":"<p>\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5\u6d4b\u8bd5<\/p>","tagList":{"size":["S","M","L","XL","XXL","XXXL"]},"goodsSku":[{"size":"S","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"M","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"L","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"XL","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"XXL","tjPrice":"123","djPrice":"123","hgPrice":"23"},{"size":"XXXL","tjPrice":"123","djPrice":"123","hgPrice":"23"}],"hgPrice":"23","djPrice":"123","tjPrice":"123","unit":"\u5957","type":2,"total":null}';
- dump(json_decode($ad));
- $data = json_decode($ad);
- dump($data->tagList->size);
- }
- /*
- * 获取用户信息
- * */
- public function getgoodsinfo(Request $request){
- $user=User::where('mobile',$request->mobile)->first();
- if (!$user){
- return $this->error(40013,'查无此人');
- }
- if ($user->level!=3){
- return $this->error(40013,'当前用户不是代理公司');
- }
- $good=Goodtest::where('is_deleted',0)->whereIn('is_show',[2,3])->get();
- $data['good']=$good;
- $data['user']=$user;
- return $this->success($data);
- }
- /*
- * 获取商品类型
- */
- public function getGoodsAttr(){
- $list=Goodtest::groupBy('main_attr')->pluck('main_attr');
- return $this->success($list);
- }
- /*
- * 商品列表
- * */
- public function good_list(Request $request){
- $page_index=$request->page_index;
- $page_size=$request->page_size;
- $num = ($page_index - 1) * $page_size;
- // $search_name=$input['search_name'];
- $where=[];
- $where1=[];
- if ($request->status==1){
- $where=function ($query){
- $query->whereIn('is_show',[2,3]);
- };
- }elseif($request->status==-1){
- $where=[];
- }elseif($request->status==0){
- $where['is_show']=1;
- }elseif($request->status==2){
- $where['is_show']=4;
- }
- if(!empty($request->search_name)){
- $where1['main_attr']=$request->search_name;
- }
- $count=Goodtest::where($where)->where($where1)->where('is_deleted',0)->count();
- $good=Goodtest::where($where)->where($where1)->where('is_deleted',0)
- ->orderBy('is_deleted')->orderBy('sort')->orderBy('id')
- ->skip($num)->take($page_size)->get();
- $re=[];
- foreach ($good as $k=>$v){
- $re[$k]['name']=$v->name;
- $re[$k]['img_url']=$v->main_img;
- $re[$k]['type']=$v->main_attr;
- $re[$k]['hgprice']=$v->money;
- $re[$k]['is_show']=$v->is_show;
- $re[$k]['is_deleted']=$v->is_deleted==1?true:false;
- $re[$k]['created_at']=$v->created_at->toDateTimeString();
- $re[$k]['updated_at']=$v->updated_at->toDateTimeString();
- $re[$k]['start']=$v->show_time==null?'':$v->show_time;
- $re[$k]['end']=$v->off_time==null?'':$v->off_time;
- $re[$k]['num']=$v->storage;
- $re[$k]['id']=$v->id;
- $re[$k]['tag']=$v->size;
- $re[$k]['unit']=$v->unit;
- $re[$k]['content']=$v->content;
- $re[$k]['sold_num']=$v->sold_num;
- }
- return $this->success_list($re,'',$count);
- }
- /*
- * 商品属性
- * */
- public function good_attr(){
- $amin_attr=Goodattr::where('pid',0)->get();
- $re=[];
- foreach ($amin_attr as $k=>$v){
- $re[$k]['label']=$v->name;
- $re[$k]['value']=$v->id;
- $res=[];
- $ad=Goodattr::where('pid',$v->id)->get();
- foreach ($ad as $ke=>$va){
- $res[$ke]['label']=$va->name;
- $res[$ke]['value']=$va->id;
- }
- $re[$k]['children']=$res;
- }
- return $this->success_list($re,'success');
- }
- /*
- * 新增商品属性
- * */
- public function add_good_attr(Request $request){
- $rule=[
- 'pid'=>'required',
- 'name'=>'required'
- ];
- $message=[
- 'pid.required'=>'父节点ID是必填项',
- 'name.required'=>'商品属性名称是必填项'
- ];
- $vali=Validator::make($request->all(),$rule,$message);
- if ($vali->fails()){
- return $this->error(40013,$vali->errors()->first());
- }
- Log::error(json_encode($request->all()));
- DB::beginTransaction();
- try{
- $good_attr=new Goodattr();
- $good_attr->pid=$request->pid;
- $good_attr->name=$request->name;
- if (!$good_attr->save()){
- throw new \Exception('1');
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- return $this->error(40014,'添加商品属性出错');
- }
- }
- /*
- *商品详情
- */
- public function good_detail(Request $request){
- $rules=[
- 'id'=>'required'
- ];
- $message=[
- 'id.required'=>'商品ID是必填项'
- ];
- $vali=Validator::make($request->all(),$rules,$message);
- if ($vali->fails()){
- return $this->error('400013',$vali->errors()->first());
- }
- $good=Goodtest::find($request->id);
- $size=Goodtest::where('name',$good->name)->where('is_deleted',0)->select('size','storage','id')->get()->toArray();
- $sizes=array_column($size,'size');
- $storage=array_column($size,'storage');
- $id=array_column($size,'id');
- $data['name']=$good->name;
- $data['main_img']=$good->main_img;
- $data['banner_url']=json_decode($good->banner_img);
- $data['hgPrice']=$good->money;
- $data['unit']=$good->unit;
- $data['size']=$good->size;
- $data['storage']=$good->storage;
- $data['desc']=$good->summary==null?'':$good->summary;
- $data['is_show']=$good->is_show;
- $goodattr=Goodattr::find($good->attr_id);
- $data['type']=[$goodattr->pid,$good->attr_id];
- $data['content']=$good->content;
- // $data=$good;
- $data['tagList']['size']=$sizes;
- $data['tagList']['num']=$storage;
- // $data['storage_all']=$storage;
- $data['id']=$id;
- return $this->success($data);
- }
- /* 上传商品图片 */
- public function uploadGoodsImage(Request $request){
- $file= $request->file('file');
- $path_url='goods/goods';
- $upload= new UploadFilesHandler();
- $result= $upload->save($file, $path_url, null, 'image');
- if($result){
- return $this->success($result['path']);
- }
- return $this->error();
- }
- /*
- * 添加商品
- * **/
- public function add_good(Request $request){
- Log::error(json_encode($request->all()));
- $rule=[
- 'name'=>'required',
- 'desc'=>'required',
- // 'goods_num'=>'required|array',
- 'hgPrice'=>'required',
- 'img_url'=>'required',
- 'unit'=>'required',
- 'tagList'=>'required|array',
- 'is_show'=>'required',
- 'type'=>'required',
- 'banner_url'=>'array',
- ];
- $input=$request->all();
- DB::beginTransaction();
- try{
- $good_sec_attr=Goodattr::find($input['type']);
- $good_main_attr=Goodattr::find($good_sec_attr->pid);
- if ($request->is_show){
- $is_show=1;
- }else{
- $is_show=0;
- }
- foreach ($input['tagList']['size'] as $k=>$v){
- $good=new Goodtest();
- $good->name=$input['name'];
- $good->summary=$input['desc'];
- $good->size=$v;
- $good->storage=$input['tagList']['num'][$k];
- // $good->goods_num=$input['goods_num'][$k];
- $good->money=$input['hgPrice'];
- $good->main_img=$input['img_url'];
- $good->unit=$input['unit'];
- $good->is_show=$is_show;
- $good->attr_id=$input['type'];
- $good->content=$input['content'];
- $good->main_attr=$good_main_attr->name;
- $good->sec_attr=$good_sec_attr->name;
- $good->banner_img=json_encode($input['banner_url']);
- // $good->save();
- if (!$good->save()){
- throw new \Exception('1');
- }
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- return $this->error(40013,'商品添加失败');
- }
- }
- /*
- * 商品上下架
- * */
- public function shelvedGoods(Request $request){
- $rules=[
- 'id'=>'requreid',
- ];
- $message=[
- 'id.reuqired'=>'商品id是必填项',
- ];
- $vali=Validator::make($rules,$message);
- if ($vali->fails()){
- return $this->error('400013',$vali->errors()->first());
- }
- DB::beginTransaction();
- try{
- $good=Goodtest::find($request->id);
- if ($request->has('start')){
- $now=Carbon::now()->timestamp;
- if ($now<$request->start){
- $good->is_show=1;
- $good->show_time=date('Y-m-d H:i:s',$request->start);
- $good->off_time=date('Y-m-d H:i:s',$request->end);
- }elseif ($now>$request->end){
- $good->is_show=4;
- }elseif ($now>$request->start&&$request->end>$now){
- $good->is_show=3;
- $good->show_time=date('Y-m-d H:i:s',$request->start);
- $good->off_time=date('Y-m-d H:i:s',$request->end);
- }
- }else{
- if ($good->is_show==0||$good->is_show==1||$good->is_show==4){
- $good->is_show=2;
- $good->show_time=null;
- $good->off_time=null;
- }elseif($good->is_show==2||$good->is_show==3){
- $good->is_show=4;
- $good->show_time=null;
- $good->off_time=null;
- }
- }
- if(!$good->save()){
- throw new \Exception('1');
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- return $this->error(40013,'操作失败');
- }
- // return $this->success([]);
- }
- /*
- * 批量上下架
- * */
- public function goods_up(Request $request){
- $status=$request->action;
- if ($status==0){
- $is_show=4;
- }else{
- $is_show=2;
- }
- foreach ($request->list as $k=>$v){
- $good=Goodtest::find($v);
- $good->is_show=$is_show;
- $good->show_time=null;
- $good->off_time=null;
- $good->save();
- }
- return $this->success([]);
- }
- /*
- * 商品
- * */
- public function destoryGoods(Request $request){
- $rules=[
- 'id'=>'requreid',
- ];
- $message=[
- 'id.reuqired'=>'商品id是必填项',
- ];
- $vali=Validator::make($rules,$message);
- if ($vali->fails()){
- return $this->error('400013',$vali->errors()->first());
- }
- DB::beginTransaction();
- try{
- $good=Goodtest::find($request->id);
- if ($good->is_show!=4){
- return $this->error(40013,'该商品不是下架商品,不能删除!!');
- }
- $good->is_deleted=1;
- if(!$good->save()){
- throw new \Exception('1');
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- return $this->error(40013,'操作失败');
- }
- // return $this->success([]);
- }
- /*
- * 修改商品
- * */
- public function update_good(Request $request){
- $input=$request->all();
- DB::beginTransaction();
- try{
- Log::error('{----数据-------}'.json_encode($request->all()));
- foreach ($input['tagList']['size'] as $k=>$v){
- $good=Goodtest::where('size',$v)->whereIn('id',$input['id'])->where('is_deleted',0)->first();
- if ($good->storage!=$input['tagList']['num'][$k]){
- $goodlog=new GoodsLog();
- $goodlog->name=Auth::user()->name;
- $goodlog->text=Auth::user()->name.'修改了商品'.$good->naame.'尺码'.$good->size.'的库存数量,数量为'.$input['tagList']['num'][$k].',原库存数量为'.$good->storage;
- if (!$goodlog->save()){
- throw new \Exception('1');
- }
- }
- $good->storage=$input['tagList']['num'][$k];
- $good->main_img=$request->img_url;
- $good->money=$request->hgPrice;
- $good->summary=$request->desc;
- $good->unit=$request->unit;
- $good->content=$input['content'];
- $good->banner_img=json_encode($input['banner_url']);
- $good->name=$request->name;
- if (!$good->save()){
- throw new \Exception('1');
- }
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- Log::error('商品修改失败'.$exception);
- return $this->error(40013,'商品修改失败');
- }
- }
- /*
- * 增加尺寸
- * */
- public function add_size(Request $request){
- DB::beginTransaction();
- try{
- $re=Goodtest::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->count();
- if ($re){
- return $this->error(40013,'当前尺寸已存在');
- }
- $goods=Goodtest::where('attr_id',$request->attr_id)->where('is_deleted',0)->first();
- $good=new Goodtest();
- $good->name=$goods->name;
- $good->summary=$goods->summary;
- $good->main_attr=$goods->main_attr;
- $good->sec_attr=$goods->sec_attr;
- $good->money=$goods->money;
- $good->storage=100;
- $good->main_img=$goods->main_img;
- $good->banner_img=$goods->banner_img;
- $good->unit=$goods->unit;
- $good->size=$request->size;
- $good->attr_id=$request->attr_id;
- if (!$good->save()){
- throw new \Exception('1');
- }
- $goodlog=new GoodsLog();
- $goodlog->name=Auth::user()->name;
- $goodlog->text=Auth::user()->name.'添加了商品'.$good->name.'的'.$request->size.'尺码,数量为100';
- if (!$goodlog->save()){
- throw new \Exception('1');
- }
- DB::commit();
- return $this->success(['id'=>$good->id]);
- }catch (\Exception $exception){
- DB::rollBack();
- return $this->error(40013,'添加尺寸失败');
- }
- }
- /*
- * 删除尺寸
- * */
- public function destory_size(Request $request){
- DB::beginTransaction();
- try{
- $re=Goodtest::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->count();
- if (!$re){
- return $this->error(40013,'当前尺寸不存在');
- }
- $good=Goodtest::where('attr_id',$request->attr_id)->where('size',$request->size)->where('is_deleted',0)->first();
- $good->is_deleted=1;
- if (!$good->save()){
- throw new \Exception('1');
- }
- $goodlog=new GoodsLog();
- $goodlog->name=Auth::user()->name;
- $goodlog->text=Auth::user()->name.'删除了商品'.$good->name.'的'.$request->size.'尺码';
- if (!$goodlog->save()){
- throw new \Exception('1');
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- return $this->error(40013,'删除商品失败');
- }
- }
- /*
- * 清除定时
- * */
- public function destory_time(Request $request){
- DB::beginTransaction();
- try{
- $good=Goodtest::find($request->id);
- if ($good->is_show==1||$good->is_show==0){
- $good->show_time=null;
- $good->off_time=null;
- $good->is_show=0;
- }elseif ($good->is_show==3){
- $good->show_time=null;
- $good->off_time=null;
- $good->is_show=2;
- }
- if (!$good->save()){
- throw new \Exception('1');
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- return $this->error(40013,'清除定时时间失败');
- }
- }
- /*
- * 批量定时上下架
- * */
- public function good_timing(Request $request){
- DB::beginTransaction();
- try{
- foreach ($request->id as $k=>$v){
- $good=Goodtest::find($v);
- if ($request->has('start')){
- $now=Carbon::now()->timestamp;
- if ($now<$request->start){
- $good->is_show=1;
- $good->show_time=date('Y-m-d H:i:s',$request->start);
- $good->off_time=date('Y-m-d H:i:s',$request->end);
- }elseif ($now>$request->end){
- $good->is_show=4;
- }elseif ($now>$request->start&&$request->end>$now){
- $good->is_show=3;
- $good->show_time=date('Y-m-d H:i:s',$request->start);
- $good->off_time=date('Y-m-d H:i:s',$request->end);
- }
- }else{
- if ($good->is_show==1||$good->is_show==0){
- $good->show_time=null;
- $good->off_time=null;
- $good->is_show=0;
- }elseif ($good->is_show==3){
- $good->show_time=null;
- $good->off_time=null;
- $good->is_show=2;
- }
- }
- if(!$good->save()){
- throw new \Exception('1');
- }
- }
- DB::commit();
- return $this->success([]);
- }catch (\Exception $exception){
- DB::rollBack();
- Log::error('批量定时上架失败-------------------错误信息为:'.$exception);
- return $this->error(40013,'操作失败');
- }
- }
- public function get_good_attr(){
- $data=Goodtest::where('is_deleted',0)->orderBy('sort')->orderBy('id')->groupBy('attr_id')->get();
- // foreach ($data as $k=>$v){
- // $re[$k]['attr_id']=$v->attr_id;
- // $re[$k]['goods_name']=$v->goods_name;
- // $re[$k]['main_img']=$v->main_img;
- // }
- return $this->success_list($data);
- }
- /*
- * 排序
- * */
- public function good_sort(Request $request){
- Log::error(json_encode($request->all()));
- foreach ($request->attr_id as $k=>$v){
- Log::error('1='.$k);
- $re=Goodtest::where('attr_id',$v)->where('is_deleted',0)->update(['sort'=>$k]);
- Log::error($re);
- Log::error('2='.$k);
- }
- Log::error('jiesu');
- return $this->success([]);
- }
- public function GetStorageGood(){
- $re=Goodtest::where('is_deleted',0)->whereIn('is_show',[2,3])->where('storage','<=',1000)->get();
- return $this->success($re);
- }
- }
|