Browse Source

商品迁移

master
liangyuyan 5 years ago
parent
commit
393f8ff180
  1. 55
      app/Admin/Controllers/GoodsController.php
  2. 25
      app/Admin/Controllers/StoreController.php
  3. 17
      app/Models/Goods.php
  4. 32
      app/Models/GoodsType.php
  5. 10
      app/Models/LanzuMmInfo.php
  6. 35
      app/Models/Store.php
  7. 6
      resources/lang/zh-CN/goods.php

55
app/Admin/Controllers/GoodsController.php

@ -3,10 +3,13 @@
namespace App\Admin\Controllers;
use App\Admin\Repositories\Goods;
use App\Models\Store;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController;
use App\Models\GoodsType as GoodsTypeModel;
use App\Models\Store as StoreModel;
class GoodsController extends AdminController
{
@ -19,21 +22,29 @@ class GoodsController extends AdminController
{
return Grid::make(new Goods(), function (Grid $grid) {
$grid->id->sortable();
$grid->cover_img;
$grid->cover_img_url->image('',50);
$grid->name;
$grid->type_id;
$grid->store_id;
$grid->goods_type_id->display(function ($goodsTypeId){
$goodsType = GoodsTypeModel::getGoodsInfo($goodsTypeId,'type_name');
return empty($goodsType) ? '' : $goodsType->type_name;
});
$grid->store_id->display(function ($storeId){
$store = StoreModel::getStoreInfo($storeId,'name');
return empty($store) ? '' : $store->name;
});
$grid->price;
$grid->sort;
$grid->on_sale;
$grid->sort->sortable();
$grid->on_sale->switch();
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
// 每页10条
$grid->paginate(10);
});
}
@ -79,28 +90,36 @@ class GoodsController extends AdminController
protected function form()
{
return Form::make(new Goods(), function (Form $form) {
$form->display('id');
$form->text('name');
$form->text('type_id');
$form->text('store_id');
$form->text('cover_img');
$form->hidden('id');
// 二级分类(商品分类)
$goodsTypeList = GoodsTypeModel::getGoodsTypeArray();
// 店铺
$store = StoreModel::getStoreArray();
$form->select('goods_type_id')->options($goodsTypeList);
$form->select('store_id')->options($store);
$form->text('name')->width(4)->required()->maxLength(20);
$form->image('cover_img')->width(2)->required();
$form->text('price');
$form->text('original_price');
$form->text('vip_price');
$form->text('on_sale');
$form->text('good_unit');
$form->text('inventory');
$form->text('content');
$form->text('sort');
$form->text('restrict_num');
$form->text('start_num');
$form->text('is_infinite');
$form->text('good_unit');
$form->text('tags');
$form->text('details_imgs');
$form->text('content');
$form->text('sort');
$form->text('tags');
$form->text('spec');
$form->display('created_at');
$form->display('updated_at');
});
}
}

25
app/Admin/Controllers/StoreController.php

@ -20,30 +20,37 @@ class StoreController extends AdminController
*/
protected function grid()
{
// $m = StoreModel::find(1);
// dd($m->market_name);
return Grid::make(new Store(), function (Grid $grid) {
$grid->model()->orderBy('id','desc');
$grid->id->sortable();
$grid->logo_url->image('',50);
$grid->name;
$grid->market_name;
$grid->mm_user_id;
$grid->store_type_name;
$grid->market_id->display(function ($marketId){
$market = MarketModel::getMarketInfo($marketId,'name');
return empty($market) ? '' : $market->name;
});
$grid->mm_user_id->display(function ($mmUserId){
$mmUser = MminfoModel::getMmInfo($mmUserId,'name');
return empty($mmUser) ? '' : $mmUser->name;
});
$grid->store_type_id->display(function ($storeTypeId){
$storeType = StoreTypeModel::getStoreTypeInfo($storeTypeId,'type_name');
return empty($storeType) ? '' : $storeType->type_name;
});
$grid->sort->sortable();
$grid->is_rest->switch();
$grid->is_open->switch();
// 每页10条
$grid->paginate(10);
// 搜索
$grid->filter(function (Grid\Filter $filter) {
$filter->equal('id');
});
// 每页10条
$grid->paginate(10);
// 二维码单独生成
});
@ -115,7 +122,7 @@ class StoreController extends AdminController
$form->select('market_id')->width(4)->required()->options($marketList);
$form->select('store_type_id')->width(4)->required()->options($storeTypeList);
$form->text('name')->width(3)->required();
$form->text('name')->width(3)->required()->maxLength(50);
$form->image('logo')->width(2)->required();
$form->mobile('tel')->width(2);

17
app/Models/Goods.php

@ -15,7 +15,20 @@ class Goods extends Model
protected $dateFormat = 'U';
protected $appends = [
'cover_img_url',
'market_name',
'goods_type_name'
];
public function getCoverImgUrlAttribute($value)
{
$value = $value ? $value : $this->cover_img;
return $this->imageUrl($value);
}
// 处理图片
public function imageUrl($value)
{
if(strripos($value,"http") === false){
return env('OSS_IMG_HOST').'/'.$value;
}else{
return $value;
}
}
}

32
app/Models/GoodsType.php

@ -39,6 +39,38 @@ class GoodsType extends Model
return $this->imageUrl($value);
}
/**
* 获取单个商品信息
* @param int $id
* @param string $field
* @return string
*/
public static function getGoodsInfo($id,$field = '*')
{
return self::select($field)->find($id);
}
/**
* 获取二级分类数组
* id为键,name为值
* @return array
*/
public static function getGoodsTypeArray()
{
$list = self::select('id','type_name')
->where('status',1)
->whereNull('deleted_at')
->get();
$array = [];
if(count($list) > 0){
foreach ($list as $value) {
$array[$value->id] = $value->type_name;
}
}
return $array;
}
// 处理图片
public function imageUrl($value)
{

10
app/Models/LanzuMmInfo.php

@ -18,7 +18,7 @@ class LanzuMmInfo extends Model
}
/**
* 获取市场经理(只搜索状态正常的经理)
* 获取市场经理(只搜索状态正常的经理)
* id为键,name为值
*/
public static function getMmInfoArray()
@ -35,4 +35,12 @@ class LanzuMmInfo extends Model
}
return $array;
}
/**
* 根据id获取单条记录
*/
public static function getMmInfo($id,$field = '*')
{
return self::select($field)->find($id);
}
}

35
app/Models/Store.php

@ -18,22 +18,8 @@ class Store extends Model
protected $appends = [
'logo_url',
'market_name',
'store_type_name'
];
public function getMarketNameAttribute($value)
{
$value = $value ? $value : $this->market_id;
$market = MarketModel::getMarketInfo($value,'name');
return $market ? $market->name : '';
}
public function getStoreTypeNameAttribute($value)
{
$value = $value ? $value : $this->store_type_id;
$storeType = StoreTypeModel::getStoreTypeInfo($value,'type_name');
return $storeType ? $storeType->type_name : '';
}
public function getLogoUrlAttribute($value)
{
@ -80,6 +66,27 @@ class Store extends Model
return self::select($field)->find($id);
}
/**
* 获取店铺数组
* id为键,name为值
* @return array
*/
public static function getStoreArray()
{
$list = self::select('id','name')
->where('status',2)
->whereNull('deleted_at')
->get();
$array = [];
if(count($list) > 0){
foreach ($list as $value) {
$array[$value->id] = $value->type_name;
}
}
return $array;
}
// 处理图片
public function imageUrl($value)
{

6
resources/lang/zh-CN/goods.php

@ -1,13 +1,15 @@
<?php
<?php
return [
'labels' => [
'Goods' => 'Goods',
'Goods' => '商品管理',
'goods' => '商品管理',
],
'fields' => [
'name' => '商品名称',
'type_id' => '商品所属分类',
'store_id' => '所属商家',
'cover_img' => '封面图',
'cover_img_url' => '封面图',
'price' => '售价',
'original_price' => '原价',
'vip_price' => '会员价',

Loading…
Cancel
Save