diff --git a/api/config/main.php b/api/config/main.php index 5f49a31..03b5980 100644 --- a/api/config/main.php +++ b/api/config/main.php @@ -11,10 +11,12 @@ return [ 'bootstrap' => ['log'], 'modules' => [], 'components' => [ - 'cartLogic' => ['class' => 'api\logic\CartLogic'], - 'orderLogic' => ['class' => 'api\logic\OrderLogic'], - 'userLogic' => ['class' => 'api\logic\UserLogic'], + 'cart' => ['class' => 'api\logic\CartLogic'], + 'comment' => ['class' => 'api\logic\CommentLogic'], + 'order' => ['class' => 'api\logic\OrderLogic'], + 'visitor' => ['class' => 'api\logic\UserLogic'], 'address' => ['class' => 'api\logic\AddressLogic'], + 'collection' => ['class' => 'api\logic\CollectionLogic'], 'request' => [ 'parsers' => [ 'application/json' => 'yii\web\JsonParser', @@ -49,32 +51,42 @@ return [ 'rules' => [ ['class' => 'yii\rest\UrlRule', 'controller' => 'goods', 'pluralize' => false], ['class' => 'yii\rest\UrlRule', 'controller' => 'address', 'pluralize' => false], + ['class' => 'yii\rest\UrlRule', 'controller' => 'taking-site'], ['class' => 'yii\rest\UrlRule', 'controller' => 'cart'], - ['class' => 'yii\rest\UrlRule', 'controller' => 'order'], - ['class' => 'yii\rest\UrlRule', - 'controller' => 'user', - 'pluralize' => false, - 'extraPatterns' => [ - 'GET token' => 'token' - ] - ], - [ - 'class' => 'yii\rest\UrlRule', - 'controller' => 'admin', - 'extraPatterns' => [ - 'GET menu' => 'menu', - 'GET create' => 'create' - ] - ], - [ - 'class' => 'yii\rest\UrlRule', - 'controller' => 'site', - 'extraPatterns' => [ - 'GET index' => 'index', - ] + ['class' => 'yii\rest\UrlRule', 'controller' => 'comment', + 'extraPatterns' => [ + 'DELETE ' => 'delete' + ]], + ['class' => 'yii\rest\UrlRule', 'controller' => 'order'], + ['class' => 'yii\rest\UrlRule', 'controller' => 'collection', + 'extraPatterns' => [ + 'DELETE ' => 'delete' + ] + ], + ['class' => 'yii\rest\UrlRule', + 'controller' => 'user', + 'pluralize' => false, + 'extraPatterns' => [ + 'GET token' => 'token' + ] + ], + [ + 'class' => 'yii\rest\UrlRule', + 'controller' => 'admin', + 'extraPatterns' => [ + 'GET menu' => 'menu', + 'GET create' => 'create' + ] + ], + [ + 'class' => 'yii\rest\UrlRule', + 'controller' => 'site', + 'extraPatterns' => [ + 'GET index' => 'index', + ] + ], ], ], ], - ], - 'params' => $params, -]; + 'params' => $params, + ]; diff --git a/api/controllers/AddressController.php b/api/controllers/AddressController.php index 88c2016..04890b5 100644 --- a/api/controllers/AddressController.php +++ b/api/controllers/AddressController.php @@ -2,8 +2,10 @@ namespace api\controllers; -use backend\models\ars\Address; +use api\logic\Helper; +use backend\modules\shop\models\ars\Address; use Yii; +use Throwable; use yii\web\NotFoundHttpException; /** @@ -12,32 +14,44 @@ use yii\web\NotFoundHttpException; */ class AddressController extends CommonController { - public $modelClass = 'backend\models\ars\Address'; - - - - - public function actions() - { - $action = parent::actions(); - return $action; - } + public $modelClass = 'backend\modules\shop\models\ars\Address'; + public $className = 'api\logic\AddressLogic'; + /** + * @return object + * @throws \yii\base\InvalidConfigException + */ public function actionIndex() { - return Address::find() - ->where(['user_id' => Yii::$app->user->getId()]) - ->all(); + $query = Address::find()->where(['user_id' => Yii::$app->user->getId()]); + return Helper::index($query); } + /** + * @return bool + * @throws NotFoundHttpException + * @throws Yii\base\InvalidConfigException + * @throws Yii\db\StaleObjectException + * @throws Throwable + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + * @throws yii\web\ServerErrorHttpException + */ public function actionUpdate() { - + return $this->object->update(); } + /** + * @return Address|null + * @throws NotFoundHttpException + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + * @throws yii\web\ServerErrorHttpException + */ public function actionCreate() { - return Yii::$app->address->create(); + return $this->object->create(); } } diff --git a/api/controllers/CartController.php b/api/controllers/CartController.php index 8c7c54d..41213a9 100644 --- a/api/controllers/CartController.php +++ b/api/controllers/CartController.php @@ -2,9 +2,9 @@ namespace api\controllers; -use backend\models\ars\Cart; -use yii\db\ActiveRecord; -use yii\rest\ActiveController; +use api\logic\Helper; +use backend\modules\shop\models\ars\Cart; +use Throwable; use Yii; /** @@ -13,42 +13,68 @@ use Yii; */ class CartController extends CommonController { - public $modelClass = 'common\models\ars\Cart'; + public $modelClass = 'backend\modules\shop\models\ars\Cart'; + public $className = 'api\logic\CartLogic'; public function actions() { $action = parent::actions(); unset($action['index']); + unset($action['delete']); + $action['options'] = [ + 'class' => 'yii\rest\OptionsAction', + 'collectionOptions' => ['DELETE', 'PUT', 'OPTIONS'] + ]; return $action; } + /** + * @return object + * @throws yii\base\InvalidConfigException + */ public function actionIndex() { - return Cart::find() - ->where(['user_id' => Yii::$app->user->getId()]) - ->all(); + $query = Cart::find()->where(['user_id' => Yii::$app->user->getId()]); + return Helper::index($query); } /** * @return bool - * 更新购物车(增/删商品) + * @throws Throwable + * @throws Yii\base\InvalidConfigException + * @throws Yii\db\StaleObjectException + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + * @throws yii\web\NotFoundHttpException + * @throws yii\web\ServerErrorHttpException */ public function actionUpdate() { - $type = Yii::$app->request->post('type'); - return Yii::$app->cartLogic->addOrSubGoods($type); + return $this->object->update(); } /** - * @return ActiveRecord - * 创建商品 + * @return null|Cart + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + * @throws yii\web\NotFoundHttpException + * @throws yii\web\ServerErrorHttpException */ public function actionCreate() { - $goodsId = Yii::$app->request->getBodyParam('goodsId'); - $count = Yii::$app->request->getBodyParam('count'); - $skuId = Yii::$app->request->getBodyParam('skuId'); - return Yii::$app->cartLogic->create($goodsId, $count, $skuId); + return $this->object->create(); + } + + /** + * @throws Yii\db\StaleObjectException + * @throws Throwable + * @throws yii\web\BadRequestHttpException + * @throws yii\web\NotFoundHttpException + * @throws yii\web\ServerErrorHttpException + */ + public function actionDelete() + { + return $this->object->delete(); } diff --git a/api/controllers/CollectionController.php b/api/controllers/CollectionController.php new file mode 100644 index 0000000..e3cf6be --- /dev/null +++ b/api/controllers/CollectionController.php @@ -0,0 +1,67 @@ + 'yii\rest\OptionsAction', + 'collectionOptions' => ['DELETE', 'PUT', 'OPTIONS'] + ]; + return $action; + } + + /** + * @return object + * @throws yii\base\InvalidConfigException + */ + public function actionIndex() + { + $query = Collection::find()->where(['user_id' => Yii::$app->user->getId()]); + return Helper::index($query); + } + + /** + * @return bool + * @throws Yii\base\InvalidConfigException + * @throws Yii\db\StaleObjectException + * @throws Throwable + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + * @throws yii\web\NotFoundHttpException + * @throws yii\web\ServerErrorHttpException + */ + public function actionUpdate() + { + return $this->object->update(); + } + + /** + * @throws Throwable + * @throws Yii\db\StaleObjectException + * @throws yii\web\BadRequestHttpException + * @throws yii\web\NotFoundHttpException + * @throws yii\web\ServerErrorHttpException + */ + public function actionDelete() + { + return $this->object->delete(); + } +} diff --git a/api/controllers/CommentController.php b/api/controllers/CommentController.php new file mode 100644 index 0000000..a00b79f --- /dev/null +++ b/api/controllers/CommentController.php @@ -0,0 +1,48 @@ +where(['user_id' => Yii::$app->user->getId()]); + return Helper::index($query); + } + + /** + * @return array|Comment|null + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + * @throws yii\web\NotFoundHttpException + * @throws yii\web\ServerErrorHttpException + */ + public function actionCreate() + { + return $this->object->create(); + } + + +} diff --git a/api/controllers/CommonController.php b/api/controllers/CommonController.php index bcf1ddc..1359834 100644 --- a/api/controllers/CommonController.php +++ b/api/controllers/CommonController.php @@ -2,11 +2,18 @@ namespace api\controllers; +use api\logic\AddressLogic; +use api\logic\CartLogic; +use api\logic\CollectionLogic; +use api\logic\CommentLogic; +use api\logic\OrderLogic; use yii\filters\auth\HttpBearerAuth; use yii\helpers\ArrayHelper; use yii\rest\ActiveController; use yii\web\NotFoundHttpException; +use yii\base\InvalidConfigException; use Yii; + /** * @author iron * @email weiriron@gmail.com @@ -14,14 +21,32 @@ use Yii; class CommonController extends ActiveController { - public $searchModel; + public $className; + /** + * @var OrderLogic|CommentLogic|CartLogic|CollectionLogic|AddressLogic; + */ + public $object; + + /** + * @throws InvalidConfigException + */ + public function init() + { + parent::init(); + $this->object = Yii::createObject([ + 'class' => $this->className, + ]); + } + /** + * @return array + */ public function behaviors() { return ArrayHelper::merge(parent::behaviors(), [ 'authenticatior' => [ 'class' => HttpBearerAuth::className(), - 'except' => [], + 'except' => ['token'], ] ]); } @@ -40,6 +65,13 @@ class CommonController extends ActiveController return []; } + /** + * @param string $action + * @param null $model + * @param array $params + * @throws NotFoundHttpException + * 权限控制 + */ public function checkAccess($action, $model = null, $params = []) { if ($model && isset($model->user_id) && $model->user_id !== Yii::$app->user->getId()) { diff --git a/api/controllers/GoodsController.php b/api/controllers/GoodsController.php index d3fcd3c..adb243e 100644 --- a/api/controllers/GoodsController.php +++ b/api/controllers/GoodsController.php @@ -2,9 +2,7 @@ namespace api\controllers; -use yii\filters\auth\HttpBearerAuth; -use yii\helpers\ArrayHelper; -use yii\rest\ActiveController; +use Yii; /** * @author iron @@ -12,7 +10,7 @@ use yii\rest\ActiveController; */ class GoodsController extends CommonController { - public $modelClass = 'goods\models\ars\Goods'; + public $modelClass = 'backend\modules\goods\models\ars\Goods'; public function actions() { @@ -30,18 +28,20 @@ class GoodsController extends CommonController { $keyword = \Yii::$app->request->getBodyParam('keyword'); $category = \Yii::$app->request->getBodyParam('category'); - $data = \Yii::$app->request->getBodyParams(); - $data['user'] = true; - \Yii::$app->request->setBodyParams($data); + $array = []; if ($keyword) { - $data['name'] = ['like' => $keyword]; + $array['name'] = ['like' => $keyword]; } if ($category) { - $data['cat_id'] = $category; + $array['cat_id'] = $category; } - $filter = ['class' => 'yii\data\ActiveDataFilter', - 'filter' => $data, - 'searchModel' => ['class' => 'antgoods\goods\models\searchs\GoodsSearch']]; - return $filter; + if (empty($array)) { + return null; + } + return ['class' => 'yii\data\ActiveDataFilter', + 'filter' => $array, + 'searchModel' => ['class' => 'backend\modules\goods\models\searchs\GoodsSearch']]; } + + } diff --git a/api/controllers/OrderController.php b/api/controllers/OrderController.php index 715b1d7..37ce701 100644 --- a/api/controllers/OrderController.php +++ b/api/controllers/OrderController.php @@ -2,17 +2,23 @@ namespace api\controllers; -use yii\web\ForbiddenHttpException; use Yii; - +use yii\base\InvalidConfigException; +use Throwable; +use backend\modules\shop\models\ars\Order; /** * @author iron * @email weiriron@gmail.com */ class OrderController extends CommonController { - public $modelClass = 'common\models\ars\Order'; + public $modelClass = 'backend\modules\shop\models\ars\Order'; + public $className = 'api\logic\OrderLogic'; + /** + * @return array + * @throws InvalidConfigException + */ public function actions() { $action = parent::actions(); @@ -25,38 +31,48 @@ class OrderController extends CommonController return $action; } + /** + * @return array + * @throws InvalidConfigException + */ protected function getFilter() { - $status = Yii::$app->request->getBodyParam('status'); - $data = \Yii::$app->request->getBodyParams(); - $data['user'] = true; - \Yii::$app->request->setBodyParams($data); + if (empty(Yii::$app->request->getBodyParams())) { + Yii::$app->request->setBodyParams(['user' => true]); + } $array = ['user_id' => Yii::$app->user->getId()]; + $status = Yii::$app->request->getBodyParam('status'); if ($status) { $array['status'] = $status; } - $filter = ['class' => 'yii\data\ActiveDataFilter', + return ['class' => 'yii\data\ActiveDataFilter', 'filter' => $array, - 'searchModel' => ['class' => 'common\models\searchs\OrderSearch']]; - return $filter; + 'searchModel' => ['class' => 'backend\modules\shop\models\searchs\OrderSearch'] + ]; } + /** + * @return Order + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + */ public function actionCreate() { - $originId = Yii::$app->request->getBodyParam('originId'); - $count = Yii::$app->request->getBodyParam('count'); - $skuId = Yii::$app->request->getBodyParam('skuId'); - return Yii::$app->orderLogic->create($originId, $count, $skuId); + return $this->object->create(); } /** - * @return mixed - * @throws \yii\base\InvalidConfigException + * @return bool + * @throws InvalidConfigException + * @throws Throwable + * @throws yii\base\Exception + * @throws yii\web\BadRequestHttpException + * @throws yii\web\NotFoundHttpException + * @throws yii\web\ServerErrorHttpException */ public function actionUpdate() { - $data = Yii::$app->request->getBodyParams(); - return Yii::$app->orderLogic->update($data); + return $this->object->update(); } diff --git a/api/controllers/SiteController.php b/api/controllers/SiteController.php index 2f18b16..53228f4 100644 --- a/api/controllers/SiteController.php +++ b/api/controllers/SiteController.php @@ -35,7 +35,7 @@ class SiteController extends Controller public function actionIndex() { //TODO 首页信息 - \Yii::$app->userLogic->DailyActive(); + \Yii::$app->visitor->DailyActive(); return '首页所有数据'; } diff --git a/api/controllers/TakingSiteController.php b/api/controllers/TakingSiteController.php new file mode 100644 index 0000000..f20e7a5 --- /dev/null +++ b/api/controllers/TakingSiteController.php @@ -0,0 +1,27 @@ + [ - 'class' => HttpBearerAuth::className(), - 'except' => ['token'], - ] - ]); - } - public function actions() { $action = parent::actions(); unset($action['delete']); - unset($action['create']); - unset($action['update']); - unset($action['index']); + unset($action['view']); $action['options'] = [ 'class' => 'yii\rest\OptionsAction', 'collectionOptions' => ['PUT', 'GET', 'OPTIONS'] diff --git a/api/logic/AddressLogic.php b/api/logic/AddressLogic.php index 680e518..cc3eedb 100644 --- a/api/logic/AddressLogic.php +++ b/api/logic/AddressLogic.php @@ -3,9 +3,10 @@ namespace api\logic; -use backend\models\ars\Address; +use backend\modules\shop\models\ars\Address; use Yii; -use yii\base\Component; +use yii\base\BaseObject; +use yii\db\Exception; use yii\web\BadRequestHttpException; use yii\web\NotFoundHttpException; use yii\web\ServerErrorHttpException; @@ -16,42 +17,109 @@ use yii\web\ServerErrorHttpException; * Class CartLogic * @package api\logic */ -class AddressLogic extends Component +class AddressLogic extends BaseObject { + const SET_DEFAULT_ADDRESS = 1; + public $viewAction = 'view'; /** * @return Address * @throws BadRequestHttpException * @throws ServerErrorHttpException + * 创建地址 */ public function create() { - $data['consignee'] = Yii::$app->request->getBodyParam('consignee'); - $data['phone'] = Yii::$app->request->getBodyParam('phone'); - $data['province'] = Yii::$app->request->getBodyParam('province'); - $data['city'] = Yii::$app->request->getBodyParam('city'); - $data['district'] = Yii::$app->request->getBodyParam('district'); - $data['address'] = Yii::$app->request->getBodyParam('address'); - if (empty($data['consignee']) || empty($data['phone']) || empty($data['province']) || - empty($data['city']) || empty($data['district']) || empty($data['address'])) { - throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); - } + $data = $this->getParams(); $address = new Address(); $address->user_id = Yii::$app->user->getId(); $address->load($data, ''); if (!$address->save()) { throw new ServerErrorHttpException('地址添加失败'); } + if (!$this->getDefaultAddress()) { + $this->setDefaultAddress($address); + } Helper::createdResponse($address, $this->viewAction); return $address; } + /** + * @return bool + * @throws BadRequestHttpException + * @throws NotFoundHttpException + * @throws ServerErrorHttpException + * 更新地址 + */ + public function update() + { + $type = Yii::$app->request->getQueryParam('type'); + $address = $this->findAddress(); + if ($type == self::SET_DEFAULT_ADDRESS) { + return $this->setDefaultAddress($address); + } + $data = $this->getParams(); + $address->load($data, ''); + if (!$address->save()) { + throw new ServerErrorHttpException('地址添加失败'); + } + return true; + } + + /** + * @param Address $address + * @return bool + * @throws ServerErrorHttpException + * 设置默认地址 + */ private function setDefaultAddress($address) { + $tra = Yii::$app->db->beginTransaction(); + try { + $oldDefault = $this->getDefaultAddress(); + if ($oldDefault) { + $oldDefault->status = Address::STATUS_NOT_DEFAULT; + if (!$oldDefault->save()) { + throw new Exception('服务器取消默认地址失败'); + } + } + $address->status = Address::STATUS_DEFAULT; + if (!$address->save()) { + throw new Exception('服务器设置默认地址失败'); + } + $tra->commit(); + return true; + } catch (\Exception $e) { + $tra->rollBack(); + throw new ServerErrorHttpException($e->getMessage()); + } + } + + /** + * @return mixed + * @throws BadRequestHttpException + */ + private function getParams() + { + $data['consignee'] = Yii::$app->request->getBodyParam('consignee'); + $data['phone'] = Yii::$app->request->getBodyParam('phone'); + $data['province'] = Yii::$app->request->getBodyParam('province'); + $data['city'] = Yii::$app->request->getBodyParam('city'); + $data['district'] = Yii::$app->request->getBodyParam('district'); + $data['address'] = Yii::$app->request->getBodyParam('address'); + if (empty($data['consignee']) || empty($data['phone']) || empty($data['province']) || + empty($data['city']) || empty($data['district']) || empty($data['address'])) { + throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); + } + return $data; } + /** + * @return array|Address|null + * @throws NotFoundHttpException + */ private function findAddress() { $id = Yii::$app->request->getQueryParam('id'); @@ -62,7 +130,18 @@ class AddressLogic extends Component if (!$address) { throw new NotFoundHttpException('地址未找到'); } + return $address; } + /** + * @return array|Address|null + */ + private function getDefaultAddress() + { + return Address::find() + ->where(['user_id' => Yii::$app->user->getId()]) + ->andWhere(['status' => Address::STATUS_DEFAULT]) + ->one(); + } } \ No newline at end of file diff --git a/api/logic/CartLogic.php b/api/logic/CartLogic.php index f1547d1..3bbbf09 100644 --- a/api/logic/CartLogic.php +++ b/api/logic/CartLogic.php @@ -2,12 +2,12 @@ namespace api\logic; -use antgoods\goods\models\ars\Goods; -use common\models\ars\Cart; -use yii\base\Component; +use backend\modules\goods\models\ars\Goods; +use backend\modules\shop\models\ars\Cart; +use Throwable; use Yii; +use yii\base\BaseObject; use yii\db\ActiveRecord; -use yii\helpers\Url; use yii\web\BadRequestHttpException; use yii\web\NotFoundHttpException; use yii\web\ServerErrorHttpException; @@ -18,30 +18,48 @@ use yii\web\ServerErrorHttpException; * Class CartLogic * @package api\logic */ -class CartLogic extends Component +class CartLogic extends BaseObject { public $viewAction = 'view'; - const TYPE_ADD = 1; const TYPE_SUB = -1; + const TYPE_ADD = 1; + const TYPE_EDIT = 2; /** - * @param $goodsId - * @param $count - * @param $skuId - * @return array|\yii\db\ActiveRecord|null + * @throws BadRequestHttpException + * @throws NotFoundHttpException + * @throws ServerErrorHttpException + * @throws Throwable + * @throws yii\db\StaleObjectException + * 删除购物车 + */ + public function delete() + { + $ids = Yii::$app->request->getBodyParam('ids'); + if (empty($ids) || !is_array($ids)) { + throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); + } + Helper::delCarts($ids); + Yii::$app->getResponse()->setStatusCode(204); + } + + /** + * @return array|Cart|null * @throws BadRequestHttpException * @throws NotFoundHttpException * @throws ServerErrorHttpException * 添加商品到购物车 */ - public function create($goodsId, $count, $skuId) + public function create() { + $goodsId = Yii::$app->request->getBodyParam('goodsId'); + $count = Yii::$app->request->getBodyParam('count'); + $skuId = Yii::$app->request->getBodyParam('skuId'); if (empty($goodsId) || empty($count)) { throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); } //TODO 判断限购 - //判断库存 Helper::checkStock($goodsId, $count, $skuId); $cart = Cart::find()->where(['goods_id' => $goodsId]) ->andWhere(['user_id' => Yii::$app->user->getId()]) @@ -59,35 +77,54 @@ class CartLogic extends Component } /** - * @param int $type * @return bool * @throws BadRequestHttpException * @throws NotFoundHttpException + * @throws ServerErrorHttpException */ - public function addOrSubGoods($type) + public function update() { - if (empty($type) || ($type != self::TYPE_SUB && $type != self::TYPE_ADD)) { + $type = Yii::$app->request->getBodyParam('type'); + $count = Yii::$app->request->getBodyParam('count'); + if (empty($type) || !in_array($type, [self::TYPE_ADD, self::TYPE_SUB, self::TYPE_EDIT])) { throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); } $cart = $this->findCart(); if (!$cart) { throw new NotFoundHttpException('未找到该购物车'); } - if ($cart->goods_count == 1 && $type == self::TYPE_SUB) { - throw new BadRequestHttpException('购物商品需至少1件'); + if ($type == self::TYPE_EDIT) { + Helper::checkStock($cart->goods_id, $count, $cart->sku_id); + if (empty($count) || $count < 1) { + throw new BadRequestHttpException('未设置数量或数量超出范围'); + } + $cart->goods_count = $count; + if (!$cart->save()) { + throw new ServerErrorHttpException('服务器编辑购物车数量失败'); + } + } else { + if ($cart->goods_count == 1 && $type == self::TYPE_SUB) { + throw new BadRequestHttpException('商品需至少1件'); + } + if ($type == self::TYPE_ADD) { + Helper::checkStock($cart->goods_id, $cart->goods_count + 1, $cart->sku_id); + } + if (!$cart->updateCounters(['goods_count' => $type])) { + throw new ServerErrorHttpException('服务器增删购物车失败'); + } } - return $cart->updateCounters(['goods_count' => $type]); + return true; } - +/*----------------------------------- 又一条华丽的分割线 --------------------------------------*/ /** * @param $goodsId * @param $skuId * @param $count * @return Cart; - * 创建新购物车 * @throws ServerErrorHttpException * @throws NotFoundHttpException + * 创建新购物车 */ private function addGoods($goodsId, $skuId, $count) { @@ -102,7 +139,7 @@ class CartLogic extends Component $cart->sku_id = $skuId ?: 0; $cart->goods_img = $goods->image; $cart->goods_name = $goods->name; - $cart->goods_price = Helper::countPrice($goodsId, $skuId); + $cart->goods_price = Helper::goodsPrice($goodsId, $skuId); if (!$cart->save()) { throw new ServerErrorHttpException('服务器创建购物车失败'); } diff --git a/api/logic/CollectionLogic.php b/api/logic/CollectionLogic.php new file mode 100644 index 0000000..12c6c54 --- /dev/null +++ b/api/logic/CollectionLogic.php @@ -0,0 +1,122 @@ +request->getBodyParam('ids'); + if (empty($ids) || !is_array($ids)) { + throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); + } + foreach ($ids as $id) { + $collection = $this->findCollection($id); + if (!$collection) { + throw new NotFoundHttpException("未找到该收藏"); + } + if (!$collection->delete()) { + throw new ServerErrorHttpException('服务器取消收藏失败'); + } + } + Yii::$app->getResponse()->setStatusCode(204); + } + + /** + * @return bool + * @throws ServerErrorHttpException + * @throws Throwable + * @throws yii\db\StaleObjectException + */ + public function update() + { + $collection = $this->findCollectionByGoods(); + if (!$collection) { + return $this->create(); + } + if (!$collection->delete()) { + throw new ServerErrorHttpException('服务器取消收藏失败'); + } + return true; + } + + /*------------------------------------------------------------------------------------------*/ + /** + * @throws NotFoundHttpException + * @throws ServerErrorHttpException + */ + private function create() + { + $goods = $this->findGoods(); + $collection = new Collection(); + $collection->goods_id = $goods->id; + $collection->goods_name = $goods->name; + $collection->goods_img = $goods->image; + $collection->goods_price = $goods->price; + $collection->user_id = Yii::$app->user->getId(); + if (!$collection->save()) { + throw new ServerErrorHttpException('服务器新建收藏失败'); + } + return true; + } + + /** + * @param integer $id + * @return array|Collection|null + */ + private function findCollection($id) + { + return Collection::find() + ->where(['id' => $id]) + ->andWhere(['user_id' => Yii::$app->user->getId()]) + ->one(); + } + + + private function findCollectionByGoods() + { + $goodsId = Yii::$app->request->getQueryParam('id'); + return Collection::find() + ->where(['goods_id' => $goodsId]) + ->andWhere(['user_id' => Yii::$app->user->getId()]) + ->one(); + } + + + /** + * @return Goods|null + * @throws NotFoundHttpException + */ + private function findGoods() + { + $goodsId = Yii::$app->request->getQueryParam('id'); + $goods = Goods::findOne(['id' => $goodsId, 'is_delete' => Goods::IS_DELETE_NO, 'is_sale' => Goods::IS_SALE_YES]); + if (!$goods) { + throw new NotFoundHttpException('商品未找到'); + } + return $goods; + } +} \ No newline at end of file diff --git a/api/logic/CommentLogic.php b/api/logic/CommentLogic.php new file mode 100644 index 0000000..45d95ad --- /dev/null +++ b/api/logic/CommentLogic.php @@ -0,0 +1,53 @@ +request->getBodyParam('content'); + $images = Yii::$app->request->getBodyParam('images'); + if (empty($content)) { + throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); + } + $comment = new Comment(); + $comment->user_id = Yii::$app->user->getId(); + $comment->nickname = Yii::$app->user->identity->nickname; + $comment->avatar = Yii::$app->user->identity->avatar; + if (!$comment->save()) { + throw new ServerErrorHttpException('服务器保存评论失败'); + } + if (!empty($images) && is_array($images)) { + foreach ($images as $image) { + $data = Helper::uploadImage('content/', $image); + Helper::saveFileMsg($data, $comment->id, 4); + } + } + Helper::createdResponse($comment, $this->viewAction); + return $comment; + } + +} \ No newline at end of file diff --git a/api/logic/Helper.php b/api/logic/Helper.php index f4db3fa..b47d18e 100644 --- a/api/logic/Helper.php +++ b/api/logic/Helper.php @@ -2,14 +2,18 @@ namespace api\logic; -use antgoods\goods\models\ars\Goods; -use antgoods\goods\models\ars\GoodsAttr; -use antgoods\goods\models\ars\GoodsSku; +use backend\modules\file\models\ars\File; +use backend\modules\goods\models\ars\Goods; +use backend\modules\goods\models\ars\GoodsAttr; +use backend\modules\goods\models\ars\GoodsSku; +use backend\modules\shop\models\ars\Cart; +use yii\data\ActiveDataProvider; use yii\di\Instance; use yii\helpers\Url; use yii\web\BadRequestHttpException; use yii\web\NotFoundHttpException; use Yii; +use yii\web\ServerErrorHttpException; /** * @author iron @@ -21,6 +25,45 @@ class Helper { const REQUEST_BAD_PARAMS = '参数缺失或包含无效参数'; + public static function saveFileMsg($data, $oid, $type) + { + $file = new File(); + $file->type = 1; + $file->own_type = $type; + $file->own_id = $oid; + $file->path = $data['fileName']; + $file->alias = $data['alias']; + if (!$file->save()) { + throw new ServerErrorHttpException('服务器保存文件失败'); + } + } + + /** + * @param $dirs + * @param $file + * @return array + * @throws ServerErrorHttpException + */ + public static function uploadImage($dirs, $file) + { + $savePath = Yii::getAlias('@app') . '/web/uploads'; + if (!is_dir($savePath)) { + mkdir($savePath, 0755); + } + foreach ($dirs as $dir) { + $savePath .= "/$dir"; + if (!is_dir($savePath)) { + mkdir($savePath, 0755); + } + } + $fileName = time() . rand(0, 9999) . '.' . $file->extension; + $path = $savePath . $fileName; + if (!$file->saveAs($path)) { + throw new ServerErrorHttpException('服务器保存图片失败'); + } + return ['fileName' => '/uploads/' . $dirs . '/' . $fileName, 'alias' => $file->baseName . $file->extension]; + } + /** * @param $array * @return string @@ -34,6 +77,29 @@ class Helper return implode(' ', $data); } + /** + * @param array $ids 购物车id 数组 + * @throws NotFoundHttpException + * @throws ServerErrorHttpException + * @throws \Throwable + * @throws \yii\db\StaleObjectException + */ + public static function delCarts($ids) + { + foreach ($ids as $id) { + $cart = Cart::find() + ->where(['id' => $id]) + ->andWhere(['user_id' => Yii::$app->user->getId()]) + ->one(); + if (!$cart) { + throw new NotFoundHttpException("未找到该购物车"); + } + if (!$cart->delete()) { + throw new ServerErrorHttpException('服务器删除购物车失败'); + } + } + } + /** * @param $goodsId * @param $count @@ -54,11 +120,16 @@ class Helper } $stock = $sku ? $sku->stock : $goods->stock; if ($stock < $count) { - throw new BadRequestHttpException("商品{$goods->name}库存不足"); + throw new BadRequestHttpException("{$goods->name}库存不足"); } return; } + /** + * @param $model + * @param $view + * post的返回头设置 + */ public static function createdResponse($model, $view) { $response = Yii::$app->getResponse()->setStatusCode(201); @@ -73,7 +144,7 @@ class Helper * @throws NotFoundHttpException * 计算商品价格 */ - public static function countPrice($goodsId, $skuId) + public static function goodsPrice($goodsId, $skuId) { $goods = Goods::findOne($goodsId); if (!$goods) { @@ -91,6 +162,7 @@ class Helper * @param $skuId * @return string * @throws NotFoundHttpException + * 获取拼接后的sku值 */ public static function skuValue($skuId) { @@ -113,4 +185,25 @@ class Helper return implode(',', $data); } + + /** + * @param $query + * @return object + * @throws \yii\base\InvalidConfigException + * 获取数据 + */ + public static function index($query) + { + $requestParams = Yii::$app->request->getBodyParams(); + return Yii::createObject([ + 'class' => ActiveDataProvider::className(), + 'query' => $query, + 'pagination' => [ + 'params' => $requestParams, + ], + 'sort' => [ + 'params' => $requestParams, + ], + ]); + } } \ No newline at end of file diff --git a/api/logic/Login.php b/api/logic/Login.php index 9ed8e27..abc9728 100644 --- a/api/logic/Login.php +++ b/api/logic/Login.php @@ -2,7 +2,6 @@ namespace api\logic; -use common\models\ars\Config; use common\models\User; use yii\base\Exception; use Yii; diff --git a/api/logic/OrderLogic.php b/api/logic/OrderLogic.php index ba3ff20..4b2b558 100644 --- a/api/logic/OrderLogic.php +++ b/api/logic/OrderLogic.php @@ -2,16 +2,18 @@ namespace api\logic; -use antgoods\goods\models\ars\Goods; -use antgoods\goods\models\ars\GoodsSku; -use common\models\ars\Address; -use common\models\ars\Cart; -use common\models\ars\Order; -use common\models\ars\OrderGoods; -use common\models\ars\TakingSite; +use backend\modules\goods\models\ars\Goods; +use backend\modules\goods\models\ars\GoodsSku; +use backend\modules\shop\models\ars\Address; +use backend\modules\shop\models\ars\Cart; +use backend\modules\shop\models\ars\Order; +use backend\modules\shop\models\ars\OrderGoods; +use backend\modules\shop\models\ars\TakingSite; use yii\base\Component; +use Throwable; use Yii; use yii\db\ActiveRecord; +use yii\base\Exception; use yii\web\BadRequestHttpException; use yii\web\NotFoundHttpException; use yii\web\ServerErrorHttpException; @@ -25,9 +27,6 @@ use yii\web\ServerErrorHttpException; class OrderLogic extends Component { public $viewAction = 'view'; - /*创建途径类型*/ - const TYPE_ADD_GOODS_PURCHASE = 1; - const TYPE_ADD_GOODS_CART = 2; /*订单操作类型*/ const TYPE_CONFIRM = 1; const TYPE_CANCEL = 2; @@ -41,12 +40,58 @@ class OrderLogic extends Component /** - * @param $data - * @return bool|\Exception|\yii\base\Exception + * @return Order + * @throws BadRequestHttpException + * @throws Exception + * 创建订单 */ - public function update($data) + public function create() { - $type = Yii::$app->request->getQueryParam('type'); + //立即购物需传参数 + $goodsId = Yii::$app->request->getBodyParam('goodsId');/*int 商品id*/ + $count = Yii::$app->request->getBodyParam('count');/*int 数量*/ + $skuId = Yii::$app->request->getBodyParam('skuId');/*int 商品sku id*/ + //购物车提交订单需传参数 + $cartIds = Yii::$app->request->getBodyParam('cartIds');/*array 购物车商品id*/ + + if ((empty($cartIds) && empty($goodsId)) || ($goodsId && empty($count))) { + throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); + } + $tra = Yii::$app->db->beginTransaction(); + try { + $order = new Order(); + $order->user_id = Yii::$app->user->getId(); + $order->type = Order::TYPE_SHOPPING; + if (!$order->save()) { + throw new ServerErrorHttpException('服务器创建订单失败'); + } + if ($goodsId && $count) { + $this->addGoods($order->id, $goodsId, $skuId, $count);/*添加订单商品*/ + } else { + $this->addGoodsByCart($cartIds, $order->id);/*通过购物车添加订单商品*/ + } + Helper::checkStock($goodsId, $count, $skuId); /*检查库存*/ + $this->saveGoodsInfo($order);/*保存订单商品信息*/ + $tra->commit(); + Helper::createdResponse($order, $this->viewAction); + return $order; + } catch (Exception $e) { + $tra->rollBack(); + throw $e; + } + } + + /** + * @return bool + * @throws Exception + * @throws Throwable + * @throws yii\base\InvalidConfigException + * 根据操作类型更新订单 + */ + public function update() + { + $data = Yii::$app->request->getBodyParams(); + $type = Yii::$app->request->getBodyParam('type'); $order = $this->findOrder(); $tra = Yii::$app->db->beginTransaction(); try { @@ -61,7 +106,7 @@ class OrderLogic extends Component $this->take($order); break; case self::TYPE_CHANGE_SHIPPING_TYPE: - $this->updateShippingType($order, $data); + $this->switchShippingType($order, $data); break; case self::TYPE_CHANGE_ADDRESS: $this->changeAddress($order, $data); @@ -75,17 +120,19 @@ class OrderLogic extends Component } $tra->commit(); return true; - } catch (\yii\base\Exception $e) { + } catch (Exception $e) { $tra->rollBack(); - return $e; + throw $e; } } + /*----------------------------------------- 华丽的分割线 -----------------------------------------*/ /** * @param Order $order * @param array $data * @throws BadRequestHttpException * @throws NotFoundHttpException + * 添加地址到订单 */ private function changeAddress($order, $data) { @@ -95,9 +142,7 @@ class OrderLogic extends Component if ($order->shipping_type !== Order::SHIPPING_TYPE_EXPRESS) { throw new BadRequestHttpException('配送方式异常'); } - $address = Address::find() - ->where(['id' => $data['address_id'], 'user_id' => Yii::$app->user->getId()]) - ->one(); + $address = Address::findOne(['id' => $data['address_id'], 'user_id' => Yii::$app->user->getId()]); if (!$address) { throw new NotFoundHttpException('收货地址未找到'); } @@ -114,6 +159,7 @@ class OrderLogic extends Component * @param array $data * @throws BadRequestHttpException * @throws NotFoundHttpException + * 修改自提点 */ private function changeTakingSite($order, $data) { @@ -135,8 +181,9 @@ class OrderLogic extends Component * @param Order $order * @param array $data * @throws BadRequestHttpException + * 切换配送方式 */ - private function updateShippingType($order, $data) + private function switchShippingType($order, $data) { if (!isset($data['shipping_type'])) { throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); @@ -153,6 +200,9 @@ class OrderLogic extends Component * @throws BadRequestHttpException * @throws NotFoundHttpException * @throws ServerErrorHttpException + * @throws Throwable + * @throws yii\db\StaleObjectException + * 确定订单 */ private function confirm($order, $data) { @@ -160,9 +210,8 @@ class OrderLogic extends Component throw new BadRequestHttpException('订单状态异常'); } if ($order->shipping_type === Order::SHIPPING_TYPE_PICKED_UP) { - if (!isset($data['consignee']) || !isset($data['phone']) - || empty($data['consignee']) || empty($data['phone'])) { - throw new BadRequestHttpException('(联系人)参数无效'); + if ($data['consignee'] ?? false || $data['phone'] ?? false) { + throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); } $order->consignee = $data['consignee']; $order->phone = $data['phone']; @@ -173,15 +222,35 @@ class OrderLogic extends Component if (isset($data['remarks'])) { $order->remarks = $data['remarks']; } + Helper::delCarts($this->getCartsIds($order)); //删除购物车对应商品 $order->status = Order::STATUS_NONPAYMENT; $this->updateStock($order, self::TYPE_SUB_STOCK); } + /** + * @param $order + * @return array + * 获取订单商品对应购物车商品id + */ + private function getCartsIds($order) + { + $allGoods = $this->findOrderGoods($order->id); + $ids = []; + foreach ($allGoods as $goods) { + $cart = Cart::findOne(['goods_id' => $goods->goods_id, 'user_id' => Yii::$app->user->getId()]); + if ($cart) { + $ids[] = $cart->id; + } + } + return $ids; + } + /** * @param Order $order * @throws BadRequestHttpException * @throws NotFoundHttpException * @throws ServerErrorHttpException + * 取消订单 */ private function cancel($order) { @@ -189,12 +258,13 @@ class OrderLogic extends Component throw new BadRequestHttpException('订单状态异常'); } $order->status = Order::STATUS_CANCEL; - $this->updateStock($order, self::TYPE_ADD_STOCK); + $this->updateStock($order, self::TYPE_ADD_STOCK);/*更新库存*/ } /** * @param Order $order * @throws BadRequestHttpException + * 确认收货 */ private function take($order) { @@ -210,6 +280,7 @@ class OrderLogic extends Component * @throws BadRequestHttpException * @throws NotFoundHttpException * @throws ServerErrorHttpException + * 更新库存 */ private function updateStock($id, $type) { @@ -234,57 +305,27 @@ class OrderLogic extends Component } /** - * @param $originId - * @param $count - * @param $skuId - * @return bool - * @throws BadRequestHttpException + * @param array $cartIds 购物车商品id + * @param int $id 订单id + * @throws Exception * @throws NotFoundHttpException - * 创建订单并添加商品 + * 通过购物车添加商品 */ - public function create($originId, $count, $skuId) + private function addGoodsByCart($cartIds, $id) { - $type = Yii::$app->request->getQueryParam('type'); - if (empty($type) || ($type == self::TYPE_ADD_GOODS_CART && empty($originId)) || - ($type == self::TYPE_ADD_GOODS_PURCHASE && (empty($count) || empty($originId)))) { - throw new BadRequestHttpException(Helper::REQUEST_BAD_PARAMS); - } - if ($type == self::TYPE_ADD_GOODS_PURCHASE) { - $goodsId = $originId; - } else { - $cart = Cart::findOne($originId); + foreach ($cartIds as $cartId) { + $cart = Cart::findOne($cartId); if (!$cart) { throw new NotFoundHttpException('购物车未找到'); } - $goodsId = $cart->goods_id; - $skuId = $cart->sku_id; - $count = $cart->goods_count; - } - /*检查库存*/ - Helper::checkStock($goodsId, $count, $skuId); - $tra = Yii::$app->db->beginTransaction(); - try { - $order = new Order(); -// $order->user_id = Yii::$app->user->getId(); - $order->user_id = 1; - $order->type = Order::TYPE_SHOPPING; - if (!$order->save()) { - throw new ServerErrorHttpException('服务器创建订单失败'); - } - $this->addGoods($order->id, $goodsId, $skuId, $count);/*创建订单商品*/ - $this->saveGoodsInfo($order);/*保存订单商品信息*/ - $tra->commit(); - Helper::createdResponse($order, $this->viewAction); - return $order; - } catch (\Exception $e) { - $tra->rollBack(); - throw $e; + $this->addGoods($id, $cart->goods_id, $cart->sku_id, $cart->goods_count); } } /** * @param Order $order - * @throws ServerErrorHttpException + * @throws Exception + * 保存商品总价格和总数量信息到 */ private function saveGoodsInfo($order) { @@ -294,26 +335,23 @@ class OrderLogic extends Component $order->goods_count += $goods->goods_count; } if (!$order->save()) { - throw new ServerErrorHttpException('服务器创建订单失败'); + throw new Exception('服务器创建订单失败'); } } /** - * @param int $id + * @param $id * @param int $goodsId - * @param int $skuId - * @param int $count + * @param $skuId + * @param $count + * @throws Exception * @throws NotFoundHttpException - * @throws ServerErrorHttpException - * 创建订单商品 + * 添加商品到订单 */ private function addGoods($id, $goodsId, $skuId, $count) { $goods = Goods::findOne($goodsId); - if (!$goods) { - throw new NotFoundHttpException('商品未找到'); - } $orderGoods = new OrderGoods(); $orderGoods->order_id = $id; $orderGoods->goods_id = $goodsId; @@ -322,15 +360,15 @@ class OrderLogic extends Component $orderGoods->goods_count = $count; $orderGoods->goods_img = $goods->image; $orderGoods->goods_name = $goods->name; - $orderGoods->price = Helper::countPrice($goodsId, $skuId); + $orderGoods->price = Helper::goodsPrice($goodsId, $skuId); if (!$orderGoods->save()) { - throw new ServerErrorHttpException('服务器添加订单商品失败'); + throw new Exception('服务器添加订单商品失败'); } } /** * @return array|Order|null - * 获取订单 + * 根据id获取订单 */ private function findOrder() { @@ -344,6 +382,7 @@ class OrderLogic extends Component /** * @param $id * @return array|ActiveRecord[]|OrderGoods[] + * 根据订单 id 获取所有订单商品 */ private function findOrderGoods($id) { diff --git a/backend/config/main.php b/backend/config/main.php index fb8584d..e5d61e8 100644 --- a/backend/config/main.php +++ b/backend/config/main.php @@ -11,7 +11,13 @@ return [ 'bootstrap' => ['log'], 'modules' => [ 'goods' => [ - 'class' => 'goods\Module', + 'class' => '\backend\modules\goods\Module', + ], + 'file' => [ + 'class' => '\backend\modules\file\Module', + ], + 'shop' => [ + 'class' => '\backend\modules\shop\Module', ], ], 'components' => [ @@ -22,7 +28,7 @@ return [ 'csrfParam' => '_csrf-api', ], 'user' => [ - 'identityClass' => 'backend\models\User', + 'identityClass' => 'common\models\User', 'enableAutoLogin' => true, 'identityCookie' => ['name' => '_identity-backend', 'httpOnly' => true], ], diff --git a/backend/models/LoginForm.php b/backend/models/LoginForm.php index 9c1b03f..f1014f2 100644 --- a/backend/models/LoginForm.php +++ b/backend/models/LoginForm.php @@ -4,6 +4,7 @@ namespace backend\models; use Yii; use yii\base\Model; +use common\models\User; /** * Login form diff --git a/backend/modules/file/Module.php b/backend/modules/file/Module.php new file mode 100644 index 0000000..937b3f6 --- /dev/null +++ b/backend/modules/file/Module.php @@ -0,0 +1,24 @@ + '创建时间', ]; } - + /** - * @author linyao - * @email 602604991@qq.com - * @created Nov 8, 2019 - * - * 行为存储创建时间和更新时间 - */ + * @author linyao + * @email 602604991@qq.com + * @created Nov 8, 2019 + * + * 行为存储创建时间和更新时间 + */ public function behaviors() { return [ @@ -84,7 +86,7 @@ class File extends \yii\db\ActiveRecord 'class' => TimestampBehavior::className(), 'createdAtAttribute' => 'created_at', 'updatedAtAttribute' => 'updated_at', - 'value' => function() { + 'value' => function () { return time(); }, ], diff --git a/backend/models/ars/TemFile.php b/backend/modules/file/models/ars/TemFile.php old mode 100644 new mode 100755 similarity index 97% rename from backend/models/ars/TemFile.php rename to backend/modules/file/models/ars/TemFile.php index 14e14f6..c8b02fb --- a/backend/models/ars/TemFile.php +++ b/backend/modules/file/models/ars/TemFile.php @@ -1,6 +1,6 @@ request->get('data'); $file_name = Yii::$app->request->get('fileName')[0]; if ($data['status'] == true) { - $model = new \backend\models\ars\TemFile(); + $model = new \backend\modules\file\models\ars\TemFile(); $model->user_id = Yii::$app->user->identity->id; $model->name = $file_name; - $file_manager = new \backend\logic\file\FileManager(); - $type_res = $file_manager->searchType(\backend\logic\file\FileManager::$extension, pathinfo($data['path'])['extension']); + $file_manager = new \backend\modules\file\logic\file\FileManager(); + $type_res = $file_manager->searchType(\backend\modules\file\logic\file\FileManager::$extension, pathinfo($data['path'])['extension']); if ($type_res['status']) { $model->type = $type_res['type']; } @@ -222,22 +218,17 @@ class CategoryController extends Controller */ public function actionImgIdDel() { - //判断该类是否存在 - if(!class_exists('\backend\models\ars\TemFile') || !class_exists('\backend\models\ars\File')){ - return ''; - } - $img_id = Yii::$app->request->get('imgid'); $img_id_arr = explode(',', $img_id); if(isset(Yii::$app->request->get('data')['alias'])) { $alias = Yii::$app->request->get('data')['alias']; - $tem_file = \backend\models\ars\TemFile::findOne(['alias' => $alias]); + $tem_file = \backend\modules\file\models\ars\TemFile::findOne(['alias' => $alias]); if ($tem_file) { $img_id_arr = array_diff($img_id_arr, [$tem_file->id]); } }else{ foreach (Yii::$app->request->get() as $key => $value) { - $tem_file = \backend\models\ars\File::findOne(['alias' => $value]); + $tem_file = \backend\modules\file\models\ars\File::findOne(['alias' => $value]); if ($tem_file) { $img_id_arr = array_diff($img_id_arr, [$tem_file->id]); } @@ -253,14 +244,9 @@ class CategoryController extends Controller */ public function actionImageFile() { - //判断该类是否存在 - if(!class_exists('\backend\models\ars\File')){ - return false; - } - $file_id_str = Yii::$app->request->get('fileidstr'); $file_id_arr = explode(',', $file_id_str); - $data = \backend\models\ars\File::find()->where(['id' => $file_id_arr])->all(); + $data = \backend\modules\file\models\ars\File::find()->where(['id' => $file_id_arr])->all(); $res = array(); if($data) { $i = 0; diff --git a/goods/controllers/GoodsController.php b/backend/modules/goods/controllers/GoodsController.php old mode 100644 new mode 100755 similarity index 88% rename from goods/controllers/GoodsController.php rename to backend/modules/goods/controllers/GoodsController.php index bc0b2dd..e0d4833 --- a/goods/controllers/GoodsController.php +++ b/backend/modules/goods/controllers/GoodsController.php @@ -1,22 +1,22 @@ request->get('data'); $file_name = Yii::$app->request->get('fileName')[0]; if ($data['status'] == true) { - $model = new \backend\models\ars\TemFile(); + $model = new \backend\modules\file\models\ars\TemFile(); $model->user_id = Yii::$app->user->identity->id; $model->name = $file_name; - $file_manager = new \backend\logic\file\FileManager(); - $type_res = $file_manager->searchType(\backend\logic\file\FileManager::$extension, pathinfo($data['path'])['extension']); + $file_manager = new \backend\modules\file\logic\file\FileManager(); + $type_res = $file_manager->searchType(\backend\modules\file\logic\file\FileManager::$extension, pathinfo($data['path'])['extension']); if ($type_res['status']) { $model->type = $type_res['type']; } @@ -232,22 +228,17 @@ class GoodsController extends Controller */ public function actionImgIdDel() { - //判断该类是否存在 - if(!class_exists('\backend\models\ars\TemFile') || !class_exists('\backend\models\ars\File')){ - return ''; - } - $img_id = Yii::$app->request->get('imgid'); $img_id_arr = explode(',', $img_id); if(isset(Yii::$app->request->get('data')['alias'])) { $alias = Yii::$app->request->get('data')['alias']; - $tem_file = \backend\models\ars\TemFile::findOne(['alias' => $alias]); + $tem_file = \backend\modules\file\models\ars\TemFile::findOne(['alias' => $alias]); if ($tem_file) { $img_id_arr = array_diff($img_id_arr, [$tem_file->id]); } }else{ foreach (Yii::$app->request->get() as $key => $value) { - $tem_file = \backend\models\ars\File::findOne(['alias' => $value]); + $tem_file = \backend\modules\file\models\ars\File::findOne(['alias' => $value]); if ($tem_file) { $img_id_arr = array_diff($img_id_arr, [$tem_file->id]); } @@ -263,18 +254,13 @@ class GoodsController extends Controller */ public function actionImageFile() { - //判断该类是否存在 - if(!class_exists('\backend\models\ars\File')){ - return false; - } - $rule_verify = Yii::$app->request->get('ruleverify'); $file_id_str = Yii::$app->request->get('fileidstr'); $file_id_arr = explode(',', $file_id_str); if ($rule_verify == 1) { - $data = \backend\models\ars\TemFile::find()->where(['id' => $file_id_arr])->all(); + $data = \backend\modules\file\models\ars\TemFile::find()->where(['id' => $file_id_arr])->all(); } else { - $data = \backend\models\ars\File::find()->where(['id' => $file_id_arr])->all(); + $data = \backend\modules\file\models\ars\File::find()->where(['id' => $file_id_arr])->all(); } $res = array(); if($data) { diff --git a/goods/controllers/ShopCategoryController.php b/backend/modules/goods/controllers/ShopCategoryController.php old mode 100644 new mode 100755 similarity index 87% rename from goods/controllers/ShopCategoryController.php rename to backend/modules/goods/controllers/ShopCategoryController.php index 449f606..70d1515 --- a/goods/controllers/ShopCategoryController.php +++ b/backend/modules/goods/controllers/ShopCategoryController.php @@ -1,12 +1,12 @@ request->get('data'); $file_name = Yii::$app->request->get('fileName')[0]; if ($data['status'] == true) { - $model = new \backend\models\ars\TemFile(); + $model = new \backend\modules\file\models\ars\TemFile(); $model->user_id = Yii::$app->user->identity->id; $model->name = $file_name; - $file_manager = new \backend\logic\file\FileManager(); - $type_res = $file_manager->searchType(\backend\logic\file\FileManager::$extension, pathinfo($data['path'])['extension']); + $file_manager = new \backend\modules\file\logic\file\FileManager(); + $type_res = $file_manager->searchType(\backend\modules\file\logic\file\FileManager::$extension, pathinfo($data['path'])['extension']); if ($type_res['status']) { $model->type = $type_res['type']; } @@ -233,22 +229,17 @@ class ShopCategoryController extends Controller */ public function actionImgIdDel() { - //判断该类是否存在 - if(!class_exists('\backend\models\ars\TemFile') || !class_exists('\backend\models\ars\File')){ - return ''; - } - $img_id = Yii::$app->request->get('imgid'); $img_id_arr = explode(',', $img_id); if(isset(Yii::$app->request->get('data')['alias'])) { $alias = Yii::$app->request->get('data')['alias']; - $tem_file = \backend\models\ars\TemFile::findOne(['alias' => $alias]); + $tem_file = \backend\modules\file\models\ars\TemFile::findOne(['alias' => $alias]); if ($tem_file) { $img_id_arr = array_diff($img_id_arr, [$tem_file->id]); } }else{ foreach (Yii::$app->request->get() as $key => $value) { - $tem_file = \backend\models\ars\File::findOne(['alias' => $value]); + $tem_file = \backend\modules\file\models\ars\File::findOne(['alias' => $value]); if ($tem_file) { $img_id_arr = array_diff($img_id_arr, [$tem_file->id]); } @@ -264,14 +255,9 @@ class ShopCategoryController extends Controller */ public function actionImageFile() { - //判断该类是否存在 - if(!class_exists('\backend\models\ars\File')){ - return false; - } - $file_id_str = Yii::$app->request->get('fileidstr'); $file_id_arr = explode(',', $file_id_str); - $data = \backend\models\ars\File::find()->where(['id' => $file_id_arr])->all(); + $data = \backend\modules\file\models\ars\File::find()->where(['id' => $file_id_arr])->all(); $res = array(); if($data) { $i = 0; diff --git a/goods/controllers/SupplierController.php b/backend/modules/goods/controllers/SupplierController.php old mode 100644 new mode 100755 similarity index 96% rename from goods/controllers/SupplierController.php rename to backend/modules/goods/controllers/SupplierController.php index fce87bf..80684f4 --- a/goods/controllers/SupplierController.php +++ b/backend/modules/goods/controllers/SupplierController.php @@ -1,10 +1,10 @@ false, 'info' => '操作失败']; - } - //需要新建的文件id $createFileIdArr = array_diff($newFileIdArr, $oldFileIdArr); //创建文件 - $class = new \backend\logic\file\FileManager(); + $class = new \backend\modules\file\logic\file\FileManager(); $createFileRes = $class->saveTemFileToFile($createFileIdArr, $goodsModel->id, $fileType); //需要删除的文件id @@ -321,7 +316,7 @@ class GoodsManager /** * @param $attrId * @param $goodsId - * @return GoodsAttr[]|GoodsSku[]|array|File[]|\backend\models\ars\TemFile[]|\yii\db\ActiveRecord[] + * @return GoodsAttr[]|GoodsSku[]|array|File[]|\backend\modules\file\models\ars\TemFile[]|\yii\db\ActiveRecord[] * 获取属性值 */ public static function getAttrValue($attrId, $goodsId) diff --git a/goods/migrations/m191119_021851_create_table_atg_shop_category.php b/backend/modules/goods/migrations/m191119_021851_create_table_atg_shop_category.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_021851_create_table_atg_shop_category.php rename to backend/modules/goods/migrations/m191119_021851_create_table_atg_shop_category.php diff --git a/goods/migrations/m191119_022641_create_table_atg_category.php b/backend/modules/goods/migrations/m191119_022641_create_table_atg_category.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_022641_create_table_atg_category.php rename to backend/modules/goods/migrations/m191119_022641_create_table_atg_category.php diff --git a/goods/migrations/m191119_022939_create_table_atg_attribute.php b/backend/modules/goods/migrations/m191119_022939_create_table_atg_attribute.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_022939_create_table_atg_attribute.php rename to backend/modules/goods/migrations/m191119_022939_create_table_atg_attribute.php diff --git a/goods/migrations/m191119_023115_create_table_atg_goods_attr.php b/backend/modules/goods/migrations/m191119_023115_create_table_atg_goods_attr.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_023115_create_table_atg_goods_attr.php rename to backend/modules/goods/migrations/m191119_023115_create_table_atg_goods_attr.php diff --git a/goods/migrations/m191119_024029_create_table_atg_brand.php b/backend/modules/goods/migrations/m191119_024029_create_table_atg_brand.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_024029_create_table_atg_brand.php rename to backend/modules/goods/migrations/m191119_024029_create_table_atg_brand.php diff --git a/goods/migrations/m191119_024205_create_table_atg_goods.php b/backend/modules/goods/migrations/m191119_024205_create_table_atg_goods.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_024205_create_table_atg_goods.php rename to backend/modules/goods/migrations/m191119_024205_create_table_atg_goods.php diff --git a/goods/migrations/m191119_024345_create_table_atg_goods_sku.php b/backend/modules/goods/migrations/m191119_024345_create_table_atg_goods_sku.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_024345_create_table_atg_goods_sku.php rename to backend/modules/goods/migrations/m191119_024345_create_table_atg_goods_sku.php diff --git a/goods/migrations/m191119_025607_create_table_atg_supplier.php b/backend/modules/goods/migrations/m191119_025607_create_table_atg_supplier.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_025607_create_table_atg_supplier.php rename to backend/modules/goods/migrations/m191119_025607_create_table_atg_supplier.php diff --git a/goods/migrations/m191119_025843_create_table_atg_filter_attr.php b/backend/modules/goods/migrations/m191119_025843_create_table_atg_filter_attr.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191119_025843_create_table_atg_filter_attr.php rename to backend/modules/goods/migrations/m191119_025843_create_table_atg_filter_attr.php diff --git a/goods/migrations/m191125_012449_update_column_icon_type_in_atg_category.php b/backend/modules/goods/migrations/m191125_012449_update_column_icon_type_in_atg_category.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191125_012449_update_column_icon_type_in_atg_category.php rename to backend/modules/goods/migrations/m191125_012449_update_column_icon_type_in_atg_category.php diff --git a/goods/migrations/m191125_083820_drop_column_icon_type_in_table_atg_category.php b/backend/modules/goods/migrations/m191125_083820_drop_column_icon_type_in_table_atg_category.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191125_083820_drop_column_icon_type_in_table_atg_category.php rename to backend/modules/goods/migrations/m191125_083820_drop_column_icon_type_in_table_atg_category.php diff --git a/goods/migrations/m191125_084547_update_column_pid_and_icon_in_table_atg_category.php b/backend/modules/goods/migrations/m191125_084547_update_column_pid_and_icon_in_table_atg_category.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191125_084547_update_column_pid_and_icon_in_table_atg_category.php rename to backend/modules/goods/migrations/m191125_084547_update_column_pid_and_icon_in_table_atg_category.php diff --git a/goods/migrations/m191125_104137_drop_column_icon_type_in_table_atg_shop_category.php b/backend/modules/goods/migrations/m191125_104137_drop_column_icon_type_in_table_atg_shop_category.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191125_104137_drop_column_icon_type_in_table_atg_shop_category.php rename to backend/modules/goods/migrations/m191125_104137_drop_column_icon_type_in_table_atg_shop_category.php diff --git a/goods/migrations/m191125_104510_update_column_pid_and_icon_in_table_atg_shop_category.php b/backend/modules/goods/migrations/m191125_104510_update_column_pid_and_icon_in_table_atg_shop_category.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191125_104510_update_column_pid_and_icon_in_table_atg_shop_category.php rename to backend/modules/goods/migrations/m191125_104510_update_column_pid_and_icon_in_table_atg_shop_category.php diff --git a/goods/migrations/m191127_114228_add_column_is_manaul_in_table_atg_goods_sku.php b/backend/modules/goods/migrations/m191127_114228_add_column_is_manaul_in_table_atg_goods_sku.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191127_114228_add_column_is_manaul_in_table_atg_goods_sku.php rename to backend/modules/goods/migrations/m191127_114228_add_column_is_manaul_in_table_atg_goods_sku.php diff --git a/goods/migrations/m191129_010349_add_column_sku_mode_in_atg_goods.php b/backend/modules/goods/migrations/m191129_010349_add_column_sku_mode_in_atg_goods.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191129_010349_add_column_sku_mode_in_atg_goods.php rename to backend/modules/goods/migrations/m191129_010349_add_column_sku_mode_in_atg_goods.php diff --git a/goods/migrations/m191129_020131_add_columns_goods_id_and_attr_id_in_table_atg_goods_attr.php b/backend/modules/goods/migrations/m191129_020131_add_columns_goods_id_and_attr_id_in_table_atg_goods_attr.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191129_020131_add_columns_goods_id_and_attr_id_in_table_atg_goods_attr.php rename to backend/modules/goods/migrations/m191129_020131_add_columns_goods_id_and_attr_id_in_table_atg_goods_attr.php diff --git a/goods/migrations/m191130_004933_add_column_cat_id_in_table_atg_attribute.php b/backend/modules/goods/migrations/m191130_004933_add_column_cat_id_in_table_atg_attribute.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191130_004933_add_column_cat_id_in_table_atg_attribute.php rename to backend/modules/goods/migrations/m191130_004933_add_column_cat_id_in_table_atg_attribute.php diff --git a/goods/migrations/m191202_082041_drop_columns_in_table_atg_goods_sku.php b/backend/modules/goods/migrations/m191202_082041_drop_columns_in_table_atg_goods_sku.php old mode 100644 new mode 100755 similarity index 100% rename from goods/migrations/m191202_082041_drop_columns_in_table_atg_goods_sku.php rename to backend/modules/goods/migrations/m191202_082041_drop_columns_in_table_atg_goods_sku.php diff --git a/goods/migrations/sql/goods.sql b/backend/modules/goods/migrations/sql/goods.sql similarity index 100% rename from goods/migrations/sql/goods.sql rename to backend/modules/goods/migrations/sql/goods.sql diff --git a/goods/migrations/sql/goods_sku.sql b/backend/modules/goods/migrations/sql/goods_sku.sql similarity index 100% rename from goods/migrations/sql/goods_sku.sql rename to backend/modules/goods/migrations/sql/goods_sku.sql diff --git a/goods/models/ars/Attribute.php b/backend/modules/goods/models/ars/Attribute.php old mode 100644 new mode 100755 similarity index 96% rename from goods/models/ars/Attribute.php rename to backend/modules/goods/models/ars/Attribute.php index b2bddad..ad8870f --- a/goods/models/ars/Attribute.php +++ b/backend/modules/goods/models/ars/Attribute.php @@ -1,10 +1,10 @@ 20], ['phone', 'filter', 'filter' => 'trim'], ['phone','match','pattern'=>'/^[1][34578][0-9]{9}$/'], - ['phone', 'unique', 'targetClass' => '\goods\models\ars\Supplier', 'message' => '手机号已被使用'], + ['phone', 'unique', 'targetClass' => '\backend\modules\goods\models\ars\Supplier', 'message' => '手机号已被使用'], ]; } diff --git a/goods/models/searchs/AttributeSearch.php b/backend/modules/goods/models/searchs/AttributeSearch.php old mode 100644 new mode 100755 similarity index 96% rename from goods/models/searchs/AttributeSearch.php rename to backend/modules/goods/models/searchs/AttributeSearch.php index 7474d17..300dbce --- a/goods/models/searchs/AttributeSearch.php +++ b/backend/modules/goods/models/searchs/AttributeSearch.php @@ -1,14 +1,14 @@ diff --git a/goods/views/attribute/_search.php b/backend/modules/goods/views/attribute/_search.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/attribute/_search.php rename to backend/modules/goods/views/attribute/_search.php diff --git a/goods/views/attribute/create.php b/backend/modules/goods/views/attribute/create.php old mode 100644 new mode 100755 similarity index 84% rename from goods/views/attribute/create.php rename to backend/modules/goods/views/attribute/create.php index 4d16c28..0c86165 --- a/goods/views/attribute/create.php +++ b/backend/modules/goods/views/attribute/create.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Attribute */ +/* @var $model backend\modules\goods\models\ars\Attribute */ $this->title = '创建规格'; $this->params['breadcrumbs'][] = ['label' => '规格管理', 'url' => ['index']]; diff --git a/goods/views/attribute/index.php b/backend/modules/goods/views/attribute/index.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/attribute/index.php rename to backend/modules/goods/views/attribute/index.php diff --git a/goods/views/attribute/update.php b/backend/modules/goods/views/attribute/update.php old mode 100644 new mode 100755 similarity index 87% rename from goods/views/attribute/update.php rename to backend/modules/goods/views/attribute/update.php index 24b0135..05c1380 --- a/goods/views/attribute/update.php +++ b/backend/modules/goods/views/attribute/update.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Attribute */ +/* @var $model backend\modules\goods\models\ars\Attribute */ $this->title = '编辑规格: ' . $model->name; $this->params['breadcrumbs'][] = ['label' => '规格管理', 'url' => ['index']]; diff --git a/goods/views/attribute/view.php b/backend/modules/goods/views/attribute/view.php old mode 100644 new mode 100755 similarity index 92% rename from goods/views/attribute/view.php rename to backend/modules/goods/views/attribute/view.php index a803a39..230da51 --- a/goods/views/attribute/view.php +++ b/backend/modules/goods/views/attribute/view.php @@ -4,7 +4,7 @@ use yii\helpers\Html; use yii\widgets\DetailView; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Attribute */ +/* @var $model backend\modules\goods\models\ars\Attribute */ $this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => '规格管理', 'url' => ['index']]; diff --git a/goods/views/brand/_form.php b/backend/modules/goods/views/brand/_form.php old mode 100644 new mode 100755 similarity index 89% rename from goods/views/brand/_form.php rename to backend/modules/goods/views/brand/_form.php index ce5517d..a07f7d0 --- a/goods/views/brand/_form.php +++ b/backend/modules/goods/views/brand/_form.php @@ -4,7 +4,7 @@ use yii\helpers\Html; use yii\bootstrap4\ActiveForm; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Brand */ +/* @var $model backend\modules\goods\models\ars\Brand */ /* @var $form yii\widgets\ActiveForm */ ?> diff --git a/goods/views/brand/_search.php b/backend/modules/goods/views/brand/_search.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/brand/_search.php rename to backend/modules/goods/views/brand/_search.php diff --git a/goods/views/brand/create.php b/backend/modules/goods/views/brand/create.php old mode 100644 new mode 100755 similarity index 85% rename from goods/views/brand/create.php rename to backend/modules/goods/views/brand/create.php index 617b6a2..ca18485 --- a/goods/views/brand/create.php +++ b/backend/modules/goods/views/brand/create.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Brand */ +/* @var $model backend\modules\goods\models\ars\Brand */ $this->title = '创建品牌'; $this->params['breadcrumbs'][] = ['label' => '品牌管理', 'url' => ['index']]; diff --git a/goods/views/brand/index.php b/backend/modules/goods/views/brand/index.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/brand/index.php rename to backend/modules/goods/views/brand/index.php diff --git a/goods/views/brand/update.php b/backend/modules/goods/views/brand/update.php old mode 100644 new mode 100755 similarity index 88% rename from goods/views/brand/update.php rename to backend/modules/goods/views/brand/update.php index 8b9d0b8..1d4b5bf --- a/goods/views/brand/update.php +++ b/backend/modules/goods/views/brand/update.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Brand */ +/* @var $model backend\modules\goods\models\ars\Brand */ $this->title = '编辑品牌: ' . $model->name; $this->params['breadcrumbs'][] = ['label' => '品牌管理', 'url' => ['index']]; diff --git a/goods/views/brand/view.php b/backend/modules/goods/views/brand/view.php old mode 100644 new mode 100755 similarity index 91% rename from goods/views/brand/view.php rename to backend/modules/goods/views/brand/view.php index 2f0c1cb..9d9b966 --- a/goods/views/brand/view.php +++ b/backend/modules/goods/views/brand/view.php @@ -4,7 +4,7 @@ use yii\helpers\Html; use yii\widgets\DetailView; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Brand */ +/* @var $model backend\modules\goods\models\ars\Brand */ $this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => '品牌管理', 'url' => ['index']]; diff --git a/goods/views/category/_form.php b/backend/modules/goods/views/category/_form.php old mode 100644 new mode 100755 similarity index 92% rename from goods/views/category/_form.php rename to backend/modules/goods/views/category/_form.php index 2adebff..87b09b9 --- a/goods/views/category/_form.php +++ b/backend/modules/goods/views/category/_form.php @@ -4,10 +4,10 @@ use yii\helpers\Html; use yii\bootstrap4\ActiveForm; use blobt\widgets\Icheck; use yii\helpers\Url; -use goods\models\ars\Category; +use backend\modules\goods\models\ars\Category; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Category */ +/* @var $model backend\modules\goods\models\ars\Category */ /* @var $form yii\widgets\ActiveForm */ ?> diff --git a/goods/views/category/_search.php b/backend/modules/goods/views/category/_search.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/category/_search.php rename to backend/modules/goods/views/category/_search.php diff --git a/goods/views/category/create.php b/backend/modules/goods/views/category/create.php old mode 100644 new mode 100755 similarity index 85% rename from goods/views/category/create.php rename to backend/modules/goods/views/category/create.php index 8584d6c..d2bf93a --- a/goods/views/category/create.php +++ b/backend/modules/goods/views/category/create.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Category */ +/* @var $model backend\modules\goods\models\ars\Category */ $this->title = '创建后台商品分类'; $this->params['breadcrumbs'][] = ['label' => '后台商品分类', 'url' => ['index']]; diff --git a/goods/views/category/index.php b/backend/modules/goods/views/category/index.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/category/index.php rename to backend/modules/goods/views/category/index.php diff --git a/goods/views/category/update.php b/backend/modules/goods/views/category/update.php old mode 100644 new mode 100755 similarity index 88% rename from goods/views/category/update.php rename to backend/modules/goods/views/category/update.php index e4a77c6..3fe083b --- a/goods/views/category/update.php +++ b/backend/modules/goods/views/category/update.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Category */ +/* @var $model backend\modules\goods\models\ars\Category */ $this->title = '编辑后台商品分类: ' . $model->name; $this->params['breadcrumbs'][] = ['label' => '后台商品分类', 'url' => ['index']]; diff --git a/goods/views/category/view.php b/backend/modules/goods/views/category/view.php old mode 100644 new mode 100755 similarity index 82% rename from goods/views/category/view.php rename to backend/modules/goods/views/category/view.php index def1c8c..e9a6ccf --- a/goods/views/category/view.php +++ b/backend/modules/goods/views/category/view.php @@ -4,7 +4,7 @@ use yii\helpers\Html; use yii\widgets\DetailView; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Category */ +/* @var $model backend\modules\goods\models\ars\Category */ $this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => '后台商品分类', 'url' => ['index']]; @@ -30,7 +30,7 @@ $this->params['breadcrumbs'][] = $this->title; [ 'attribute' => 'is_show', 'value' => function ($model) { - return $model->is_show == \goods\models\ars\Category::IS_SHOW_DISPLAY ? '显示':'隐藏'; + return $model->is_show == \backend\modules\goods\models\ars\Category::IS_SHOW_DISPLAY ? '显示':'隐藏'; } ], 'created_at:datetime', diff --git a/goods/views/config/index.php b/backend/modules/goods/views/config/index.php similarity index 100% rename from goods/views/config/index.php rename to backend/modules/goods/views/config/index.php diff --git a/goods/views/goods/_form.php b/backend/modules/goods/views/goods/_form.php old mode 100644 new mode 100755 similarity index 93% rename from goods/views/goods/_form.php rename to backend/modules/goods/views/goods/_form.php index 4de114b..564faa4 --- a/goods/views/goods/_form.php +++ b/backend/modules/goods/views/goods/_form.php @@ -2,14 +2,14 @@ use yii\helpers\Html; use yii\bootstrap4\ActiveForm; -use goods\models\ars\Category; -use goods\models\ars\Brand; -use goods\models\ars\ShopCategory; -use goods\models\ars\Supplier; +use backend\modules\goods\models\ars\Category; +use backend\modules\goods\models\ars\Brand; +use backend\modules\goods\models\ars\ShopCategory; +use backend\modules\goods\models\ars\Supplier; use yii\helpers\Url; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Goods */ +/* @var $model backend\modules\goods\models\ars\Goods */ /* @var $form yii\widgets\ActiveForm */ ?> diff --git a/goods/views/goods/_search.php b/backend/modules/goods/views/goods/_search.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/goods/_search.php rename to backend/modules/goods/views/goods/_search.php diff --git a/goods/views/goods/attribute.php b/backend/modules/goods/views/goods/attribute.php similarity index 87% rename from goods/views/goods/attribute.php rename to backend/modules/goods/views/goods/attribute.php index 3ce4f45..37084ff 100755 --- a/goods/views/goods/attribute.php +++ b/backend/modules/goods/views/goods/attribute.php @@ -1,7 +1,7 @@ title = '创建商品'; $this->params['breadcrumbs'][] = ['label' => '商品列表', 'url' => ['index']]; diff --git a/goods/views/goods/filter_attribute.php b/backend/modules/goods/views/goods/filter_attribute.php similarity index 87% rename from goods/views/goods/filter_attribute.php rename to backend/modules/goods/views/goods/filter_attribute.php index 55eab29..582e366 100755 --- a/goods/views/goods/filter_attribute.php +++ b/backend/modules/goods/views/goods/filter_attribute.php @@ -1,7 +1,7 @@ field($model, 'cat_id')->dropDownList(Category::modelColumn(), ['prompt' => '请选择', 'disabled' => $judgeGoodsCategory]) ?> diff --git a/goods/views/goods/index.php b/backend/modules/goods/views/goods/index.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/goods/index.php rename to backend/modules/goods/views/goods/index.php diff --git a/goods/views/goods/new_editor.php b/backend/modules/goods/views/goods/new_editor.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/goods/new_editor.php rename to backend/modules/goods/views/goods/new_editor.php diff --git a/goods/views/goods/picture.php b/backend/modules/goods/views/goods/picture.php old mode 100644 new mode 100755 similarity index 95% rename from goods/views/goods/picture.php rename to backend/modules/goods/views/goods/picture.php index 984211d..eb0cec4 --- a/goods/views/goods/picture.php +++ b/backend/modules/goods/views/goods/picture.php @@ -3,7 +3,7 @@ use yii\helpers\Url; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Goods */ +/* @var $model backend\modules\goods\models\ars\Goods */ /* @var $form yii\widgets\ActiveForm */ ?> field($model, 'coverImageId')->hiddenInput()->label('') ?> diff --git a/goods/views/goods/sku_edit.php b/backend/modules/goods/views/goods/sku_edit.php old mode 100644 new mode 100755 similarity index 86% rename from goods/views/goods/sku_edit.php rename to backend/modules/goods/views/goods/sku_edit.php index c44f91a..2baa1aa --- a/goods/views/goods/sku_edit.php +++ b/backend/modules/goods/views/goods/sku_edit.php @@ -1,6 +1,6 @@ title = '添加SKU'; $this->params['breadcrumbs'][] = ['label' => '商品列表', 'url' => ['index']]; diff --git a/goods/views/goods/update.php b/backend/modules/goods/views/goods/update.php old mode 100644 new mode 100755 similarity index 97% rename from goods/views/goods/update.php rename to backend/modules/goods/views/goods/update.php index 1cdd317..da346ef --- a/goods/views/goods/update.php +++ b/backend/modules/goods/views/goods/update.php @@ -5,7 +5,7 @@ use yii\bootstrap4\ActiveForm; use kartik\tabs\TabsX; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Goods */ +/* @var $model backend\modules\goods\models\ars\Goods */ $this->title = '编辑商品: ' . $model->name; $this->params['breadcrumbs'][] = ['label' => '商品管理', 'url' => ['index']]; diff --git a/goods/views/goods/view.php b/backend/modules/goods/views/goods/view.php old mode 100644 new mode 100755 similarity index 96% rename from goods/views/goods/view.php rename to backend/modules/goods/views/goods/view.php index 5a2f7c5..89146a0 --- a/goods/views/goods/view.php +++ b/backend/modules/goods/views/goods/view.php @@ -1,12 +1,12 @@ title = $model->name; $this->params['breadcrumbs'][] = ['label' => '商品管理', 'url' => ['index']]; diff --git a/goods/views/shop-category/_form.php b/backend/modules/goods/views/shop-category/_form.php old mode 100644 new mode 100755 similarity index 91% rename from goods/views/shop-category/_form.php rename to backend/modules/goods/views/shop-category/_form.php index 0d6c1e6..c953a9f --- a/goods/views/shop-category/_form.php +++ b/backend/modules/goods/views/shop-category/_form.php @@ -4,12 +4,12 @@ use yii\helpers\Html; use yii\bootstrap4\ActiveForm; use blobt\widgets\Icheck; use yii\helpers\Url; -use goods\models\ars\Attribute; +use backend\modules\goods\models\ars\Attribute; use linyao\widgets\Select2; -use goods\models\ars\ShopCategory; +use backend\modules\goods\models\ars\ShopCategory; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\ShopCategory */ +/* @var $model backend\modules\goods\models\ars\ShopCategory */ /* @var $form yii\widgets\ActiveForm */ ?> diff --git a/goods/views/shop-category/_search.php b/backend/modules/goods/views/shop-category/_search.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/shop-category/_search.php rename to backend/modules/goods/views/shop-category/_search.php diff --git a/goods/views/shop-category/create.php b/backend/modules/goods/views/shop-category/create.php old mode 100644 new mode 100755 similarity index 84% rename from goods/views/shop-category/create.php rename to backend/modules/goods/views/shop-category/create.php index c6bb5d5..1963d89 --- a/goods/views/shop-category/create.php +++ b/backend/modules/goods/views/shop-category/create.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\ShopCategory */ +/* @var $model backend\modules\goods\models\ars\ShopCategory */ $this->title = '创建前端商品分类'; $this->params['breadcrumbs'][] = ['label' => '前端商品分类', 'url' => ['index']]; diff --git a/goods/views/shop-category/index.php b/backend/modules/goods/views/shop-category/index.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/shop-category/index.php rename to backend/modules/goods/views/shop-category/index.php diff --git a/goods/views/shop-category/update.php b/backend/modules/goods/views/shop-category/update.php old mode 100644 new mode 100755 similarity index 87% rename from goods/views/shop-category/update.php rename to backend/modules/goods/views/shop-category/update.php index 21c62cb..4a56469 --- a/goods/views/shop-category/update.php +++ b/backend/modules/goods/views/shop-category/update.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\ShopCategory */ +/* @var $model backend\modules\goods\models\ars\ShopCategory */ $this->title = '编辑前端商品分类: ' . $model->name; $this->params['breadcrumbs'][] = ['label' => '前端商品分类', 'url' => ['index']]; diff --git a/goods/views/shop-category/view.php b/backend/modules/goods/views/shop-category/view.php old mode 100644 new mode 100755 similarity index 91% rename from goods/views/shop-category/view.php rename to backend/modules/goods/views/shop-category/view.php index 2efdec0..5c05ef0 --- a/goods/views/shop-category/view.php +++ b/backend/modules/goods/views/shop-category/view.php @@ -2,11 +2,11 @@ use yii\helpers\Html; use yii\widgets\DetailView; -use goods\models\ars\ShopCategory; -use goods\models\ars\Attribute; +use backend\modules\goods\models\ars\ShopCategory; +use backend\modules\goods\models\ars\Attribute; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\ShopCategory */ +/* @var $model backend\modules\goods\models\ars\ShopCategory */ $this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => '前端商品分类', 'url' => ['index']]; diff --git a/goods/views/supplier/_form.php b/backend/modules/goods/views/supplier/_form.php old mode 100644 new mode 100755 similarity index 92% rename from goods/views/supplier/_form.php rename to backend/modules/goods/views/supplier/_form.php index ec1d23d..fccf803 --- a/goods/views/supplier/_form.php +++ b/backend/modules/goods/views/supplier/_form.php @@ -4,7 +4,7 @@ use yii\helpers\Html; use yii\bootstrap4\ActiveForm; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Supplier */ +/* @var $model backend\modules\goods\models\ars\Supplier */ /* @var $form yii\widgets\ActiveForm */ ?> diff --git a/goods/views/supplier/_search.php b/backend/modules/goods/views/supplier/_search.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/supplier/_search.php rename to backend/modules/goods/views/supplier/_search.php diff --git a/goods/views/supplier/create.php b/backend/modules/goods/views/supplier/create.php old mode 100644 new mode 100755 similarity index 84% rename from goods/views/supplier/create.php rename to backend/modules/goods/views/supplier/create.php index 2eb536e..608a85a --- a/goods/views/supplier/create.php +++ b/backend/modules/goods/views/supplier/create.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Supplier */ +/* @var $model backend\modules\goods\models\ars\Supplier */ $this->title = '创建供应商'; $this->params['breadcrumbs'][] = ['label' => '供应商管理', 'url' => ['index']]; diff --git a/goods/views/supplier/index.php b/backend/modules/goods/views/supplier/index.php old mode 100644 new mode 100755 similarity index 100% rename from goods/views/supplier/index.php rename to backend/modules/goods/views/supplier/index.php diff --git a/goods/views/supplier/update.php b/backend/modules/goods/views/supplier/update.php old mode 100644 new mode 100755 similarity index 88% rename from goods/views/supplier/update.php rename to backend/modules/goods/views/supplier/update.php index a9ac487..e23a549 --- a/goods/views/supplier/update.php +++ b/backend/modules/goods/views/supplier/update.php @@ -3,7 +3,7 @@ use yii\helpers\Html; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Supplier */ +/* @var $model backend\modules\goods\models\ars\Supplier */ $this->title = '编辑供应商: ' . $model->name; $this->params['breadcrumbs'][] = ['label' => '供应商管理', 'url' => ['index']]; diff --git a/goods/views/supplier/view.php b/backend/modules/goods/views/supplier/view.php old mode 100644 new mode 100755 similarity index 92% rename from goods/views/supplier/view.php rename to backend/modules/goods/views/supplier/view.php index 79cbe18..68a7689 --- a/goods/views/supplier/view.php +++ b/backend/modules/goods/views/supplier/view.php @@ -4,7 +4,7 @@ use yii\helpers\Html; use yii\widgets\DetailView; /* @var $this yii\web\View */ -/* @var $model goods\models\ars\Supplier */ +/* @var $model backend\modules\goods\models\ars\Supplier */ $this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => '供应商管理', 'url' => ['index']]; diff --git a/goods/web/GoodsAttributeAsset.php b/backend/modules/goods/web/GoodsAttributeAsset.php old mode 100644 new mode 100755 similarity index 78% rename from goods/web/GoodsAttributeAsset.php rename to backend/modules/goods/web/GoodsAttributeAsset.php index 8d28844..b249ae2 --- a/goods/web/GoodsAttributeAsset.php +++ b/backend/modules/goods/web/GoodsAttributeAsset.php @@ -1,6 +1,6 @@ calculation = ExpressTemplate::CALCULATION_NUMBER; - $model->basic_amount = 1; + $model->calculation_type = ExpressTemplate::CALCULATION_TYPE_NUMBER; + $model->basic_count = 1; $model->basic_price = '0.00'; if (Yii::$app->request->isPost) { @@ -90,6 +90,15 @@ class ExpressTemplateController extends Controller $cityIds = array_keys(Yii::$app->request->post('area')); $data['city'] = implode(',', $cityIds); $model->load($data, ''); + $model->basic_price *= 100; + $model->extra_price *= 100; + if ($model->calculation_type == ExpressTemplate::CALCULATION_TYPE_WEIGHT) { + $model->basic_count *= 10; + $model->extra_count *= 10; + } else { + $model->basic_count *= 1; + $model->extra_count *= 1; + } $model->save(); return $this->redirect('index'); } @@ -121,6 +130,12 @@ class ExpressTemplateController extends Controller public function actionUpdate($id) { $model = $this->findModel($id); + $model->basic_price /= 100; + $model->extra_price /= 100; + if ($model->calculation_type == ExpressTemplate::CALCULATION_TYPE_WEIGHT) { + $model->basic_count /= 10; + $model->extra_count /= 10; + } $data = Yii::$app->request->post('ExpressTemplate'); if ($data) { if (Yii::$app->request->post('area') == null) { diff --git a/backend/controllers/OrderController.php b/backend/modules/shop/controllers/OrderController.php similarity index 96% rename from backend/controllers/OrderController.php rename to backend/modules/shop/controllers/OrderController.php index 322a2f0..d18b007 100755 --- a/backend/controllers/OrderController.php +++ b/backend/modules/shop/controllers/OrderController.php @@ -1,10 +1,10 @@ dropColumn('ats_express_template', 'basic_amount'); + $this->dropColumn('ats_express_template', 'extra_amount'); + $this->dropColumn('ats_express_template', 'calculation'); + $this->addColumn('ats_express_template', 'basic_count', $this->integer(20)->defaultValue(null)->comment('基本数量')); + $this->addColumn('ats_express_template', 'extra_count', $this->integer(20)->defaultValue(null)->comment('续重数量')); + $this->addColumn('ats_express_template', 'calculation_type', $this->tinyInteger(2)->defaultValue(0)->comment('计算方式')); + } + + public function down() + { + $this->dropColumn('ats_express_template', 'basic_amount'); + $this->dropColumn('ats_express_template', 'extra_amount'); + $this->dropColumn('ats_express_template', 'calculation'); + $this->addColumn('ats_express_template', 'basic_amount', $this->integer(20)->defaultValue(null)->comment('基本数量')); + $this->addColumn('ats_express_template', 'extra_amount', $this->integer(20)->defaultValue(null)->comment('续重数量')); + $this->addColumn('ats_express_template', 'calculation', $this->tinyInteger(2)->defaultValue(0)->comment('计算方式')); + return true; + } +} diff --git a/backend/modules/shop/migrations/m191206_092733_add_column_about_goods_to_table_collection.php b/backend/modules/shop/migrations/m191206_092733_add_column_about_goods_to_table_collection.php new file mode 100755 index 0000000..584e624 --- /dev/null +++ b/backend/modules/shop/migrations/m191206_092733_add_column_about_goods_to_table_collection.php @@ -0,0 +1,24 @@ +addColumn('ats_collection', 'goods_name', $this->string(120)->notNull()->defaultValue('')->comment('商品名称')); + $this->addColumn('ats_collection', 'goods_img', $this->integer(11)->comment('商品图片')); + $this->addColumn('ats_collection', 'goods_price', $this->integer(20)->notNull()->defaultValue(0)->comment('商品价格')); + } + + public function down() + { + $this->dropColumn('ats_collection', 'goods_name'); + $this->dropColumn('ats_collection', 'goods_img'); + $this->dropColumn('ats_collection', 'goods_price'); + return true; + } +} diff --git a/backend/modules/shop/migrations/m191206_162733_add_column_about_user_to_table_comment.php b/backend/modules/shop/migrations/m191206_162733_add_column_about_user_to_table_comment.php new file mode 100755 index 0000000..2435aca --- /dev/null +++ b/backend/modules/shop/migrations/m191206_162733_add_column_about_user_to_table_comment.php @@ -0,0 +1,22 @@ +addColumn('ats_comment', 'nickname', $this->string(120)->notNull()->defaultValue('')->comment('昵称')); + $this->addColumn('ats_comment', 'avatar', $this->integer(11)->comment('头像')); + } + + public function down() + { + $this->dropColumn('ats_comment', 'nickname'); + $this->dropColumn('ats_comment', 'avatar'); + return true; + } +} diff --git a/backend/migrations/schema-mysql.sql b/backend/modules/shop/migrations/schema-mysql.sql similarity index 100% rename from backend/migrations/schema-mysql.sql rename to backend/modules/shop/migrations/schema-mysql.sql diff --git a/backend/migrations/sql/add_category.sql b/backend/modules/shop/migrations/sql/add_category.sql similarity index 100% rename from backend/migrations/sql/add_category.sql rename to backend/modules/shop/migrations/sql/add_category.sql diff --git a/backend/migrations/sql/add_data.sql b/backend/modules/shop/migrations/sql/add_data.sql old mode 100644 new mode 100755 similarity index 100% rename from backend/migrations/sql/add_data.sql rename to backend/modules/shop/migrations/sql/add_data.sql diff --git a/backend/migrations/sql/area.sql b/backend/modules/shop/migrations/sql/area.sql similarity index 100% rename from backend/migrations/sql/area.sql rename to backend/modules/shop/migrations/sql/area.sql diff --git a/backend/migrations/sql/city.sql b/backend/modules/shop/migrations/sql/city.sql similarity index 100% rename from backend/migrations/sql/city.sql rename to backend/modules/shop/migrations/sql/city.sql diff --git a/backend/migrations/sql/province.sql b/backend/modules/shop/migrations/sql/province.sql similarity index 100% rename from backend/migrations/sql/province.sql rename to backend/modules/shop/migrations/sql/province.sql diff --git a/backend/modules/shop/models/.gitkeep b/backend/modules/shop/models/.gitkeep new file mode 100755 index 0000000..72e8ffc --- /dev/null +++ b/backend/modules/shop/models/.gitkeep @@ -0,0 +1 @@ +* diff --git a/backend/models/ars/Address.php b/backend/modules/shop/models/ars/Address.php old mode 100644 new mode 100755 similarity index 87% rename from backend/models/ars/Address.php rename to backend/modules/shop/models/ars/Address.php index 5c29f5c..b9c4401 --- a/backend/models/ars/Address.php +++ b/backend/modules/shop/models/ars/Address.php @@ -1,6 +1,6 @@ '更新时间', ]; } - + /** - * @author linyao - * @email 602604991@qq.com - * @created Nov 8, 2019 - * - * 行为存储创建时间和更新时间 - */ + * @author linyao + * @email 602604991@qq.com + * @created Nov 8, 2019 + * + * 行为存储创建时间和更新时间 + */ public function behaviors() { return [ @@ -79,7 +82,7 @@ class Address extends \yii\db\ActiveRecord 'class' => TimestampBehavior::className(), 'createdAtAttribute' => 'created_at', 'updatedAtAttribute' => 'updated_at', - 'value' => function() { + 'value' => function () { return time(); }, ], diff --git a/backend/models/ars/AfterSale.php b/backend/modules/shop/models/ars/AfterSale.php old mode 100644 new mode 100755 similarity index 98% rename from backend/models/ars/AfterSale.php rename to backend/modules/shop/models/ars/AfterSale.php index 78c7abd..6a46d0a --- a/backend/models/ars/AfterSale.php +++ b/backend/modules/shop/models/ars/AfterSale.php @@ -1,6 +1,6 @@ 120], ]; } @@ -46,6 +49,9 @@ class Collection extends \yii\db\ActiveRecord 'goods_id' => '商品id', 'updated_at' => '更新时间', 'created_at' => '创建时间', + 'goods_name' => '商品名称', + 'goods_img' => '商品图片', + 'goods_price' => '商品价格', ]; } diff --git a/backend/models/ars/Comment.php b/backend/modules/shop/models/ars/Comment.php similarity index 84% rename from backend/models/ars/Comment.php rename to backend/modules/shop/models/ars/Comment.php index c391721..113ee20 100644 --- a/backend/models/ars/Comment.php +++ b/backend/modules/shop/models/ars/Comment.php @@ -1,6 +1,6 @@ 120], ]; } @@ -53,6 +55,8 @@ class Comment extends \yii\db\ActiveRecord 'status' => '状态:1为显示,0为不显示', 'updated_at' => '更新时间', 'created_at' => '创建时间', + 'nickname' => '昵称', + 'avatar' => '头像', ]; } diff --git a/backend/models/ars/Config.php b/backend/modules/shop/models/ars/Config.php similarity index 97% rename from backend/models/ars/Config.php rename to backend/modules/shop/models/ars/Config.php index 1cb6576..e61581b 100755 --- a/backend/models/ars/Config.php +++ b/backend/modules/shop/models/ars/Config.php @@ -23,7 +23,7 @@ * THE SOFTWARE. */ -namespace backend\models\ars; +namespace backend\modules\shop\models\ars; use yii\redis\ActiveRecord; diff --git a/backend/models/ars/Delivery.php b/backend/modules/shop/models/ars/Delivery.php old mode 100644 new mode 100755 similarity index 97% rename from backend/models/ars/Delivery.php rename to backend/modules/shop/models/ars/Delivery.php index eae70bc..6cc1dbe --- a/backend/models/ars/Delivery.php +++ b/backend/modules/shop/models/ars/Delivery.php @@ -1,6 +1,6 @@ '按重量', - self::CALCULATION_NUMBER => '按件数' + public static $calculationType = [ + self::CALCULATION_TYPE_WEIGHT => '按重量', + self::CALCULATION_TYPE_NUMBER => '按件数' ]; /** * {@inheritdoc} @@ -45,26 +45,14 @@ class ExpressTemplate extends \yii\db\ActiveRecord public function rules() { return [ - [['name', 'calculation', 'basic_price', 'basic_amount'], 'required'], - [['province', 'city', 'area', 'basic_price', 'extra_price', 'basic_amount', 'extra_amount'], 'string'], - [['calculation'], 'integer'], + [['name'], 'required'], + [['province', 'city', 'area'], 'string'], + [['calculation_type'], 'integer'], [['name'], 'string', 'max' => 255], - [['basic_amount', 'basic_price', 'extra_price', 'extra_amount'], 'checkNegative'], + [['extra_price', 'basic_price', 'basic_count', 'extra_count'], 'safe'] ]; } - /** - * @param $attribute - * @param $params - * 验证是否为负数 - */ - public function checkNegative($attribute, $params) - { - if ($this->$attribute < 0) { - $this->addError($attribute, "不得为负数"); - } - } - /** * {@inheritdoc} */ @@ -76,13 +64,13 @@ class ExpressTemplate extends \yii\db\ActiveRecord 'province' => '省份', 'city' => '城市', 'area' => '区域', - 'calculation' => '计算方式', - 'basic_price' => '基本运费', - 'basic_amount' => '基本数量', 'extra_price' => '续重运费', - 'extra_amount' => '续重数量', 'updated_at' => '更新时间', 'created_at' => '创建时间', + 'basic_price' => '基本运费', + 'basic_count' => '基本数量', + 'extra_count' => '续重数量', + 'calculation_type' => '计算方式', ]; } diff --git a/backend/models/ars/Order.php b/backend/modules/shop/models/ars/Order.php old mode 100644 new mode 100755 similarity index 94% rename from backend/models/ars/Order.php rename to backend/modules/shop/models/ars/Order.php index 772db5e..e5e2af3 --- a/backend/models/ars/Order.php +++ b/backend/modules/shop/models/ars/Order.php @@ -1,6 +1,6 @@ shipping_type !== Order::SHIPPING_TYPE_EXPRESS) { - return 0; - } - return $amount; - } - /** * @author linyao * @email 602604991@qq.com diff --git a/backend/models/ars/OrderGoods.php b/backend/modules/shop/models/ars/OrderGoods.php old mode 100644 new mode 100755 similarity index 98% rename from backend/models/ars/OrderGoods.php rename to backend/modules/shop/models/ars/OrderGoods.php index 80846c4..2c08e76 --- a/backend/models/ars/OrderGoods.php +++ b/backend/modules/shop/models/ars/OrderGoods.php @@ -1,6 +1,6 @@ andFilterWhere([ 'id' => $this->id, - 'calculation' => $this->calculation, + 'calculation_type' => $this->calculation_type, 'basic_price' => $this->basic_price, - 'basic_amount' => $this->basic_amount, + 'basic_count' => $this->basic_count, 'extra_price' => $this->extra_price, - 'extra_amount' => $this->extra_amount, + 'extra_count' => $this->extra_count, 'updated_at' => $this->updated_at, 'created_at' => $this->created_at, ]); diff --git a/backend/models/searchs/OrderSearch.php b/backend/modules/shop/models/searchs/OrderSearch.php similarity index 72% rename from backend/models/searchs/OrderSearch.php rename to backend/modules/shop/models/searchs/OrderSearch.php index a414156..50c547f 100755 --- a/backend/models/searchs/OrderSearch.php +++ b/backend/modules/shop/models/searchs/OrderSearch.php @@ -1,25 +1,26 @@ 'blobt\grid\CheckboxColumn', 'width' => '2%', 'align' => 'center' ], - 'id', - 'user_id', - 'order_sn', - 'invoice_id', - 'status', - //'type', - //'goods_count', - //'goods_amount', - //'shipping_amount', - //'shipping_type', - //'consignee', - //'phone', - //'province', - //'city', - //'area', - //'taking_site', - //'pay_type', - //'pay_at', - //'payment_sn', - //'payment_amount', - //'receivables', - //'remarks', - //'discount_amount', - //'discount_description', - //'updated_at', - //'created_at', + 'id', + 'user_id', + 'order_sn', + 'invoice_id', + 'status', + //'type', + //'goods_count', + //'goods_amount', + //'shipping_amount', + //'shipping_type', + //'consignee', + //'phone', + //'province', + //'city', + //'area', + //'taking_site', + //'pay_type', + //'pay_at', + //'payment_sn', + //'payment_amount', + //'receivables', + //'remarks', + //'discount_amount', + //'discount_description', + //'updated_at', + //'created_at', [ 'class' => 'iron\grid\ActionColumn', 'align' => 'center', ], ]; } + /** - * @param $params - * @return ActiveDataProvider - * 不分页的所有数据 - */ + * @param $params + * @return ActiveDataProvider + * 不分页的所有数据 + */ public function allData($params) { - $query = Order::find(); + $query = Order::find(); $dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => false, @@ -129,13 +132,15 @@ class OrderSearch extends Order $this->load($params); return $this->filter($query, $dataProvider); } + /** - * @param $query - * @param $dataProvider - * @return ActiveDataProvider - * 条件筛选 - */ - private function filter($query, $dataProvider){ + * @param $query + * @param $dataProvider + * @return ActiveDataProvider + * 条件筛选 + */ + private function filter($query, $dataProvider) + { if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); diff --git a/backend/models/searchs/TakingSiteSearch.php b/backend/modules/shop/models/searchs/TakingSiteSearch.php old mode 100644 new mode 100755 similarity index 71% rename from backend/models/searchs/TakingSiteSearch.php rename to backend/modules/shop/models/searchs/TakingSiteSearch.php index 0a10661..afce08e --- a/backend/models/searchs/TakingSiteSearch.php +++ b/backend/modules/shop/models/searchs/TakingSiteSearch.php @@ -1,14 +1,17 @@ '2%', 'align' => 'center' ], - 'id', - 'name', - 'province', - 'city', - 'area', - //'address', - //'updated_at', - //'created_at', + 'id', + 'name', + [ + 'attribute' => 'province', + 'value' => function ($model) { + $province = Province::findOne(['province_id' => $model->province]); + if ($province) { + return $province->name; + } + } + ], + [ + 'attribute' => 'city', + 'value' => function ($model) { + $city = City::findOne(['city_id' => $model->city]); + if ($city) { + return $city->name; + } + } + ], + [ + 'attribute' => 'area', + 'value' => function ($model) { + $area = Area::findOne(['area_id' => $model->area]); + if ($area) { + return $area->name; + } + } + ], + //'address', + //'updated_at', + //'created_at', [ 'class' => 'iron\grid\ActionColumn', 'align' => 'center', @@ -67,10 +94,10 @@ class TakingSiteSearch extends TakingSite ]; } /** - * @param $params - * @return ActiveDataProvider - * 不分页的所有数据 - */ + * @param $params + * @return ActiveDataProvider + * 不分页的所有数据 + */ public function allData($params) { $query = TakingSite::find(); diff --git a/backend/modules/shop/views/express-template/_form.php b/backend/modules/shop/views/express-template/_form.php new file mode 100755 index 0000000..940b46f --- /dev/null +++ b/backend/modules/shop/views/express-template/_form.php @@ -0,0 +1,145 @@ + + +request->get('status'); +if ($status == 1) { + ?> + + + +field($model, 'name')->textInput(['maxlength' => true]) ?> + +field($model, 'calculation_type')->widget(Icheck::className(), ["items" => ExpressTemplate::$calculationType, 'type' => "radio"]) ?> + +field($model, 'basic_count')->textInput() ?> + +field($model, 'basic_price')->textInput() ?> + +field($model, 'extra_count')->textInput() ?> + +field($model, 'extra_price')->textInput() ?> + +registerJs($js) + +?> \ No newline at end of file diff --git a/backend/views/express-template/_search.php b/backend/modules/shop/views/express-template/_search.php old mode 100644 new mode 100755 similarity index 100% rename from backend/views/express-template/_search.php rename to backend/modules/shop/views/express-template/_search.php diff --git a/backend/views/express-template/area.php b/backend/modules/shop/views/express-template/area.php old mode 100644 new mode 100755 similarity index 97% rename from backend/views/express-template/area.php rename to backend/modules/shop/views/express-template/area.php index 006c17e..d205bfa --- a/backend/views/express-template/area.php +++ b/backend/modules/shop/views/express-template/area.php @@ -98,17 +98,17 @@ xj\babel\BrowserAsset::register($this); margin-right: 5px; } - .glyphicon { + .fa { padding: 5px; transition: all .2s; cursor: pointer; } - .glyphicon.glyphicon-menu-down.switch--popup { + .fa.fa-menu-down.switch--popup { position: relative; top: -1px; } - .province--list > li.active .glyphicon { + .province--list > li.active .fa { transform: rotate(180deg); } @@ -177,14 +177,14 @@ xj\babel\BrowserAsset::register($this); class="list-complete-item" >
{{province.province}} - + @@ -375,7 +375,7 @@ xj\babel\BrowserAsset::register($this); - + diff --git a/backend/views/express-template/create.php b/backend/modules/shop/views/express-template/create.php old mode 100644 new mode 100755 similarity index 90% rename from backend/views/express-template/create.php rename to backend/modules/shop/views/express-template/create.php index 306e96a..fb35a2e --- a/backend/views/express-template/create.php +++ b/backend/modules/shop/views/express-template/create.php @@ -5,10 +5,10 @@ use yii\bootstrap4\ActiveForm; use kartik\tabs\TabsX; /* @var $this yii\web\View */ -/* @var $model backend\models\ars\ExpressTemplate */ +/* @var $model backend\modules\shop\models\ars\ExpressTemplate */ $this->title = '创建运费模板'; -$this->params['breadcrumbs'][] = ['label' => 'Express Templates', 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => '运费模板', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; Yii::$app->params['bsVersion'] = '4.x'; ?> diff --git a/backend/views/express-template/index.php b/backend/modules/shop/views/express-template/index.php old mode 100644 new mode 100755 similarity index 100% rename from backend/views/express-template/index.php rename to backend/modules/shop/views/express-template/index.php diff --git a/backend/views/express-template/update.php b/backend/modules/shop/views/express-template/update.php old mode 100644 new mode 100755 similarity index 91% rename from backend/views/express-template/update.php rename to backend/modules/shop/views/express-template/update.php index c8d8046..13c0193 --- a/backend/views/express-template/update.php +++ b/backend/modules/shop/views/express-template/update.php @@ -5,10 +5,10 @@ use yii\bootstrap4\ActiveForm; use kartik\tabs\TabsX; /* @var $this yii\web\View */ -/* @var $model backend\models\ars\ExpressTemplate */ +/* @var $model backend\modules\shop\models\ars\ExpressTemplate */ $this->title = '编辑运费模板: ' . $model->name; -$this->params['breadcrumbs'][] = ['label' => 'Express Templates', 'url' => ['index']]; +$this->params['breadcrumbs'][] = ['label' => '运费模板', 'url' => ['index']]; $this->params['breadcrumbs'][] = ['label' => $model->name, 'url' => ['view', 'id' => $model->id]]; $this->params['breadcrumbs'][] = 'Update '; Yii::$app->params['bsVersion'] = '4.x'; diff --git a/backend/views/express-template/view.php b/backend/modules/shop/views/express-template/view.php old mode 100644 new mode 100755 similarity index 71% rename from backend/views/express-template/view.php rename to backend/modules/shop/views/express-template/view.php index f8f544e..f2d6f8a --- a/backend/views/express-template/view.php +++ b/backend/modules/shop/views/express-template/view.php @@ -2,10 +2,10 @@ use yii\helpers\Html; use yii\widgets\DetailView; -use backend\models\ars\ExpressTemplate; +use backend\modules\shop\models\ars\ExpressTemplate; /* @var $this yii\web\View */ -/* @var $model backend\models\ars\ExpressTemplate */ +/* @var $model backend\modules\shop\models\ars\ExpressTemplate */ $this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => 'Express Templates', 'url' => ['index']]; @@ -24,22 +24,22 @@ $this->params['breadcrumbs'][] = $this->title; 'id', 'name', [ - 'attribute' => 'calculation', + 'attribute' => 'calculation_type', 'value' => function ($model) { - return ExpressTemplate::$calculation[$model->calculation]; + return ExpressTemplate::$calculationType[$model->calculation_type]; } ], 'basic_price', - 'basic_amount', + 'basic_count', 'extra_price', - 'extra_amount', + 'extra_count', 'updated_at:datetime', 'created_at:datetime', ['attribute' => 'city', 'value' => function ($model) { $array = explode(',', $model->city); $cities = []; - foreach (\backend\models\ars\City::find()->andWhere(['in', 'city_id', $array])->all() as $city) { + foreach (\backend\modules\shop\models\ars\City::find()->andWhere(['in', 'city_id', $array])->all() as $city) { $cities[] = $city->name; } return implode(' // ', $cities); diff --git a/backend/views/order/_form.php b/backend/modules/shop/views/order/_form.php similarity index 100% rename from backend/views/order/_form.php rename to backend/modules/shop/views/order/_form.php diff --git a/backend/views/order/_search.php b/backend/modules/shop/views/order/_search.php similarity index 100% rename from backend/views/order/_search.php rename to backend/modules/shop/views/order/_search.php diff --git a/backend/views/order/create.php b/backend/modules/shop/views/order/create.php similarity index 100% rename from backend/views/order/create.php rename to backend/modules/shop/views/order/create.php diff --git a/backend/views/order/index.php b/backend/modules/shop/views/order/index.php similarity index 100% rename from backend/views/order/index.php rename to backend/modules/shop/views/order/index.php diff --git a/backend/views/order/update.php b/backend/modules/shop/views/order/update.php similarity index 100% rename from backend/views/order/update.php rename to backend/modules/shop/views/order/update.php diff --git a/backend/views/order/view.php b/backend/modules/shop/views/order/view.php similarity index 100% rename from backend/views/order/view.php rename to backend/modules/shop/views/order/view.php diff --git a/backend/views/taking-site/_form.php b/backend/modules/shop/views/taking-site/_form.php old mode 100644 new mode 100755 similarity index 92% rename from backend/views/taking-site/_form.php rename to backend/modules/shop/views/taking-site/_form.php index bedc12c..ff02dd4 --- a/backend/views/taking-site/_form.php +++ b/backend/modules/shop/views/taking-site/_form.php @@ -4,7 +4,7 @@ use yii\bootstrap4\Html; use yii\bootstrap4\ActiveForm; use blobt\widgets\Icheck; use kartik\depdrop\DepDrop; -use backend\models\ars\Province; +use backend\modules\shop\models\ars\Province; use yii\helpers\ArrayHelper; use yii\helpers\Url; @@ -33,7 +33,7 @@ Yii::$app->params['bsVersion'] = '4.x'; 'pluginOptions' => [ 'depends' => ['province-id'], 'placeholder' => '请选择成市', - 'url' => Url::to(['/taking-site/city']) + 'url' => Url::to(['/shop/taking-site/city']) ], 'pluginEvents' => [ "depdrop:change" => "function(event, id, value, count) { log(id); log(value); log(count); }", @@ -48,7 +48,7 @@ Yii::$app->params['bsVersion'] = '4.x'; 'pluginOptions' => [ 'depends' => ['city-id'], 'placeholder' => '请选择县区', - 'url' => Url::to(['/taking-site/area']) + 'url' => Url::to(['/shop/taking-site/area']) ] ]) ?> diff --git a/backend/views/taking-site/_search.php b/backend/modules/shop/views/taking-site/_search.php old mode 100644 new mode 100755 similarity index 100% rename from backend/views/taking-site/_search.php rename to backend/modules/shop/views/taking-site/_search.php diff --git a/backend/views/taking-site/create.php b/backend/modules/shop/views/taking-site/create.php old mode 100644 new mode 100755 similarity index 100% rename from backend/views/taking-site/create.php rename to backend/modules/shop/views/taking-site/create.php diff --git a/backend/views/taking-site/index.php b/backend/modules/shop/views/taking-site/index.php old mode 100644 new mode 100755 similarity index 100% rename from backend/views/taking-site/index.php rename to backend/modules/shop/views/taking-site/index.php diff --git a/backend/views/taking-site/update.php b/backend/modules/shop/views/taking-site/update.php old mode 100644 new mode 100755 similarity index 91% rename from backend/views/taking-site/update.php rename to backend/modules/shop/views/taking-site/update.php index 3484212..3409b7b --- a/backend/views/taking-site/update.php +++ b/backend/modules/shop/views/taking-site/update.php @@ -1,8 +1,8 @@ title = $model->name; +$this->params['breadcrumbs'][] = ['label' => 'Taking Sites', 'url' => ['index']]; +$this->params['breadcrumbs'][] = $this->title; +\yii\web\YiiAsset::register($this); +?> +
+ +

+ 'btn btn-success']) ?> +

+ + $model, + 'attributes' => [ + 'id', + 'name', + [ + 'attribute' => 'province', + 'value' => function ($model) { + $province = Province::findOne(['province_id' => $model->province]); + if ($province) { + return $province->name; + } + } + ], + [ + 'attribute' => 'city', + 'value' => function ($model) { + $city = City::findOne(['city_id' => $model->city]); + if ($city) { + return $city->name; + } + } + ], + [ + 'attribute' => 'area', + 'value' => function ($model) { + $area = Area::findOne(['area_id' => $model->area]); + if ($area) { + return $area->name; + } + } + ], + 'address:ntext', + 'updated_at:datetime', + 'created_at:datetime', + ], + ]) ?> + +
diff --git a/backend/views/express-template/_form.php b/backend/views/express-template/_form.php deleted file mode 100644 index fa10bdd..0000000 --- a/backend/views/express-template/_form.php +++ /dev/null @@ -1,113 +0,0 @@ - - -field($model, 'name')->textInput(['maxlength' => true]) ?> - -field($model, 'calculation')->widget(Icheck::className(), ["items" => ExpressTemplate::$calculation, 'type' => "radio"]) ?> - -field($model, 'basic_amount')->textInput() ?> - -field($model, 'basic_price')->textInput() ?> - -field($model, 'extra_amount')->textInput() ?> - -field($model, 'extra_price')->textInput() ?> - -registerJs($js) - -?> \ No newline at end of file diff --git a/backend/views/taking-site/view.php b/backend/views/taking-site/view.php deleted file mode 100644 index acc33b9..0000000 --- a/backend/views/taking-site/view.php +++ /dev/null @@ -1,34 +0,0 @@ -title = $model->name; -$this->params['breadcrumbs'][] = ['label' => 'Taking Sites', 'url' => ['index']]; -$this->params['breadcrumbs'][] = $this->title; -\yii\web\YiiAsset::register($this); -?> -
- -

- 'btn btn-success']) ?> -

- - $model, - 'attributes' => [ - 'id', - 'name', - 'province', - 'city', - 'area', - 'address:ntext', - 'updated_at', - 'created_at', - ], - ]) ?> - -
diff --git a/backend/migrations/m130524_201442_init.php b/console/migrations/m130524_201442_init.php similarity index 100% rename from backend/migrations/m130524_201442_init.php rename to console/migrations/m130524_201442_init.php diff --git a/backend/migrations/m140506_102106_rbac_init.php b/console/migrations/m140506_102106_rbac_init.php similarity index 100% rename from backend/migrations/m140506_102106_rbac_init.php rename to console/migrations/m140506_102106_rbac_init.php diff --git a/backend/migrations/m170907_052038_rbac_add_index_on_auth_assignment_user_id.php b/console/migrations/m170907_052038_rbac_add_index_on_auth_assignment_user_id.php similarity index 100% rename from backend/migrations/m170907_052038_rbac_add_index_on_auth_assignment_user_id.php rename to console/migrations/m170907_052038_rbac_add_index_on_auth_assignment_user_id.php diff --git a/backend/migrations/m180523_151638_rbac_updates_indexes_without_prefix.php b/console/migrations/m180523_151638_rbac_updates_indexes_without_prefix.php similarity index 100% rename from backend/migrations/m180523_151638_rbac_updates_indexes_without_prefix.php rename to console/migrations/m180523_151638_rbac_updates_indexes_without_prefix.php diff --git a/backend/migrations/m190124_110200_add_verification_token_column_to_user_table.php b/console/migrations/m190124_110200_add_verification_token_column_to_user_table.php similarity index 100% rename from backend/migrations/m190124_110200_add_verification_token_column_to_user_table.php rename to console/migrations/m190124_110200_add_verification_token_column_to_user_table.php diff --git a/backend/migrations/m190802_072830_add_category.php b/console/migrations/m190802_072830_add_category.php similarity index 100% rename from backend/migrations/m190802_072830_add_category.php rename to console/migrations/m190802_072830_add_category.php diff --git a/console/migrations/sql/add_category.sql b/console/migrations/sql/add_category.sql new file mode 100755 index 0000000..e801049 --- /dev/null +++ b/console/migrations/sql/add_category.sql @@ -0,0 +1,11 @@ +DROP TABLE IF EXISTS `category`; +CREATE TABLE `category` ( + `id` int(11) AUTO_INCREMENT PRIMARY KEY, + `cat_name` varchar(64) NOT NULL, + `icon` varchar(64) DEFAULT NULL, + `icon_type` tinyint(1) NOT NULL DEFAULT 1, + `description` text NOT NULL DEFAULT '', + `sort_order` smallint(3) NOT NULL DEFAULT 100, + `created_at` int(11) NOT NULL DEFAULT 0, + `updated_at` int(11) NOT NULL DEFAULT 0 +)ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; diff --git a/vendor/iron/actions/UploadAction.php b/vendor/iron/actions/UploadAction.php index 384b7bc..7c53609 100644 --- a/vendor/iron/actions/UploadAction.php +++ b/vendor/iron/actions/UploadAction.php @@ -47,6 +47,8 @@ class UploadAction extends Action * 常量: 二进制数据类型 */ const DATA_TYPE_BINARY = 2; + + public $keyName = 'file'; /** * @var function * @@ -100,7 +102,7 @@ class UploadAction extends Action $data = []; try { if ($this->dataType == self::DATA_TYPE_FORM) { - $file = UploadedFile::getInstanceByName('file'); + $file = UploadedFile::getInstanceByName($this->keyName); $this->checkType($file->extension); $this->checkSize($file->size); $savePath = $this->getSavePath(); diff --git a/vendor/iron/grid/ActionColumn.php b/vendor/iron/grid/ActionColumn.php index a848dbb..887eb16 100644 --- a/vendor/iron/grid/ActionColumn.php +++ b/vendor/iron/grid/ActionColumn.php @@ -33,7 +33,33 @@ use blobt\grid\Column; class ActionColumn extends Column { - + /** + * @var array 配置按钮配置,通过配置参数控制按钮的标题,url,图标以及确认框内容和隐藏条件 + * + * ```php + * + * - `$title`: 按钮的标题 + * - `$name`: 按钮的跳转路径 + * - `$icon`: 按钮图标 + * - `$contents`: 确认框内容 + * - `$hide`: array 隐藏条件 + * + * 使用案例: + * ```php + * [ + * 'name' => 'delete', + * 'icon' => 'trash', + * 'title' => '删除', + * 'contents' => '确定删除?' + * //attributes 和 values 两数组对应元素按规则匹配成功时候隐藏该按钮 + * 'hide'=>[ + * 'attributes'=>['status'],//模型属性 + * 'values'=>[1],//属性值 + * 'rule'=>'or' //与或规则 只填 or 或 and + * ] + * ] + * + */ public $config = [ [ 'name' => 'view', @@ -175,6 +201,11 @@ class ActionColumn extends Column }; } + /** + * @param string $name + * @param array $config 隐藏配置 + * 验证按钮的显示隐藏规则 + */ protected function visibleButtons($name, $config) { $this->visibleButtons[$name] = function ($model, $key, $index) use ($config) {