public function insertAction() { //商品添加提示信息 $notice = ''; //商品导图 if (!$_FILES['goods_pic']['error']) { //导图存在 $goodsPic = $_FILES['goods_pic']; $uploadTime = time(); $datePath = date("Y/m/d", $uploadTime); $fileName = date("His", $uploadTime) . str_pad(rand(0, 1000), 4, '0', STR_PAD_LEFT) . $goodsPic['name']; $path = GOODS_PIC_PATH . '/' . $datePath . '/' . $fileName; //导图上传 $image = new Zshop_image(); $up = $image->uploadFile($goodsPic, $path); if ($up) { $goodsPicSrc = $datePath . '/' . $fileName; } else { $goodsPicSrc = ''; $notice .= '<br />商品导图上传出错'; } } else { //导图不存在 $goodsPicSrc = ''; $notice = '<br />商品导图未上传'; } //商品基本页入库 $goodsName = iconv_substr($this->_getParam('goods_name'), 0, 100, 'utf-8'); $catId = intval($this->_getParam('cat_id')); $goodsBrand = intval($this->_getParam('goods_brand')); $shopPrice = sprintf('%.2f', $this->_getParam('shop_price')); $marketPrice = sprintf('%.2f', $this->_getParam('market_price')); $recommend = intval($this->_getParam('recommend')); $sale = intval($this->_getParam('sale')); $stock = intval($this->_getParam('stock')); $typeId = intval($this->_getParam('goods_type')); //商品录入信息检查 if (empty($goodsName) || empty($catId)) { Zshop_Message::show($this, '商品名称或目录没有输入', 'back', 2); } elseif ($shopPrice <= 0 || $marketPrice <= 0 || $shopPrice > 9999999 || $marketPrice > 99999999) { Zshop_Message::show($this, '价格输入错误', 'back', 2); } else { $goodsInfo = array('goods_name' => $goodsName, 'market_price' => $marketPrice, 'shop_price' => $shopPrice, 'cat_id' => $catId, 'brand_id' => $goodsBrand, 'type_id' => $typeId, 'goods_pic' => $goodsPicSrc, 'addtime' => time(), 'recommend' => $recommend, 'is_on_sale' => $sale, 'id_del' => 0, 'stock' => $stock); $goods = new GoodsModel(); $goodsId = $goods->insert($goodsInfo); if ($goodsId) { //商品详细描述 $goodsDescription = $this->_getParam('description'); if (!empty($goodsDescription)) { $goodsAttach = $this->_getParam('attach'); if (!empty($goodsAttach)) { //描述附件图片地址替换 $rootUrl = Zend_Controller_Front::getInstance()->getBaseUrl(); $attachDir = $rootUrl . str_replace(ROOT_PATH, '', GOODS_ATTACH_PATH) . '/'; foreach ($goodsAttach as $attachId => $attachSrc) { $goodsDescription = str_replace($attachDir . $attachSrc, '[img]' . $attachSrc . '[/img]', $goodsDescription); } //描述附件商品ID替换 foreach ($goodsAttach as $id => $src) { $attachIdArr[] = $id; } $set = array('goods_id' => $goodsId); $goodsAttach = new GoodsAttachModel(); $goodsAttach->update($set, $attachIdArr); } //描述添加 $description = array('goods_id' => $goodsId, 'description' => $goodsDescription); $goodsContent = new GoodsContentModel(); $goodsContent->insert($description); } else { $notice .= '<br />商品描述未填写'; } //商品类型属性 $goodsPropertyList = $this->_getParam('plist'); //类型属性不空则添加 if (!empty($goodsPropertyList) && is_array($goodsPropertyList)) { $goodsProperty = new GoodsPropertyModel(); $goodsProperty->batchInsertProperty($goodsId, $goodsPropertyList); } //商品相册 $albumPicList = $_FILES['goods_img']; if (!empty($albumPicList) && is_array($albumPicList)) { $picUploadError = false; //图片上传错误标识 $picInsertError = false; //图片插入数据库错误标识 //遍历相册文件 foreach ($albumPicList['error'] as $picIndex => $error) { if ($error == 0) { //构造单个相册图片 $albumPic['name'] = $albumPicList['name'][$picIndex]; $albumPic['tmp_name'] = $albumPicList['tmp_name'][$picIndex]; $albumPic['type'] = $albumPicList['type'][$picIndex]; $albumPic['size'] = $albumPicList['size'][$picIndex]; $albumPic['error'] = 0; //生成相册图片路径 $picUploadTime = time(); $picDatePath = date("Y/m/d", $picUploadTime); $picFileName = date("His", $picUploadTime) . str_pad(rand(0, 1000), 4, '0', STR_PAD_LEFT) . $albumPic['name']; $picPath = GOODS_ALBUM_PATH . '/' . $picDatePath . '/' . $picFileName; //上传相册图片 isset($image) || ($image = new Zshop_image()); $picUploaded = $image->uploadFile($albumPic, $picPath); //相册图片信息入库 if ($picUploaded == true) { $picInfo = array('goods_id' => $goodsId, 'imgsrc' => $picDatePath . '/' . $picFileName, 'imgsize' => round($albumPic['size'] / 1024), 'oldname' => $albumPic['name'], 'upload_time' => $picUploadTime); $goodsPhoto = new GoodsPhotoModel(); $goodsPhoto->insert($picInfo) || ($picInsertError = true); } else { $error != 4 && ($picUploadError = true); //未选择图片不计错误 } unset($albumPic); } } //相册错误提示 $picUploadError && ($notice .= '<br />商品相册上传出错'); $picInsertError && ($notice .= '<br />商品相册插入数据库出错'); } } if ($goodsId) { $alertTime = empty($notice) ? 2 : 5; //如有提示,跳转页面显示5秒 Zshop_Message::show($this, '添加商品成功' . $notice, 'admin/goods/add', $alertTime); } else { Zshop_Message::show($this, '添加商品失败', 'back', 2); } } }