Beispiel #1
0
 /**
 * 更新一条或多条记录,暂只支持一维数组
 * @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;
     }
 }
Beispiel #2
0
 /**
  * 是否是超大拦截
  * @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;
 }
Beispiel #3
0
 /**
  *修改指定表记录
  */
 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
     }
 }