'/index.php/Retail/AdvanceSale/changeSate', 'addAdvance' => '/index.php/Retail/AdvanceSale/addAdvance', 'imgSet' => '/index.php/Retail/AdvanceSale/add_advance_image', 'Delete' => '/index.php/Retail/AdvanceSale/deleteAct', ); $authArr = checkFunction($arr); $store_id = $this->store_id; $info = M("store_xcx_config")->field("advance_sale_status,advance_sale_index_status")->where(array('storeid' => $store_id))->find(); $this->assign('authArr', $authArr); $this->assign('advance_sale_status', $info['advance_sale_status']); $this->assign('advance_sale_index_status', $info['advance_sale_index_status']); $this->display(); } /** * 轮播图 */ public function banner() { $this->display(); } /*轮播列表 * */ public function advanceImgList() { $data = I("post."); $page = $data['page'] . ',' . $data['limit']; $where = array( 'store_id' => $this->store_id, 'status' => array('in', '0,1'), 'scene_type' => 3 ); $FaceBackGroundModel = new FaceBackGroundModel(); $list = $FaceBackGroundModel->getSelect($where, "*", "id desc", $page); if ($list) { $ImageGalleryModel = new ImageGalleryModel(); $count = $FaceBackGroundModel->getCount($where); foreach ($list as $key => &$val) { $val['key'] = $key + 1; $val['img'] = $ImageGalleryModel->getFieldPath(array('id' => $val['img_id'])); } } $res['status'] = 1; $res['imgList'] = $list; $res['count'] = $count ? $count : 0; $this->ajaxReturn($res); } /* * 轮播添加 */ public function advanceImgAdd() { $editId = json_decode($_POST['editId'], true); $order = json_decode($_POST['order'], true); $label_img_id = I('post.label_img_id'); if (!$label_img_id) { $label_img = $_FILES['label_img']; if ($label_img['error'] == 0) { /* 上传图片 */ $upData = array( 'add_time' => time(), 'from_type_id' => 45, 'localUrl' => 'Store/Advance', 'user_type' => 4, 'merchant_id' => $this->merchant_id, 'store_id' => $this->store_id ); $uploads = uploadFiles($upData); if ($uploads['label_img']['savePath'] && $uploads['label_img']['id']) { $data['img_id'] = $uploads['label_img']['id']; } else { $res = array('status' => 0, 'msg' => '图片上传失败,请重试'); $this->ajaxReturn($res); } } else { $res = array('status' => 0, 'msg' => '请上传图片'); $this->ajaxReturn($res); } } else { $data['img_id'] = $label_img_id; } $data['sort'] = $order; $FaceBackGroundModel = new FaceBackGroundModel(); if (!empty($editId)) { $map['id'] = $editId; $success = $FaceBackGroundModel->updateOrder($map, $data); $desc = '预售轮播图编辑'; } else { $data['store_id'] = $this->store_id; $data['merchant_id'] = $this->merchant_id; $data['scene_type'] = 3; $success = $FaceBackGroundModel->addOrder($data); $desc = '预售轮播图添加'; } if ($success) { $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => $desc, 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 $res = array('status' => 1, 'msg' => '操作成功'); } else { $res = array('status' => 0, 'msg' => '暂无修改'); } $this->ajaxReturn($res); } /*轮播开启关闭 * */ public function advanceChange() { $data = I("post."); $id = $data['id']; $status = $data['status']; if (!$id || !isset($status)) { $res = array('status' => 0, 'msg' => '参数缺失'); $this->ajaxReturn($res); } $FaceBackGroundModel = new FaceBackGroundModel(); $save = $FaceBackGroundModel->updateOrder(array('id' => $id), array('status' => $status)); if ($save) { $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => "预售轮播图关闭", 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 $res = array('status' => 1, 'msg' => '操作成功'); } else { $res = array('status' => 0, 'msg' => '暂无修改'); } $this->ajaxReturn($res); } /*轮播删除 * */ public function advanceDelList() { $id = I("post.id"); if (!$id) { $res = array('status' => 0, 'msg' => '参数缺失'); $this->ajaxReturn($res); } $FaceBackGroundModel = new FaceBackGroundModel(); $del = $FaceBackGroundModel->updateOrder(array('id' => $id), array('status' => 2)); if ($del) { $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => "预售轮播图删除", 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 $res = array('status' => 1, 'msg' => '操作成功'); } else { $res = array('status' => 0, 'msg' => '请勿重复操作'); } $this->ajaxReturn($res); } /** * 修改设置 */ public function changeSate() { $store_id = $this->store_id; $data = I("post."); $type = $data['type']; $state = $data['state']; if ($type == 1) { //是否开启预售 $content['advance_sale_status'] = $state; } else if ($type == 2) { //是否在首页展示 $content['advance_sale_index_status'] = $state; } $StoreXcxConfigModel = new RetailStoreXcxConfigModel(); $map = array( 'storeid' => $store_id ); $info = $StoreXcxConfigModel->getFind($map); if ($info) { $save = $StoreXcxConfigModel->updateOrder($map, $content); } else { $content['storeid'] = $store_id; $save = $StoreXcxConfigModel->addOrder($content); } if ($save) { $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => "预售模块开启关闭", 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 $res = array('status' => 1, 'msg' => '操作成功'); } else { $res = array('status' => 0, 'msg' => '暂无修改'); } $this->ajaxReturn($res); } /** * 开启关闭 */ public function advance_state_modify() { $AdvanceGoodsModel = new AdvanceGoodsModel(); $AdvanceSkuGoodsModel = new AdvanceSkuGoodsModel(); $data = I("post."); //验证参数 $verify_info = $AdvanceGoodsModel->existence_id(array("id" => $data['id'])); if ($verify_info['status'] == 0) { $this->ajaxReturn($verify_info); } $advance_state = $data['advance_state']; if ($advance_state == 1) { //验证是否可以开启 $RetailGoodsModel = new RetailGoodsModel(); $advance_open_verify = $RetailGoodsModel->advance_open_verify(array("store_id" => $this->store_id, "goods_id" => $data['goods_id'])); if ($advance_open_verify['status'] == 0) { $this->ajaxReturn($advance_open_verify); } $advance_sale_status = $RetailGoodsModel->getFindField([ 'store_id' => $this->store_id, 'id' => $data['goods_id'] ], 'advance_sale_status'); if ($advance_sale_status == 0) { $res = array('status' => 0, 'msg' => '该商品已关闭预售,无法开启该活动'); $this->ajaxReturn($res); } } $save = $AdvanceGoodsModel->updateOrder(array('id' => $data['id']), array('advance_state' => $advance_state)); if ($save) { $AdvanceSkuGoodsModel->updateOrder(array('advance_id' => $data['id']), array('advance_state' => $advance_state)); $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => "预售活动开启关闭", 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 $res = array('status' => 1, 'msg' => '操作成功'); } else { $res = array('status' => 0, 'msg' => '请勿重复操作'); } $this->ajaxReturn($res); } /** * 预售列表 */ public function advanceList() { $store_id = $this->store_id; $advanceModel = new AdvanceGoodsModel(); $AdvanceSkuGoods = new AdvanceSkuGoodsModel(); $data = I("post."); $order_number = $data["order_number"]; $price = $data['price']; $advance_type = $data['advance_type']; $advance_state = $data['advance_state']; $add_time = $data['add_time']; $page = $data['page']; $limit = $data['limit']; $where = array( 'a.store_id' => $store_id, 'a.advance_state' => array('neq', 2) ); if (!empty($order_number)) { //名称货号条码 $where['g.goods_number | g.goods_name | g.goods_code'] = array('like', '%' . $order_number . '%'); } if (!empty($price)) { $wap = array( 'store_id' => $store_id, 'advance_state' => array('neq', 2) ); switch ($price) { case 1: //50以下 $wap['advance_price'] = array('lt', '50'); $tap['a.advance_price'] = array('lt', '50'); break; case 2: $wap['advance_price'] = array('between', array('50', '200')); $tap['a.advance_price'] = array('between', array('50', '200')); break; case 3: $wap['advance_price'] = array('between', array('200', '500')); $tap['a.advance_price'] = array('between', array('200', '500')); break; case 4: $wap['advance_price'] = array('between', array('500', '1000')); $tap['a.advance_price'] = array('between', array('500', '1000')); break; case 5: $wap['advance_price'] = array('gt', '1000'); $tap['a.advance_price'] = array('gt', '1000'); break; } $advance_id_arr = $AdvanceSkuGoods->where($wap)->group("advance_id")->getField("advance_id", true); if (!empty($advance_id_arr)) { $tap['a.id'] = array('in', $advance_id_arr); $tap['_logic'] = 'or'; $where['_complex'] = $tap; } else { $where['a.advance_price'] = $tap['a.advance_price']; } } if (!empty($advance_type)) { $where['a.advance_type'] = $advance_type; } if ($advance_state != "") { $where['a.advance_state'] = $advance_state; } if (!empty($add_time)) { $start_time = strtotime($add_time[0]); $end_time = strtotime($add_time[1]); $where['a.add_time'] = array('between', array($start_time, $end_time)); } $parameter = array( 'where' => $where, 'page' => $page, 'limit' => $limit, 'field' => array( 'a.id', 'a.goods_id', 'a.advance_num', 'a.surplus_num', 'a.advance_start_time', 'a.advance_end_time', 'a.advance_state', 'a.advance_type', 'a.attribute_state', 'g.goods_name', 'g.goods_number', 'g.goods_code', ) ); $info = $advanceModel->getList($parameter); if ($info['status'] == 1) { $count = $advanceModel->getListCount(array('where' => $where)); $list = $info['data']['list']; foreach ($list as $key => &$val) { $val['index'] = $key + 1; $val['advance_num'] = round($val['advance_num'], 3); if (C('IS_SET_REDIS')) { $frozen_param = array( 'id' => $val['id'], 'goods_id' => $val['goods_id'], 'sku_id' => '', 'attribute_state' => $val['attribute_state'], ); $frozen_num = $advanceModel->frozen_num($frozen_param); $val['surplus_num'] = round($val['surplus_num'] - $frozen_num, 3); } $val['surplus_num'] = round($val['surplus_num'], 3); $val['advance_start_time'] = date('Y-m-d H:i:s', $val['advance_start_time']); $val['advance_end_time'] = date('Y-m-d H:i:s', $val['advance_end_time']); switch ($val['advance_type']) { case 1: $val['type_name'] = "全额"; break; case 2: $val['type_name'] = "定金"; break; } switch ($val['advance_state']) { case 0: $val['advance_name'] = "关闭"; break; case 1: $val['advance_name'] = "开启"; break; } } } $res['status'] = 1; $res['msg'] = '查询成功'; $res['data'] = $list ? $list : array(); $res['count'] = $count ? $count : 0; $this->ajaxReturn($res); } /** * 预售商品 */ public function addAdvance() { $id = I("get.id"); if (!empty($id)) { $this->assign('id', $id); $this->assign("edit", true); } else { $this->assign('id', ""); $this->assign("edit", false); } //配送模板 $where = array( 'store_id' => $this->store_id, 'status' => 1, 'state' => 1, ); $DeliveryTemplateModel = new DeliveryTemplateModel(); $delivery_template = $DeliveryTemplateModel->getSelect($where, "id,title"); $delivery_template = $delivery_template ? $delivery_template : array(); $this->assign("delivery_template", json_encode($delivery_template)); $this->display(); } /** * 商品列表 */ public function goodsList() { $platform_type = $this->role_info['platform_type']; //商户平台类型 1默认系统 2微礼平台 $store_id = $this->store_id; $GoodsModel = new RetailGoodsModel(); $page = I("post.page") . "," . I("post.limit"); $order_number = I("post.order_number"); $AdvanceGoodsModel = new AdvanceGoodsModel(); $advance_goods_ids = $AdvanceGoodsModel->getFindField(array('advance_state' => array('neq', 2), 'advance_end_time'=>['gt',time()],'store_id' => $store_id), "goods_id", true); $where = array( 'g.store_id' => $store_id, 'g.status' => 0, 'g.online_state' => 1, 'g.advance_sale_status' => 1 ); if (!empty($advance_goods_ids)) { $where['g.id'] = array('not in', $advance_goods_ids); } if (!empty($order_number)) { $where['g.goods_number | g.goods_name | g.goods_code'] = array('like', "%" . $order_number . "%"); } $fields = [ 'g.id', 'g.goods_img_id', 'g.goods_name', 'g.goods_number', 'g.goods_code', 'g.online_price', 'g.attribute_state', 'g.status', 'g.pricing_method', 's.goods_num' ]; if ($platform_type == 2) { $fields[] = 'g.third_goods_code'; } $list = $GoodsModel->getOnlineGoods($where, $fields, "g.id desc", $page); if ($list) { $count = $GoodsModel->getOnlineCount($where); $ImageGalleryModel = new ImageGalleryModel(); if ($platform_type == 2) { //第三方平台 $code_arr = []; } foreach ($list as &$val) { $val['online_price'] = round($val['online_price'], 2); $val['image'] = $ImageGalleryModel->getOneField(array('id' => $val['goods_img_id']), 'path'); if ($platform_type == 2) { //第三方平台 if ($val['attribute_state'] == 2) { $val['goods_num'] = '规格库存'; } else { $val['goods_num'] = 0; $code_arr[$val['id']] = $val['third_goods_code']; } } else { if ($val['attribute_state'] == 2) { $val['goods_num'] = A("Api/Inventory")->goods_num(2, $store_id, $val['id']); } else { $val['goods_num'] = round($val['goods_num'], 3); } } switch ($val['status']) { case 0: $val['status_name'] = "上架"; break; case 1: $val['status_name'] = "下架"; break; } } if ($platform_type == 2 && !empty($code_arr)) { //第三方平台 $ThirdGoodsClass = new Goods(); $storeResult = $ThirdGoodsClass->storeCode($this->store_id); $Customer_Codes = $storeResult['data']; $thirdResult = $ThirdGoodsClass->goodsNumQuery([ 'merchant_id' => $this->merchant_id, 'type' => 2, 'code_arr' => $code_arr, 'Customer_Codes' => $Customer_Codes ]); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $goods_stock = $thirdResult['data']; foreach ($list as &$val) { if ($val['attribute_state'] == 1 && !empty($goods_stock[$val['id']])) { $val['goods_num'] = $goods_stock[$val['id']]; } } } } } else { $count = 0; } $res['data'] = $list; $res['count'] = $count; $this->ajaxReturn($res); } /** * 规格信息 */ public function getSkuList() { $platform_type = $this->role_info['platform_type']; $goods_id = I("post.goods_id"); $where = array( 'k.goods_id' => $goods_id, 'k.status' => 1, 'k.state' => 0 ); $fields = [ 'k.id as sku_id', 'k.online_price', 's.goods_num', 's.sku_name' ]; if ($platform_type == 2) { //第三方平台 $fields[] = 'k.third_goods_code'; } $RetailSkuGoodsModel = new RetailSkuGoodsModel(); $list = $RetailSkuGoodsModel->getSkuGoodsList($where, $fields); if ($list) { if ($platform_type == 2) { $code_arr = []; } foreach ($list as &$val) { if ($platform_type == 2) { $val['goods_num'] = 0; $code_arr[$val['sku_id']] = $val['third_goods_code']; } else { $val['goods_num'] = round($val['goods_num'], 3); } $val['online_price'] = round($val['online_price'], 2); } if ($platform_type == 2 && !empty($code_arr)) { //第三方平台 $ThirdGoodsClass = new Goods(); $storeResult = $ThirdGoodsClass->storeCode($this->store_id); $Customer_Codes = $storeResult['data']; $thirdResult = $ThirdGoodsClass->goodsNumQuery([ 'merchant_id' => $this->merchant_id, 'type' => 2, 'code_arr' => $code_arr, 'Customer_Codes' => $Customer_Codes ]); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $goods_stock = $thirdResult['data']; foreach ($list as &$val) { if (!empty($goods_stock[$val['sku_id']])) { $val['goods_num'] = $goods_stock[$val['sku_id']]; } } } } $res['status'] = 1; $res['data'] = $list; } else { $res['status'] = 0; $res['msg'] = "未找到改规格信息"; } $this->ajaxReturn($res); } /** * 添加/编辑 商品 */ public function addSet() { $merchant_id = $this->merchant_id; $store_id = $this->store_id; $data = json_decode(htmlspecialchars_decode(I("post.goods")), true); $advance_id = I("post.id"); //预售主键id 编辑可用 $verify_param = array( 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'data' => $data ); //验证参数 $AdvanceGoodsModel = new AdvanceGoodsModel(); $add_param_verify = $AdvanceGoodsModel->add_param_verify($verify_param); if ($add_param_verify['status'] == 0) { $this->ajaxReturn($add_param_verify); } $ruleList = $data['ruleList']; //商品验证 $goods_verify = $AdvanceGoodsModel->goods_verify(array('advance_id' => $advance_id, 'rule_list' => $ruleList, 'data' => $data, 'store_id' => $store_id)); if ($goods_verify['status'] == 0) { $this->ajaxReturn($goods_verify); } asort($data['delivery_type']); //配送方式排序 if (in_array(3, $data['delivery_type'])) { $delivery_template_id = $data['delivery_template_id']; } else { $delivery_template_id = 0; } $content = array( 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'goods_id' => $data['goods_id'], 'restrict_num' => $data['restrict_num'] ? $data['restrict_num'] : null, 'rise_num' => $data['rise_num'] ? $data['rise_num'] : null, 'advance_start_time' => strtotime($data['advance_time'][0]), 'advance_end_time' => strtotime($data['advance_time'][1]), 'tail_start_time' => strtotime($data['tail_time'][0]), 'tail_end_time' => strtotime($data['tail_time'][1]), 'deliver_start_time' => strtotime($data['deliver_time'][0]), 'deliver_end_time' => strtotime($data['deliver_time'][1]), 'advance_type' => $data['advance_type'], 'advance_state' => 1, 'delivery_type' => implode(',', $data['delivery_type']), 'delivery_template_id' => $delivery_template_id, 'refuse_earnest_price' => $data['refuse_earnest_price'], 'add_time' => time(), 'attribute_state' => $data['attribute_state'] ); if (!empty($advance_id)) { unset($content['refuse_earnest_price']); unset($content['advance_type']); } $res = $AdvanceGoodsModel->advance_add(array('advance_id' => $advance_id, 'data' => $data, 'rule_list' => $ruleList, 'content' => $content)); if ($res['status'] == 1) { $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => $advance_id ? "预售活动编辑" : "预售活动添加", 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 } $this->ajaxReturn($res); } /** * 编辑信息 */ public function editInfo() { $platform_type = $this->role_info['platform_type']; $store_id = $this->store_id; $id = I("post.id"); $AdvanceGoodsModel = new AdvanceGoodsModel(); if ($platform_type == 2) { $ThirdGoodsClass = new Goods(); $storeResult = $ThirdGoodsClass->storeCode($this->store_id); $Customer_Codes = $storeResult['data']; $third_data = [ 'merchant_id' => $this->merchant_id, 'type' => 2, 'Customer_Codes' => $Customer_Codes ]; } if (!empty($id)) { $where['a.id'] = $id; $fields = [ 'a.*', 'g.goods_name', 'g.attribute_state', 'g.online_price', 'g.goods_img_id', ]; if ($platform_type == 2) { $fields[] = 'g.third_goods_code'; } $goods_info = M("retail_advance_goods as a") ->join("ls_retail_goods as g on a.goods_id=g.id") ->where($where) ->field($fields) ->find(); $ImageGalleryModel = new ImageGalleryModel(); $path = $ImageGalleryModel->getOneField(array('id' => $goods_info['goods_img_id']), 'path'); if ($goods_info['attribute_state'] == 1) { $map = array( 'store_id' => $store_id, 'goods_id' => $goods_info['goods_id'], ); $SSaleMGoodsModel = new SSaleMGoodsModel(); if ($platform_type == 2) { //第三方平台 $goods_num = 0; $third_data['code_arr'] = [$goods_info['third_goods_code']]; $thirdResult = $ThirdGoodsClass->goodsNumQuery($third_data); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $goods_num = $thirdResult['data'][0]; } } else { $goods_num = $SSaleMGoodsModel->getFindField($map, "goods_num"); } if (C('IS_SET_REDIS')) { $frozen_param = array( 'id' => $id, 'goods_id' => $goods_info['goods_id'], 'sku_id' => '', 'attribute_state' => 1 ); $frozen_num = $AdvanceGoodsModel->frozen_num($frozen_param); $goods_info['surplus_num'] = round($goods_info['surplus_num'] - $frozen_num, 3); } $ruleList = array(array( 'goods_num' => round($goods_num, 3), 'surplus_num' => round($goods_info['surplus_num'], 3), 'online_price' => round($goods_info['online_price'], 2), 'advance_price' => round($goods_info['advance_price'], 2), 'advance_num' => round($goods_info['advance_num'], 3), 'sold_num' => round(($goods_info['advance_num'] - $goods_info['surplus_num']), 3), 'earnest_price' => round($goods_info['earnest_price'], 2), 'arrive_price' => $goods_info['arrive_price'] ? round($goods_info['arrive_price'], 2) : '', 'edit_type' => true )); } else if ($goods_info['attribute_state'] == 2) { $map = array( 'a.goods_id' => $goods_info['goods_id'], 'a.advance_id' => $id, ); $fields = [ 'a.sku_id', 'a.advance_num', 'a.surplus_num', 'a.earnest_price', 'a.advance_price', 'a.arrive_price', 's.sku_name', 's.goods_num', 'k.online_price' ]; if ($platform_type == 2) { //第三方平台 $fields[] = 'k.third_goods_code'; } $ruleList = M("retail_advance_sku_goods as a") ->join("ls_retail_store_sale_goods as s on a.sku_id=s.sku_id") ->join("ls_retail_sku_goods as k on s.sku_id = k.id") ->where($map) ->field($fields) ->order("a.id asc") ->select(); if ($platform_type == 2) { //第三方平台 $code_arr = []; } foreach ($ruleList as &$val) { $sku_id_arr[] = $val["sku_id"]; if (C('IS_SET_REDIS')) { $frozen_param = array( 'id' => $id, 'goods_id' => $goods_info['goods_id'], 'sku_id' => $val['sku_id'], 'attribute_state' => 2 ); $frozen_num = $AdvanceGoodsModel->frozen_num($frozen_param); $val['surplus_num'] = round($val['surplus_num'] - $frozen_num, 3); } $val['advance_num'] = round($val['advance_num'], 3); if($platform_type == 2){ //第三方平台 $code_arr[$val['sku_id']] = $val['third_goods_code']; }else{ $val['goods_num'] = round($val['goods_num'], 3); } $val['surplus_num'] = round($val['surplus_num'], 3); $val['sold_num'] = round(($val['advance_num'] - $val['surplus_num']), 3); $val['earnest_price'] = round($val['earnest_price'], 2); $val['advance_price'] = round($val['advance_price'], 2); $val['arrive_price'] = $val['arrive_price'] ? round($val['arrive_price'], 2) : ''; $val['online_price'] = round($val['online_price'], 2); $val['edit_type'] = true; } if ($platform_type == 2 && !empty($code_arr)) { //第三方平台 $third_data['code_arr'] = $code_arr; $thirdResult = $ThirdGoodsClass->goodsNumQuery($third_data); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $goods_stock = $thirdResult['data']; foreach ($ruleList as &$val) { if (!empty($goods_stock[$val['sku_id']])) { $val['goods_num'] = $goods_stock[$val['sku_id']]; } } } } $map = array( 'k.goods_id' => $goods_info['goods_id'], 'k.status' => 1, 'k.state' => 0, 'k.id' => array('not in', $sku_id_arr) ); $fields = [ 'k.online_price', 's.sku_id', 's.sku_name', 's.goods_num', ]; if ($platform_type == 2) { //第三方平台 $fields[] = 'k.third_goods_code'; } $SkuGoodsModel = new RetailSkuGoodsModel(); $old_sku_info = $SkuGoodsModel->getSkuGoodsList($map, $fields); if ($old_sku_info) { if ($platform_type == 2) { //第三方平台 $code_arr = []; } foreach ($old_sku_info as &$v) { if ($platform_type == 2) { //第三方平台 $v['goods_num'] = 0; $code_arr[$v['sku_id']] = $v['third_goods_code']; } else { $v['goods_num'] = round($v['goods_num'], 3); } $v['online_price'] = round($v['online_price'], 2); $v['edit_type'] = false; } if ($platform_type == 2 && !empty($code_arr)) { //第三方平台 $third_data['code_arr'] = $code_arr; $thirdResult = $ThirdGoodsClass->goodsNumQuery($third_data); if ($thirdResult['status'] == 1 && !empty($thirdResult['data'])) { $goods_stock = $thirdResult['data']; foreach ($old_sku_info as &$val) { if (!empty($goods_stock[$val['sku_id']])) { $val['goods_num'] = $goods_stock[$val['sku_id']]; } } } } $ruleList = array_merge($ruleList, $old_sku_info); } } $delivery_type = explode(',', $goods_info['delivery_type']); $express_state = false; //是否显示配送模板 if (in_array(3, $delivery_type)) { $express_state = true; } //配送模板 $where = array( 'store_id' => $store_id, 'status' => 1, 'state' => 1, ); $DeliveryTemplateModel = new DeliveryTemplateModel(); $delivery_template = $DeliveryTemplateModel->getSelect($where, "id,title"); $delivery_template = $delivery_template ? $delivery_template : array(); $advance_time = array(date('Y-m-d H:i:s', $goods_info['advance_start_time']), date('Y-m-d H:i:s', $goods_info['advance_end_time'])); $tail_time = array(date('Y-m-d H:i:s', $goods_info['tail_start_time']), date('Y-m-d H:i:s', $goods_info['tail_end_time'])); $deliver_time = array(date('Y-m-d H:i:s', $goods_info['deliver_start_time']), date('Y-m-d H:i:s', $goods_info['deliver_end_time'])); $info = array( 'goods_id' => $goods_info['goods_id'], 'goods_name' => $goods_info['goods_name'], 'advance_type' => $goods_info['advance_type'], 'attribute_state' => $goods_info['attribute_state'], 'restrict_num' => $goods_info['restrict_num'] ? floatval($goods_info['restrict_num']) : '', 'rise_num' => $goods_info['rise_num'] ? floatval($goods_info['rise_num']) : '', 'advance_time' => $advance_time, 'tail_time' => $tail_time, 'deliver_time' => $deliver_time, 'delivery_type' => $goods_info['delivery_type'] ? json_decode('[' . join(',', $delivery_type) . ']', true) : array(), 'refuse_earnest_price' => $goods_info['refuse_earnest_price'], 'ruleList' => $ruleList, 'delivery_list' => array( array('type' => 1, 'title' => '自提'), array('type' => 2, 'title' => '同城配送'), array('type' => 3, 'title' => '快递配送'), ), 'delivery_template' => $delivery_template, 'delivery_template_id' => $goods_info['delivery_template_id'] ? $goods_info['delivery_template_id'] : '', 'express_state' => $express_state ); $content = array( 'path' => $path, 'goods' => $info ); $res['status'] = 1; $res['info'] = $content; } else { $res['status'] = 0; } $this->ajaxReturn($res); } /** *活动删除 */ public function deleteAct() { $id = I("post.id"); $goods_id = I("post.goods_id"); if (!$id) { $res['status'] = 0; $res['msg'] = "参数缺失"; $this->ajaxReturn($res); } $GoodsModel = new RetailGoodsModel(); $AdvanceGoodsModel = new AdvanceGoodsModel(); $AdvanceSkuGoodsModel = new AdvanceSkuGoodsModel(); $aMap = array( 'id' => $id, ); $advance_info = $AdvanceGoodsModel->getFind($aMap); if (!$advance_info) { $res = array( 'status' => 0, 'msg' => '未找到该活动' ); $this->ajaxReturn($res); } //判断是否存在售卖订单 $AdvanceOrderModel = new RetailBillAdvanceModel(); $order_info = $AdvanceOrderModel->getFind([ 'state' => ['gt', 0], 'advance_id' => $id ]); if (!empty($order_info)) { //有售卖情况 if (round($advance_info['advance_num'], 3) != round($advance_info['surplus_num'], 3)) { if ($advance_info['deliver_end_time'] > time() || $advance_info['tail_end_time'] > time()) { $res = array( 'status' => 0, 'msg' => '预售活动未结束暂不能删除' ); $this->ajaxReturn($res); } } } $save = $AdvanceGoodsModel->updateOrder($aMap, array('advance_state' => 2)); if ($save) { $AdvanceSkuGoodsModel->updateOrder(array('advance_id' => $id), array('advance_state' => 2)); $surplus_num = $AdvanceGoodsModel->getFindField(array('id' => $id), "surplus_num"); if ($surplus_num > 0) { $attribute_state = $GoodsModel->getFindField(array('id' => $goods_id), "attribute_state"); if ($attribute_state == 1) { A("Api/Inventory")->Inventory(1, $surplus_num, $goods_id); } else if ($attribute_state == 2) { $map = array( 'advance_id' => $id, 'goods_id' => $goods_id, 'surplus_num' => array('gt', 0) ); $skuList = $AdvanceSkuGoodsModel->getSelect($map); if ($skuList) { foreach ($skuList as $val) { A("Api/Inventory")->Inventory(1, $val['surplus_num'], $goods_id, $val['sku_id']); } } } } $Journal_parameter = array( 'source' => 0, 'type' => 4, 'desc' => "预售活动删除", 'request_data' => json_encode($_POST), ); action_log_v2($Journal_parameter); //日志 $res['status'] = 1; $res['msg'] = "操作成功"; } else { $res['status'] = 0; $res['msg'] = '请勿重复操作'; } $this->ajaxReturn($res); } }