$store_id, 'b.' . $RBOModel::MERCHANT_ID => $merchant_id, 'b.' . $RBOModel::PAY_STATE => 1, 'b.' . $RBOModel::REFUND_STATUS => 0, 'b.' . $RBOModel::TYPE => 1, 'o.order_genre' => 2, 'g.state' => 1, 'g.end_time' => array('lt', time()) ); $select = $RBOModel->getSelectGroup($map); if (!$select) { return true; } // 处理数据 $RBGModel = D('RetailBillGroup'); foreach ($select as &$val) { $RBGModel->updateOrder(array($RBGModel::BILL_ID => $val[$RBOModel::ID]), array($RBGModel::STATE => 3)); A('PayApi/ActivityOrder')->doRefund_v1($val[$RBOModel::ORDER_NO]); } return true; } /** * 查询,修改拼团状态 * $param int $group_id 活动id * @param int $parent_id * @param int $bill_id * @param int $store_id * @return array $res */ public function updateGroupState($group_id, $parent_id, $store_id, $order_no) { // 查询活动(拼团人数) $RGModel = D('RetailGroup'); $map = array( $RGModel::ID => $group_id ); $groupDetail = $RGModel->getFind($map, array($RGModel::NUMBER, $RGModel::ACT_NUM)); $number = $groupDetail[$RGModel::NUMBER]; $actNum = $groupDetail[$RGModel::ACT_NUM]; // $number = $RGModel->getFindField($map, $RGModel::NUMBER); if (!$number) { $res = array('status' => 0, 'msg' => '拼团出现异常,请联系商家'); return $res; } // 查询订单 $RGOViewModel = D('RetailGroupOrderView'); $map = array( 'RetailBillOrder.pay_state' => 1, 'RetailBillGroup.parent_id' => $parent_id, ); $fields = array( 'id', 'uid', 'merchant_id', 'form_id', 'order_no', 'pick_code', 'all_money', 'add_time', 'user_select_time', 'user_phone', 'user_name', 'remark', 'pickup_type', ); $order_list = $RGOViewModel->getSelect($map, $fields); if (!$order_list) { $res = array('status' => 0, 'msg' => '拼团查询出现异常,请联系商家'); return $res; } $ids = array_column($order_list, 'id'); // 处理数据 $RBGModel = D('RetailBillGroup'); if (intval(count($ids)) >= intval($number)) { // 拼团成功 $map = array( $RBGModel::BILL_ID => array('in', $ids), $RBGModel::STATE => 1 ); $save = array( $RBGModel::STATE => 2 ); $save_result = $RBGModel->updateOrder($map, $save); if ($save_result) { // 打印 $StoreModel = D('RetailStore'); $fields = array( $StoreModel::STORE_NAME, $StoreModel::ADDRESS, $StoreModel::PHONE ); $store = $StoreModel->getFind(array($StoreModel::ID => $store_id), $fields); $SmallProgramUserModel = D('RetailSmallProgramUser'); $SellModel = D('RetailSell'); $goods_name = $SellModel->getFindField(array($SellModel::BILL_ID => $ids[0]), $SellModel::GOODS_NAME); foreach ($order_list as $val) { if($val['pickup_type'] == 1){ $tempSend = array( 'merchant_id' => $val['merchant_id'], 'openid' => $SmallProgramUserModel->getFindField(array($SmallProgramUserModel::ID => $val['uid']), $SmallProgramUserModel::OPENID), 'form_id' => $val['form_id'], 'type' => 1,//'1自提通知 2发货通知', 'sendData' => array( 'store_name' => $store[$StoreModel::STORE_NAME], 'order_no' => $val['order_no'], 'pick_code' => $val['pick_code'], 'price' => $val['all_money'], 'add_time' => date('Y-m-d H:i:s', $val['add_time']), 'goods_name' => $goods_name, 'pick_time' => date('Y-m-d H:i:s', $val['user_select_time']), 'user_phone' => $val['user_phone'], 'username' => $val['user_name'], 'user_remark' => $val['remark'], 'store_address' => $store[$StoreModel::ADDRESS], 'store_phone' => $store[$StoreModel::PHONE], 'order_type' => '拼团订单', ), ); // file_put_contents('./xcxMark.txt', json_encode($tempSend) . "\r\n", FILE_APPEND); A('Api/XcxMark')->sendMark($tempSend);//小程序模板通知 } A('PayApi/Printer')->linePrinting_v1($store_id, $val['id']); } // 收银机推送 sendSockets($store_id, '您有新的线上拼团订单信息', 0); //新版推送 $content = array( 'login_string' => '', 'username' => '', 'type' => 6, 'message' => "您有新的线上拼团订单信息", ); sendSockets($store_id, $content, -1); $res = array( 'status' => 1, 'msg' => '拼团成功' ); } else { $res = array( 'status' => 0, 'msg' => '拼团出现异常,请联系商家' ); } } else { $res = array( 'status' => 2, 'msg' => '拼团中' ); } if ($actNum < 0) { A('PayApi/ActivityOrder')->doRefund_v1($order_no); } return $res; } }