/** * 更新一条或多条记录,暂只支持一维数组 * @para $data as array $ @where as String */ public static function update($data, $where = "") { self::initDB(); $field = ""; if (!is_array($field)) { foreach ($data as $k => $v) { $field .= ",`" . $k . "` = '" . $v . "'"; } $field = ltrim($field, ","); $sql = "UPDATE `" . self::$table . "` SET " . $field . " WHERE 1 " . $where; $query = self::$dbConn->query($sql); if ($query) { publishMQ($table, $sql, C("MQSERVERADDRESS")); return true; } else { return false; } } else { return false; } }
/** * 是否是超大拦截 * @eturn array 返回ordertype * @author andy */ public function isSuperLargeOrder() { F('order'); //引进order_functions.php $orderDetail = $this->orderData['orderDetail']; $order_log = '检测是否超大信息:'; $splittedMainOrderId = M('order')->getSplittedMainOrderId($this->order_id); //判断该订单是否是超大审核通过 或者 如果该订单是拆分出来的子订单 if ($GLOBALS['is_from_over_weight_order'] == true || M('SuperAmountSku')->checkIsAuditted($this->order_id) === true || M('SuperAmountSku')->checkIsAuditted($splittedMainOrderId) === true) { $GLOBALS['is_from_over_weight_order'] = false; M('orderLog')->orderOperatorLog('no sql', "超大审核通过", $this->order_id); return false; } //如果该订单是超重订单拆分出来的子订单,不拦截 foreach ($orderDetail as $detail) { $hava_goodscount = true; $sku = $detail['orderDetail']['sku']; $amount = $detail['orderDetail']['amount']; $detail_id = $detail['orderDetail']['id']; $storeId = $detail['orderDetail']['storeId']; //$sku有可能是组合sku $skuinfo = M("InterfacePc")->getSkuinfo($sku); /***筛选订单中的超大订单料号 Start ***/ foreach ($skuinfo['skuInfo'] as $or_sku => $skuinfoDetailValue) { //$allnums = $skuinfoDetailValue['amount']; //实际数量等于 组合料号中的配置数量乘以购买数量 $real_buy_numbers = ceil($amount * $skuinfoDetailValue['amount']); $order_log .= "<br>sku {$or_sku}实际购买数量为:{$real_buy_numbers},"; //从仓库接口获取可用库存 $real_stock_num = getSkuRealStock($or_sku, $storeId); //料号可以用150测试 $order_log .= "实际库存:{$real_stock_num},"; //获取日均销量 $average_day_sale = F('SkuDailyInfo')->getSkuAverageDailyCount($sku); $order_log .= "每日均量:{$average_day_sale},"; $average_num_10times = ceil($average_day_sale * 10); $buy_numbers_equ_stock_numbers_times = $real_stock_num > 0 ? round($real_buy_numbers / $real_stock_num, 2) : 0; //购买数量是实际库存的倍数 $is_super_sku = false; /** * 1.购买数量大于9 且 大于10倍均量 * 2.购买数量大于库存的一半 且 大于10倍均量 */ if ($real_buy_numbers > 9 && $real_buy_numbers > $average_num_10times) { $is_super_sku = true; } else { if ($buy_numbers_equ_stock_numbers_times > 0.5 && $real_buy_numbers > $average_num_10times && $real_stock_num > 0 && $average_num_10times > 0) { $is_super_sku = true; } } if ($is_super_sku) { M('orderLog')->orderOperatorLog('no sql', $order_log . " {$or_sku}超大", $this->order_id); //超大订单状态 //加入超大sku到表 if (empty($detail_id)) { $detail_id = 0; } $super_amount_sku_data = array('omOrderId' => $this->order_id, 'auditTime' => time(), 'auditUser' => 0, 'omOrderdetailId' => $detail_id, 'sku' => $sku, 'amount' => $amount); M('SuperAmountSku')->addSuperAmountSku($super_amount_sku_data); publishMQ(json_encode($super_amount_sku_data)); return true; } M('orderLog')->orderOperatorLog('no sql', $order_log . " {$or_sku}不是超大", $this->order_id); } } return false; }
/** *修改指定表记录 */ public static function deleteTNameRow($tName, $where) { if (trim($where) == '') { return false; } self::initDB(); $sql = "DELETE FROM {$tName} {$where}"; //echo $sql.'<br>'; $query = self::$dbConn->query($sql); if ($query) { publishMQ($tName, $sql, C("MQSERVERADDRESS")); $affectRows = self::$dbConn->affected_rows($query); return $affectRows; //成功, 返回列表数据 } else { self::$errCode = "003"; self::$errMsg = "修改失败"; return false; //失败则设置错误码和错误信息, 返回false } }