$value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1; $size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10; $lat = $arr['gcj_lat']; $long = $arr['gcj_long']; $where = ['is_active' => 1]; $m_m = new MealcenterModel(); $count = $m_m->getList($where, 'count'); if ($count <= 0) { return backarr(0, "无数据"); } $totalpage = ceil($count / $size); $page > $totalpage && $page = $totalpage; $list = $m_m->getlistbycoord(['gcj_lat' => $lat, 'gcj_long' => $long], $page, $size); $data = [ 'page' => $page, 'size' => $size, 'count' => $count, 'list' => $list, ]; return backarr(1, "查询成功", $data); } /** * 获取套餐 * * @return void * @author wj * @date 2022-12-01 */ public function getmeals($arr) { $fillfields = ['center_id']; foreach ($fillfields as $key => $value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $center_id = $arr['center_id']; $m_m = new MealModel(); $where = [ 'center_id' => $center_id, 'is_active' => 1, ]; $mlist = $m_m->getList($where); if (empty($mlist)) { return backarr(0, "无数据"); } $m_mc = new MealcookModel(); foreach ($mlist as $key => $value) { $value['cooks'] = $m_mc->getcooks($center_id, $value['id']); $mlist[$key] = $value; } return backarr(1, "查询成功", $mlist); } /** * 创建订单 待改 * * @return void * @author wj * @date 2022-12-01 */ public function createOrder($arr) { $fillfields = ['center_id', 'meal_id', 'quantity', 'user_id']; foreach ($fillfields as $key => $value) { if (!isset($arr[$value]) || empty($arr[$value])) { return backarr(0, "参数缺少"); } } $center_id = $arr['center_id']; $meal_id = $arr['meal_id']; $quantity = $arr['quantity']; $userid = $arr['user_id']; $m_mc = new MealcenterModel(); $mcinfo = $m_mc->getInfo(['id' => $center_id, 'is_active' => 1]); if (empty($mcinfo)) { return backarr(0, "配餐中心不存在"); } $m_m = new MealModel(); $minfo = $m_m->getInfo(['id' => $meal_id, 'is_active' => 1]); if (empty($minfo)) { return backarr(0, "套餐信息不存在"); } Db::startTrans(); try { $m_ua = new UserAddressModel(); if (!isset($arr['address_id']) || empty($arr['address_id'])) { $fillfields = ['receiver_address', 'address', 'receiver_name', 'receiver_telno', 'gcj_lat', 'gcj_long']; foreach ($fillfields as $key => $value) { if (!isset($arr[$value]) || empty($arr[$value])) { throw new \Exception("参数缺少"); } } $where = [ 'receiver_address' => $arr['receiver_address'], 'receiver_telno' => $arr['receiver_telno'], 'user_id' => $userid, ]; $uainfo = $m_ua->getInfo($where); if (!empty($uainfo)) { $uaid = $uainfo['id']; } else { $insertData = [ 'receiver_address' => $arr['receiver_address'], 'address' => $arr['address'], 'receiver_name' => $arr['receiver_name'], 'receiver_telno' => $arr['receiver_telno'], 'gcj_lat' => $arr['gcj_lat'], 'gcj_long' => $arr['gcj_long'], 'user_id' => $userid, ]; $uaid = $m_ua->insertData($insertData); if (empty($uaid)) { throw new \Exception("地址保存失败"); } } } else { $uaid = $arr['address_id']; $uinfo = $m_ua->getInfo(['id' => $uaid]); if (empty($uinfo)) { throw new \Exception("无地址信息"); } } $many = bcmul($quantity, $minfo['price'], 2); //$m_c = new CookbookModel(); $m_mc = new MealcookModel(); $cooks = $m_mc->getcooks($center_id, $meal_id)->toArray(); if (empty($cooks)) { throw new \Exception("无对应菜谱"); } $cooksids = implode(',', array_column($cooks, 'id')); $orderno = date('ymdhis') . $center_id . $meal_id . $userid; $remark = isset($arr['remark']) ? $arr['remark'] : ''; $insertData = [ 'center_id' => $center_id, 'meal_id' => $meal_id, 'orderno' => $orderno, 'user_id' => $userid, 'address_id' => $uaid, 'quantity' => $quantity, 'money' => $many, 'status' => 0, 'createtime' => date('Y-m-d H:i:s'), //'status_delivery' => '', //'deliverytime' => '', 'cooks' => $cooksids, 'remark' => $remark, ]; $m_mo = new MealOrdersModel(); $moid = $m_mo->insertData($insertData); if (empty($moid)) { throw new \Exception("订单添加失败"); } Db::commit(); return backarr(1, "订单添加成功", ['moid' => $moid, 'orderno' => $orderno]); } catch (\Exception $e) { Db::rollback(); $msg = $e->getMessage(); return backarr(0, $msg); } } /** * 根据id获取订单详情 * * @return void * @author wj * @date 2022-12-02 */ public function getorderinfobyid() { } /** * 获取订单列表 客户端查看 * * @return void * @author wj * @date 2022-12-03 */ public function getorderlist($arr) { $wherefields = ['user_id', 'status']; $where = []; foreach ($wherefields as $key => $value) { if ($arr[$value]) { $where[$value] = $arr[$value]; } } $page = isset($arr['page']) && is_numeric($arr['page']) && !empty($arr['page']) && $arr['page'] > 0 ? $arr['page'] : 1; $size = isset($arr['size']) && is_numeric($arr['size']) && !empty($arr['size']) && $arr['size'] > 0 ? $arr['size'] : 10; $m_mo = new MealOrdersModel(); $m_m = new MealModel(); $m_ua = new UserAddressModel(); $count = $m_mo->getList($where, 'count'); if ($count <= 0) { return backarr(0, "无数据"); } $totalpage = ceil($count / $size); $page > $totalpage && $page = $totalpage; $mofield = ['id', 'orderno', 'meal_id', 'center_id', 'user_id', 'address_id', 'quantity', 'status', 'status_delivery']; $list = $m_mo->getList($where, $mofield, $page, $size); foreach ($list as $key => $value) { $minfo = $m_m->getInfo(['id' => $value['meal_id']], ['name_meal', 'price']); $uainfo = $m_ua->getInfo(['id' => $value['address_id']], "*"); $value['minfo'] = $minfo; $value['uainfo'] = $uainfo; $list[$key] = $value; } $data = [ 'page' => $page, 'size' => $size, 'count' => $count, 'list' => $list, ]; return backarr(1, "查询成功", $data); } /** * 获取订单列表 配送员查看 * * @return void * @author wj * @date 2022-12-03 */ public function getorderlistforcourier() { } }