getFindField(array($StoreModel::ID => $store_id), $StoreModel::MERCHANT_ID); $vip = $VipModel->getFind(array($VipModel::MOBILE_PHONE . '|' . $VipModel::CARD_NUM . '|' . $VipModel::CARD_KEY => array('like', '%' . $vipCode . '%'), $VipModel::MERCHANT_ID => $merchant_id, $VipModel::STATUS => 1)); if (!$vip) { $res['status'] = 1; $res['order'] = array(); $res['msg'] = '会员不存在或已被冻结、挂失'; $res['count'] = 0; $this->ajaxReturn($res); } else { $map[$BillModel::VID] = $vip[$VipModel::ID]; $where[$BillModel::VID] = $vip[$VipModel::ID]; } } $CashierModel = new RetailCashierModel(); if ($line == 2) { //线上 小程序订单 $status = I('post.status'); // 类型查询条件 $order_genre = I('post.order_genre'); //1.商城订单 2.拼团订单 3.秒杀订单 $BillGroupModel = D('RetailBillGroup'); $BillSpikeModel = D('RetailBillSpike'); if ($order_genre == 2) { //拼团 $where['g.' . $BillGroupModel::STATE] = array('in', array(2, 3)); $map['g.' . $BillGroupModel::STATE] = array('in', array(2, 3)); $refund_map['g.' . $BillGroupModel::STATE] = 3; } else if ($order_genre == 3) { //秒杀 $where['s.' . $BillSpikeModel::STATE] = array('in', array(0, 1)); $map['s.' . $BillSpikeModel::STATE] = array('in', array(0, 1)); $refund_map['s.' . $BillSpikeModel::STATE] = 0; } // 订单类型 普通订单 拼团订单 秒杀订单 $where['o.' . $BillOnlineModel::ORDER_GENRE] = $order_genre; $map['o.' . $BillOnlineModel::ORDER_GENRE] = $order_genre; $refund_map['o.' . $BillOnlineModel::ORDER_GENRE] = $order_genre; $where[$BillModel::TYPE] = 1; //线上类型查询条件 switch ($status) { case 0: // 全部订单 $where[$BillModel::ORDER_TYPE] = array('in', array('1', '2')); $map[$BillModel::ORDER_TYPE] = 1; $refund_map[$BillModel::ORDER_TYPE] = array('in', array('2', '3')); $refund_map[$BillModel::TYPE] = 2; break; case 1: // 待自提订单 $where['o.' . $BillOnlineModel::PICKUP_TYPE] = 1; $where[$BillModel::ORDER_TYPE] = 1; $where['o.' . $BillOnlineModel::STATUS] = 1; $where[$BillModel::REFUND_STATUS] = 0; $map['o.' . $BillOnlineModel::PICKUP_TYPE] = 1; $map[$BillModel::ORDER_TYPE] = 1; $map['o.' . $BillOnlineModel::STATUS] = 1; $map[$BillModel::REFUND_STATUS] = 0; unset($refund_map); break; case 2: // 已自提订单 $where['o.' . $BillOnlineModel::PICKUP_TYPE] = 1; $where[$BillModel::ORDER_TYPE] = 1; $where['o.' . $BillOnlineModel::STATUS] = 3; $where[$BillModel::REFUND_STATUS] = 0; $map['o.' . $BillOnlineModel::PICKUP_TYPE] = 1; $map[$BillModel::ORDER_TYPE] = 1; $map['o.' . $BillOnlineModel::STATUS] = 3; $map[$BillModel::REFUND_STATUS] = 0; unset($refund_map); break; case 3: // 待发货 $where['o.' . $BillOnlineModel::PICKUP_TYPE] = 2; $where[$BillModel::ORDER_TYPE] = 1; $where['o.' . $BillOnlineModel::STATUS] = 1; $where[$BillModel::REFUND_STATUS] = 0; $map['o.' . $BillOnlineModel::PICKUP_TYPE] = 2; $map[$BillModel::ORDER_TYPE] = 1; $map['o.' . $BillOnlineModel::STATUS] = 1; $map[$BillModel::REFUND_STATUS] = 0; unset($refund_map); break; case 4: // 配送中 $where['o.' . $BillOnlineModel::PICKUP_TYPE] = 2; $where[$BillModel::ORDER_TYPE] = 1; $where['o.' . $BillOnlineModel::STATUS] = 2; $where[$BillModel::REFUND_STATUS] = 0; $map['o.' . $BillOnlineModel::PICKUP_TYPE] = 2; $map[$BillModel::ORDER_TYPE] = 1; $map['o.' . $BillOnlineModel::STATUS] = 2; $map[$BillModel::REFUND_STATUS] = 0; unset($refund_map); break; case 5: // 已收货 $where['o.' . $BillOnlineModel::PICKUP_TYPE] = 2; $where[$BillModel::ORDER_TYPE] = 1; $where['o.' . $BillOnlineModel::STATUS] = 3; $where[$BillModel::REFUND_STATUS] = 0; $map['o.' . $BillOnlineModel::PICKUP_TYPE] = 2; $map[$BillModel::ORDER_TYPE] = 1; $map['o.' . $BillOnlineModel::STATUS] = 3; $map[$BillModel::REFUND_STATUS] = 0; unset($refund_map); break; case 6: // 正常购买 $where[$BillModel::ORDER_TYPE] = 1; $where[$BillModel::REFUND_STATUS] = 0; $map[$BillModel::ORDER_TYPE] = 1; $map[$BillModel::REFUND_STATUS] = 0; unset($refund_map); break; case 7: // 待退款 $where[$BillModel::ORDER_TYPE] = 2; $where[$BillModel::REFUND_STATUS] = 1; $refund_map[$BillModel::ORDER_TYPE] = 2; $refund_map[$BillModel::REFUND_STATUS] = 1; unset($map); break; case 8: // 已退款 $where[$BillModel::ORDER_TYPE] = 1; $where[$BillModel::REFUND_STATUS] = array('in', array('2', '3')); $refund_map[$BillModel::ORDER_TYPE] = 1; $refund_map[$BillModel::REFUND_STATUS] = array('in', array('2', '3')); unset($map); break; case 9: // 购买订单 $where[$BillModel::ORDER_TYPE] = 1; $map[$BillModel::ORDER_TYPE] = 1; $refund_map[$BillModel::ORDER_TYPE] = 1; $refund_map[$BillModel::REFUND_STATUS] = array('in', array('1', '2', '3')); break; case 10: // 退款订单 $where[$BillModel::ORDER_TYPE] = 2; $refund_map[$BillModel::ORDER_TYPE] = 2; unset($map); break; default: $where[$BillModel::ORDER_TYPE] = array('in', array('1', '2')); $map[$BillModel::ORDER_TYPE] = 1; $refund_map[$BillModel::ORDER_TYPE] = array('in', array('2', '3')); } if (!empty($map)) { $map[$BillModel::TYPE] = 1; if ($order_genre == 1) { //商城 $resBack = $BillModel->getOnlineAllData($map); //获取总条数和总金额 } else if ($order_genre == 2) { //拼团 $resBack = $BillModel->getOnlineGroupAllData($map); //获取总条数和总金额 } else if ($order_genre == 3) { //秒杀 $resBack = $BillModel->getOnlineSkillAllData($map); //获取总条数和总金额 } $order_count = $resBack['num']; $order_money = $resBack['money']; } else { $order_count = 0; $order_money = 0; } if (!empty($refund_map)) { $refund_map[$BillModel::TYPE] = 1; if ($order_genre == 1) { //商城 $resBack = $BillModel->getOnlineAllData($refund_map); //获取总条数和总金额 } else if ($order_genre == 2) { //拼团 $resBack = $BillModel->getOnlineGroupAllData($refund_map); //获取总条数和总金额 } else if ($order_genre == 3) { //秒杀 $resBack = $BillModel->getOnlineSkillAllData($refund_map); //获取总条数和总金额 } $refund_order_count = $resBack['num']; $refund_order_money = $resBack['money']; } else { $refund_order_count = 0; $refund_order_money = 0; } $all_money = $order_money - $refund_order_money; $res['order_count'] = $order_count; $res['order_money'] = $order_money; $res['refund_order_count'] = $refund_order_count; $res['refund_order_money'] = $refund_order_money; $res['all_money'] = $all_money > 0 ? round($all_money, 2) : '0'; if ($order_genre == 1) { //商城 $modelRes = $BillModel->getOnlineOrder($where, $page, $num); } else if ($order_genre == 2) { //拼团 $modelRes = $BillModel->getOnlineGroupOrder($where, $page, $num); } else if ($order_genre == 3) { //秒杀 $modelRes = $BillModel->getOnlineSkillOrder($where, $page, $num); } } else { /* 收银员是否可以查看所有订单 */ $cashier_show_other_sell = $CashierModel->getFindField(array($CashierModel::ID => $cashier_id), $CashierModel::SHOW_SELL_STATE); $cashier_show_other_sell = $cashier_show_other_sell ? $cashier_show_other_sell : 2; if ($cashier_show_other_sell == 2) { // 收银员查看自己订单 $map[$BillModel::CASHIER_ID] = $cashier_id; $where[$BillModel::CASHIER_ID] = $cashier_id; $refund_map[$BillModel::CASHIER_ID] = $cashier_id; } //现金支付 $map[$BillModel::TYPE] = 2; $combination = A('PayApi/SellData')->combinationPayment($map, 1); $map[$BillModel::PAY_TYPE] = 1; $map[$BillModel::ORDER_TYPE] = 1; $x_money = $BillModel->getSum($map, $BillModel::ALL_MONEY); $x_money = round($x_money + $combination['combination_xj'], 2); // 微信支付 $map[$BillModel::PAY_TYPE] = array('in', '3,6'); $w_money = $BillModel->getSum($map, $BillModel::ALL_MONEY); $w_money = round($w_money + $combination['combination_wxpay'], 2); //支付宝支付 $map[$BillModel::PAY_TYPE] = 4; $z_money = $BillModel->getSum($map, $BillModel::ALL_MONEY); $z_money = round($z_money + $combination['combination_zfb'], 2); //会员卡余额 $map[$BillModel::PAY_TYPE] = 5; $h_money = $BillModel->getSum($map, $BillModel::ALL_MONEY); $h_money = round($h_money + $combination['combination_membermoney'], 2); //其他支付 $map[$BillModel::PAY_TYPE] = 7; $other_money = $BillModel->getSum($map, $BillModel::ALL_MONEY); $other_money = round($other_money + $combination['combination_other_pay'], 2); //退款金额 $refund_map[$BillModel::ORDER_TYPE] = 2; $refund_money = $BillModel->getSum($refund_map, $BillModel::ALL_MONEY); $refund_money = $refund_money ? round($refund_money, 2) : 0; $res['x_money'] = $x_money; $res['w_money'] = $w_money; $res['z_money'] = $z_money; $res['h_money'] = $h_money; $res['o_money'] = $other_money; $res['r_money'] = $refund_money; $where['type'] = 2; $modelRes = $BillModel->getOutlineOrder($where, $page, $num); } $order = $modelRes['data']; $order_count = $modelRes['count']; $SellModel = D('RetailSell'); if (!empty($order)) { foreach ($order as $key => &$val) { if ($val[$BillDiscountModel::COUPON_MONEY] == null) { $val[$BillDiscountModel::COUPON_MONEY] = '0.00'; } if ($val[$BillDiscountModel::CASHIER_DIS_MONEY] == null) { $val[$BillDiscountModel::CASHIER_DIS_MONEY] = '0.00'; } if ($val[$BillDiscountModel::SMALL_CHANGES_MONEY] == null) { $val[$BillDiscountModel::SMALL_CHANGES_MONEY] = '0.00'; } if ($val[$BillDiscountModel::INTEGRAL_DIS_MONEY] == null) { $val[$BillDiscountModel::INTEGRAL_DIS_MONEY] = '0.00'; } if ($val[$BillDiscountModel::VIP_DIS_MONEY] == null) { $val[$BillDiscountModel::VIP_DIS_MONEY] = '0.00'; } $val['user_select_time'] = $val['user_select_time'] ? date('m-d H:i', $val['user_select_time']) : ''; //商城订单返回数据 if ($line == 2) { //判断是否达达配送 if ($val[$BillOnlineModel::DELIVERY_TYPE] == 2) { $DaOrderModel = D('RetailDaOrder'); $clerkinfo = $DaOrderModel->getOrderFind(array($DaOrderModel::ORDER_NO => strval($val[$BillModel::ORDER_NO]), $DaOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]), '*', 'id desc'); $val['order_status'] = $clerkinfo[$DaOrderModel::ORDER_STATUS]; } else if ($val[$BillOnlineModel::DELIVERY_TYPE] == 1) { //门店配送 if ($val[$BillOnlineModel::STATUS] == 1 && $val[$BillOnlineModel::PICKUP_TYPE] = 2) { $val['order_status'] = 0; } } else if ($val[$BillOnlineModel::DELIVERY_TYPE] == 3) { //Uu配送转成达达订单状态显示 $uuOrderModel = D('RetailUuOrder'); $state_uu = $uuOrderModel->getOrderFindField(array($uuOrderModel::ORIGIN_ID => $val[$BillModel::ID], $uuOrderModel::ID => $val[$BillOnlineModel::DELIVERY_RECORD_ID]), $uuOrderModel::STATE, 'id desc'); if ($state_uu == 1) { $val['order_status'] = 1; } else if ($state_uu == 3 || $state_uu == 4) { $val['order_status'] = 2; } else if ($state_uu == 5 || $state_uu == 6) { $val['order_status'] = 3; } else { $val['order_status'] = 4; } $val['delivery'] = 2; } if ($val[$BillModel::TYPE] == 1) { //商城 if ($val[$BillOnlineModel::PICKUP_TYPE] == 2) { if ($val[$BillOnlineModel::USER_ADDRESS]) { $val['address_name'] = $val[$BillOnlineModel::USER_NAME]; $val['address_phone'] = $val[$BillOnlineModel::USER_PHONE]; $val['address_address'] = $val[$BillOnlineModel::USER_ADDRESS]; } } else { $val['address_name'] = $val[$BillOnlineModel::USER_NAME]; $val['address_phone'] = $val[$BillOnlineModel::USER_PHONE]; } } } $val[$CashierModel::JOB_NUM] = $CashierModel->getFindField(array($CashierModel::ID => $val[$BillModel::CASHIER_ID]), $CashierModel::JOB_NUM); $val['key'] = $key + 1; //判断支付人员类型 if (!empty($val[$BillModel::VID])) { $val['vip_class'] = '会员'; } else { $val['vip_class'] = '散客'; } $val['payList'] = getPayTypeList($val[$BillModel::PAY_TYPE], $val[$BillModel::ALL_MONEY], $val[$BillModel::ID]); $fields = array( $SellModel::VIP_DISCOUNT, $SellModel::GOODS_ID, $SellModel::GOODS_NAME, $SellModel::NUM, $SellModel::REFUND_NUM, $SellModel::VIP_PRICE, $SellModel::PRICE, $SellModel::ORIGINAL_PRICE, $SellModel::PLUS_VIP_PRICE, $SellModel::ORIGINAL_PRICE, $SellModel::ALL_MONEY, $SellModel::GOODS_TYPE, $SellModel::ATTRIBUTE_STATE, $SellModel::SKU_JSON_INFO, $SellModel::PRICING_METHOD, ); $sellList = $SellModel->getSelect(array($SellModel::BILL_ID => $val[$BillModel::ID]), $fields); $beforeAllMoney = 0; $v_discount = 1; foreach ($sellList as $key => &$v) { $v['index'] = $key + 1; if (($v[$SellModel::GOODS_TYPE] == 2 || $v[$SellModel::GOODS_ID] == 0) && empty($v[$SellModel::GOODS_NAME])) { $v[$SellModel::GOODS_NAME] = '无码商品'; } if (!empty($v[$SellModel::SKU_JSON_INFO])) { $sku = json_decode($v[$SellModel::SKU_JSON_INFO], true); $v['sku_name'] = $sku['name']; $v['sku_id'] = $sku['id']; } else { $v['sku_name'] = ''; $v['sku_id'] = 0; } $v[$SellModel::NUM] = round($v[$SellModel::NUM], 3); if (floatval($v[$SellModel::VIP_DISCOUNT]) < 1 && floatval($v[$SellModel::VIP_DISCOUNT]) > 0) { $v_discount = floatval($v[$SellModel::VIP_DISCOUNT]); } $v[$SellModel::PRICE] = floatval($v[$SellModel::PRICE]); $v[$SellModel::ORIGINAL_PRICE] = floatval($v[$SellModel::ORIGINAL_PRICE]); $v[$SellModel::PLUS_VIP_PRICE] = floatval($v[$SellModel::PLUS_VIP_PRICE]); $v[$SellModel::VIP_PRICE] = floatval($v[$SellModel::VIP_PRICE]); $v['before_all_money'] = round($v[$SellModel::PRICE] * $v[$SellModel::NUM], 2); $beforeAllMoney += $v['before_all_money']; } $val['v_discount'] = $v_discount; $val['beforeAllMoney'] = $beforeAllMoney; $val['goods_info'] = $sellList; // $val['coupon'] = $val[$BillDiscountModel::VIP_DIS_MONEY]; //配送 $val[$BillModel::ADD_TIME] = date('Y-m-d H:i:s', $val[$BillModel::ADD_TIME]); $val[$BillDiscountModel::CASHIER_DIS_MONEY] = !empty($val[$BillDiscountModel::CASHIER_DIS_MONEY]) ? $val[$BillDiscountModel::CASHIER_DIS_MONEY] : 0; //优惠金额 $val['discount_amount'] = round($val[$BillDiscountModel::COUPON_MONEY] + $val[$BillDiscountModel::VIP_DIS_MONEY] + $val[$BillDiscountModel::CASHIER_DIS_MONEY] + $val[$BillDiscountModel::SMALL_CHANGES_MONEY], 2); $guide_name = ''; if (!empty($val[$BillModel::GUIDE_ID])) { $GuideModel = D('RetailGuide'); $guide_name = $GuideModel->getFindField(array($GuideModel::ID => $val[$BillModel::GUIDE_ID]), $GuideModel::NAME); } $val['guide_name'] = $guide_name; unset($val[$BillModel::PAY_TYPE]); unset($val[$BillModel::VID]); unset($val[$BillModel::STORE_ID]); unset($val[$BillModel::MERCHANT_ID]); unset($val[$BillModel::CASHIER_ID]); } } else { $order = array(); } $res['status'] = 1; $res['order'] = $order; $res['count'] = $order_count; $this->ajaxReturn($res); } /** * 获取订单列表2020-3-4 * $type 日期查询条件 * $line 判断小程序订单 、 所有订单 1:流水 2:商城 * $order_num 搜索查询条件 * $page 分页 * $num 分页数量 * $vipCode 会员订单 * $cashier_id 收银员id * $store_id 门店id * judge 搜索类型 1订单号 2自提码 3串号 */ public function orderInfo_v1() { $type = I('post.type'); $line = I('post.line'); $order_num = I('post.order_number'); $judge = I('post.judge'); $page = I('post.page'); $num = I('post.num'); $vipCode = I('post.vip_code'); $bill_type = I('post.bill_type'); //订单类型 1普通订单 2赊账订单 $credit_type = I('post.credit_type'); //选择赊账状态 1未还清 2已还清 $pay_type = I('post.pay_type'); //支付方式 1微信 2支付宝 3现金 4余额 $cashier_id = self::$cashier_id; $store_id = self::$store_id; $BillModel = new RetailBillOrderModel(); $SellSerialModel = new SellSerialModel(); $SerialClass = new SerialNumberGoods(); // 门店 $where['b.store_id'] = $store_id; $map['store_id'] = $store_id; $refund_map['store_id'] = $store_id; // 已支付 $where['b.pay_state'] = 1; $map['pay_state'] = 1; $refund_map['pay_state'] = 1; // 时间 查询条件 switch ($type) { case 1: //今天 $start_time = strtotime(date('Y-m-d 0:0:0', time())); $end_time = strtotime(date('Y-m-d 0:0:0', time())) + 86400; $time_str = $start_time . ',' . $end_time; $where['b.add_time'] = ['between', $time_str]; $map['add_time'] = ['between', $time_str]; $refund_map['add_time'] = ['between', $time_str]; $credit_map['ca.add_time'] = ['between', $time_str]; break; case 2: //昨天 $start_time = strtotime(date('Y-m-d 0:0:0', strtotime("-1day"))); $end_time = strtotime(date('Y-m-d 0:0:0', strtotime("-1day"))) + 86400; $time_str = $start_time . ',' . $end_time; $where['b.add_time'] = ['between', $time_str]; $map['add_time'] = ['between', $time_str]; $refund_map['add_time'] = ['between', $time_str]; $credit_map['ca.add_time'] = ['between', $time_str]; break; case 3: //本周 $start_time = strtotime(date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600))); $end_time = strtotime(date('Y-m-d', (time() + (7 - (date('w') == 0 ? 7 : date('w'))) * 24 * 3600))) + 86399; $time_str = $start_time . ',' . $end_time; $where['b.add_time'] = ['between', $time_str]; $map['add_time'] = ['between', $time_str]; $refund_map['add_time'] = ['between', $time_str]; $credit_map['ca.add_time'] = ['between', $time_str]; break; case 4: //其他 $start_time = strtotime(date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600))); $where['b.add_time'] = ['lt', $start_time]; $map['add_time'] = ['lt', $start_time]; $refund_map['add_time'] = ['lt', $start_time]; $credit_map['ca.add_time'] = ['lt', $start_time]; break; case 6: $start_time = strtotime(I('post.start_time')); $end_time = strtotime(I('post.end_time')); $time_str = $start_time . ',' . $end_time; $where[$BillModel::ADD_TIME] = array('between', $time_str); $map[$BillModel::ADD_TIME] = array('between', $time_str); $refund_map[$BillModel::ADD_TIME] = array('between', $time_str); break; default: // 默认 今日 $start_time = strtotime(date('Y-m-d 0:0:0', time())); $end_time = strtotime(date('Y-m-d 0:0:0', time())) + 86400; $time_str = $start_time . ',' . $end_time; $where['b.add_time'] = ['between', $time_str]; $map['add_time'] = ['between', $time_str]; $credit_map['ca.add_time'] = ['between', $start_time]; break; } // 订单号搜索 if (!empty($order_num)) { switch ($judge) { case 1: $where['b.order_no'] = ['like', '%' . $order_num]; $map['order_no'] = ['like', '%' . $order_num]; $refund_map['order_no'] = ['like', '%' . $order_num]; $credit_map['rbo.order_no'] = ['like', '%' . $order_num]; break; case 2: $where['o.pick_code'] = $order_num; $map['o.pick_code'] = $order_num; $refund_map['o.pick_code'] = $order_num; break; case 3: $order_id_arr = $SellSerialModel->basisSerialOrderId($order_num, 1); if (!empty($order_id_arr)) { $where['b.id'] = ['in', $order_id_arr]; $map['id'] = ['in', $order_id_arr]; $refund_map['id'] = ['in', $order_id_arr]; $credit_map['ca.id'] = ['in', $order_id_arr]; } else { $res['status'] = 1; $res['order'] = []; $res['msg'] = '串号不存在'; $res['count'] = 0; $this->ajaxReturn($res); } break; } unset($where['b.add_time']); unset($map['add_time']); unset($refund_map['add_time']); unset($credit_map['ca.add_time']); } $VipModel = new RetailVipModel(); if ($vipCode) { $StoreModel = new RetailStoreModel(); $merchant_id = $StoreModel->getFindField(['id' => $store_id], 'merchantid'); $vip = $VipModel->getFind(['mobile_phone|cardnum|card_key' => ['like', '%' . $vipCode . '%'], 'merchantid' => $merchant_id, 'status' => 1]); if (!$vip) { $res['status'] = 1; $res['order'] = []; $res['msg'] = '会员不存在或已被冻结、挂失'; $res['count'] = 0; $this->ajaxReturn($res); } else { $map['vid'] = $vip['id']; $where['b.vid'] = $vip['id']; $credit_map['rc.vid'] = $vip['id']; } } $CashierModel = new RetailCashierModel(); if ($line == 2) { //线上 小程序订单 $where['pay_state'] = ['in', '1,2']; $map['pay_state'] = ['in', '1,2']; $status = I('post.status'); // 类型查询条件 $order_genre = I('post.order_genre'); //1.商城订单 2.拼团订单 3.秒杀订单 4预售订单 $where['o.order_genre'] = $order_genre; $map['o.order_genre'] = $order_genre; $where['type'] = 1; $where['b.order_type'] = 1; $map['b.order_type'] = 1; switch ($order_genre) { case 2: //拼团 $where['g.state'] = ['in', '2,3']; $map['g.state'] = ['in', '2,3']; break; case 3: //秒杀 $where['s.state'] = ['in', '0,1']; $map['s.state'] = ['in', '0,1']; break; case 4: $where['a.state'] = ['in', '1,2']; $map['a.state'] = ['in', '1,2']; break; } switch ($status) { case 0: // 全部订单 $where['order_type'] = 1; $map['order_type'] = 1; break; case 1: // 待自提订单 $where['o.pickup_type'] = 1; $where['order_type'] = 1; $where['o.status'] = 1; $where['refund_status'] = 0; $map['o.pickup_type'] = 1; $map['order_type'] = 1; $map['o.status'] = 1; $map['refund_status'] = 0; break; case 2: // 已自提订单 $where['o.pickup_type'] = 1; $where['order_type'] = 1; $where['o.status'] = 3; $where['refund_status'] = 0; $map['o.pickup_type'] = 1; $map['order_type'] = 1; $map['o.status'] = 3; $map['refund_status'] = 0; break; case 3: // 待发货 $where['o.pickup_type'] = 2; $where['order_type'] = 1; $where['o.status'] = 1; $where['refund_status'] = 0; $map['o.pickup_type'] = 2; $map['order_type'] = 1; $map['o.status'] = 1; $map['refund_status'] = 0; break; case 4: // 配送中 $where['o.pickup_type'] = 2; $where['order_type'] = 1; $where['o.status'] = 2; $where['refund_status'] = 0; $map['o.pickup_type'] = 2; $map['order_type'] = 1; $map['o.status'] = 2; $map['refund_status'] = 0; break; case 5: // 已收货 $where['o.pickup_type'] = 2; $where['order_type'] = 1; $where['o.status'] = 3; $where['refund_status'] = 0; $map['o.pickup_type'] = 2; $map['order_type'] = 1; $map['o.status'] = 3; $map['refund_status'] = 0; break; case 6: // 正常购买 $where['order_type'] = 1; $where['refund_status'] = 0; $map['order_type'] = 1; $map['refund_status'] = 0; break; case 9: // 购买订单 $where['order_type'] = 1; $map['order_type'] = 1; break; case 10: //待付尾款已过期 $where['a.state'] = 1; $where['a.tail_end_time'] = ['lt', time()]; $where['a.advance_type'] = 2; $map['a.state'] = 1; $map['a.tail_end_time'] = ['lt', time()]; $map['a.advance_type'] = 2; break; case 11: //待付尾款未过期 $where['a.state'] = 1; $where['a.tail_end_time'] = ['gt', time()]; $where['a.advance_type'] = 2; $map['a.state'] = 1; $map['a.tail_end_time'] = ['gt', time()]; $map['a.advance_type'] = 2; break; case 12: //已付款 $where['a.state'] = 2; $map['a.state'] = 2; break; default: $where['order_type'] = 1; $map['order_type'] = 1; } if (!empty($map)) { $map['type'] = 1; switch ($order_genre) { case 1: //商城 $resBack = $BillModel->getOnlineAllData($map); //获取总条数和总金额 break; case 2: //拼团 $resBack = $BillModel->getOnlineGroupAllData($map); //获取总条数和总金额 break; case 3: //秒杀 $resBack = $BillModel->getOnlineSkillAllData($map); //获取总条数和总金额 break; case 4: //预售 $resBack = $BillModel->getAdvanceData($map); //获取总条数和总金额 break; } $order_count = $resBack['num']; $order_money = $resBack['money']; } else { $order_count = 0; $order_money = 0; } if (!empty($refund_map)) { $refund_map['type'] = 1; $refund_map['order_type'] = 2; if ($order_genre == 1) { //商城 $resBack = $BillModel->getOnlineAllData($refund_map); //获取总条数和总金额 } else if ($order_genre == 2) { //拼团 $resBack = $BillModel->getOnlineGroupAllData($refund_map); //获取总条数和总金额 } else if ($order_genre == 3) { //秒杀 $resBack = $BillModel->getOnlineSkillAllData($refund_map); //获取总条数和总金额 } $refund_order_count = $resBack['num']; $refund_order_money = $resBack['money'] ? $resBack['money'] : 0; } else { $refund_order_count = 0; $refund_order_money = 0; } $all_money = $order_money - $refund_order_money; $res['order_count'] = $order_count; $res['order_money'] = $order_money; $res['refund_order_count'] = $refund_order_count; $res['refund_order_money'] = $refund_order_money; $res['all_money'] = $all_money > 0 ? round($all_money, 2) : '0'; switch ($order_genre) { case 1: //商城 $modelRes = $BillModel->getOnlineOrder($where, $page, $num); break; case 2: //拼团 $modelRes = $BillModel->getOnlineGroupOrder($where, $page, $num); break; case 3: //秒杀 $modelRes = $BillModel->getOnlineSkillOrder($where, $page, $num); break; case 4: //预售 $modelRes = $BillModel->getAdvanceOrder($where, $page, $num); break; } } else { /* 收银员是否可以查看所有订单 */ $cashier_show_other_sell = $CashierModel->getFindField(['id' => $cashier_id], 'cashier_show_other_sell'); $cashier_show_other_sell = $cashier_show_other_sell ? $cashier_show_other_sell : 2; if ($cashier_show_other_sell == 2) { // 收银员查看自己订单 $map['cashier_id'] = $cashier_id; $where['b.cashier_id'] = $cashier_id; $refund_map['cashier_id'] = $cashier_id; $credit_map['ca.cashier_id'] = $cashier_id; } //订单类型 1普通订单 2赊账订单 if ($bill_type && in_array('Credit', C('MODULE_ALLOW_LIST'))) { $where['settlement_type'] = $bill_type; $map['settlement_type'] = $bill_type; $refund_map['settlement_type'] = $bill_type; } //选择赊账状态 1未还清 2已还清 if ($credit_type) { if ($credit_type == 1) { $where['ca.state'] = 2; } else if ($credit_type == 2) { $where['ca.state'] = 1; } } //支付方式 1微信 2支付宝 3现金 4余额 if ($pay_type) { switch ($pay_type) { case 1: $where['pay_type'] = 3; $map['pay_type'] = 3; $refund_map['pay_type'] = 3; break; case 2: $where['pay_type'] = 4; $map['pay_type'] = 4; $refund_map['pay_type'] = 4; break; case 3: $where['pay_type'] = 1; $map['pay_type'] = 1; $refund_map['pay_type'] = 1; break; case 4: $where['pay_type'] = 5; $map['pay_type'] = 5; $refund_map['pay_type'] = 5; break; case 5: $where['pay_type'] = 8; $map['pay_type'] = 8; $refund_map['pay_type'] = 8; break; } } //现金支付 $map['type'] = 2; $SellDataApi = new SellDataController(); $combination = $SellDataApi->combinationPayment($map, 1); $map['pay_type'] = 1; $map['order_type'] = 1; $x_money = $BillModel->getSum($map, 'all_money'); $x_money = round($x_money + $combination['combination_xj'], 2); // 微信支付 $map['pay_type'] = ['in', '3,6']; $w_money = $BillModel->getSum($map, 'all_money'); $w_money = round($w_money + $combination['combination_wxpay'], 2); //支付宝支付 $map['pay_type'] = 4; $z_money = $BillModel->getSum($map, 'all_money'); $z_money = round($z_money + $combination['combination_zfb'], 2); //会员卡余额 $map['pay_type'] = 5; $h_money = $BillModel->getSum($map, 'all_money'); $h_money = round($h_money + $combination['combination_membermoney'], 2); //其他支付 $map['pay_type'] = 7; $other_money = $BillModel->getSum($map, 'all_money'); $other_money = round($other_money + $combination['combination_other_pay'], 2); //赊账 if (in_array('Credit', C('MODULE_ALLOW_LIST'))) { $ArrearageModel = new \Credit\Model\CreditArrearageModel(); $credit_map['ca.store_id'] = $store_id; $credit_map['ca.status'] = 1; if ($cashier_show_other_sell == 2) { $credit_map['cashier_id'] = $cashier_id; } $res['c_money'] = $ArrearageModel->getPcCreditMoney($credit_map); } //退款金额 $refund_map['order_type'] = 2; $refund_money = $BillModel->getSum($refund_map, 'all_money'); $refund_money = $refund_money ? round($refund_money, 2) : 0; $res['x_money'] = $x_money; $res['w_money'] = $w_money; $res['z_money'] = $z_money; $res['h_money'] = $h_money; $res['o_money'] = $other_money; $res['r_money'] = $refund_money; $where['type'] = 2; $modelRes = $BillModel->getOutlineOrder($where, $page, $num); } $order = $modelRes['data']; $order_count = $modelRes['count']; $payTypeName = [ '1' => '现金', '2' => '银行卡', '3' => '微信', '4' => '支付宝', '5' => '会员余额', '6' => '小程序微信', '7' => '其他', '8' => '组合', ]; $SellModel = new RetailSellModel(); $PayOrderModel = new RetailPayOrderModel(); $DaOrderModel = new RetailDaOrderModel(); $uuOrderModel = new RetailUuOrderModel(); $GuideModel = new RetailGuideModel(); $BillAdvanceModel = new RetailBillAdvanceModel(); $SkuAttribute = new SkuAttribute(); $plugClass = new Plug(); //订单获取祝福码,判断该门店是否,有,并且开启 $storePlugStatusPost = [ 'store_id' => $store_id, 'identification_arr' => ['blessing'], ]; $storePlugStatus = $plugClass->plugStoreStatus($storePlugStatusPost);//获取状态 if (!empty($order)) { foreach ($order as $key => &$val) { if (!$val['ca_id']) { unset($val['ca_id']); } if ($val['coupon_money'] == null) { $val['coupon_money'] = '0.00'; } if ($val['cashier_dis_money'] == null) { $val['cashier_dis_money'] = '0.00'; } if ($val['small_changes_money'] == null) { $val['small_changes_money'] = '0.00'; } if ($val['integral_dis_money'] == null) { $val['integral_dis_money'] = '0.00'; } if ($val['vip_dis_money'] == null) { $val['vip_dis_money'] = '0.00'; } if ($val['cashier_manual_money'] == null) { $val['cashier_manual_money'] = '0.00'; } if ((int)$val['pay_type'] != 0) { $val['pay_type_name'] = $payTypeName[$val['pay_type']] ? $payTypeName[$val['pay_type']] : '未知类型'; } else { if (in_array('Credit', C('MODULE_ALLOW_LIST'))) { $CreditRecord = new \Credit\Business\CreditRecord(); $val['pay_type_name'] = $CreditRecord->getPayTypeName($val['id']); } else { $val['pay_type_name'] = '未知类型'; } } $val['user_select_time'] = $val['user_select_time'] ? date('m-d H:i', $val['user_select_time']) : ''; if (!empty($val['vid'])) { $val['vipInfo'] = $VipModel->getFind(["id" => $val['vid']], "nickname,name,balance,mobile_phone,integral"); } //商城订单返回数据 if ($line == 2) { if ($val['order_genre'] == 4) { if ($val['advance_type'] == 2) { //定金 $val['earnest_pay_time'] = date('Y-m-d H:i:s', $val['earnest_pay_time']); $val['all_earnest_price'] = round($val['all_earnest_price'], 2); $val['all_arrive_price'] = $val['all_arrive_price'] ? round($val['all_arrive_price']) : ''; $val['tail_pay_money'] = round($val['all_money'] - $val['all_earnest_price'], 2); //尾款 $val['advance_type_name'] = "定金 + 尾款"; } else { //全额 $val['tail_pay_money'] = round($val['all_money'], 2); $val['finish_time'] = date('Y-m-d H:i:s', $val['finish_time']); $val['advance_type_name'] = "全额"; } if ($val['state'] == 2) { $tail_time = $PayOrderModel->getFindField(['id' => $val['tail_pay_order_id']], "trade_date"); $val['trade_date'] = date('Y-m-d H:i:s', $tail_time); } } switch ($val['delivery_type']) { case 1: //门店配送 if ($val['status'] == 1 && $val['pickup_type'] == 2) { $val['order_status'] = 0; } break; case 2: //达达配送 $clerkInfo = $DaOrderModel->getOrderFind(['order_no' => strval($val['order_no']), 'id' => $val['delivery_record_id']], '*', 'id desc'); $val['order_status'] = $clerkInfo['order_status']; break; case 3: //Uu配送转成达达订单状态显示 $state_uu = $uuOrderModel->getOrderFindField(['origin_id' => $val['id'], 'id' => $val['delivery_record_id']], 'state', 'id desc'); if ($state_uu == 1) { $val['order_status'] = 1; } else if ($state_uu == 3 || $state_uu == 4) { $val['order_status'] = 2; } else if ($state_uu == 5 || $state_uu == 6) { $val['order_status'] = 3; } else if ($state_uu == -1) { $val['order_status'] = 5; } else { $val['order_status'] = 4; } $val['delivery'] = 2; break; case 5: //码科配送 $MakeOrderModel = new MakeOrderModel(); $status = $MakeOrderModel->getOrderFindField(['bill_id' => $val['id']], "status", "id desc"); switch ($status) { case 'payed': //待接单 $val['order_status'] = 1; break; case 'accepted': //'待取件 $val['order_status'] = 2; break; case 'geted': //待收件 $val['order_status'] = 3; break; case 'gotoed': //待评价 $val['order_status'] = 4; break; case 'completed': //订单已完成 $val['order_status'] = 4; break; case 'cancel': //已取消 $val['order_status'] = 5; break; } break; } if ($val['type'] == 1) { //商城 if ($val['pickup_type'] == 2) { if ($val['user_address']) { $val['address_name'] = $val['user_name']; $val['address_phone'] = $val['user_phone']; $val['address_address'] = $val['user_address']; } } else { $val['address_name'] = $val['user_name']; $val['address_phone'] = $val['user_phone']; } } switch ($val['status']) { case 0: if ($val['order_genre'] == 4 && $val['pay_state'] == 2) { if ($val['cancel_time'] > 0) { $val['state_name'] = '已申请售后'; } else if ($val['tail_end_time'] < time()) { $val['state_name'] = '超出尾款支付时间'; } else if ($val['tail_start_time'] > time()) { $val['state_name'] = '未到尾款支付时间'; } else { $val['state_name'] = '待付尾款'; } } break; case 1: if ($val['refund_status'] == 0) { $val['state_name'] = '待发货'; if ($val["pickup_type"] == 1) { $val['state_name'] = '待自取'; } } else if ($val["refund_status"] == 1) { $val['state_name'] = '已申请售后'; } break; case 2: $val['state_name'] = '待收货'; break; case 3: $val['state_name'] = '交易完成'; if ($val["refund_status"] == 1) { $val['state_name'] = '已申请售后'; } break; } } if (!empty($val['cashier_id'])) { $cashier_info = $CashierModel->getFind(['id' => $val['cashier_id']], "name,jobnum"); $val['jobnum'] = $cashier_info['jobnum']; $val['cashier_name'] = $cashier_info['name']; } $val['key'] = $key + 1; //判断支付人员类型 if (!empty($val['vid'])) { $val['vip_class'] = '会员'; } else { $val['vip_class'] = '散客'; } if ($val['order_genre'] == 4) { $val['payList'] = $BillAdvanceModel->payMode($val); } else { $val['payList'] = getPayTypeList($val['pay_type'], $val['all_money'], $val['id']); } if ((int)$val['pay_type'] == 7 && isset($val['payList'][0]['name'])) { $val['pay_type_name'] = $val['payList'][0]['name'];//其他支付名称 } $fields = array( 'vip_discount', 'goods_id', 'goods_name', 'num', 'refund_num', 'vip_price', 'price', 'plus_vip_price', 'original_price', 'all_money', 'goods_type', 'attribute_state', 'sku_json_info', 'pricing_method', 'integral_marketing', 'mem_integral', 'use_integral', 'cashier_manual_discount', 'cashier_manual_discount_money', "company", "goods_gifts_id", "goods_gifts_type", 'serial_number_state', 'id', 'code_price_state', ); $sellList = $SellModel->getSelect(['bill_id' => $val['id']], $fields); $beforeAllMoney = 0; $v_discount = 1; $cashier_manual_discount = 1; $GoodsModel = new RetailGoodsModel(); foreach ($sellList as &$v) { if (($v['goods_type'] == 2 || $v['goods_id'] == 0) && empty($v['goods_name'])) { $v['goods_name'] = '无码商品'; } $v['goods_code'] = ''; if ($v['goods_type'] == 1) { $v['goods_code'] = $GoodsModel->getFindField(['id' => $v['goods_id']], 'goods_code'); } if (!empty($v['sku_json_info'])) { $sku = json_decode($v['sku_json_info'], true); $v['sku_name'] = $sku['name']; if (!$v['sku_name']) { $sku_name = $SkuAttribute->basisSkuIdListSkuNameArr($sku['sku_id_list']); $v['sku_name'] = implode(',', $sku_name); } $v['sku_id'] = $sku['id']; } $v['num'] = round($v['num'], 3); if (floatval($v['vip_discount']) < 1 && floatval($v['vip_discount']) > 0) { $v_discount = floatval($v['vip_discount']); } if (floatval($v['cashier_manual_discount']) < 1 && floatval($v['cashier_manual_discount_money']) > 0) { $cashier_manual_discount = floatval($v['cashier_manual_discount']); } $v['mem_integral'] = intval($v['mem_integral']); $v['price'] = floatval($v['price']); $v['original_price'] = floatval($v['original_price']); $v['plus_vip_price'] = floatval($v['plus_vip_price']); $v['vip_price'] = floatval($v['vip_price']); $v['before_all_money'] = round($v['price'] * $v['num'], 2); $beforeAllMoney += $v['before_all_money']; //串号信息 if ($v['serial_number_state'] == 1) { $serialResult = $SerialClass->sellSerialList([ 'id' => $v['id'] ]); $v['serial_list'] = $serialResult['data']['list']; } } $val['v_discount'] = $v_discount; $val['cashier_manual_discount'] = $cashier_manual_discount; $val['beforeAllMoney'] = $beforeAllMoney; $val['goods_info'] = $sellList; //配送 $val['add_time'] = date('m-d H:i:s', $val['add_time']); $val['cashier_dis_money'] = !empty($val['cashier_dis_money']) ? $val['cashier_dis_money'] : 0; //优惠金额 $val['discount_amount'] = round($val['coupon_money'] + $val['vip_dis_money'] + $val['cashier_dis_money'] + $val['small_changes_money'] + $val['cashier_manual_money'], 2); $val['pay_coupon_fee'] = $val['pay_coupon_fee'] > 0 ? floatval($val['pay_coupon_fee']) : 0; $guide_name = ''; if (!empty($val['guide_id'])) { $guide_name = $GuideModel->getFindField(['id' => $val['guide_id']], 'guidename'); } $val['guide_name'] = $guide_name; unset($val['vid']); unset($val['store_id']); unset($val['merchant_id']); unset($val['cashier_id']); if ($storePlugStatus === true) { //门店有权限,并开启插件,查询订单是否有祝福码 $extractionCode = new Index(); $val['extraction_code'] = $extractionCode->obtainExtractionCode($val['id']);//祝福码 } else { //门店无权限,或没开启 $val['extraction_code'] = null; } } } else { $order = []; } $res['status'] = 1; $res['order'] = $order; $res['count'] = $order_count; $this->ajaxReturn($res); } /** * 获取商城流水合计 2020-10-14 * param [ * order_number 订单号搜索 * vip_code 会员订单搜索 * judge 线上用 1订单号 2提货码 * start_time 起始时间 * end_time 结束时间 * line 1线下订单 2线上订单 * status 类型查询条件 * order_genre 线上订单类型 1商城 2拼团 3秒杀 4预售 * pay_type 支付方式 1微信 2支付宝 3现金 4余额 * bill_type 订单类型 1普通订单 2赊账订单 * credit_type 选择赊账状态 1未还清 2已还清 * ] */ public function orderOfWaterTotal() { $OrderWater = new \CashierApi\Business\OrderWater(); $param['order_num'] = I('post.order_number'); $param['vipCode'] = I('post.vip_code'); $param['judge'] = I('post.judge') ? I('post.judge') : 1; $param['start_time'] = I('post.start_time'); $param['end_time'] = I('post.end_time'); $param['line'] = I('post.line'); $param['status'] = I('post.status'); $param['pay_type'] = I('post.pay_type'); $param['cashier_id'] = self::$cashier_id; $param['store_id'] = self::$store_id; $param['order_genre'] = I('post.order_genre'); $param['bill_type'] = I('post.bill_type'); //订单类型 1普通订单 2赊账订单 $param['credit_type'] = I('post.credit_type'); //选择赊账状态 1未还清 2已还清 $res = $OrderWater->orderOfWaterTotal($param); $this->ajaxReturn($res); } /** * 获取商城流水列表 2020-10-14 * param [ * page 页码 * num 页长 * order_number 订单号搜索 * vip_code 会员订单搜索 * judge 线上用 1订单号 2提货码 * start_time 起始时间 * end_time 结束时间 * line 1线下订单 2线上订单 * status 类型查询条件 * order_genre 线上订单类型 1商城 2拼团 3秒杀 4预售 * pay_type 支付方式 1微信 2支付宝 3现金 4余额 * bill_type 订单类型 1普通订单 2赊账订单 * credit_type 选择赊账状态 1未还清 2已还清 * ] */ public function orderOfWaterList() { $OrderWater = new \CashierApi\Business\OrderWater(); $param['num'] = I('post.num'); $param['line'] = I('post.line'); $param['page'] = I('post.page'); $param['start_time'] = I('post.start_time'); $param['end_time'] = I('post.end_time'); $param['judge'] = I('post.judge') ? I('post.judge') : 1; $param['status'] = I('post.status'); $param['vipCode'] = I('post.vip_code'); $param['pay_type'] = I('post.pay_type'); $param['store_id'] = self::$store_id; $param['merchant_id'] = self::$merchant_id; $param['order_num'] = I('post.order_number'); $param['cashier_id'] = self::$cashier_id; $param['order_genre'] = I('post.order_genre'); $param['bill_type'] = I('post.bill_type'); //订单类型 1普通订单 2赊账订单 $param['credit_type'] = I('post.credit_type'); //选择赊账状态 1未还清 2已还清 $res = $OrderWater->orderOfWaterList($param); $this->ajaxReturn($res); } /** * 2019-6-22 打印订单接口 */ public function printOrder_v1() { $order_no = I('post.order_no'); //支付完成返回的order_id if (empty($order_no)) { $result['status'] = 0; $result['msg'] = '缺少必要参数order_no'; $this->ajaxReturn($result); } $merchant_id = self::$merchant_id; //商户id $store_id = self::$store_id; //门店id $BillModel = new RetailBillOrderModel(); $map = array( 'merchant_id' => $merchant_id, 'store_id' => $store_id, 'order_no' => strval($order_no), ); $billOrder = $BillModel->getFind($map); if ($billOrder) { //根据售卖表查询订单信息 $SellModel = new RetailSellModel(); $map = array( 'bill_id' => $billOrder['id'] ); $fields = array( 'original_price', //原单价 'price', //购买身份价格 'vip_price', //会员价 'plus_vip_price', //plus会员价 'vip_discount', //会员折扣值 'num', //购买数量 'vid', //会员id0 'all_money', //总价 'goods_name', //商品名称 'pricing_method', //计价类型 'goods_type', //商品类型 'sku_json_info', //规格详情 'mem_integral', //购买单个商品所需的积分 'integral_marketing', //积分营销 1基于订单 2基于商品 'integral_dis_money', //积分抵扣的金额或者抵扣积分的金额 'use_integral', //会员卡买单消费积分 'cashier_manual_discount', // 收银员手动折扣: 1为不打折 'cashier_manual_discount_money', // 收银员单品打折优惠金额 'company', 'goods_gifts_id', // 'business_remark', 'goods_gifts_type', 'code_price_state', ); $sellOrder = $SellModel->getSelect($map, $fields); $beforeAllMoney = 0; $v_discount = 1; //查询会员信息 if ($billOrder['vid']) { $VipModel = new RetailVipModel(); $map = array( 'id' => $billOrder['vid'] ); $fields = array( 'mobile_phone', //手机号 'balance', //余额 'card_key', //实体卡号 'integral', //积分 'name', //姓名 'nickname', //昵称 'plus_type' //会员类型 ); $vipInfo = $VipModel->getFind($map, $fields); $name = $vipInfo['name'] ? $vipInfo['name'] : $vipInfo['nickname']; $phone = $vipInfo['mobile_phone'] ? $vipInfo['mobile_phone'] : $vipInfo['card_key']; // 获取打印配置--store_config--mobile_set $StoreConfigModel = new StoreConfigModel(); $mobile_set = $StoreConfigModel->getFindField(['store_id' => $store_id], 'mobile_set'); if ($mobile_set['mobile_set'] == 1) { // 需要隐藏手机号 $phone = substr($phone, 0, 3) . "****" . substr($phone, -(strlen($phone) - 7)); } if (!$name) { $name = '未设置名称'; } $vip = array( 'phone' => $phone, 'mobile_phone' => $phone, 'name' => $name, 'balance' => $vipInfo['balance'], 'integral' => $vipInfo['integral'] ? $vipInfo['integral'] : '0', 'plus_type' => $vipInfo['plus_type'] ); } else if ($billOrder['third_vip_code']) { $response['mec_vip'] = [ 'name' => $billOrder['third_vip_name'], 'code' => $billOrder['third_vip_code'], ]; } else { $vip = array( 'phone' => '', 'mobile_phone' => '', 'name' => '', 'balance' => '', 'integral' => '0', 'plus_type' => '' ); } $guide_name = ''; if (!empty($billOrder['guide_id'])) { $GuideModel = new RetailGuideModel(); $guide_name = $GuideModel->getFindField(array('id' => $billOrder['guide_id']), $GuideModel::NAME); } $BillDiscountModel = new RetailBillDiscountModel(); $billDiscount = $BillDiscountModel->getFind(array('bill_id' => $billOrder['id'])); $CashierModel = new RetailCashierModel(); $StoreModel = new RetailStoreModel(); $response['job_num'] = self::$cashier[$CashierModel::JOB_NUM]; //收银员工号 $response['store_name'] = self::$store[$StoreModel::STORE_NAME]; //门店名称 $response['all_money'] = floatval($billOrder['all_money']); //订单最终价格 $response['coupon_money'] = floatval($billDiscount['coupon_money']); //优惠券金额 $response['vip_dis_money'] = floatval($billDiscount['vip_dis_money']); //会员打折金额 $response['small_changes_money'] = floatval($billDiscount['small_changes_money']); //抹零金额 $response['discount'] = floatval($billDiscount['discount']); //收银员折扣值 $response['cashier_dis_money'] = floatval($billDiscount['cashier_dis_money']); //收银员打折金额 $response['integral_dis_money'] = floatval($billDiscount['integral_dis_money']); //积分抵扣金额 $response['use_integral'] = floatval($billDiscount['use_integral']); //积分抵扣的总积分 $response['vip_less_money'] = floatval($billDiscount['vip_less_money']); //会员价优惠的金额 $response['integral_marketing'] = $billDiscount['integral_marketing']; //1基于订单 2基于商品 $response['money_dis_integral'] = $billDiscount['money_dis_integral']; //金额抵扣积分数 $response['cashier_manual_money'] = $billDiscount['cashier_manual_money']; // 单品打折优惠金额 $response['pay_coupon_fee'] = floatval($billDiscount['pay_coupon_fee']); //代金券金额 // 单品打折优惠金额 $response['amount_received'] = floatval($billOrder['amount_received']); //实收金额 $response['give_change'] = floatval($billOrder['give_change']); //找零金额 $response['zero_storage'] = floatval($billOrder['zero_storage']); //存零金额 $response['add_time'] = date('Y/m/d H:i:s', $billOrder['add_time']); //下单时间 $response['finish_time'] = $billOrder['finish_time'] ? date('Y/m/d H:i:s', $billOrder['finish_time']) : ''; //支付完成时间 $response['order_type'] = $billOrder['type'] == 2 ? '店内订单' : '商城订单'; $response['print_time'] = date('Y/m/d H:i:s', time()); //打印时间 $response['print_number'] = (int)$billOrder['print_number']; // 订单编号--2020/08/12 新增 $response['order_no'] = $order_no; //订单编号 $response['guide_name'] = $guide_name; //导购员姓名 $response['type'] = $billOrder['type']; //1线上 2线下 $response['business_remark'] = $billOrder['business_remark']; //备注 $response['pay_type'] = $billOrder['pay_type']; // 支付类型 1现金 2银行卡 3微信 4支付宝 5会员余额 6小程序微信 7其他 8组合 $BillAdvanceModel = new RetailBillAdvanceModel(); if ($billOrder['type'] == 1) { $OnlineModel = new RetailBillOnlineModel(); $fields = array( 'user_name', 'user_phone', 'user_address', 'pickup_type', //1自提 2配送 3快递发货 'delivery_fee', //自提或者配送时用户选择的时间 'user_select_time', //自提或者配送时用户选择的时间 'order_genre', 'remark' ); $online = $OnlineModel->getFind(array('bill_id' => $billOrder['id']), $fields); if ($online['order_genre'] == 4) { $advance_order = $BillAdvanceModel->getFind(array('bill_id' => $billOrder['id'])); if ($advance_order['advance_type'] == 2) { //定金 $response['earnest_pay_time'] = date('Y-m-d H:i:s', $advance_order['earnest_pay_time']); $response['all_earnest_price'] = round($advance_order['all_earnest_price'], 2); if ($advance_order['state'] == 1) { $response['tail_pay_money'] = '——'; } $response['all_arrive_price'] = $advance_order['all_arrive_price'] ? round($advance_order['all_arrive_price']) : ''; $response['tail_pay_money'] = round($billOrder['all_money'] - $advance_order['all_earnest_price'], 2); //尾款 $response['advance_type_name'] = "定金 + 尾款"; } else { //全额 $response['tail_pay_money'] = round($billOrder['all_money'], 2); $response['advance_type_name'] = "全额"; } if ($advance_order['state'] == 2) { $tail_time = D("RetailPayOrder")->getFindField(array('id' => $advance_order['tail_pay_order_id']), "trade_date"); $response['trade_date'] = date('Y-m-d H:i:s', $tail_time); } $response['advance_type'] = $advance_order['advance_type']; $response['state'] = $advance_order['state']; } switch ($online['pickup_type']) { case 1: $response['pickup_name'] = "自提"; break; case 2: $response['pickup_name'] = "商家配送"; break; case 3: $response['pickup_name'] = "快递发货"; break; } $response['pickup_type'] = $online['pickup_type']; $response['remark'] = $online['remark'] ? $online['remark'] : ''; $response['order_genre'] = $online['order_genre']; $response['user_name'] = $online['user_name']; $response['user_phone'] = $online['user_phone']; $response['user_address'] = $online['user_address'] ? $online['user_address'] : '自提'; $response['delivery_fee'] = floatval($online['delivery_fee']); $response['user_select_time'] = $online['user_select_time'] ? date('m-d H:i', $online['user_select_time']) : ''; } foreach ($sellOrder as &$val) { if ($val['goods_type'] == 2 && empty($val['goods_name'])) { $val['goods_name'] = '无码商品'; } if (!empty($val['sku_json_info'])) { $val['sku_name'] = json_decode($val['sku_json_info'], true)['name']; } else { $val['sku_name'] = ''; } if (floatval($val['vip_discount']) < 1 && floatval($val['vip_discount']) > 0) { $v_discount = floatval($val['vip_discount']); } unset($val['sku_json_info']); $val['vip_discount'] = floatval($val['vip_discount']); $val['num'] = floatval($val['num']); $val['price'] = floatval($val['price']); $val['plus_vip_price'] = floatval($val['plus_vip_price']); $val['vip_price'] = floatval($val['vip_price']); if ($val['code_price_state'] == 0) { $val['before_all_money'] = round($val['price'] * $val['num'], 2); //优惠之前的总价 } else { //总价+会员折扣优惠的金额+收银员单品打折的金额+收银员整单折扣的金额+优惠券优惠的金额+抹零的金额+积分抵扣的金额 $val['before_all_money'] = round($val['all_money'] + $val['vip_dis_money'] + $val['cashier_manual_discount_money'] + $val['cashier_dis_money'] + $val['coupon_money'] + $val['small_changes_money'] + ($val['integral_marketing'] == 1 ? $val['integral_dis_money'] : 0), 2); } $beforeAllMoney += $val['before_all_money']; } $vip['discount'] = $v_discount; $response['vipInfo'] = $vip; //会员详情 $response['v_discount'] = $v_discount; $response['goods'] = $sellOrder; //商品详情 $response['goods_info'] = $sellOrder; //商品详情 $response['beforeAllMoney'] = $beforeAllMoney; //优惠打折之前的总价 if ($billOrder['type'] == 1 && $online['order_genre'] == 4) { $payList = $BillAdvanceModel->payMode($advance_order); } else { $payList = getPayTypeList($billOrder['pay_type'], $billOrder['all_money'], $billOrder['id']); } if (!empty($billOrder["cashier_id"])) { $cashier_info = $CashierModel->getFind(array($CashierModel::ID => $val[$BillModel::CASHIER_ID]), "name,jobnum"); $response['cashier_name'] = $cashier_info['name']; } $response['payList'] = $payList; //支付类型 $res['status'] = 1; $res['msg'] = "查询成功"; $res['data'] = $response; } else { $res['status'] = 0; $res['msg'] = "没有订单信息"; } $this->ajaxReturn($res); } /** * wifi打印订单 */ public function wifiPrint_v1() { $bill_id = I('post.id'); if (empty($bill_id)) { $res['status'] = 0; $res['msg'] = "缺少参数id"; $this->ajaxReturn($res); } $PrinterApi = new PrinterController(); $PrinterApi->linePrinting_v1(self::$store_id, $bill_id, true); } /** * 2019-7-15 * 商城订单自提 */ public function selfMention_v1() { $order_no = I('post.order_no'); //订单编号 $pick_code = I('post.pick_code'); //订单手机号(提货验证) if (empty($order_no) || empty($pick_code)) { $res['status'] = 0; $res['msg'] = "缺少参数"; $this->ajaxReturn($res); } $cashier_id = self::$cashier_id; $store_id = self::$store_id; //查询该订单 $BillModel = D('RetailBillOrder'); $bMap = array( $BillModel::ORDER_NO => strval($order_no), $BillModel::STORE_ID => $store_id, $BillModel::PAY_STATE => 1, //支付成功 $BillModel::TYPE => 1, //商城订单 $BillModel::ORDER_TYPE => 1, //购买订单 ); $billOrder = $BillModel->getFind($bMap); //主订单 if (empty($billOrder)) { $result['status'] = 0; $result['msg'] = '暂未查询到该订单'; $this->ajaxReturn($result); } $OnlineModel = D('RetailBillOnline'); $oMap = array( $OnlineModel::BILL_ID => $billOrder[$BillModel::ID] ); $onlineOrder = $OnlineModel->getFind($oMap); //线上订单 if (empty($onlineOrder)) { $result['status'] = 0; $result['msg'] = '数据库操作有误'; $this->ajaxReturn($result); } if ($onlineOrder[$OnlineModel::ORDER_GENRE] == 2) { //拼团订单 $BillGroupModel = D('RetailBillGroup'); $state = $BillGroupModel->getFindField(array($BillGroupModel::BILL_ID => $billOrder[$BillModel::ID]), $BillGroupModel::STATE); if ($state != 2) { $result['status'] = 0; $result['msg'] = '该订单未拼团成功,不能进行配送'; $this->ajaxReturn($result); } } if ($onlineOrder[$OnlineModel::STATUS] != 1) { $result['status'] = 0; $result['msg'] = '订单已提货,请勿重复操作'; $this->ajaxReturn($result); } if ($billOrder[$BillModel::REFUND_STATUS] == 1) { $result['status'] = 0; $result['msg'] = '该订单存在退款申请,请先处理'; $this->ajaxReturn($result); } if ($pick_code != $onlineOrder[$OnlineModel::PICK_CODE]) { $result['status'] = 0; $result['msg'] = '提货码不正确'; $this->ajaxReturn($result); } //商品信息验证 $SellClass = new Sell(); $goodsVerify = $SellClass->distributionGoodsVerify([ 'merchant_id' => self::$merchant_id, 'store_id' => $store_id, 'order_id' => $billOrder['id'], 'type' => 1 ]); if ($goodsVerify['status'] != 1) { $goodsVerify['msg'] = $goodsVerify['message']; $this->ajaxReturn($goodsVerify); } $goods_serial_list = $goodsVerify['data']; //第三方平台 if (self::$merchant['platform_type'] == 2 && $billOrder['order_type'] == 1) { $ThirdClass = new Order(); $thirdResult = $ThirdClass->orderExecute([ 'merchant_id' => self::$merchant_id, 'third_order' => $billOrder['third_order'] ]); if ($thirdResult['status'] == 0) { $result['status'] = 0; $result['msg'] = '第三方发货失败' . $thirdResult['message']; $this->ajaxReturn($result); } } //出库 if (!empty($goods_serial_list)) { $SerialClass = new SerialNumberGoods(); $SerialClass->basisNumberOperation([ 'store_id' => $store_id, 'goods_list' => $goods_serial_list, 'type' => 2 ]); //出库记录新增 $sell_id_arr = array_column($goods_serial_list, 'id'); if (!empty($sell_id_arr)) { $StockRecordClass = new StockRecord(); $outsideResult = $StockRecordClass->basisSellStockRecord([ 'store_id' => $store_id, 'sell_id' => $sell_id_arr ]); $outside_id_arr = $outsideResult['data']; if (!empty($outside_id_arr)) { $new_outside_id_arr = array_column($outside_id_arr, null, 'stock_out_id'); $order_genre = $OnlineModel->getFindField([ "bill_id" => $billOrder['id'], ], 'order_genre'); switch ($order_genre) { case 1: $stock_type = 8; break; case 2: $stock_type = 4; break; case 3: $stock_type = 5; break; case 4: $stock_type = 11; break; } foreach ($goods_serial_list as $val) { if ($val['serial_number_state'] == 1 && !empty($val['serial_list'])) { $SerialClass->stockSerial([ 'user_type' => 4, 'merchant_id' => self::$merchant_id, 'store_id' => $store_id, 'outside_id' => $new_outside_id_arr[$val['id']]['id'], 'type' => $stock_type, 'goods_id' => $val['goods_id'], 'sku_id' => $val['sku_id'] ? $val['sku_id'] : 0, 'serial_list' => $val['serial_list'] ]); } } } } } //通过订单编号修改订单状态及自提状态 $time = time(); $bSave = array( $BillModel::FINISH_TIME => $time, $BillModel::CASHIER_ID => $cashier_id ); $bUpdate = $BillModel->updateOrder($bMap, $bSave); $plugClass = new Plug(); //订单信息,判断该门店是否,有,并且开启,祝福语插件 $storePlugStatusPost = [ 'store_id' => $billOrder[$BillModel::STORE_ID], 'identification_arr' => ['blessing'], ]; $storePlugStatus = $plugClass->plugStoreStatus($storePlugStatusPost);//获取状态 if ($bUpdate) { $oSave = array( $OnlineModel::STATUS => 3, $OnlineModel::PICK_CODE => '', $OnlineModel::RECEIVING_TIME => $time, ); $oUpdate = $OnlineModel->updateOrder($oMap, $oSave); if ($oUpdate) { if ($storePlugStatus === true) { //有权限,可以修改有效期 $index = new Index(); $index->validityTimeSave($billOrder[$BillModel::ID], 2);//修改有效期:$type == 1:首次扫码(id = 门店id),2:确认订单(id = 订单id) } $result['status'] = 1; $result['msg'] = '提货成功'; } else { $BillModel->updateOrder($bMap, array($BillModel::FINISH_TIME => '', $BillModel::CASHIER_ID => null)); $result['status'] = 0; $result['msg'] = '提货失败,请重试'; } } else { $result['status'] = 0; $result['msg'] = '提货失败,请重试1'; } $this->ajaxReturn($result); } //获取码科跑腿配送费 public function getMakeDeliveryPrice() { $data = array( 'order_no' => I("post.order_no"), 'merchant_id' => self::$merchant_id, 'store_id' => self::$store_id ); $MakeClass = new Make(); $result = $MakeClass->getDeliveryPrice($data); $this->ajaxReturn($result); } /** * 获取UU配送费和距离 */ public function getUuDeliveryPrice() { $data = array( 'order_no' => I("post.order_no"), 'merchant_id' => self::$merchant_id, 'store_id' => self::$store_id, 'store' => self::$store ); $res = A("Api/Delivery")->getUuDeliveryPrice($data); $this->ajaxReturn($res); } /** * 配送 2020/3/18 * type 配送类型 1商家配送 2达达配送 3UU配送 * order_no 订单号 * option_type 1收银端 2后台操作 * uu_phone 收银员手机号或者门店手机号 * special_type 特殊处理类型,是否需要保温箱 1需要 0不需要 * note 备注 */ public function deliveryOrder_v1() { $uu_phone = I('post.uu_phone'); $special_type = I('post.special_type') ? I('post.special_type') : 0; $note = I('post.note'); if (empty($uu_phone)) { $CashierModel = D('RetailCashier'); $uu_phone = self::$cashier[$CashierModel::MOBILE]; } $data = array( 'option_type' => 1, 'merchant_id' => self::$merchant_id, 'store_id' => self::$store_id, 'cashier_id' => self::$cashier_id, 'cashier' => self::$cashier, 'store' => self::$store, 'order_no' => I('post.order_no'), 'type' => I('post.type'), 'uu_phone' => $uu_phone, 'special_type' => $special_type, 'note' => $note, 'platform_type' => self::$merchant['platform_type'] ? self::$merchant['platform_type'] : 1 ); if (C("IS_SET_REDIS")) { $ApiRedis = new \Addons\Api\RedisController(); $redis_key = "customer_" . $data['order_no']; if ($ApiRedis::$redis->exists($redis_key)) { $res['status'] = 0; $res['msg'] = "正在操作该订单,请勿重复操作"; $this->ajaxReturn($res); } $ApiRedis::$redis->setex($redis_key, 10, $data['order_no']); } $res = A("Api/Delivery")->deliveryOrder($data); if (C('IS_SET_REDIS')) { $ApiRedis::$redis->delete($redis_key); } $this->ajaxReturn($res); } //串号商品查询 public function searchSerial() { $data = I('post.'); $data['user_type'] = 4; $data['merchant_id'] = self::$merchant_id; $data['store_id'] = self::$store_id; $SerialClass = new SerialNumberGoods(); $result = $SerialClass->searchWarehouseSerial($data); $this->ajaxReturn($result); } //配送前确认商品信息confirmDistributionGoods public function confirmDistributionGoods() { $data = I('post.'); $data['merchant_id'] = self::$merchant_id; $data['store_id'] = self::$store_id; $data['type'] = 1; $SellClass = new Sell(); $result = $SellClass->confirmSellGoods($data); $this->ajaxReturn($result); } /** * 配送 2020/3/18 * type 配送类型 1商家配送 2达达配送 3UU配送 5码科配送 * order_no 订单号 * option_type 1收银端 2后台操作 * uu_phone 收银员手机号或者门店手机号 * special_type 特殊处理类型,是否需要保温箱 1需要 0不需要 * note 备注 * total_price 配送价格 * distance 距离 */ public function deliveryOrder_v2() { $data = I('post.'); $data['platform_type'] = self::$merchant['platform_type'] ? self::$merchant['platform_type'] : 1; $data['option_type'] = 1; $data['merchant_id'] = self::$merchant_id; $data['store_id'] = self::$store_id; $data['cashier_id'] = self::$cashier_id; $data['cashier'] = self::$cashier; $data['store'] = self::$store; $data['special_type'] = $data['special_type'] ? $data['special_type'] : 0; $data['total_price'] = $data['total_price'] ? $data['total_price'] : 0; $data['distance'] = $data['distance'] ? $data['distance'] : ''; if (C("IS_SET_REDIS")) { $ApiRedis = new \Addons\Api\RedisController(); $redis_key = "customer_" . $data['order_no']; if ($ApiRedis::$redis->exists($redis_key)) { $res['status'] = 0; $res['msg'] = "正在操作该订单,请勿重复操作"; $this->ajaxReturn($res); } $ApiRedis::$redis->setex($redis_key, 10, $data['order_no']); } $res = A("Api/Delivery")->deliveryOrder($data); if (C('IS_SET_REDIS')) { $ApiRedis::$redis->delete($redis_key); } $this->ajaxReturn($res); } /** * 取消配送2020/3/18 * order_no 订单号 * reason //UU取消配送原因 * reason_id //达达取消配送原因id */ public function cancelDelivery_v1() { $data = array( "order_no" => I('post.order_no'), "reason" => I('post.reason'), "reason_id" => I('post.reason_id'), "merchant_id" => self::$merchant_id, "store_id" => self::$store_id, ); if (C("IS_SET_REDIS")) { $ApiRedis = new \Addons\Api\RedisController(); $redis_key = "customer_" . $data['order_no']; if ($ApiRedis::$redis->exists($redis_key)) { $res['status'] = 0; $res['msg'] = "正在操作该订单,请勿重复操作"; $this->ajaxReturn($res); } $ApiRedis::$redis->setex($redis_key, 10, $data['order_no']); } $res = A("Api/Delivery")->cancelDelivery($data); if (C('IS_SET_REDIS')) { $ApiRedis::$redis->delete($redis_key); } $this->ajaxReturn($res); } //串号修改 public function serialModify() { $data = I('post.'); $data['user_type'] = 6; $data['operator_type'] = 2; $data['merchant_id'] = self::$merchant_id; $data['store_id'] = self::$store_id; $data['cashier_id'] = self::$cashier_id; $data['operator_id'] = self::$cashier_id; $SerialClass = new SerialNumberGoods(); $result = $SerialClass->serialModify($data); $this->ajaxReturn($result); } //串号修改记录 public function serialModifyRecord() { $data = I('post.'); $SerialClass = new SerialNumberGoods(); $result = $SerialClass->serialModifyRecord($data); $this->ajaxReturn($result); } /** * 取消配送2020/3/18 * order_no 订单号 * reason //UU取消配送原因 * reason_id //达达取消配送原因id */ public function cancelDelivery_v2() { $data = array( "order_no" => I('post.order_no'), "reason" => I('post.reason'), "reason_id" => I('post.reason_id'), "merchant_id" => self::$merchant_id, "store_id" => self::$store_id, ); if (C("IS_SET_REDIS")) { $ApiRedis = new \Addons\Api\RedisController(); $redis_key = "customer_" . $data['order_no']; if ($ApiRedis::$redis->exists($redis_key)) { $res['status'] = 0; $res['msg'] = "正在操作该订单,请勿重复操作"; $this->ajaxReturn($res); } $ApiRedis::$redis->setex($redis_key, 10, $data['order_no']); } $res = A("Api/Delivery")->cancelDelivery($data); if (C('IS_SET_REDIS')) { $ApiRedis::$redis->delete($redis_key); } $this->ajaxReturn($res); } /** * 获取达达配送取消订单原因 */ public function getCancelDeliveryReason_v1() { $reason = M('retail_da_reason')->select(); if ($reason) { $res['status'] = 1; $res['msg'] = '获取成功'; $res['reason'] = $reason; } else { $res['status'] = 0; $res['msg'] = '暂无数据'; $res['reason'] = array(); } $this->ajaxReturn($res); } /** * 获取骑手信息 */ public function getRiderInfo_v1() { $order_no = I('post.order_no'); //订单编号 if (empty($order_no)) { $result['status'] = 0; $result['msg'] = "缺少参数"; $this->ajaxReturn($result); } $result = A('PayApi/Order')->getRider($order_no); $this->ajaxReturn($result); } /** * 获取门店配置的默认配送方式 */ public function getDefaultDelivery_v1() { $store = self::$store; $StoreModel = D('RetailStore'); $default_delivery = $store[$StoreModel::DEFAULT_DELIVERY]; $res['status'] = 1; $res['msg'] = '获取成功'; $res['default_delivery'] = $default_delivery['default_delivery']; $this->ajaxReturn($res); } //收银机核销自提奖品 public function turntableSelfPrizeCode() { $post = I('post.'); //接收前端传参 array $validParams = [ // 'store_id',// 门店ID, 'code', // 核销码 'phone', // 手机号 ]; //定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) { //值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']); //返回缺失字段 } //查询中奖记录 $map = [ 'store_id' => self::$store_id, 'phone' => $post['phone'], 'receive_code' => $post['code'], 'status' => 2, 'delivery_status' => 1, ]; $prize_record = D('TurntableUse')->getOrderFind($map); if (!$prize_record) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::NO_WIN_PRIZE_RECORD, ResultCodeManager::$messages[ResultCodeManager::NO_WIN_PRIZE_RECORD])); } //核销中奖记录 $save_data = [ 'delivery_status' => 2 ]; D('TurntableUse')->updateOrder(['id' => $prize_record['id']], $save_data); $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS])); } //收银机查询自提记录 public function turntableWinRecord() { $post = I('post.'); //接收前端传参 array $validParams = [ // 'store_id',// 门店ID, 'code', // 核销码 'phone', // 手机号 ]; //定义过滤字段 $check = GlobalFunction::checkParams($validParams, $post); if ($check['status'] == 1) { //值为1 过滤出错 前端字段传参不全 $this->ajaxReturn($check['result']); //返回缺失字段 } //查询中奖记录 $map = [ 'store_id' => self::$store_id, // 'store_id'=>1, 'phone' => $post['phone'], 'receive_code' => $post['code'], 'status' => 2, 'delivery_status' => 1, ]; $prize_record = D('TurntableUse')->getOrderFind($map, 'id,user_id,add_time,receive_time,turntable_prize_id,turntable_id,order_num,username,phone'); if (!$prize_record) { $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::NO_WIN_PRIZE_RECORD, ResultCodeManager::$messages[ResultCodeManager::NO_WIN_PRIZE_RECORD])); } //查询奖品信息 $prize = D('TurntablePrize')->getOrderFind(['id' => $prize_record['turntable_prize_id']], 'id,prize_name,prize_img,type'); $prize_record['prize_info'] = $prize; $this->ajaxReturn(GlobalFunction::buildResult(ResultCodeManager::SUCCESS, ResultCodeManager::$messages[ResultCodeManager::SUCCESS], $prize_record)); } }