From 4200778a5f39881a2e23d7fc475156401bb4152f Mon Sep 17 00:00:00 2001 From: Jimmy Liow Date: Tue, 26 Dec 2023 16:07:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=B7=E6=A0=BC=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/information.php | 11 +++ application/models/PrimeLinePrice_model.php | 83 +++++++++++++++++++++ 2 files changed, 94 insertions(+) diff --git a/application/controllers/information.php b/application/controllers/information.php index 6e08b221..bad27e3d 100644 --- a/application/controllers/information.php +++ b/application/controllers/information.php @@ -1330,6 +1330,17 @@ class Information extends CI_Controller var_dump($price_item_array); $price_tag_list = $this->parse_price_tag($price_rule); var_dump($price_tag_list); + + $price_tag_list = []; + if (!empty($price_item_array)) { + foreach ($price_item_array as $price_item) { + $price_date = !empty($price_item->price_date) ? $price_item->price_date : date('Y-m-d', time() + 86400 * 7); //当前时间7天后的价格 + $price_number = ''; + //优先读取新的价格体系 + $price = $this->PrimeLinePrice_model->test_search($price_item->cli_no, 1, $price_item->cli_grade, $price_item->person_size, $price_date); + var_dump($price); + } + } } /*! diff --git a/application/models/PrimeLinePrice_model.php b/application/models/PrimeLinePrice_model.php index 18fd518b..7df81b79 100644 --- a/application/models/PrimeLinePrice_model.php +++ b/application/models/PrimeLinePrice_model.php @@ -107,4 +107,87 @@ class PrimeLinePrice_model extends CI_Model { } } + public function test_search($cli_no, $topnum = false, $cli_grade = false, $person_size = false, $price_date = false, $DEI_SN = 28) { + $this->init(); + $this->cli_no = $cli_no; + $this->topnum = empty($topnum) ? false : $topnum; + $this->cli_grade = empty($cli_grade) ? false : $this->cli_grade = ' AND cli.CLI_Grade = ' . $this->HT->escape($cli_grade); + $this->person_size = empty($person_size) ? false : $this->person_size = " AND $person_size BETWEEN plp.PLP_PersonGradeDown AND plp.PLP_PersonGradeUp "; + if (!empty($price_date)) { + $this->price_date = " AND '$price_date 00:00:00' BETWEEN plp.PLP_StartDate AND plp.PLP_EndDate "; + $week_day = (int) date('w', strtotime($price_date)); //获取当前时间的星期号,用于判断周末价 + $this->price_date .=" + AND ( + (plp.PLP_IsWeekPrice=1 AND plp.PLP_WeekDefine LIKE '%$week_day%') + OR (plp.PLP_IsWeekPrice=0) + ) + "; + } + $this->DEI_SN = $DEI_SN; + return $this->test_get_list(); + } + + public function test_get_list() { + $this->topnum ? $sql = "SELECT TOP " . $this->topnum : $sql = "SELECT "; + $sql .= " + cli.CLI_SN + ,cli.CLI_NO + ,cli.CLI_Grade + ,plp.PLP_SN + ,plp.PLP_CLI_SN + ,plp.PLP_Season + ,plp.PLP_Area + ,plp.PLP_StartDate + ,plp.PLP_EndDate + ,plp.PLP_PersonGradeDown + ,plp.PLP_PersonGradeUp + ,plp.PLP_AdultUnitCost + ,plp.PLP_AdultUnitPrice + ,plp.PLP_RoomDiffPrice + ,plp.PLP_ChildRate + ,plp.PLP_BabyRate + ,plp.PLP_ChildUnitPrice + ,plp.PLP_BabyUnitPrice + ,plp.PLP_Level + ,plp.PLP_IsWeekPrice + ,plp.PLP_WeekDefine + ,plp.PLP_PriceDate + ,plp.PLP_PersonNum + ,plp.PLP_VEI_SN + ,plp.PLP_Year + ,plp.PLP_VPPI_SN + ,plp.PLP_VPPD_SN + ,plp.PLP_Creator + ,plp.PLP_CreateDate + ,plp.PLP_LastEditor + ,plp.PLP_LastEditDate + FROM PrimeLinePrice plp + INNER JOIN CustomerLineInfo cli + ON cli.CLI_SN = plp.PLP_CLI_SN + WHERE 1 = 1 + AND cli.CLI_DEI_SN=? + AND plp.PLP_Year IS NOT NULL + AND cli.CLI_NO = ? + AND cli.CLI_State IN (1005003 ,1005004) + "; + + $this->person_size ? $sql.=$this->person_size : false; + $this->price_date ? $sql.=$this->price_date : false; + $this->cli_grade ? $sql.=$this->cli_grade : false; + $this->orderby ? $sql.=$this->orderby : false; + + $query = $this->HT->query($sql,array($this->DEI_SN,$this->cli_no)); + echo $this->db->last_query(); + if ($this->topnum === 1) { + if ($query->num_rows() > 0) { + $row = $query->row(); + return $row; + } else { + return FALSE; + } + } else { + return $query->result(); + } + } + }