'上午', 1 => '下午', 2 => '晚上']; //优惠金额 public static $randDiscount = [ 50 => [1, 3], 100 => [5, 9], 300 => [10, 15], 500 => [16, 18], 1000 => [18, 30], 20000 => [90, 100], ]; //添加订单 shish 2019.12.5 public static function addOrder($data) { $date = date("Y-m-d H:i:s"); $merchantId = $data['merchantId']; $data['orderSn'] = stringUtil::generateOrderNo($merchantId, $data['userId']); $data['payStatus'] = 0; $data['createTime'] = $date; $data['addTime'] = time(); $month = date("Ym"); $riseNum = StatOrderCountClass::addOrder($month, $merchantId); //将花店每月的总订单数作为编号 $data['sendNum'] = $riseNum; $data['totalFlow'] = OrderSendClass::TOTAL_FLOW; $return = self::add($data); //全部订单+1,待付款订单+1 $merchantAsset = MerchantAssetClass::getByMerchantId($merchantId, true); $merchantAsset->unPayOrder += 1; $merchantAsset->totalOrder += 1; $merchantAsset->save(); return $return; } public static function getByOrderSn($orderSn) { return self::getByCondition(['orderSn' => $orderSn]); } //评价 shish 2019.12.16 public static function comment($data) { $id = $data['id']; unset($data['id']); return self::updateById($id, $data); } //订单 public static function getOrderById($id) { $order = self::getById($id); if (empty($order)) { return []; } $order['goodsInfoList'] = OrderGoodsClass::getGoodsListById($id); return $order; } //根据订单查询 shish 2020.1.4 public static function getOrderBySn($orderSn) { $order = self::getByCondition(['orderSn' => $orderSn]); if (empty($order)) { return []; } $id = $order['id']; $order['goodsInfoList'] = OrderGoodsClass::getGoodsListById($id); return $order; } //返回随机优惠金额 shish 2019.9.12 public static function getRandDiscount($amount) { if ($amount <= 0) { return 0; } $randDiscount = self::$randDiscount; krsort($randDiscount); $rand = 0; foreach ($randDiscount as $currentAmount => $val) { if ($amount >= $currentAmount) { $rand = rand($val[0], $val[1]); break; } } return $rand / 10; } //订单完成 shish 2020.3.12 public static function complete($order) { $id = $order['id']; self::updateById($id, ['status' => OrderClass::ORDER_STATUS_COMPLETE, 'currentFlow' => 4]); $userId = $order['userId']; $user = UserClass::getById($userId); $merchantId = $order['merchantId']; $merchant = MerchantClass::getById($merchantId); //完成通知客户 InformUserClass::sendComplete($user, $order, $merchant); //完成通知管理员 InformAdminClass::sendComplete($order, $merchant); } //转化出送到时间 shish 2020.3.15 public static function getReachTime($order) { $reachTime = ''; if (isset($order['reachDate']) && !empty($order['reachDate'])) { $prev = date("n-j", strtotime($order['reachDate'])); $periodData = self::$reachPeriod; $periodKey = $order['reachPeriod']; $period = isset($periodData[$periodKey]) ? $periodData[$periodKey] : '上午'; $reachTime = $prev . ' ' . $period; } return $reachTime; } //支付成功获取unionId shish 2020.5.12 public static function payToUpdateUnionId($merchant, $merchantExtend, $orderSn, $user) { $mcId = $merchantExtend['wxPayMerchantId']; $miniOpenId = isset($user['miniOpenId']) ? $user['miniOpenId'] : ''; $unionId = isset($user['unionId']) ? $user['unionId'] : ''; $userId = $user['id']; if (empty($unionId)) { $unionId = miniUtil::getPaidUnionId($merchant, $miniOpenId, $mcId, (string)$orderSn, 0); if (!empty($unionId)) { $findUser = UserClass::getByUnionId($unionId); if (empty($findUser)) { UserClass::updateByCondition(['id' => $userId], ['unionId' => $unionId]); } else { UserClass::mergeUser($findUser, $user); } } } } //订单到期置成取消状态 shish 2020.5.25 public static function setExpire($order) { $now = time(); if (!empty($order['deadline']) && $now > $order['deadline']) { if ($order['status'] != 4) { $id = $order['id']; OrderClass::updateById($id, ['status' => 4]); } } } //支付成功需要处理的流程 shish 2020.5.25 public static function payAfter($order, $updateData) { $orderId = $order['id']; $now = time(); self::updateById($orderId, $updateData); //发货流程的完成下单 OrderSendClass::placeOrder(['orderId' => $orderId, 'payTime' => $now]); $merchantId = $order['merchantId']; $asset = MerchantAssetClass::getByMerchantId($merchantId); //增加订单数 StatOrderClass::addOrder($merchantId, $asset); } }