| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace bizMall\goods\classes;
- use common\components\util;
- use bizMall\base\classes\BaseClass;
- class GoodsClass extends BaseClass
- {
- public static $baseFile = '\bizMall\goods\models\Goods';
- //获取商品完整详情,包括商品的分类 ssh 2019.12.3
- public static function getGoodsInfo($id, $shop, $custom, $params)
- {
- $info = self::getById($id);
- if (empty($info)) {
- return [];
- }
- //暂时先用花店端的方法,后面再分离
- $list = \bizHd\goods\classes\GoodsClass::groupGoodsBaseInfo([$info], $shop, $custom, $params);
- return current($list);
- }
- public static function addGoods($data)
- {
- $categoryIdList = isset($data['categoryIdList']) && !empty($data['categoryIdList']) ? $data['categoryIdList'] : [];
- unset($data['categoryIdList']);
- if (empty($categoryIdList)) {
- util::fail('没有选择分类');
- }
- $goodsStyleList = isset($data['goodsStyleList']) && !empty($data['goodsStyleList']) ? $data['goodsStyleList'] : [];
- if (isset($data['goodsStyle']) && $data['goodsStyle'] == 1) {
- if (empty($goodsStyleList)) {
- util::fail('请填写款式');
- }
- foreach ($goodsStyleList as $goodsStyle) {
- if (empty($goodsStyle['styleName'])) {
- util::fail('请填写款式名称');
- }
- if (isset($goodsStyle['price']) == false || is_numeric($goodsStyle['price']) == false) {
- util::fail('请填写款式价格');
- }
- if (empty($goodsStyle['picture'])) {
- util::fail('请上传款式图片');
- }
- }
- } else {
- if (isset($data['price']) == false || is_numeric($data['price']) == false) {
- util::fail('请填写商品价格');
- }
- }
- //用商户id生成商品的编号
- $sjId = $data['sjId'];
- $data['createTime'] = date("Y-m-d H:i:s");
- $data['shopImg'] = json_encode($data['shopImg']);
- $data['briefContent'] = isset($data['briefContent']) ? $data['briefContent'] : '';
- $data['content'] = isset($data['content']) ? $data['content'] : '';
- $data['stock'] = isset($data['stock']) && is_numeric($data['stock']) && $data['stock'] >= 0 ? $data['stock'] : -1;
- $data['sold'] = isset($data['sold']) && is_numeric($data['sold']) && $data['sold'] >= 0 ? $data['sold'] : 0;
- $goodsInfo = self::add($data);
- $id = $goodsInfo['id'];
- $name = $goodsInfo['name'];
- //处理分类
- $mainId = $data['mainId'] ?? 0;
- $hasCategoryIdList = CategoryClass::getCategoryIds($mainId);
- $diff = array_diff($categoryIdList, $hasCategoryIdList);
- if (!empty($diff)) {
- util::fail('您使用了别人的分类');
- }
- $addCategory = [];
- foreach ($categoryIdList as $categoryId) {
- $addCategory[] = ['gId' => $id, 'name' => $name, 'cId' => $categoryId, 'sjId' => $data['sjId']];
- }
- GoodsCategoryClass::batchAdd($addCategory);
- //处理款式
- if (!empty($goodsStyleList) && $data['goodsStyle'] == 1) {
- $addStyle = [];
- foreach ($goodsStyleList as $goodsStyle) {
- $addStyle[] = ['styleName' => $goodsStyle['styleName'], 'goodsId' => $id, 'picture' => $goodsStyle['picture'], 'price' => $goodsStyle['price']];
- }
- GoodsStyleClass::batchAdd($addStyle);
- }
- return $goodsInfo;
- }
- //产品上下架 ssh 2019.12.8
- public static function changeStatus($id, $status)
- {
- self::updateById($id, ['status' => $status]);
- GoodsCategoryClass::updateByCondition(['gId' => $id], ['status' => $status]);
- }
- }
|