- =
- $this->render('_form', [
- 'model' => $model,
- ])
+ ['class' => 'container-fluid']]);
+
+ echo TabsX::widget([
+ 'bordered' => true,
+ 'items' => [
+ [
+ 'label' => '
基本信息',
+ 'content' => $this->render('goods', ['model' => $model,
+ 'form' => $form
+ ]),
+ ],
+ [
+ 'label' => '
商品规格',
+ 'content' => $this->render('attribute', [
+ 'model' => [],
+ 'attrValue' => [],
+ ]),
+ ],
+ [
+ 'label' => '
图片上传',
+ 'content' => $this->render('picture', [
+ 'model' => $model,
+ 'form' => $form
+ ]),
+ ],
+ ],
+ 'position' => TabsX::POS_ABOVE,
+ 'encodeLabels' => false
+ ]);
+ ?>
+
+
+ = Html::submitButton('保存', ['class' => 'btn btn-success']) ?>
+ = Html::a('返回', ['index'], ['class' => 'btn btn-info']) ?>
+
+
+
+
+ render('_form', [
+// 'model' => $model,
+// ])
?>
diff --git a/vendor/antgoods/goods/src/views/goods/goods.php b/vendor/antgoods/goods/src/views/goods/goods.php
new file mode 100644
index 0000000..db125c1
--- /dev/null
+++ b/vendor/antgoods/goods/src/views/goods/goods.php
@@ -0,0 +1,62 @@
+
+= $form->field($model, 'cat_id')->dropDownList(Category::modelColumn(), ['prompt' => '请选择']) ?>
+
+= $form->field($model, 'brand_id')->dropDownList(Brand::modelColumn(), ['prompt' => '请选择']) ?>
+
+= $form->field($model, 'shop_cat_id')->dropDownList(ShopCategory::modelColumn(), ['prompt' => '请选择']) ?>
+
+= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
+
+= $form->field($model, 'sn')->textInput(['maxlength' => true]) ?>
+
+= $form->field($model, 'code')->textInput(['maxlength' => true]) ?>
+
+= $form->field($model, 'supplier_id')->dropDownList(Supplier::modelColumn(), ['prompt' => '请选择']) ?>
+
+= $form->field($model, 'weight')->textInput() ?>
+
+= $form->field($model, 'length')->textInput() ?>
+
+= $form->field($model, 'width')->textInput() ?>
+
+= $form->field($model, 'height')->textInput() ?>
+
+= $form->field($model, 'diameter')->textInput() ?>
+
+= $form->field($model, 'unit')->textInput(['maxlength' => true]) ?>
+
+= $form->field($model, 'limit_count')->textInput() ?>
+
+= $form->field($model, 'stock')->textInput() ?>
+
+= $form->field($model, 'stock_warn')->textInput() ?>
+
+= $form->field($model, 'market_price')->textInput() ?>
+
+= $form->field($model, 'price')->textInput() ?>
+
+= $form->field($model, 'brief')->textInput(['maxlength' => true]) ?>
+
+= $form->field($model, 'description')->textarea(['rows' => 6]) ?>
+
+= $form->field($model, 'model_id')->textInput() ?>
+
+= $form->field($model, 'is_sale')->radioList($model::$isSale) ?>
+
+= $form->field($model, 'sort_order')->textInput() ?>
+
+= $form->field($model, 'bouns_points')->textInput() ?>
+
+= $form->field($model, 'experience_points')->textInput() ?>
+
+= $form->field($model, 'express_template')->textInput() ?>
diff --git a/vendor/antgoods/goods/src/views/goods/picture.php b/vendor/antgoods/goods/src/views/goods/picture.php
index d176fc5..54c11b5 100644
--- a/vendor/antgoods/goods/src/views/goods/picture.php
+++ b/vendor/antgoods/goods/src/views/goods/picture.php
@@ -1,11 +1,5 @@
registerJsFile($jsfile);
+ }
+}
From af3c8f9717d4cd8415014a6c5c346274ea597924 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Wed, 27 Nov 2019 16:59:28 +0800
Subject: [PATCH 04/55] =?UTF-8?q?=E5=A2=9E=E5=8A=A0antgoods=E6=A8=A1?=
=?UTF-8?q?=E5=9D=97=E5=88=AB=E5=90=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/config/main.php | 3 ++-
vendor/antgoods/goods/src/assets/custom/sku.html | 1 -
2 files changed, 2 insertions(+), 2 deletions(-)
delete mode 100755 vendor/antgoods/goods/src/assets/custom/sku.html
diff --git a/common/config/main.php b/common/config/main.php
index 7fb3b7e..924ee91 100644
--- a/common/config/main.php
+++ b/common/config/main.php
@@ -6,7 +6,8 @@ return [
'@npm' => '@vendor/npm-asset',
'@blobt' => '@vendor/blobt',
'@iron' => '@vendor/iron',
- '@linyao' => '@vendor/linyao'
+ '@linyao' => '@vendor/linyao',
+ '@antgoods' => '@vendor/antgoods',
],
'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
'timeZone' => 'Asia/Shanghai',
diff --git a/vendor/antgoods/goods/src/assets/custom/sku.html b/vendor/antgoods/goods/src/assets/custom/sku.html
deleted file mode 100755
index 7c84fc7..0000000
--- a/vendor/antgoods/goods/src/assets/custom/sku.html
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
From ef9606aaedb5ffb13adebe6724b31504bb6f993a Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Wed, 27 Nov 2019 17:07:55 +0800
Subject: [PATCH 05/55] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=95=86=E5=93=81?=
=?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=92=8C=E4=BF=AE=E6=94=B9=E7=9A=84tabx?=
=?UTF-8?q?=E6=94=B9=E9=80=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../antgoods/goods/src/views/goods/goods.php | 1 +
.../goods/src/views/goods/picture.php | 2 +
.../antgoods/goods/src/views/goods/update.php | 55 +++++++++++++++++--
3 files changed, 54 insertions(+), 4 deletions(-)
diff --git a/vendor/antgoods/goods/src/views/goods/goods.php b/vendor/antgoods/goods/src/views/goods/goods.php
index db125c1..aacfb8e 100644
--- a/vendor/antgoods/goods/src/views/goods/goods.php
+++ b/vendor/antgoods/goods/src/views/goods/goods.php
@@ -4,6 +4,7 @@ use antgoods\goods\models\ars\Category;
use antgoods\goods\models\ars\Brand;
use antgoods\goods\models\ars\ShopCategory;
use antgoods\goods\models\ars\Supplier;
+use linyao\widgets\Select2;
/* @var $this yii\web\View */
/* @var $model antgoods\goods\models\ars\Goods */
diff --git a/vendor/antgoods/goods/src/views/goods/picture.php b/vendor/antgoods/goods/src/views/goods/picture.php
index 54c11b5..e5d581b 100644
--- a/vendor/antgoods/goods/src/views/goods/picture.php
+++ b/vendor/antgoods/goods/src/views/goods/picture.php
@@ -15,6 +15,7 @@ use yii\helpers\Url;
'maxCount' => 1,
'fillInAttribute' => 'coverImageId',
'model' => $model,
+ 'ruleVerify' => $model->ruleVerify,
'previewConfig' => [
'url' => Url::to(['image-file', 'fileidstr' => $model->coverImageId]),
],
@@ -29,6 +30,7 @@ use yii\helpers\Url;
'maxCount' => 5,
'fillInAttribute' => 'detailImageId',
'model' => $model,
+ 'ruleVerify' => $model->ruleVerify,
'previewConfig' => [
'url' => Url::to(['image-file', 'fileidstr' => $model->detailImageId]),
],
diff --git a/vendor/antgoods/goods/src/views/goods/update.php b/vendor/antgoods/goods/src/views/goods/update.php
index c4a3cf1..0cf482f 100644
--- a/vendor/antgoods/goods/src/views/goods/update.php
+++ b/vendor/antgoods/goods/src/views/goods/update.php
@@ -1,6 +1,8 @@
title = '编辑商品: ' . $model->name;
$this->params['breadcrumbs'][] = ['label' => '商品管理', 'url' => ['index']];
$this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]];
$this->params['breadcrumbs'][] = '编辑 ';
+Yii::$app->params['bsVersion'] = '4.x';
?>
+
+
+ render('_form', [
+// 'model' => $model,
+// ])
+ ?>
From 79406345b41e88aeb1afb4d12ed4d8b8e00a2a93 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Wed, 27 Nov 2019 17:10:16 +0800
Subject: [PATCH 06/55] =?UTF-8?q?=E5=BC=80=E5=8F=91=E5=88=9B=E5=BB=BA?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=95=86=E5=93=81=E5=B1=9E=E6=80=A7=E6=93=8D?=
=?UTF-8?q?=E4=BD=9C=E6=96=B9=E6=B3=95=EF=BC=8C=E5=BC=80=E5=8F=91=E5=88=A0?=
=?UTF-8?q?=E9=99=A4=E5=95=86=E5=93=81=E5=B1=9E=E6=80=A7=E6=96=B9=E6=B3=95?=
=?UTF-8?q?=EF=BC=8C=E5=BC=80=E5=8F=91=E4=BF=9D=E5=AD=98=E5=95=86=E5=93=81?=
=?UTF-8?q?=E5=B1=9E=E6=80=A7=EF=BC=8C=E5=BC=80=E5=8F=91=E8=8E=B7=E5=8F=96?=
=?UTF-8?q?=E5=B1=9E=E6=80=A7=E4=BF=A1=E6=81=AF=EF=BC=8C=E5=BC=80=E5=8F=91?=
=?UTF-8?q?=E8=8E=B7=E5=8F=96sku=E4=BF=A1=E6=81=AF=E6=96=B9=E6=B3=95?=
=?UTF-8?q?=EF=BC=8C=E5=AE=8C=E6=88=90=E5=95=86=E5=93=81=E5=88=9B=E5=BB=BA?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B9=E6=B3=95=E7=9A=84=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=E6=95=B4=E5=90=88=EF=BC=8C=E5=AE=8C=E6=88=90=E5=BC=80=E5=8F=91?=
=?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=95=86=E5=93=81=E5=B1=9E=E6=80=A7=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../goods/src/controllers/GoodsController.php | 52 ++---
.../goods/src/logic/goods/GoodsManager.php | 195 +++++++++++++++++-
.../antgoods/goods/src/models/ars/Goods.php | 1 +
.../goods/src/models/ars/GoodsAttr.php | 3 +
.../goods/src/models/ars/GoodsSku.php | 3 +
5 files changed, 221 insertions(+), 33 deletions(-)
diff --git a/vendor/antgoods/goods/src/controllers/GoodsController.php b/vendor/antgoods/goods/src/controllers/GoodsController.php
index f405a98..7e1dad7 100644
--- a/vendor/antgoods/goods/src/controllers/GoodsController.php
+++ b/vendor/antgoods/goods/src/controllers/GoodsController.php
@@ -81,24 +81,16 @@ class GoodsController extends Controller
public function actionCreate()
{
$model = new Goods();
-
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
-
//商品封面图和商品详情图上传保存处理
- $cover_image_id_str = $model->coverImageId;
- $detail_image_id_str = $model->detailImageId;
- $model->save();
$goods_manager = new GoodsManager();
- $save_cover_image_res = $goods_manager->saveFile(explode(',', $cover_image_id_str), $model);
- $save_detail_image_res = $goods_manager->saveFile(explode(',', $detail_image_id_str), $model, [], File::OWN_TYPE_GOODS_DETAILS);
- if($save_cover_image_res['status'] && $save_detail_image_res['status']){
- $model->image = $save_cover_image_res['first_file_id'];
- $model->save();
+ $res = $goods_manager->updateGoods(Yii::$app->request->post(), $model);
+ if ($res['status']) {
+ return $this->redirect('index');
}
-
- return $this->redirect('index');
+ } else {
+ $model->ruleVerify = 1;
}
-
return $this->render('create', [
'model' => $model,
]);
@@ -116,30 +108,23 @@ class GoodsController extends Controller
$model = $this->findModel($id);
$model->coverImageId = $model->image;
$model->detailImageId = implode(',', File::find()->select('id')->where(['is_delete' => File::IS_DELETE_NO, 'own_id' => $model->id, 'own_type' => File::OWN_TYPE_GOODS_DETAILS])->column());
-
+ $goods_manager = new GoodsManager();
//记录已保存的商品图片id,用于修改
- $cover_image_old_id_arr = $model->image;
- $detail_image_old_id_arr = $model->detailImageId;
-
+ $cover_image_old_id_str = $model->image;
+ $detail_image_old_id_str = $model->detailImageId;
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
-
//商品封面图和商品详情图上传保存处理
- $cover_image_id_str = $model->coverImageId;
- $detail_image_id_str = $model->detailImageId;
- $model->save();
- $goods_manager = new GoodsManager();
- $save_cover_image_res = $goods_manager->saveFile(explode(',', $cover_image_id_str), $model, explode(',', $cover_image_old_id_arr));
- $save_detail_image_res = $goods_manager->saveFile(explode(',', $detail_image_id_str), $model, explode(',', $detail_image_old_id_arr), File::OWN_TYPE_GOODS_DETAILS);
- if($save_cover_image_res['status'] && $save_detail_image_res['status'] && $save_cover_image_res['first_file_id'] !== 0){
- $model->image = $save_cover_image_res['first_file_id'];
- $model->save();
+ $res = $goods_manager->updateGoods(Yii::$app->request->post(), $model, $cover_image_old_id_str, $detail_image_old_id_str);
+ if ($res['status']) {
+ return $this->redirect('index');
}
-
- return $this->redirect('index');
}
-
+ $attributeModel = $goods_manager->getAttribute($id);
+ $checkAttr = $goods_manager->getSkuInfo($id);
return $this->render('update', [
'model' => $model,
+ 'attributeModel' => $attributeModel,
+ 'attrValue' => $checkAttr,
]);
}
@@ -264,9 +249,14 @@ class GoodsController extends Controller
return false;
}
+ $rule_verify = Yii::$app->request->get('ruleverify');
$file_id_str = Yii::$app->request->get('fileidstr');
$file_id_arr = explode(',', $file_id_str);
- $data = \common\models\ars\File::find()->where(['id' => $file_id_arr])->all();
+ if ($rule_verify == 1) {
+ $data = \common\models\ars\TemFile::find()->where(['id' => $file_id_arr])->all();
+ } else {
+ $data = \common\models\ars\File::find()->where(['id' => $file_id_arr])->all();
+ }
$res = array();
if($data) {
$i = 0;
diff --git a/vendor/antgoods/goods/src/logic/goods/GoodsManager.php b/vendor/antgoods/goods/src/logic/goods/GoodsManager.php
index 45055f4..93fafb2 100644
--- a/vendor/antgoods/goods/src/logic/goods/GoodsManager.php
+++ b/vendor/antgoods/goods/src/logic/goods/GoodsManager.php
@@ -1,8 +1,12 @@
true, 'info' => '操作成功', 'first_file_id' => $firstFileId];
}
+
+ /**
+ * @param $data
+ * @param $model
+ * @param null $coverImageOldIdStr
+ * @param null $detailImageOldIdStr
+ * @return array
+ * @throws \Throwable
+ * 创建修改商品操作
+ */
+ public function updateGoods($data, $model, $coverImageOldIdStr = null, $detailImageOldIdStr = null)
+ {
+ $attribute = $data['attribute'];
+ $tra = Yii::$app->db->beginTransaction();
+ try {
+ if (!$model->save()) {
+ throw new Exception('');
+ }
+ $saveCoverImageRes = $this->saveFile(explode(',', $model->coverImageId), $model, explode(',', $coverImageOldIdStr));
+ $saveDetailImageRes = $this->saveFile(explode(',', $model->detailImageId), $model, explode(',', $detailImageOldIdStr), File::OWN_TYPE_GOODS_DETAILS);
+ if ($saveCoverImageRes['status'] && $saveDetailImageRes['status']) {
+ if($saveCoverImageRes['first_file_id'] !== 0) {
+ $model->image = $saveCoverImageRes['first_file_id'];
+ if (!$model->save()) {
+ throw new Exception('图片保存失败');
+ }
+ }
+ } else {
+ throw new Exception('图片保存失败');
+ }
+ $this->addAttributeOperating(['id' => $model->id, 'attribute' => $attribute]);
+ $tra->commit();
+ return ['status' => true];
+ } catch (\yii\base\Exception $e) {
+ $tra->rollBack();
+ return ['status' => false, 'info' => $e->getMessage()];
+ }
+ }
+
+ /**
+ * @param $data
+ * @return bool
+ * @throws Exception
+ * 创建修改商品属性操作
+ */
+ public function addAttributeOperating($data)
+ {
+ if (!$data['attribute']) {
+ return true;
+ }
+ $data['attribute'] = json_decode($data['attribute'], true);
+ $oldAttr = [];
+ $goodsAttr = GoodsAttr::find()->where(['goods_id' => $data['id'], 'is_delete' => GoodsAttr::IS_DELETE_NO])->all();
+ if ($goodsAttr) { //如果商品有旧的属性
+ if(count($data['attribute']) == 0 && is_array($data['attribute'])) { //如果传上来的是空数组,删除该商品下的全部属性
+ $this->delAttribute($goodsAttr);
+ return true;
+ }
+ foreach ($goodsAttr as $key => $value) { //把旧的商品属性保存到一个数组
+ $oldAttr[$value->id] = $value->attr_value;
+ }
+ }
+ $newAttr = $this->addAttribute($data['attribute'], $data['id']); //添加新的商品属性
+ $delAttr = array_diff(array_keys($oldAttr), array_keys($newAttr)); //找出需要删除的goodsAttrId
+ if (!$delAttr) {
+ return true;
+ }
+ foreach ($delAttr as $value) {
+ $model = GoodsAttr::find()->where(['id' => $value, 'is_delete' => GoodsAttr::IS_DELETE_NO])->One();
+ if ($model) {
+ $model->is_delete = GoodsAttr::IS_DELETE_YES;
+ if (!$model->save()) {
+ throw new Exception('goodsAttribute delete false');
+ }
+ }
+ }
+ }
+
+ /**
+ * @param $goodsAttr
+ * @throws Exception
+ * 删除商品属性
+ */
+ public function delAttribute($goodsAttr)
+ {
+ foreach ($goodsAttr as $key => $value) {
+ $value->is_delete = GoodsAttr::IS_DELETE_YES;
+ if (!$value->save()) {
+ throw new Exception('goods attribute delete false');
+ }
+ }
+ }
+
+ /**
+ * @param $attribute
+ * @param $goodsId
+ * @return array
+ * @throws Exception
+ * 保存商品属性
+ */
+ public function addAttribute($attribute, $goodsId)
+ {
+ $newAttr = [];
+ if (!$attribute) {
+ return [];
+ }
+ foreach ($attribute as $value) {
+ foreach ($value['value'] as $k => $v) {
+ $goodsAttrModel = new GoodsAttr();
+ $goodsAttrModel->attr_id = $value['id'];
+ $attr = GoodsAttr::find()->where(['goods_id' => $goodsId, 'attr_id' => $value['id'], 'attr_value' => $v, 'is_delete' => GoodsAttr::IS_DELETE_NO])->one();
+ if ($attr) {
+ $newAttr[$attr->id] = $attr->attr_value; //原有的数据
+ } else {
+ $goodsAttrModel->goods_id = $goodsId;
+ $goodsAttrModel->attr_value = $v;
+ if (!$goodsAttrModel->save()) {
+ throw new Exception('goodsAttribute save false');
+ }
+ $newAttr[$goodsAttrModel->id] = $goodsAttrModel->attr_value; //新增的数据
+ }
+ }
+ }
+ return $newAttr;
+ }
+
+ /**
+ * @param $id
+ * @return Attribute|array|null
+ * 获取属性信息
+ */
+ public function getAttribute($id)
+ {
+ $goodsAttributes = GoodsAttr::find()->where(['goods_id' => $id, 'is_delete' => GoodsAttr::IS_DELETE_NO])->andWhere(['!=', 'attr_id', 0])->all();
+ $filter = [];
+ $goodsAttributeModel = [];
+ if (!$goodsAttributes) {
+ return $goodsAttributeModel;
+ }
+ foreach ($goodsAttributes as $key => $value) {
+ $attribute = Attribute::findOne($value->attr_id);
+ if (!in_array($attribute->name, $filter)) {
+ $filter[] = $attribute->name;
+ $attribute = ['name' => $attribute->name, 'id' => $attribute->id, 'value' => [$value->attr_value]];
+ $goodsAttributeModel[] = $attribute;
+ } else {
+ foreach ($goodsAttributeModel as $k => $v) {
+ if ($v['name'] == $attribute->name) {
+ $goodsAttributeModel[$k]['value'][] = $value->attr_value;
+ }
+ }
+ }
+ }
+ return $goodsAttributeModel;
+ }
+
+ /**
+ * @param $id
+ * @return array
+ * 获取sku信息
+ */
+ public function getSkuInfo($id)
+ {
+ $skus = GoodsSku::find()->where(['goods_id' => $id, 'is_delete' => GoodsSku::IS_DELETE_NO])->all();
+ $attrId = [];
+ foreach ($skus as $sku) {
+ $attrId = array_merge(explode(',', $sku->goods_attr), $attrId);
+ }
+ $attrs = GoodsAttr::find()->where(['id' => $attrId, 'is_delete' => GoodsAttr::IS_DELETE_NO])->andWhere(['!=', 'attr_id', 0])->all();
+ $checkAttr = [];
+ $filterAttr = [];
+ foreach ($attrs as $value) {
+ $attr = Attribute::findOne(['id' => $value->attr_id, 'is_delete' => Attribute::IS_DELETE_NO]);
+ if (!in_array($attr->name, $filterAttr)) {
+ $filterAttr[] = $attr->name;
+ $newAttr = ['id' => $attr->id, 'name' => $attr->name, 'value' => [$value->attr_value]];
+ $checkAttr[] = $newAttr;
+ } else {
+ foreach ($checkAttr as $key => $item) {
+ if ($item['name'] == $attr->name) { //如果attr_id与$filter的attr_id相符,入栈
+ $checkAttr[$key]['value'][] = $value->attr_value;
+ }
+ }
+ }
+ }
+ return $checkAttr;
+ }
}
\ No newline at end of file
diff --git a/vendor/antgoods/goods/src/models/ars/Goods.php b/vendor/antgoods/goods/src/models/ars/Goods.php
index d446283..0c90f4c 100644
--- a/vendor/antgoods/goods/src/models/ars/Goods.php
+++ b/vendor/antgoods/goods/src/models/ars/Goods.php
@@ -60,6 +60,7 @@ class Goods extends \yii\db\ActiveRecord
self::IS_SALE_NO => '否',
self::IS_SALE_YES => '是'
];
+ public $ruleVerify = 0;//规则验证是否通过
/**
* {@inheritdoc}
*/
diff --git a/vendor/antgoods/goods/src/models/ars/GoodsAttr.php b/vendor/antgoods/goods/src/models/ars/GoodsAttr.php
index b888e46..3573764 100644
--- a/vendor/antgoods/goods/src/models/ars/GoodsAttr.php
+++ b/vendor/antgoods/goods/src/models/ars/GoodsAttr.php
@@ -18,6 +18,9 @@ use yii\behaviors\TimestampBehavior;
*/
class GoodsAttr extends \yii\db\ActiveRecord
{
+ //是否删除is_delete
+ const IS_DELETE_NO = 0;//未删除
+ const IS_DELETE_YES = 1;//已删除
/**
* {@inheritdoc}
*/
diff --git a/vendor/antgoods/goods/src/models/ars/GoodsSku.php b/vendor/antgoods/goods/src/models/ars/GoodsSku.php
index 7e4644a..7690b0e 100644
--- a/vendor/antgoods/goods/src/models/ars/GoodsSku.php
+++ b/vendor/antgoods/goods/src/models/ars/GoodsSku.php
@@ -31,6 +31,9 @@ use yii\behaviors\TimestampBehavior;
*/
class GoodsSku extends \yii\db\ActiveRecord
{
+ //是否删除is_delete
+ const IS_DELETE_NO = 0;//未删除
+ const IS_DELETE_YES = 1;//已删除
/**
* {@inheritdoc}
*/
From 610f834825bd448d83f109f907e345da7000f0b5 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 16:52:46 +0800
Subject: [PATCH 07/55] =?UTF-8?q?=E5=B0=86=E9=80=BB=E8=BE=91=E6=96=B9?=
=?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9=E9=9D=99=E6=80=81=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../antgoods/goods/src/controllers/CategoryController.php | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/vendor/antgoods/goods/src/controllers/CategoryController.php b/vendor/antgoods/goods/src/controllers/CategoryController.php
index 10ff1b8..c19e1c2 100644
--- a/vendor/antgoods/goods/src/controllers/CategoryController.php
+++ b/vendor/antgoods/goods/src/controllers/CategoryController.php
@@ -85,8 +85,7 @@ class CategoryController extends Controller
//类目图片上传保存处理
$icon_image_id_str = $model->iconImageId;
$model->save();
- $goods_manager = new GoodsManager();
- $save_icon_image_res = $goods_manager->saveFile(explode(',', $icon_image_id_str), $model, [], File::OWN_TYPE_CATEGORY_ICON);
+ $save_icon_image_res = GoodsManager::saveFile(explode(',', $icon_image_id_str), $model, [], File::OWN_TYPE_CATEGORY_ICON);
if($save_icon_image_res['status']){
$model->icon = $save_icon_image_res['first_file_id'];
$model->save();
@@ -119,8 +118,7 @@ class CategoryController extends Controller
//类目图片上传保存处理
$icon_image_id_str = $model->iconImageId;
$model->save();
- $goods_manager = new GoodsManager();
- $save_icon_image_res = $goods_manager->saveFile(explode(',', $icon_image_id_str), $model, explode(',', $icon_image_old_id_arr), File::OWN_TYPE_CATEGORY_ICON);
+ $save_icon_image_res = GoodsManager::saveFile(explode(',', $icon_image_id_str), $model, explode(',', $icon_image_old_id_arr), File::OWN_TYPE_CATEGORY_ICON);
if($save_icon_image_res['status'] && $save_icon_image_res['first_file_id'] !== 0){
$model->icon = $save_icon_image_res['first_file_id'];
$model->save();
From e28296daf53207a1a13e6a246d3c50b02cb586db Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 16:53:07 +0800
Subject: [PATCH 08/55] =?UTF-8?q?=E5=B0=86=E9=80=BB=E8=BE=91=E6=96=B9?=
=?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9=E9=9D=99=E6=80=81=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../goods/src/controllers/GoodsController.php | 11 +++++------
.../goods/src/controllers/ShopCategoryController.php | 6 ++----
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/vendor/antgoods/goods/src/controllers/GoodsController.php b/vendor/antgoods/goods/src/controllers/GoodsController.php
index 7e1dad7..6ee5924 100644
--- a/vendor/antgoods/goods/src/controllers/GoodsController.php
+++ b/vendor/antgoods/goods/src/controllers/GoodsController.php
@@ -2,6 +2,7 @@
namespace antgoods\goods\controllers;
+use antgoods\goods\models\ars\GoodsSku;
use common\models\ars\TemFile;
use MongoDB\Driver\Manager;
use Yii;
@@ -83,8 +84,7 @@ class GoodsController extends Controller
$model = new Goods();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
//商品封面图和商品详情图上传保存处理
- $goods_manager = new GoodsManager();
- $res = $goods_manager->updateGoods(Yii::$app->request->post(), $model);
+ $res = GoodsManager::updateGoods(Yii::$app->request->post(), $model);
if ($res['status']) {
return $this->redirect('index');
}
@@ -108,19 +108,18 @@ class GoodsController extends Controller
$model = $this->findModel($id);
$model->coverImageId = $model->image;
$model->detailImageId = implode(',', File::find()->select('id')->where(['is_delete' => File::IS_DELETE_NO, 'own_id' => $model->id, 'own_type' => File::OWN_TYPE_GOODS_DETAILS])->column());
- $goods_manager = new GoodsManager();
//记录已保存的商品图片id,用于修改
$cover_image_old_id_str = $model->image;
$detail_image_old_id_str = $model->detailImageId;
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
//商品封面图和商品详情图上传保存处理
- $res = $goods_manager->updateGoods(Yii::$app->request->post(), $model, $cover_image_old_id_str, $detail_image_old_id_str);
+ $res = GoodsManager::updateGoods(Yii::$app->request->post(), $model, $cover_image_old_id_str, $detail_image_old_id_str);
if ($res['status']) {
return $this->redirect('index');
}
}
- $attributeModel = $goods_manager->getAttribute($id);
- $checkAttr = $goods_manager->getSkuInfo($id);
+ $attributeModel = GoodsManager::getAttribute($id);
+ $checkAttr = GoodsManager::getSkuInfo($id);
return $this->render('update', [
'model' => $model,
'attributeModel' => $attributeModel,
diff --git a/vendor/antgoods/goods/src/controllers/ShopCategoryController.php b/vendor/antgoods/goods/src/controllers/ShopCategoryController.php
index 20a71c1..2699cf9 100644
--- a/vendor/antgoods/goods/src/controllers/ShopCategoryController.php
+++ b/vendor/antgoods/goods/src/controllers/ShopCategoryController.php
@@ -90,8 +90,7 @@ class ShopCategoryController extends Controller
//类目图片上传保存处理
$icon_image_id_str = $model->iconImageId;
$model->save();
- $goods_manager = new GoodsManager();
- $save_icon_image_res = $goods_manager->saveFile(explode(',', $icon_image_id_str), $model, [], File::OWN_TYPE_CATEGORY_ICON);
+ $save_icon_image_res = GoodsManager::saveFile(explode(',', $icon_image_id_str), $model, [], File::OWN_TYPE_CATEGORY_ICON);
if($save_icon_image_res['status']){
$model->icon = $save_icon_image_res['first_file_id'];
$model->save();
@@ -131,8 +130,7 @@ class ShopCategoryController extends Controller
//类目图片上传保存处理
$icon_image_id_str = $model->iconImageId;
$model->save();
- $goods_manager = new GoodsManager();
- $save_icon_image_res = $goods_manager->saveFile(explode(',', $icon_image_id_str), $model, explode(',', $icon_image_old_id_arr), File::OWN_TYPE_CATEGORY_ICON);
+ $save_icon_image_res = GoodsManager::saveFile(explode(',', $icon_image_id_str), $model, explode(',', $icon_image_old_id_arr), File::OWN_TYPE_CATEGORY_ICON);
if($save_icon_image_res['status'] && $save_icon_image_res['first_file_id'] !== 0){
$model->icon = $save_icon_image_res['first_file_id'];
$model->save();
From 1b86300b92bd1bff10a4c148e05a1b3a903ff430 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 16:53:37 +0800
Subject: [PATCH 09/55] =?UTF-8?q?=E5=B0=86=E9=80=BB=E8=BE=91=E5=B7=A5?=
=?UTF-8?q?=E5=85=B7=E7=B1=BB=E6=96=B9=E6=B3=95=E4=BF=AE=E6=94=B9=E5=A7=94?=
=?UTF-8?q?=E9=9D=99=E6=80=81=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../goods/src/logic/goods/GoodsManager.php | 24 +++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/vendor/antgoods/goods/src/logic/goods/GoodsManager.php b/vendor/antgoods/goods/src/logic/goods/GoodsManager.php
index 93fafb2..eeefebd 100644
--- a/vendor/antgoods/goods/src/logic/goods/GoodsManager.php
+++ b/vendor/antgoods/goods/src/logic/goods/GoodsManager.php
@@ -18,7 +18,7 @@ class GoodsManager
* @return array
* 保存新文件,删除不需要的文件操作
*/
- public function saveFile($newFileIdArr, $goodsModel, $oldFileIdArr = [], $fileType = 1)
+ public static function saveFile($newFileIdArr, $goodsModel, $oldFileIdArr = [], $fileType = 1)
{
//判断类名是否存在
if(!class_exists('\backend\logic\file\FileManager') || !class_exists('\common\models\ars\File')) {
@@ -62,7 +62,7 @@ class GoodsManager
* @throws \Throwable
* 创建修改商品操作
*/
- public function updateGoods($data, $model, $coverImageOldIdStr = null, $detailImageOldIdStr = null)
+ public static function updateGoods($data, $model, $coverImageOldIdStr = null, $detailImageOldIdStr = null)
{
$attribute = $data['attribute'];
$tra = Yii::$app->db->beginTransaction();
@@ -70,8 +70,8 @@ class GoodsManager
if (!$model->save()) {
throw new Exception('');
}
- $saveCoverImageRes = $this->saveFile(explode(',', $model->coverImageId), $model, explode(',', $coverImageOldIdStr));
- $saveDetailImageRes = $this->saveFile(explode(',', $model->detailImageId), $model, explode(',', $detailImageOldIdStr), File::OWN_TYPE_GOODS_DETAILS);
+ $saveCoverImageRes = self::saveFile(explode(',', $model->coverImageId), $model, explode(',', $coverImageOldIdStr));
+ $saveDetailImageRes = self::saveFile(explode(',', $model->detailImageId), $model, explode(',', $detailImageOldIdStr), File::OWN_TYPE_GOODS_DETAILS);
if ($saveCoverImageRes['status'] && $saveDetailImageRes['status']) {
if($saveCoverImageRes['first_file_id'] !== 0) {
$model->image = $saveCoverImageRes['first_file_id'];
@@ -82,7 +82,7 @@ class GoodsManager
} else {
throw new Exception('图片保存失败');
}
- $this->addAttributeOperating(['id' => $model->id, 'attribute' => $attribute]);
+ self::addAttributeOperating(['id' => $model->id, 'attribute' => $attribute]);
$tra->commit();
return ['status' => true];
} catch (\yii\base\Exception $e) {
@@ -97,7 +97,7 @@ class GoodsManager
* @throws Exception
* 创建修改商品属性操作
*/
- public function addAttributeOperating($data)
+ public static function addAttributeOperating($data)
{
if (!$data['attribute']) {
return true;
@@ -107,14 +107,14 @@ class GoodsManager
$goodsAttr = GoodsAttr::find()->where(['goods_id' => $data['id'], 'is_delete' => GoodsAttr::IS_DELETE_NO])->all();
if ($goodsAttr) { //如果商品有旧的属性
if(count($data['attribute']) == 0 && is_array($data['attribute'])) { //如果传上来的是空数组,删除该商品下的全部属性
- $this->delAttribute($goodsAttr);
+ self::delAttribute($goodsAttr);
return true;
}
foreach ($goodsAttr as $key => $value) { //把旧的商品属性保存到一个数组
$oldAttr[$value->id] = $value->attr_value;
}
}
- $newAttr = $this->addAttribute($data['attribute'], $data['id']); //添加新的商品属性
+ $newAttr = self::addAttribute($data['attribute'], $data['id']); //添加新的商品属性
$delAttr = array_diff(array_keys($oldAttr), array_keys($newAttr)); //找出需要删除的goodsAttrId
if (!$delAttr) {
return true;
@@ -135,7 +135,7 @@ class GoodsManager
* @throws Exception
* 删除商品属性
*/
- public function delAttribute($goodsAttr)
+ public static function delAttribute($goodsAttr)
{
foreach ($goodsAttr as $key => $value) {
$value->is_delete = GoodsAttr::IS_DELETE_YES;
@@ -152,7 +152,7 @@ class GoodsManager
* @throws Exception
* 保存商品属性
*/
- public function addAttribute($attribute, $goodsId)
+ public static function addAttribute($attribute, $goodsId)
{
$newAttr = [];
if (!$attribute) {
@@ -183,7 +183,7 @@ class GoodsManager
* @return Attribute|array|null
* 获取属性信息
*/
- public function getAttribute($id)
+ public static function getAttribute($id)
{
$goodsAttributes = GoodsAttr::find()->where(['goods_id' => $id, 'is_delete' => GoodsAttr::IS_DELETE_NO])->andWhere(['!=', 'attr_id', 0])->all();
$filter = [];
@@ -213,7 +213,7 @@ class GoodsManager
* @return array
* 获取sku信息
*/
- public function getSkuInfo($id)
+ public static function getSkuInfo($id)
{
$skus = GoodsSku::find()->where(['goods_id' => $id, 'is_delete' => GoodsSku::IS_DELETE_NO])->all();
$attrId = [];
From fc657e799c4a57277dd62c37ca6154d19d381784 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 16:56:37 +0800
Subject: [PATCH 10/55] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=84=E5=88=99?=
=?UTF-8?q?=E5=88=97=E8=A1=A8=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
vendor/antgoods/goods/src/models/searchs/AttributeSearch.php | 5 -----
1 file changed, 5 deletions(-)
diff --git a/vendor/antgoods/goods/src/models/searchs/AttributeSearch.php b/vendor/antgoods/goods/src/models/searchs/AttributeSearch.php
index b06e242..856fbc0 100644
--- a/vendor/antgoods/goods/src/models/searchs/AttributeSearch.php
+++ b/vendor/antgoods/goods/src/models/searchs/AttributeSearch.php
@@ -55,11 +55,6 @@ class AttributeSearch extends Attribute
'id',
'name',
'value',
- 'type',
- 'sort_order',
- //'is_delete',
- //'created_at',
- //'updated_at',
[
'class' => 'iron\grid\ActionColumn',
'align' => 'center',
From d9d56fb840d36d56f9d3375636859909daf4e3c8 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 16:57:43 +0800
Subject: [PATCH 11/55] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?=
=?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
vendor/antgoods/goods/src/web/GoodsAttributeAsset.php | 4 ----
1 file changed, 4 deletions(-)
diff --git a/vendor/antgoods/goods/src/web/GoodsAttributeAsset.php b/vendor/antgoods/goods/src/web/GoodsAttributeAsset.php
index bee49d1..3e7e94c 100644
--- a/vendor/antgoods/goods/src/web/GoodsAttributeAsset.php
+++ b/vendor/antgoods/goods/src/web/GoodsAttributeAsset.php
@@ -18,8 +18,4 @@ class GoodsAttributeAsset extends AssetBundle
public $depends = [
'yii\web\YiiAsset',
];
- public static function addJs($view, $jsfile)
- {
- $view->registerJsFile($jsfile);
- }
}
From 3e3ae5a2363b6fcd7545a53717305b1cdd68419c Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 16:59:32 +0800
Subject: [PATCH 12/55] =?UTF-8?q?=E5=95=86=E5=93=81sku=E8=A1=A8=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E5=8C=BA=E5=88=86=E6=98=AF=E5=90=A6=E6=89=8B=E5=8A=A8?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
..._is_manaul_in_table_antgoods_goods_sku.php | 20 ++++++++++++++++
.../goods/src/models/ars/GoodsSku.php | 6 ++++-
.../goods/src/models/searchs/GoodsSearch.php | 23 +++++++++++++++++++
3 files changed, 48 insertions(+), 1 deletion(-)
create mode 100644 vendor/antgoods/goods/src/migrations/m191127_114228_add_column_is_manaul_in_table_antgoods_goods_sku.php
diff --git a/vendor/antgoods/goods/src/migrations/m191127_114228_add_column_is_manaul_in_table_antgoods_goods_sku.php b/vendor/antgoods/goods/src/migrations/m191127_114228_add_column_is_manaul_in_table_antgoods_goods_sku.php
new file mode 100644
index 0000000..a6584d6
--- /dev/null
+++ b/vendor/antgoods/goods/src/migrations/m191127_114228_add_column_is_manaul_in_table_antgoods_goods_sku.php
@@ -0,0 +1,20 @@
+addColumn('antgoods_goods_sku', 'is_manaul', $this->tinyInteger(1)->notNull()->defaultValue(0)->comment('是否手动'));
+ }
+
+ public function down()
+ {
+ $this->dropColumn('antgoods_goods_sku', 'is_manaul');
+ return true;
+ }
+}
diff --git a/vendor/antgoods/goods/src/models/ars/GoodsSku.php b/vendor/antgoods/goods/src/models/ars/GoodsSku.php
index 7690b0e..a9c201a 100644
--- a/vendor/antgoods/goods/src/models/ars/GoodsSku.php
+++ b/vendor/antgoods/goods/src/models/ars/GoodsSku.php
@@ -28,9 +28,13 @@ use yii\behaviors\TimestampBehavior;
* @property int $is_delete 是否删除,1为已删除
* @property int $created_at 创建时间
* @property int $updated_at 更新时间
+ * @property int $is_manaul 是否手动
*/
class GoodsSku extends \yii\db\ActiveRecord
{
+ //是否手动is_manaul
+ const IS_MANUAL_YES = 1; //是手动
+ const IS_MANUAL_NO = 0; //不是手动
//是否删除is_delete
const IS_DELETE_NO = 0;//未删除
const IS_DELETE_YES = 1;//已删除
@@ -49,7 +53,7 @@ class GoodsSku extends \yii\db\ActiveRecord
{
return [
[['goods_id', 'goods_sn'], 'required'],
- [['goods_id', 'weight', 'length', 'width', 'height', 'diameter', 'sold_count', 'stock', 'market_price', 'price', 'model_id', 'is_sale', 'sort_order', 'is_delete'], 'integer'],
+ [['goods_id', 'weight', 'length', 'width', 'height', 'diameter', 'sold_count', 'stock', 'market_price', 'price', 'model_id', 'is_sale', 'sort_order', 'is_delete', 'is_manaul'], 'integer'],
[['goods_code'], 'string', 'max' => 50],
[['goods_sn', 'goods_attr'], 'string', 'max' => 60],
];
diff --git a/vendor/antgoods/goods/src/models/searchs/GoodsSearch.php b/vendor/antgoods/goods/src/models/searchs/GoodsSearch.php
index 618b320..41c5c29 100644
--- a/vendor/antgoods/goods/src/models/searchs/GoodsSearch.php
+++ b/vendor/antgoods/goods/src/models/searchs/GoodsSearch.php
@@ -88,6 +88,29 @@ class GoodsSearch extends Goods
[
'class' => 'iron\grid\ActionColumn',
'align' => 'center',
+ 'config' => [
+ [
+ 'name' => 'view',
+ 'icon' => 'list',
+ 'title' => '详情',
+ ],
+ [
+ 'name' => 'update',
+ 'icon' => 'pencil',
+ 'title' => '修改'
+ ],
+ [
+ 'name' => 'edit-sku',
+ 'icon' => 'hard-drive',
+ 'title' => '商品sku'
+ ],
+ [
+ 'name' => 'delete',
+ 'icon' => 'trash',
+ 'title' => '删除',
+ 'contents' => '确定删除?'
+ ]
+ ],
],
];
}
From 17e6a7df3306d7c306d10d259d99dd1ed5922b15 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 17:03:08 +0800
Subject: [PATCH 13/55] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=93=81=E7=89=8C?=
=?UTF-8?q?=E7=AE=A1=E7=90=86=E5=88=97=E8=A1=A8=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
vendor/antgoods/goods/src/models/searchs/BrandSearch.php | 2 --
1 file changed, 2 deletions(-)
diff --git a/vendor/antgoods/goods/src/models/searchs/BrandSearch.php b/vendor/antgoods/goods/src/models/searchs/BrandSearch.php
index e484b56..f435ae2 100644
--- a/vendor/antgoods/goods/src/models/searchs/BrandSearch.php
+++ b/vendor/antgoods/goods/src/models/searchs/BrandSearch.php
@@ -54,8 +54,6 @@ class BrandSearch extends Brand
],
'id',
'name',
- 'created_at:datetime',
- 'updated_at:datetime',
[
'class' => 'iron\grid\ActionColumn',
'align' => 'center',
From c7630fa9725de7ec344ef44414cf2bdff62c4590 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 17:25:22 +0800
Subject: [PATCH 14/55] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=89=E6=8B=A9?=
=?UTF-8?q?=E4=B8=8A=E7=BA=A7=E5=88=86=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
vendor/antgoods/goods/src/views/shop-category/_form.php | 3 +++
1 file changed, 3 insertions(+)
diff --git a/vendor/antgoods/goods/src/views/shop-category/_form.php b/vendor/antgoods/goods/src/views/shop-category/_form.php
index 9213502..c5502de 100644
--- a/vendor/antgoods/goods/src/views/shop-category/_form.php
+++ b/vendor/antgoods/goods/src/views/shop-category/_form.php
@@ -6,6 +6,7 @@ use blobt\widgets\Icheck;
use yii\helpers\Url;
use antgoods\goods\models\ars\Attribute;
use linyao\widgets\Select2;
+use antgoods\goods\models\ars\Category;
/* @var $this yii\web\View */
/* @var $model antgoods\goods\models\ars\ShopCategory */
@@ -20,6 +21,8 @@ use linyao\widgets\Select2;
= $form->field($model, 'keywords')->textInput(['maxlength' => true]) ?>
+ = $form->field($model, 'pid')->dropDownList(array_merge([0 => '一级分类'], Category::modelColumn())) ?>
+
= $form->field($model, 'desc')->textInput(['maxlength' => true]) ?>
= $form->field($model, 'sort_order')->textInput() ?>
From 38e691529fa1db52a31a120b65d608b85b7fac19 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 17:25:42 +0800
Subject: [PATCH 15/55] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=80=89=E6=8B=A9?=
=?UTF-8?q?=E4=B8=8A=E7=BA=A7=E5=88=86=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
vendor/antgoods/goods/src/views/category/_form.php | 3 +++
vendor/antgoods/goods/src/views/shop-category/_form.php | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/vendor/antgoods/goods/src/views/category/_form.php b/vendor/antgoods/goods/src/views/category/_form.php
index 344b234..9febac5 100644
--- a/vendor/antgoods/goods/src/views/category/_form.php
+++ b/vendor/antgoods/goods/src/views/category/_form.php
@@ -4,6 +4,7 @@ use yii\helpers\Html;
use yii\bootstrap4\ActiveForm;
use blobt\widgets\Icheck;
use yii\helpers\Url;
+use antgoods\goods\models\ars\Category;
/* @var $this yii\web\View */
/* @var $model antgoods\goods\models\ars\Category */
@@ -16,6 +17,8 @@ use yii\helpers\Url;
= $form->field($model, 'name')->textInput(['maxlength' => true]) ?>
+ = $form->field($model, 'pid')->dropDownList(array_merge([0 => '一级分类'], Category::modelColumn())) ?>
+
= $form->field($model, 'sort_order')->textInput() ?>
= $form->field($model, 'iconImageId')->hiddenInput()->label('') ?>
diff --git a/vendor/antgoods/goods/src/views/shop-category/_form.php b/vendor/antgoods/goods/src/views/shop-category/_form.php
index c5502de..98447db 100644
--- a/vendor/antgoods/goods/src/views/shop-category/_form.php
+++ b/vendor/antgoods/goods/src/views/shop-category/_form.php
@@ -6,7 +6,7 @@ use blobt\widgets\Icheck;
use yii\helpers\Url;
use antgoods\goods\models\ars\Attribute;
use linyao\widgets\Select2;
-use antgoods\goods\models\ars\Category;
+use antgoods\goods\models\ars\ShopCategory;
/* @var $this yii\web\View */
/* @var $model antgoods\goods\models\ars\ShopCategory */
@@ -21,7 +21,7 @@ use antgoods\goods\models\ars\Category;
= $form->field($model, 'keywords')->textInput(['maxlength' => true]) ?>
- = $form->field($model, 'pid')->dropDownList(array_merge([0 => '一级分类'], Category::modelColumn())) ?>
+ = $form->field($model, 'pid')->dropDownList(array_merge([0 => '一级分类'], ShopCategory::modelColumn())) ?>
= $form->field($model, 'desc')->textInput(['maxlength' => true]) ?>
From 386777dca406277dadec120e8dea43f445345006 Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Thu, 28 Nov 2019 17:28:50 +0800
Subject: [PATCH 16/55] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../goods/src/models/searchs/CategorySearch.php | 8 --------
.../goods/src/models/searchs/ShopCategorySearch.php | 12 ------------
2 files changed, 20 deletions(-)
diff --git a/vendor/antgoods/goods/src/models/searchs/CategorySearch.php b/vendor/antgoods/goods/src/models/searchs/CategorySearch.php
index 868afe6..47dd9cd 100644
--- a/vendor/antgoods/goods/src/models/searchs/CategorySearch.php
+++ b/vendor/antgoods/goods/src/models/searchs/CategorySearch.php
@@ -54,14 +54,6 @@ class CategorySearch extends Category
],
'id',
'name',
- 'pid',
- 'goods_count',
- 'sort_order',
- //'icon',
- //'is_show',
- //'is_delete',
- //'created_at',
- //'updated_at',
[
'class' => 'iron\grid\ActionColumn',
'align' => 'center',
diff --git a/vendor/antgoods/goods/src/models/searchs/ShopCategorySearch.php b/vendor/antgoods/goods/src/models/searchs/ShopCategorySearch.php
index 2e5dcfc..fec408d 100644
--- a/vendor/antgoods/goods/src/models/searchs/ShopCategorySearch.php
+++ b/vendor/antgoods/goods/src/models/searchs/ShopCategorySearch.php
@@ -54,18 +54,6 @@ class ShopCategorySearch extends ShopCategory
],
'id',
'name',
- 'pid',
- 'goods_count',
- 'keywords',
- //'desc',
- //'sort_order',
- //'icon_type',
- //'icon',
- //'filter_attr',
- //'is_show',
- //'is_delete',
- //'created_at',
- //'updated_at',
[
'class' => 'iron\grid\ActionColumn',
'align' => 'center',
From 3bc42973c9552f46a19277312dd6a62eaf2832ac Mon Sep 17 00:00:00 2001
From: linyaostalker <602604991@qq.com>
Date: Fri, 29 Nov 2019 09:20:16 +0800
Subject: [PATCH 17/55] =?UTF-8?q?=E5=95=86=E5=93=81=E8=A1=A8=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0sku=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5=EF=BC=8C?=
=?UTF-8?q?=E5=A2=9E=E5=8A=A0sku=E6=B7=BB=E5=8A=A0=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E5=8F=8A=E6=A0=B7=E5=BC=8F=EF=BC=8C=E5=BC=80=E5=8F=91sku?=
=?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=E6=96=B9=E6=B3=95=EF=BC=8C=E5=AE=8C?=
=?UTF-8?q?=E6=88=90sku=E7=9A=84=E6=B7=BB=E5=8A=A0=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E5=88=A0=E9=99=A4=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../custom/sku_item.6649e882bedbeb22ea3d.js | 64 +++++++
.../goods/src/controllers/GoodsController.php | 55 ++++++
.../goods/src/logic/goods/GoodsManager.php | 167 ++++++++++++++++++
..._add_column_sku_mode_in_antgoods_goods.php | 20 +++
.../antgoods/goods/src/models/ars/Goods.php | 6 +-
.../goods/src/views/goods/sku_edit.php | 15 ++
.../goods/src/web/GoodsSkuEditAsset.php | 21 +++
7 files changed, 347 insertions(+), 1 deletion(-)
create mode 100644 vendor/antgoods/goods/src/assets/custom/sku_item.6649e882bedbeb22ea3d.js
create mode 100644 vendor/antgoods/goods/src/migrations/m191129_010349_add_column_sku_mode_in_antgoods_goods.php
create mode 100644 vendor/antgoods/goods/src/views/goods/sku_edit.php
create mode 100644 vendor/antgoods/goods/src/web/GoodsSkuEditAsset.php
diff --git a/vendor/antgoods/goods/src/assets/custom/sku_item.6649e882bedbeb22ea3d.js b/vendor/antgoods/goods/src/assets/custom/sku_item.6649e882bedbeb22ea3d.js
new file mode 100644
index 0000000..22e8606
--- /dev/null
+++ b/vendor/antgoods/goods/src/assets/custom/sku_item.6649e882bedbeb22ea3d.js
@@ -0,0 +1,64 @@
+!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/custom/",n(n.s=498)}([function(e,t,n){e.exports=n(382)()},function(e,t,n){"use strict";e.exports=n(317)},function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function c(e){return void 0===e}function s(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function l(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function u(e,t){var n,r=[];for(n=0;n