/** * [updateItem 商品编辑] * @return [type] [description] */ public function updateItem($data) { $data['goods_promote_start'] = strtotime($data['goods_promote_start']); $data['goods_promote_end'] = strtotime($data['goods_promote_end']); $data['goods_start'] = strtotime($data['goods_start']); $data['goods_end'] = strtotime($data['goods_end']); //统计所有组合的商品数量及可卖数(未修改不更新) if (!empty($data['attr_ids'])) { $len = count($data['attr_ids']); $data['goods_nums'] = $data['goods_virtual_sales'] = 0; for ($i = 0; $i < $len; $i++) { $data['goods_nums'] += $data['g_attr_stocks'][$i]; if ($data['g_attr_nums'][$i]) { $data['goods_virtual_sales'] += $data['g_attr_nums'][$i]; } else { $data['goods_virtual_sales'] += $data['g_attr_stocks'][$i]; } } //商品(父)属性组合ID foreach ($data['goods-attrs'] as $key => $val) { if ($key == 0) { $data['goods_attrs'] = $val; } else { $data['goods_attrs'] .= ',' . $val; } } //操作是属性表的数据 $dataAttrs['gac_attr'] = $data['gac_attr']; $dataAttrs['attr_ids'] = $data['attr_ids']; $dataAttrs['g_attr_barcode'] = $data['g_attr_barcode']; $dataAttrs['g_attr_stocks'] = $data['g_attr_stocks']; $dataAttrs['g_attr_enable'] = $data['g_attr_enable']; $dataAttrs['g_attr_nums'] = $data['g_attr_nums']; unset($data['goods-attrs']); unset($data['gac_attr']); unset($data['attr_ids']); unset($data['g_attr_barcode']); unset($data['g_attr_stocks']); unset($data['g_attr_enable']); unset($data['g_attr_nums']); if (isset($data['upfile'])) { unset($data['upfile']); } } else { //不更改商品组合属性,此字段不更新 unset($data['goods-attrs']); unset($data['gac_attr']); unset($data['g_attr_enable']); } //获取商品部分信息 $goodsInfo = $this->item->getGoodsInfo($data['goods_id']); //商品列表图片处理 $config = $this->di->get('sysconfig'); $upload = new ImgUpload($this->di); if (!empty($_FILES['goods_img']['tmp_name'])) { $pic = $upload->upload_file($_FILES['goods_img'], $config['goodsImg'], 'item-list-original-' . $data['goods_id'], 'item-list-thumb-' . $data['goods_id'], 200, 200, 100, 100); //抛出报错情况 if ($upload->errmsg) { echo $upload->errmsg; return self::ERROR; } $data['goods_img'] = $config['staticServer'] . $config['goodsImgAccess'] . '/' . $pic; } //商品缩略图片处理 if (!empty($_FILES['goods_pics']['tmp_name'][0])) { $imgNum = count($_FILES['goods_pics']['tmp_name']); $thumbImg = array(); for ($i = 0; $i < $imgNum; $i++) { if ($_FILES['goods_pics']['tmp_name'][$i]) { $tmpPicArr['name'] = $_FILES['goods_pics']['name'][$i]; $tmpPicArr['type'] = $_FILES['goods_pics']['type'][$i]; $tmpPicArr['tmp_name'] = $_FILES['goods_pics']['tmp_name'][$i]; $tmpPicArr['error'] = $_FILES['goods_pics']['error'][$i]; $tmpPicArr['size'] = $_FILES['goods_pics']['size'][$i]; $tmpPicThumb = $upload->upload_file($tmpPicArr, $config['goodsThumb'], 'item-original-' . $data['goods_id'] . '-' . $i, 'item-thumb-' . $data['goods_id'] . '-' . $i, 596, 359, 64, 64); //抛出报错情况 if ($upload->errmsg) { echo $upload->errmsg; return self::ERROR; } array_push($thumbImg, $config['staticServer'] . $config['goodsThumbAccess'] . '/' . $tmpPicThumb); } } //拼接原有的数据 if ($goodsInfo['goods_pics']) { $data['goods_pics'] = $goodsInfo['goods_pics'] . ',' . implode(',', $thumbImg); } else { $data['goods_pics'] = implode(',', $thumbImg); } } if (empty($data['goods_img'])) { unset($data['goods_img']); } if (empty($data['goods_pics'][0])) { unset($data['goods_pics']); } //处理商品属性表 $this->di['db']->begin(); //处理商品标签表 if (!empty($data['goods_tags'])) { $tags = explode(',', $data['goods_tags']); } else { $tags = []; } //扣除之前商品对应标签字段包含的标签id -1 //若是已删除的商品不需要扣除 if ($goodsInfo['goods_status'] && rtrim($goodsInfo['goods_tags'])) { if (!$this->tags->subTagsNums(rtrim($goodsInfo['goods_tags'], ','))) { $this->di['db']->rollback(); return self::ERROR; } } //插入标签表不存在的标签,并返回所有的商品标签id $len = count($tags); $googsTags = array(); if ($len) { for ($i = 0; $i < $len; $i++) { if ($i == 5) { break; } else { //判断标签是否存在 $ex = $this->tags->getTagsIdByName($tags[$i]); if ($ex) { //数量加1 if ($this->tags->addTagsNums($ex['tags_id'])) { array_push($googsTags, $ex['tags_id']); } else { $this->di['db']->rollback(); return self::ERROR; } } else { if ($tmpTagsId = $this->tags->addTags($tags[$i])) { array_push($googsTags, $tmpTagsId); } else { $this->di['db']->rollback(); return self::ERROR; } } } } $data['goods_tags'] = implode(',', $googsTags) . ','; } else { $data['goods_tags'] = ''; } if ($this->item->updateGoods($data)) { if (!empty($dataAttrs)) { //删除good_attrs good_ga_cate 对应的商品id数据 if (!$this->item->delAttrCateByGoodsId($data['goods_id'])) { $this->di['db']->rollback(); return self::ERROR; } //添加组合商品各属性 if ($this->item->addGoodsAttrs($data['goods_id'], $dataAttrs['attr_ids'], $dataAttrs['g_attr_barcode'], $dataAttrs['g_attr_stocks'], $dataAttrs['g_attr_enable'], $dataAttrs['g_attr_nums'])) { if (!$this->item->addGaCate($data['goods_id'], $dataAttrs['gac_attr'])) { $this->di['db']->rollback(); return self::ERROR; } } else { $this->di['db']->rollback(); return self::ERROR; } } $this->redis->del('attr:' . $data['goods_id']); //清除商品信息缓存 $arr = $this->redis->keys("item:{$data['goods_id']}*"); foreach ($arr as $val) { $this->redis->del($val); } $this->di['db']->commit(); return self::SUCCESS; } else { $this->di['db']->rollback(); return self::ERROR; } }
/** * [ajax 上传图片] */ public function uploadImgAction() { if (!$this->validFlag) { echo json_encode(array('ret' => 0, 'msg' => $this->warnMsg)); } else { if ($this->_sanReq['fileInput'] == 1) { $inputName = 'img-evi'; } else { $inputName = 'add-img-evi'; } $upload = new ImgUpload($this->di); $pic = ''; if (isset($_FILES[$inputName]) && $_FILES[$inputName]['tmp_name']) { $imgInfo = getimagesize($_FILES[$inputName]['tmp_name']); $pic = $upload->upload_file($_FILES[$inputName], $this->sysconfig['supportImgDir'], 'original_' . $this->uid, 'thumb_' . $this->uid, $imgInfo[0], $imgInfo[1], 90, 90); if ($upload->errmsg) { echo json_encode(array('ret' => 0, 'msg' => $this->sysconfig['flagMsg'][self::MSG_UPLOAD_INVALID])); $this->view->disable(); return; } } if ($pic) { $dir = pathinfo($pic)['dirname']; if (!empty($this->_sanReq['picPath'])) { $pDir = explode('/', $this->_sanReq['picPath'])[0]; $this->delDir($this->sysconfig['supportImgPath'] . '/' . $pDir); } echo json_encode(array('ret' => 1, 'imgUrl' => $this->sysconfig['staticServer'] . $this->sysconfig['supportImgAccess'] . '/' . $pic, 'path' => $dir)); } else { echo json_encode(array('ret' => 0, 'msg' => '图片上传失败')); } } $this->view->disable(); return; }