From 127fd2a57f71d7e96e441189388608434bdd1c39 Mon Sep 17 00:00:00 2001 From: cyc Date: Mon, 9 Apr 2018 10:50:06 +0800 Subject: [PATCH 001/596] =?UTF-8?q?=E5=BE=B7=E8=AF=AD=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=A2=9E=E5=8A=A0=E9=A2=84=E8=A7=88=E6=8C=89?= =?UTF-8?q?=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/views/bootstrap3/information_edit.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/application/views/bootstrap3/information_edit.php b/application/views/bootstrap3/information_edit.php index f551fc9f..8d4b9c00 100644 --- a/application/views/bootstrap3/information_edit.php +++ b/application/views/bootstrap3/information_edit.php @@ -346,6 +346,12 @@ var site_url = 'http://192.155.224.195:8080/guide-use.php/travelguide/guide/?static_html_url='; $('#goto_test_page_button').attr("href", site_url + $('#ic_url').val()); return true; + } + //德语站点跳转测试页面 + function goto_gmtest_page() { + var site_url = 'http://gm.test/gm.php/information/detail/?static_html_url='; + $('#goto_test_page_button').attr("href", site_url + $('#ic_url').val()); + return true; } function goto_test_page_pgr() { var site_url = 'http://192.155.250.125:8011/guide.php/travelguide/guide/?static_html_url='; @@ -576,6 +582,9 @@ ic_sitecode == 'cht') {?> + + ic_sitecode == 'gm') {?> + From 7b68c7aaf063f498450074c1802b25063e4ad6a6 Mon Sep 17 00:00:00 2001 From: cyc Date: Mon, 9 Apr 2018 11:14:11 +0800 Subject: [PATCH 002/596] =?UTF-8?q?=E5=85=B3=E9=97=AD=E5=BE=B7=E8=AF=AD?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/information.php | 2 +- application/views/bootstrap3/information_edit.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/information.php b/application/controllers/information.php index 33912e01..c046affd 100644 --- a/application/controllers/information.php +++ b/application/controllers/information.php @@ -424,7 +424,7 @@ class Information extends CI_Controller { $site_code = $this->config->item('site_code'); $ic_url = $this->input->post('ic_url'); $auto_update_cache = $this->input->get_post('auto_update_cache_checkbox'); - if ($site_code == 'gm' && substr($ic_url, 0, 5) == '/faq/') { + if (strcasecmp($site_code, "gm") == 0 && !empty($auto_update_cache)) { $update_info_log = $this->update_cache($ic_url, true); } else if (strcasecmp($site_code, "cht") == 0 && !empty($auto_update_cache)) { $update_info_log = $this->update_cache($ic_url); diff --git a/application/views/bootstrap3/information_edit.php b/application/views/bootstrap3/information_edit.php index 8d4b9c00..3b462871 100644 --- a/application/views/bootstrap3/information_edit.php +++ b/application/views/bootstrap3/information_edit.php @@ -1222,7 +1222,7 @@ foreach ($author_list as $author_item) { 忽略URL重复
- config->item('site_code') == 'ah') || ($this->config->item('site_code') == 'gm')) {?> + config->item('site_code') == 'ah')) {?> - +
@@ -765,7 +765,7 @@
ic_sitecode == 'cht') { - ?> + ?>
@@ -776,15 +776,15 @@
+if ($information->ic_ht_area_type != 'c') { + echo 'hidden'; + } + ?>">
@@ -813,17 +813,17 @@
+if ($information->ic_ht_area_type == 'c') { + echo 'col-sm-4'; + } else { + echo 'col-sm-9'; + } + ?>">
$vin) { - if (in_array($information->is_id, explode(",", $vin->is_path)) && $vin->status == 1 && $vin->id != $information->is_id - ) { - $children_cnt ++; - } - } - echo ""; - if ($children_cnt > 0) { - ?> +// 有子节点时 + $children_cnt = 0; + foreach ($informationList as $kin => $vin) { + if (in_array($information->is_id, explode(",", $vin->is_path)) && $vin->status == 1 && $vin->id != $information->is_id + ) { + $children_cnt++; + } + } + echo ""; + if ($children_cnt > 0) { + ?>
- +
- +
@@ -974,9 +974,9 @@ @@ -984,7 +984,7 @@ - +
'首页', - 'tour' => '线路', - 'dest' => '目的地', - 'tailormade' => 'tailormade', - 'train' => '火车', - 'ship' => '游船', - 'hotel' => '酒店', - 'flight' => '机票', - 'info' => '信息', - 'deal' => '促销', - '2015' => '2015', - 'tour2017' => '2017', - 'op' => 'OP', - 'best' => '实用信息', - 'culture' => '文化', - 'top10' => 'TOP10', - ); - ?> +$meta_subnavi_arr = array( + 'index' => '首页', + 'tour' => '线路', + 'dest' => '目的地', + 'tailormade' => 'tailormade', + 'train' => '火车', + 'ship' => '游船', + 'hotel' => '酒店', + 'flight' => '机票', + 'info' => '信息', + 'deal' => '促销', + '2015' => '2015', + 'tour2017' => '2017', + 'op' => 'OP', + 'best' => '实用信息', + 'culture' => '文化', + 'top10' => 'TOP10', +); + ?> - ic_id, 'meta_bread_showinfo') == 'noshow') { ?> + ic_id, 'meta_bread_showinfo') == 'noshow') {?> - + - +
@@ -1068,7 +1068,7 @@
- ic_ht_area_type == 'err') { ?> + ic_ht_area_type == 'err') {?>
@@ -1090,11 +1090,11 @@
- + - + -ic_ht_area_type == 'g') { ?> +ic_ht_area_type == 'g') {?>
@@ -1135,7 +1135,7 @@
- +
@@ -1176,11 +1176,104 @@
+ + ic_sitecode == "ct" && $information->SRMS_SIC_Code == "Attraction") {?> +
+
+ + +
+ +
+ + +
+ +
+ + +
+
+ ic_sitecode == "ct") { ?> +
+
+ + +
+ +
+ + @@ -1205,13 +1298,13 @@ -ic_ht_area_type == 'pd') { ?> +ic_ht_area_type == 'pd') {?>

@@ -1220,56 +1313,56 @@
- + @@ -1283,17 +1376,17 @@ 忽略URL重复
- config->item('site_code'),array('cht','gm'))) { ?> + config->item('site_code'), array('cht', 'gm'))) {?> - + - config->item('site_code'),array('cht','ah','gm'))) { ?> + config->item('site_code'), array('cht', 'ah', 'gm'))) {?> - +
@@ -1306,20 +1399,20 @@ } ; //保存增加AMP判断 - lmr - ic_id, 'AMP_JSON') && get_meta($information->ic_id, 'AMP_STATUS') && get_meta($information->ic_id, 'AMP_BODY_PC_STATUS') !== 'yes') { ?> + ic_id, 'AMP_JSON') && get_meta($information->ic_id, 'AMP_STATUS') && get_meta($information->ic_id, 'AMP_BODY_PC_STATUS') !== 'yes') {?> if (!$('#PcAmp input').is(':checked')) { var amp_confirm = window.confirm('\n检测到页面存在AMP版本,是否需要打开AMP编辑界面?\n\r注意:如果修改了PC端版本,那么同时也需要修改AMP版本。\n'); if (amp_confirm) { - window.open('', '_blank'); + window.open('', '_blank'); } } - - ic_id, 'AMP_JSON') && get_meta($information->ic_id, 'AMP_STATUS') && get_meta($information->ic_id, 'AMP_BODY_PC_STATUS') === 'yes') { ?> + + ic_id, 'AMP_JSON') && get_meta($information->ic_id, 'AMP_STATUS') && get_meta($information->ic_id, 'AMP_BODY_PC_STATUS') === 'yes') {?> if (editor && editor.text() == '') { editor.html('From HTML-Generator'); editor.sync(); } - + if (information_check() != false) { submitForm('form_information_edit'); }">保存修改 @@ -1337,9 +1430,9 @@ From 9de1b5ae24babca5a69ff21c623d78a1aa079f05 Mon Sep 17 00:00:00 2001 From: lyt Date: Mon, 1 Apr 2019 09:46:31 +0800 Subject: [PATCH 556/596] =?UTF-8?q?Trippest=E5=90=8C=E6=AD=A5:=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E6=96=B9=E5=BC=8F=E4=BD=BF=E7=94=A8=E5=9C=B0=E6=8E=A5?= =?UTF-8?q?=E7=A4=BE=E6=94=B6=E6=AC=BE;=E4=BF=AE=E6=AD=A3=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E6=9D=A5=E6=BA=90=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trippestOrderSync/controllers/TulanduoApi.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php index 4f3e4f9e..4dd918a5 100644 --- a/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php +++ b/webht/third_party/trippestOrderSync/controllers/TulanduoApi.php @@ -3,6 +3,8 @@ if (!defined('BASEPATH')) exit('No direct script access allowed'); +define('PAY_TO_AGENCY',15020); + class TulanduoApi extends CI_Controller { public $special_route = array( @@ -439,6 +441,7 @@ class TulanduoApi extends CI_Controller $coli_update_column["COLI_Price"] = $travel_fee; $coli_update_column["COLI_CUrrency"] = $travel_fee_currency; $coli_update_column["COLI_GroupCode"] = substr(trim_str($detail_jsonResp->orderDetail->agcOrderNo), 0, 49); + $coli_update_column["COLI_sourcetype"] = empty($this->city_info[$detail_jsonResp->orderDetail->operationDep]) ? 32090 : $this->city_info[$detail_jsonResp->orderDetail->operationDep]['COLI_sourcetype']; } $this->Order_update->biz_confirmlineinfo_update($coli_update_column); /** @@ -491,7 +494,7 @@ class TulanduoApi extends CI_Controller $latest_order_detail = $this->Orders_model->get_orderinfo_detail($coli_id); /** BIZ_GroupAccountInfo */ // 团款, 只有其他社的订单, 目的地项目组的团款已经直接收入海纳账户 - $paytype = 15020; // 地接代收 + $paytype = PAY_TO_AGENCY; // 地接代收 $pay_currency = 'RMB'; $auto_text = "dataAutoEnter "; // 删除旧的录入 @@ -975,7 +978,7 @@ class TulanduoApi extends CI_Controller $this->Orders_model->BIZ_COLI_OrderDetailText = "来自图兰朵系统同步" . $list_ele["orderId"] . ";线路:" . $list_ele['routeName'] . "; 团名: " . $list_ele['agcOrderNo']; $this->Orders_model->BIZ_COLI_GUT_SN = $this->Orders_model->BIZ_GUT_SN ? $this->Orders_model->BIZ_GUT_SN : null; $this->Orders_model->BIZ_COLI_OPI_ID = 435; - $this->Orders_model->BIZ_COLI_PayManner = 15006; + $this->Orders_model->BIZ_COLI_PayManner = PAY_TO_AGENCY; return $this->Orders_model->biz_confirm_save(); } From c0f9be43ea60facb6087998289b23f1d4ebe5f69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=B9=8F?= Date: Mon, 1 Apr 2019 09:55:56 +0800 Subject: [PATCH 557/596] =?UTF-8?q?CT=E7=AB=99=E6=99=AF=E7=82=B9=E7=9A=84?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E9=80=89=E9=A1=B9=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/views/bootstrap3/information_edit.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/application/views/bootstrap3/information_edit.php b/application/views/bootstrap3/information_edit.php index 9ecbe4b4..b5a4bce8 100644 --- a/application/views/bootstrap3/information_edit.php +++ b/application/views/bootstrap3/information_edit.php @@ -1182,8 +1182,9 @@ $meta_subnavi_arr = array( - ic_sitecode == "ct" && $information->SRMS_SIC_Code == "Attraction") {?> + ic_sitecode == "ct" ) {?>
+ SRMS_SIC_Code == "Attraction") { ?>
-
- ic_sitecode == "ct") { ?> -
+
- - + From 873a312ac04c0e0f3aa546c2e0fb51f872ccee55 Mon Sep 17 00:00:00 2001 From: cyc Date: Mon, 1 Apr 2019 13:48:54 +0800 Subject: [PATCH 558/596] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=B7=E8=AF=AD?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2amp=E9=A1=B5=E9=9D=A2=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../htmlcompressor/controllers/index_gm.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/application/third_party/htmlcompressor/controllers/index_gm.php b/application/third_party/htmlcompressor/controllers/index_gm.php index 0a987645..0ee105f1 100644 --- a/application/third_party/htmlcompressor/controllers/index_gm.php +++ b/application/third_party/htmlcompressor/controllers/index_gm.php @@ -279,16 +279,21 @@ class Index_gm extends CI_Controller //添加webp图片支持 $img_src_webp=''; if(substr($img_src, -4) == '.jpg'){ - $img_src_jpg=" width}\" height=\"{$img_size->height}\">"; + if($img_size->width < 400){ + $layout = 'fixed'; + }else{ + $layout = 'responsive'; + } + $img_src_jpg=" width}\" height=\"{$img_size->height}\">"; $img_src_webp=substr($img_src, 0, strlen($img_src) - 4).'.webp'; - $img_src_webp = " width}\" height=\"{$img_size->height}\">{$img_src_jpg}"; + $img_src_webp = " width}\" height=\"{$img_size->height}\">{$img_src_jpg}"; } if(!empty($img_src_webp)){ $image->outertext =$img_src_webp; }else{ - $image->outertext = " width}\" height=\"{$img_size->height}\">"; + $image->outertext = " width}\" height=\"{$img_size->height}\">"; } } } From b624a3f0bd7dd50a6d561f4999259ea108f657d1 Mon Sep 17 00:00:00 2001 From: cyc Date: Mon, 1 Apr 2019 14:00:56 +0800 Subject: [PATCH 559/596] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BE=B7=E8=AF=ADAMP?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../third_party/htmlcompressor/controllers/index_gm.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/application/third_party/htmlcompressor/controllers/index_gm.php b/application/third_party/htmlcompressor/controllers/index_gm.php index 0ee105f1..33c8e074 100644 --- a/application/third_party/htmlcompressor/controllers/index_gm.php +++ b/application/third_party/htmlcompressor/controllers/index_gm.php @@ -278,11 +278,10 @@ class Index_gm extends CI_Controller if (!empty($img_size)) { //添加webp图片支持 $img_src_webp=''; + $layout = 'responsive'; if(substr($img_src, -4) == '.jpg'){ if($img_size->width < 400){ $layout = 'fixed'; - }else{ - $layout = 'responsive'; } $img_src_jpg=" width}\" height=\"{$img_size->height}\">"; From 63f6659242ab7f5eb2d8392f6b4387d7e655660b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E9=B9=8F?= Date: Tue, 2 Apr 2019 16:36:54 +0800 Subject: [PATCH 560/596] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=A2=9E=E5=8A=A011?= =?UTF-8?q?=E4=B8=BA=E6=9C=80=E9=AB=98=E7=BA=A7=E7=9A=84=E4=B8=AD=E9=97=B4?= =?UTF-8?q?=E5=A4=A7=E5=9B=BE=E7=94=A8=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/views/bootstrap3/information_edit.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/views/bootstrap3/information_edit.php b/application/views/bootstrap3/information_edit.php index b5a4bce8..a2bf64f4 100644 --- a/application/views/bootstrap3/information_edit.php +++ b/application/views/bootstrap3/information_edit.php @@ -1267,6 +1267,7 @@ $meta_subnavi_arr = array( + From 06d74423ff88cde54a7ac63faa69b6a2f8051b39 Mon Sep 17 00:00:00 2001 From: LiaoYijun Date: Wed, 10 Apr 2019 13:49:18 +0800 Subject: [PATCH 561/596] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AE=A2=E4=BA=BA?= =?UTF-8?q?=E5=A1=AB=E6=8A=A4=E7=85=A7=E4=BF=A1=E6=81=AF=E7=9A=84=E5=86=85?= =?UTF-8?q?=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/third_party/order/views/confirm_order.php | 2 +- application/third_party/order/views/mailtext.php | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/application/third_party/order/views/confirm_order.php b/application/third_party/order/views/confirm_order.php index a916af4c..05a815f3 100644 --- a/application/third_party/order/views/confirm_order.php +++ b/application/third_party/order/views/confirm_order.php @@ -731,7 +731,7 @@ }); - $("#btn-add-personinfo-box").click(); + // $("#btn-add-personinfo-box").click(); //日期初始化 diff --git a/application/third_party/order/views/mailtext.php b/application/third_party/order/views/mailtext.php index fc6b27eb..2a1a8114 100644 --- a/application/third_party/order/views/mailtext.php +++ b/application/third_party/order/views/mailtext.php @@ -25,7 +25,6 @@

Contact Information

Land line:

Mobile:

-

Home Address:

Flight Information From ad9e5581caa8e71864561f90f0641c354410da10 Mon Sep 17 00:00:00 2001 From: LMR <59361885@qq.com> Date: Fri, 12 Apr 2019 11:10:42 +0800 Subject: [PATCH 562/596] rm --- application/controllers/gaapi.php | 69 +++++++++---------- .../sylvan-box-234910-357cb59e6bf0.json | 12 ---- 2 files changed, 34 insertions(+), 47 deletions(-) delete mode 100644 application/controllers/gaapi_json/sylvan-box-234910-357cb59e6bf0.json diff --git a/application/controllers/gaapi.php b/application/controllers/gaapi.php index 33003782..2027f22f 100644 --- a/application/controllers/gaapi.php +++ b/application/controllers/gaapi.php @@ -16,7 +16,7 @@ class Gaapi extends CI_Controller public function user_track() { - $cid = $this->input->get_post('cid'); + $cid = $this->input->get_post('cid'); $analytics = $this->initializeAnalytics(); $response = $this->getReport($analytics, $cid); $this->printResults($response); @@ -24,17 +24,17 @@ class Gaapi extends CI_Controller /** - * Initializes an Analytics Reporting API V4 service object. - * - * @return An authorized Analytics Reporting API V4 service object. - */ + * Initializes an Analytics Reporting API V4 service object. + * + * @return An authorized Analytics Reporting API V4 service object. + */ function initializeAnalytics() { // Use the developers console and download your service account // credentials in JSON format. Place them in this directory or // change the key file location if necessary. - $KEY_FILE_LOCATION = __DIR__ . '/gaapi_json/sylvan-box-234910-357cb59e6bf0.json'; + $KEY_FILE_LOCATION = 'c:/gaapi_json/sylvan-box-234910-357cb59e6bf0.json'; // Create and configure a new client object. $client = new Google_Client(); @@ -48,14 +48,14 @@ class Gaapi extends CI_Controller /** - * Queries the Analytics Reporting API V4. - * - * @param service An authorized Analytics Reporting API V4 service object. - * @return The Analytics Reporting API V4 response. - */ + * Queries the Analytics Reporting API V4. + * + * @param service An authorized Analytics Reporting API V4 service object. + * @return The Analytics Reporting API V4 response. + */ function getReport($analytics, $cid_no) { - //die($cid); + //die($cid); // Replace with your view ID, for example XXXX. $VIEW_ID = "68484932"; @@ -77,24 +77,24 @@ class Gaapi extends CI_Controller $cid->setName("ga:dimension1"); $hitTime = new Google_Service_AnalyticsReporting_Dimension(); $hitTime->setName("ga:dimension3"); - $ip = new Google_Service_AnalyticsReporting_Dimension(); + $ip = new Google_Service_AnalyticsReporting_Dimension(); $ip->setName("ga:dimension3"); - // Create Dimension Filter 1 + // Create Dimension Filter 1 $cidFilter = new Google_Service_AnalyticsReporting_DimensionFilter(); $cidFilter->setDimensionName("ga:dimension1"); $cidFilter->setOperator('EXACT'); $cidFilter->setExpressions($cid_no); - - // Create the DimensionFilterClauses + + // Create the DimensionFilterClauses $dimensionFilterClause = new Google_Service_AnalyticsReporting_DimensionFilterClause(); $dimensionFilterClause->setFilters(array($cidFilter)); - // OrderBy maybe some bugs - $order = new Google_Service_AnalyticsReporting_OrderBy; - $order->setFieldName("ga:dimension3"); - $order->setOrderType("VALUE"); - $order->setSortOrder("DESCENDING"); + // OrderBy maybe some bugs + $order = new Google_Service_AnalyticsReporting_OrderBy; + $order->setFieldName("ga:dimension3"); + $order->setOrderType("VALUE"); + $order->setSortOrder("DESCENDING"); // Create the ReportRequest object. $request = new Google_Service_AnalyticsReporting_ReportRequest(); @@ -102,8 +102,8 @@ class Gaapi extends CI_Controller $request->setDateRanges($dateRange); $request->setMetrics(array($pv)); $request->setDimensions(array($pageUrl, $cid, $hitTime)); - $request->setDimensionFilterClauses(array($dimensionFilterClause)); - $request->setOrderBys(array($order)); + $request->setDimensionFilterClauses(array($dimensionFilterClause)); + $request->setOrderBys(array($order)); $body = new Google_Service_AnalyticsReporting_GetReportsRequest(); $body->setReportRequests(array($request)); @@ -118,26 +118,26 @@ class Gaapi extends CI_Controller */ function printResults($reports) { - $alais_array = array( - "ga:dimension1" => "cid", - "ga:dimension3" => "hitTime", - "ga:pagePath" => "path" - ); - $rs_array = array(); + $alais_array = array( + "ga:dimension1" => "cid", + "ga:dimension3" => "hitTime", + "ga:pagePath" => "path" + ); + $rs_array = array(); for ($reportIndex = 0; $reportIndex < count($reports); $reportIndex++) { $report = $reports[$reportIndex]; $header = $report->getColumnHeader(); $dimensionHeaders = $header->getDimensions(); $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); $rows = $report->getData()->getRows(); - $rs_row = array(); + $rs_row = array(); for ($rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { $row = $rows[$rowIndex]; $dimensions = $row->getDimensions(); $metrics = $row->getMetrics(); for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { //print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); - $rs_row[$alais_array[$dimensionHeaders[$i]]] = $dimensions[$i]; + $rs_row[$alais_array[$dimensionHeaders[$i]]] = $dimensions[$i]; } for ($j = 0; $j < count($metrics); $j++) { @@ -145,14 +145,13 @@ class Gaapi extends CI_Controller for ($k = 0; $k < count($values); $k++) { $entry = $metricHeaders[$k]; //print($entry->getName() . ": " . $values[$k] . "\n"); - $rs_row[$entry->getName()] = $values[$k]; + $rs_row[$entry->getName()] = $values[$k]; } } - array_push($rs_array, $rs_row); + array_push($rs_array, $rs_row); } } - echo(json_encode($rs_array)); + echo (json_encode($rs_array)); } - } //end of gaapi diff --git a/application/controllers/gaapi_json/sylvan-box-234910-357cb59e6bf0.json b/application/controllers/gaapi_json/sylvan-box-234910-357cb59e6bf0.json deleted file mode 100644 index 1cd817fc..00000000 --- a/application/controllers/gaapi_json/sylvan-box-234910-357cb59e6bf0.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "type": "service_account", - "project_id": "sylvan-box-234910", - "private_key_id": "357cb59e6bf066231fe9d421a1cada76b6af29ef", - "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDSNl/aj3hQf6bf\naPBHuGTLemiUl2OborE8MNvl5brhJMncTSslS1Q5CQRPk4K6nW1gAq2/gQ5KZ7Sd\nh9gdtWzIDoUS1DBDaZiPB8vVN6YOjIWpRSylIXTewQ6YYuw9kt7vW0orfDSsaWrE\nc2Yb5YN+6GTxVBjFEb19IYg5/8zfmvaUCOinDwO+F8mh6fCS9FyhiN5omKD+ixiQ\nYFIo1CM1SCpT3eH67JIF+hzuGAVWhF7YmdNTBdfrM0/1PBM8HRry0jD1VaDeyv+e\n4lTnPCtvUgc5SJOaLv/UR06X1FpIYikK0RHJ04fTslQxu7hTLqbhg/7d/+aj95K0\nAwaGERvdAgMBAAECggEAAOQZHFdoDVxwlSJEqeNyIDZh+GIfmnYQAUFhMKkOsPCc\nw9rtTxrNRxace0fd2sXtVkF8pp5dWTasmmIMPGNt+dLR7pP/z4Of2o9ZQcJR1vCp\nZc195rz/EL+AmGgLgZXg/5lxGhyDKhJ9vpORNt/FPiFALyOueJ/wslEnkZfwDANv\n0C+uIv2L3g0mrgTqXVwU/dVdYi9UK7hhn0YMgtlbdpxRHV0cIiilb23Cyy0QsFXN\n2MsoHPQWf+72nE+5jNnysXcR8AjAthzOvP/jIcqqBguid1w9F3goH4adLTa1aPIL\ndNGI/z9mwuqGQg5C78ZfmZMb3YIRwV4nmUia7kzrowKBgQDr2h14VyEGAypCjo+r\nXRvDti55PY+jKUnUzbseJca7Z1Z2snvGXWgkoasZc8ozsQjoH7wJJnRoJOGnAJdF\ntyZxtJV5W0pefB6Pfqy6k5MlJJhMy6lGpkQo96iPOBqfowHa1r/S55USHjQAMXG2\nKrX6oq1IWmEmFYMFZnQo7+SPqwKBgQDkK4rnCbirwHC0Z6eXkbk0Fb8KrS0huq3C\nupaoBtwkfkyISBzcXx6Bup/Gg7czSxvY6U/Bg93WtTzzJwVuqKSqcTUrwW4rAmrh\nZNEYjJc5YLKK1xXVOEeisMIsWCEpF8JHvyrCRsoBCOVRbQROFqz9IOSGrplw1Rq6\ntuPp2fsalwKBgQDgbfabG/X9vadKHFSUUY5pBwRkNHNpZJGwIXEMeBALJoN9gcwM\nb7f5G6owFyHzXGRIVmJdJq2gqG/dtc889NJtYtTV3UwAawW9sGH3TRS5RIB0m1xi\nMTcs8LYCSvXysG/EaZOxwtL0oa8D/AjjuvLeJEzWS8KkNdYunlas2dJZ7wKBgEAO\nlWV9jjHxyfJr81oTGDquLD80FSqV/ThhJ/CuVFmOd6//BtM7hRYIrdiOm/0zhfLk\ntXZvrfUcVqsw9k513BzZwYKyQFqkyBrVMfrBZac/JYDjF4cP0NS06R6H829U8z8v\nRTLbqtSVicPNZlsB9Ljv5hiFpiBOQ73NoLjDcMKrAoGAC+mrH9aOBeQuikQllpWJ\naZ7XoDdZcmh3j+o7OZWHAP3mpQ6q6/1iPW4lhG/q6l+syjsYRmQuzYICtSJ6xQlC\nM+AYPjD+O6sW3MWGz469cqrym8o+Bm24emxJNvilo/U/N2Yif2gUGWgw8qXLEGsu\nUedwiH6aWGBFnlVuPz6CZ6s=\n-----END PRIVATE KEY-----\n", - "client_email": "gaapi-904@sylvan-box-234910.iam.gserviceaccount.com", - "client_id": "112785767675412711830", - "auth_uri": "https://accounts.google.com/o/oauth2/auth", - "token_uri": "https://oauth2.googleapis.com/token", - "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", - "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/gaapi-904%40sylvan-box-234910.iam.gserviceaccount.com" -} From 3badd8277244c9724d38729ac664ce5eccd4522d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=B9=E8=AF=9A=E8=AF=9A?= Date: Fri, 12 Apr 2019 11:17:07 +0800 Subject: [PATCH 563/596] =?UTF-8?q?CT=E7=9A=84AMP=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../htmlcompressor/views/amp-template/ct.php | 23 +++---------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/application/third_party/htmlcompressor/views/amp-template/ct.php b/application/third_party/htmlcompressor/views/amp-template/ct.php index c5048912..338379ef 100644 --- a/application/third_party/htmlcompressor/views/amp-template/ct.php +++ b/application/third_party/htmlcompressor/views/amp-template/ct.php @@ -49,23 +49,6 @@ footer p { margin-bottom:0.5rem;} #crumbNav a:hover { color: #a31022; text-decoration: none } /* from font awesome */ @font-face{font-family:FontAwesome;src:url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.eot?v=4.7.0);src:url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format('embedded-opentype'),url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0) format('woff2'),url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff?v=4.7.0) format('woff'),url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.ttf?v=4.7.0) format('truetype'),url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-facebook-square:before{content:"\f082"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-tripadvisor:before{content:"\f262"}.fa-500px:before{content:"\f26e"}.fa-angle-down:before{content:"\f107"}.fa-square-o:before{content:"\f096"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"} -.fa-facebook-square:before { content: "\f082" } -.fa-facebook-f:before, .fa-facebook:before { content: "\f09a" } -.fa-twitter:before { content: "\f099" } -.fa-pinterest:before { content: "\f0d2" } -.fa-pinterest-square:before { content: "\f0d3" } -.fa-caret-down:before { content: "\f0d7" } -.fa-caret-up:before { content: "\f0d8" } -.fa-caret-left:before { content: "\f0d9" } -.fa-caret-right:before { content: "\f0da" } -.fa-instagram:before { content: "\f16d" } -.fa-flickr:before { content: "\f16e" } -.fa-tripadvisor:before { content: "\f262" } -.fa-500px:before { content: "\f26e" } -.fa-angle-down:before { content: "\f107" } -.fa-square-o:before { content: "\f096" } -.fa-angle-left:before { content: "\f104" } -.fa-angle-right:before { content: "\f105" } .fa-navicon:before,.fa-reorder:before,.fa-bars:before { content: "\f0c9"; color:#333; margin:0.32rem 0 0 1rem; } .fa-google-plus::before { content: "\f0d5";} /* sidebar style */ @@ -134,9 +117,9 @@ html{font-size:16px}
From 4ea5eb7147f1732f2a3fc2f28a01e3586a252b68 Mon Sep 17 00:00:00 2001 From: lyt Date: Mon, 15 Apr 2019 10:51:32 +0800 Subject: [PATCH 564/596] =?UTF-8?q?alipay=20=E5=A2=9E=E5=8A=A0=E4=BA=A4?= =?UTF-8?q?=E6=98=93=E5=8F=B7=E6=9F=A5=E8=AF=A2=E6=B2=A1=E6=9C=89=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E9=80=9A=E7=9F=A5=E7=9A=84=E6=94=B6=E6=AC=BE(?= =?UTF-8?q?=E6=9D=A5=E8=87=AA=E6=94=B6=E9=92=B1=E7=A0=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/controllers/AlipayTradeService.php | 44 ++++++++++++++----- .../pay/models/Alipay_note_model.php | 3 +- webht/third_party/pay/views/alipay_list.php | 9 +++- 3 files changed, 42 insertions(+), 14 deletions(-) diff --git a/webht/third_party/pay/controllers/AlipayTradeService.php b/webht/third_party/pay/controllers/AlipayTradeService.php index 808c6b0c..2c414461 100644 --- a/webht/third_party/pay/controllers/AlipayTradeService.php +++ b/webht/third_party/pay/controllers/AlipayTradeService.php @@ -509,29 +509,24 @@ class AlipayTradeService extends CI_Controller $request = new AlipayTradeQueryRequest(); $request->setBizContent ( $biz_content ); - $response = $this->aopclientRequestExecute ($request,true); + $response = $this->aopclientRequestExecute ($request); $response = $response->alipay_trade_query_response; return $response; } - public function query_pay($dealId,$orderId=NULL) + public function query_pay($dealId=NULL,$orderId=NULL) { + if ($dealId === NULL) { + $dealId = $this->input->get_post('dealid'); + $dealId = trim($dealId); + } $this->AlipayTradeQueryContentBuilder->setTradeNo($dealId); if ($orderId) { $this->AlipayTradeQueryContentBuilder->setOutTradeNo($orderId); } $response = $this->Query($this->AlipayTradeQueryContentBuilder); - if ( strcmp(trim($response->code), "10000")) { - log_message('error',"Alipay query failed! error code:".$response->code."; result Msg: ".$response->msg.'; orderId:'.$response->out_trade_no.'; dealId:'.$response->trade_no."; "); - } - $html = ''; - foreach ($response as $key => $value) { - $html .= ""; - } - $html .= '
$key$value
'; - echo $html; - return; + return $response; } /*! @@ -624,6 +619,30 @@ var_dump($response->$responseNode); empty($data['date']) ? $data['date'] = date('Y-m-d') : false; if (!empty($data['keywords'])) { $data['notelist'] = $this->Alipay_note_model->search_key($data['keywords']); + /** 手动查询通过收钱码的收款, 必须输入交易号 */ + if (empty($data['notelist'])) { + $query_pay = $this->query_pay($data["keywords"]); + if ( ! empty($query_pay) && strval($query_pay->code)==="10000" && strval($query_pay->trade_status)==="TRADE_SUCCESS") { + $pay_type = $query_pay->total_amount>0 ? "pay" : "refund"; + $new_record = $this->Alipay_note_model->save_alipay( + strval($query_pay->trade_no) + ,strval($query_pay->out_trade_no) + ,"CNY" + ,strval($query_pay->total_amount) + ,NULL + ,NULL + ,strval($query_pay->send_pay_date) + ,strval($query_pay->send_pay_date) + ,json_encode($query_pay) + ,$pay_type + ,NULL + ,strval($query_pay->trade_status) + ,NULL + ,strval($query_pay->buyer_logon_id) + ); + $data['notelist'][] = $new_record; + } + } } else { $data['notelist'] = $this->Alipay_note_model->search_date($data['date']); } @@ -743,6 +762,7 @@ var_dump($response->$responseNode); return array( "WAIT_BUYER_PAY" => "Pending", "TRADE_SUCCESS" => "Payment success", + "TRADE_CLOSED" => "Payment closed", "TRADE_FINISHED" => "Payment success" ); } diff --git a/webht/third_party/pay/models/Alipay_note_model.php b/webht/third_party/pay/models/Alipay_note_model.php index 15294ba7..cafe422b 100644 --- a/webht/third_party/pay/models/Alipay_note_model.php +++ b/webht/third_party/pay/models/Alipay_note_model.php @@ -118,7 +118,8 @@ class Alipay_note_model extends CI_Model { ,$ALI_payerEmail )); $insertid = $this->INFO->last_id('AlipayLog'); - return $query; + $ret = "SELECT TOP 1 * FROM AlipayLog WHERE ALI_dealId='$ALI_dealId' ORDER BY ALI_sn DESC "; + return $this->INFO->query($ret)->row(); } public function get_list() { diff --git a/webht/third_party/pay/views/alipay_list.php b/webht/third_party/pay/views/alipay_list.php index d3a9c1ad..afe0d5c2 100644 --- a/webht/third_party/pay/views/alipay_list.php +++ b/webht/third_party/pay/views/alipay_list.php @@ -66,6 +66,7 @@ /*.input-group{border: 1px solid #ccc;}*/ .input-group-btn{border: 1px solid #ccc;padding: 5px;} .search-btn{cursor: pointer; background: url(//data.chinahighlights.com/css/images/global/site-search-button.png) no-repeat center center;} + .center-block{display: block;margin: 0 auto;} @@ -75,6 +76,7 @@

Alipay Notes

+


'; + echo '

标题:

'.$data[$i]->ddm_Subject.'
'; + echo '

value邮件内容:

'.htmlspecialchars_decode($data[$i]->ddm_Content).'
'; + echo '
'; + } + + } + + //查询那条value使用的次数最多 + public function count_valueitems(){ + //获取所有的item条目 + $obj = $this->ding_value_model->get_allvalueitems(); + //定义变量存储数据 + $data = array(); + $data['team1_cn'] = '心存谦卑,发现并欣赏他人的长处'; + $data['team2_cn'] = '人比事更重要,爱能包容一切过错'; + $data['team3_cn'] = '相信一群平凡的人,能组成一个不平凡的团队'; + $data['team4_cn'] = '人人平等,在爱里说诚实话'; + $data['team1_num'] = 0;$data['team2_num'] = 0;$data['team3_num'] = 0;$data['team4_num'] = 0; + + $data['chengxin1_cn'] = '行真善美,恨不义财'; + $data['chengxin2_cn'] = '诚实可信,说到做到,不隐藏真相'; + $data['chengxin3_cn'] = '做人一诺千金,做事全力以赴'; + $data['chengxin4_cn'] = '勇于承担责任使你更优秀'; + $data['chengxin1_num'] = 0;$data['chengxin2_num'] = 0;$data['chengxin3_num'] = 0;$data['chengxin4_num'] = 0; + + $data['customer1_cn'] = '穿客户的鞋,客户是我们最好的老师'; + $data['customer2_cn'] = '细节展现专业,多走一里路'; + $data['customer3_cn'] = '客户的独特性就是我们存在的理由'; + $data['customer4_cn'] = '不让一点瑕疵破坏客人一生中唯一的旅程,一眚能掩大德'; + $data['customer1_num'] = 0;$data['customer2_num'] = 0;$data['customer3_num'] = 0;$data['customer4_num'] = 0; + + $data['discovery1_cn'] = '好奇心,好头脑风暴'; + $data['discovery2_cn'] = '第一个行动的,失败了也光荣;行动太迟,正确的决策也可能变成错误'; + $data['discovery3_cn'] = '以往的成功经验未必是今天问题的解决方案'; + $data['discovery4_cn'] = 'Do Without,自己创造条件达到目标'; + $data['discovery1_num'] = 0;$data['discovery2_num'] = 0;$data['discovery3_num'] = 0;$data['discovery4_num'] = 0; + + foreach ($obj as $item){ + $items = explode(',',$item->ddm_value_key); + foreach($items as $value){ + if(!empty($value)){ + switch ($value){ + case 'team1': + $data['team1_num']++; + break; + case 'team2': + $data['team2_num']++; + break; + case 'team3': + $data['team3_num']++; + break; + case 'team4': + $data['team4_num']++; + break; + case 'chengxin1': + $data['chengxin1_num']++; + break; + case 'chengxin2': + $data['chengxin2_num']++; + break; + case 'chengxin3': + $data['chengxin3_num']++; + break; + case 'chengxin4': + $data['chengxin4_num']++; + break; + case 'customer1': + $data['customer1_num']++; + break; + case 'customer2': + $data['customer2_num']++; + break; + case 'customer3': + $data['customer3_num']++; + break; + case 'customer4': + $data['customer4_num']++; + break; + case 'discovery1': + $data['discovery1_num']++; + break; + case 'discovery2': + $data['discovery2_num']++; + break; + case 'discovery3': + $data['discovery3_num']++; + break; + case 'discovery4': + $data['discovery4_num']++; + break; + } + } + } + } + + //输出内容 + echo '使用条目:'.$data['team1_cn'].' | 使用次数:'.$data['team1_num'].'
'; + echo '使用条目:'.$data['team2_cn'].' | 使用次数:'.$data['team2_num'].'
'; + echo '使用条目:'.$data['team3_cn'].' | 使用次数:'.$data['team3_num'].'
'; + echo '使用条目:'.$data['team4_cn'].' | 使用次数:'.$data['team4_num'].'
'; + echo '使用条目:'.$data['chengxin1_cn'].' | 使用次数:'.$data['chengxin1_num'].'
'; + echo '使用条目:'.$data['chengxin2_cn'].' | 使用次数:'.$data['chengxin2_num'].'
'; + echo '使用条目:'.$data['chengxin3_cn'].' | 使用次数:'.$data['chengxin3_num'].'
'; + echo '使用条目:'.$data['chengxin4_cn'].' | 使用次数:'.$data['chengxin4_num'].'
'; + echo '使用条目:'.$data['customer1_cn'].' | 使用次数:'.$data['customer1_num'].'
'; + echo '使用条目:'.$data['customer2_cn'].' | 使用次数:'.$data['customer2_num'].'
'; + echo '使用条目:'.$data['customer3_cn'].' | 使用次数:'.$data['customer3_num'].'
'; + echo '使用条目:'.$data['customer4_cn'].' | 使用次数:'.$data['customer4_num'].'
'; + echo '使用条目:'.$data['discovery1_cn'].' | 使用次数:'.$data['discovery1_num'].'
'; + echo '使用条目:'.$data['discovery2_cn'].' | 使用次数:'.$data['discovery2_num'].'
'; + echo '使用条目:'.$data['discovery3_cn'].' | 使用次数:'.$data['discovery3_num'].'
'; + echo '使用条目:'.$data['discovery4_cn'].' | 使用次数:'.$data['discovery4_num'].'
'; + + } + + public function ajax_get_data(){ + header("Content-Type: text/html;charset=utf-8"); + $from_time = $this->input->get_post('from_time'); + $to_time = $this->input->get_post('to_time'); + $type = $this->input->get_post('type'); + + if($type == 'week'){ + $from_time = strtotime($from_time); + $to_time = strtotime($to_time); + }else if($type == 'month'){ + $firstday = $from_time; + $from_time = strtotime($from_time); + $to_time = strtotime("$firstday +1 month -1 day"); + }else if($type == 'year'){ + $from_time = strtotime($from_time); + $to_time = strtotime($to_time); + } + + $rank_data = $this->ding_value_model->get_person_rank($from_time, $to_time); + + $return_html = ''; + foreach($rank_data as $key=>$value){ + $return_html .= '
  • '; + $num = $key+1; + $return_html .= 'No.'.$num.' '; + $return_html .= ''.$value->ddv_Comment_Name.''; + $return_html .= ''.$value->like_count.' like
  • '; + } + print_r($return_html); + } + + public function delete_value($sn=null){ + if(empty($sn)){ + exit('传参错误'); + }else{ + $this->ding_value_model->delete_value($sn); + } + + } +} + + +?> \ No newline at end of file diff --git a/webht/third_party/dingmail/models/ding_value_model.php b/webht/third_party/dingmail/models/ding_value_model.php new file mode 100644 index 00000000..cc656095 --- /dev/null +++ b/webht/third_party/dingmail/models/ding_value_model.php @@ -0,0 +1,334 @@ +HT = $this->load->database('HT', TRUE); + } + + //扫码获取相应人的信息 + function get_dingding_user($unionid){ + $sql = "select + * + from + Dingding_User + where + ddu_Unionid = ?"; + $query = $this->HT->query($sql, array($unionid)); + if ($query->num_rows() > 0){ + $row = $query->row(); + return $row; + } + else{ + return FALSE; + } + } + + //根据姓名获取唯一unionid + public function get_dingding_unionid($name){ + $sql = "select ddu_Unionid from Dingding_User where ddu_Name = ?"; + $query = $this->HT->query($sql, array($name)); + if ($query->num_rows() > 0){ + $row = $query->row(); + return $row; + } + else{ + return FALSE; + } + } + + + //添加用户 + function add_dingding_user($name,$unionid,$mobile,$email,$position,$avatar,$time){ + $sql = "INSERT INTO Dingding_User (ddu_Name,ddu_Unionid,ddu_Mobile,ddu_Email,ddu_Position,ddu_Avatar,ddu_Datetime) VALUES (N?,?,?,?,N?,?,?)"; + $query = $this->HT->query($sql,array($name,$unionid,$mobile,$email,$position,$avatar,$time)); + if ($query){ + return TRUE; + }else{ + return FALSE; + } + } + + //添加value事件 + function add_value($data){ + $sql = "INSERT INTO Dingding_Value (ddv_Type,ddv_Name,ddv_User_Unionid,ddv_Comment_Name,ddv_Comment_Unionid,ddv_Content,ddv_Identify,ddv_Createtime) VALUES (?,N?,?,N?,?,N?,?,?)"; + $query = $this->HT->query($sql,array($data['type'],$data['user'],$data['user_unionid'],$data['comment_name'],$data['comment_unionid'],$data['content'],$data['mail_identify'],$data['createtime'])); + if($query){ + return TRUE; + }else{ + return FALSE; + } + } + + //统计like人数 + function count_like($unionid){ + $year_start = strtotime(date('Y-01-01', time())); + $year_end = strtotime(date('Y-12-31', time())); + $sql = "SELECT COUNT(*) AS count FROM Dingding_Value WHERE ddv_Comment_Unionid = ? AND ddv_Type = 'like' AND ddv_Type = 'like' and ddv_Createtime > '{$year_start}' and ddv_Createtime < '{$year_end}'"; + $query = $this->HT->query($sql,$unionid); + $row = $query->row(); + return $row; + } + + //获取like的人是那些 + function whos_like($unionid){ + $year_start = strtotime(date('Y-01-01', time())); + $year_end = strtotime(date('Y-12-31', time())); + $sql = "SELECT ddv_Name FROM Dingding_Value WHERE ddv_Comment_Unionid = ? AND ddv_Type = 'like' and ddv_Createtime > '{$year_start}' and ddv_Createtime < '{$year_end}' ORDER BY ddv_Sn DESC"; + $query = $this->HT->query($sql,$unionid); + $row = $query->result(); + return $row; + } + + //获取value点赞的人 + function value_whos_like($identify){ + $sql = "SELECT ddv_Name FROM Dingding_Value WHERE ddv_Identify = ? and ddv_Type = 'like' and ddv_Comment_Name = 'value邮件' ORDER BY ddv_Createtime DESC"; + $query = $this->HT->query($sql,$identify); + $row = $query->result(); + return $row; + } + + //获取value拍砖的人 + function value_whos_unlike($identify){ + $sql = "SELECT ddv_Name FROM Dingding_Value WHERE ddv_Identify = ? and ddv_Type = 'unlike' and ddv_Comment_Name = 'value邮件' ORDER BY ddv_Createtime DESC"; + $query = $this->HT->query($sql,$identify); + $row = $query->result(); + return $row; + } + + //根据Identify获取value邮件 + function get_mail($identify){ + $sql = "SELECT * FROM Dingding_Mail where ddm_Identify = ?"; + $query = $this->HT->query($sql, array($identify)); + if ($query->num_rows() > 0){ + $row = $query->row(); + return $row; + } + else{ + return FALSE; + } + } + + //根据Identify获取value邮件中value的人 + function get_value($identify,$user_unionid){ + $sql = "select * from Dingding_user_mail left join Dingding_User on(ddum_Name = ddu_Name) where ddum_Identify = ? and ddu_Unionid != '$user_unionid'"; + $query = $this->HT->query($sql, array($identify)); + if ($query->num_rows() > 0){ + $row = $query->result(); + return $row; + } + else{ + return FALSE; + } + } + + //统计unlike人数 + function count_unlike($unionid){ + $year_start = strtotime(date('Y-01-01', time())); + $year_end = strtotime(date('Y-12-31', time())); + $sql = "SELECT COUNT(*) AS count FROM Dingding_Value WHERE ddv_Comment_Unionid = ? AND ddv_Type = 'unlike' and ddv_Createtime > '{$year_start}' and ddv_Createtime < '{$year_end}'"; + $query = $this->HT->query($sql,$unionid); + $row = $query->row(); + return $row; + } + + //获取unlike的人是那些 + function whos_unlike($unionid){ + $year_start = strtotime(date('Y-01-01', time())); + $year_end = strtotime(date('Y-12-31', time())); + $sql = "SELECT ddv_Name FROM Dingding_Value WHERE ddv_Comment_Unionid = ? AND ddv_Type = 'unlike' and ddv_Createtime > '{$year_start}' and ddv_Createtime < '{$year_end}' ORDER BY ddv_Sn DESC"; + $query = $this->HT->query($sql,$unionid); + $row = $query->result(); + return $row; + } + + //获取所有点评了的人的列表 + function all_comment($unionid){ + $year_start = strtotime(date('Y-01-01', time())); + $year_end = strtotime(date('Y-12-31', time())); + $sql = "SELECT * + FROM Dingding_Value + left join Dingding_User on ddu_Unionid = ddv_User_Unionid + left join Dingding_Mail on ddv_Identify = ddm_Identify + where ddv_Comment_Unionid = '$unionid' + and ddv_Createtime > '{$year_start}' and ddv_Createtime < '{$year_end}' + ORDER BY ddv_Sn DESC"; + $query = $this->HT->query($sql,$unionid); + $row = $query->result(); + return $row; + } + /* + //获取所有点评了的人的列表 + function all_comment($unionid){ + $sql = "SELECT * FROM Dingding_Value WHERE ddv_Comment_Unionid = ? ORDER BY ddv_Sn DESC"; + $query = $this->HT->query($sql,$unionid); + $row = $query->result(); + return $row; + } + */ + //获取所有员工的姓名以及邮箱(钉钉邮箱) + function all_email($data = null){ + if($data){ + $where = "where ddu_Name in ($data)"; + }else{ + $where = ''; + } + $sql = "SELECT ddu_Name,ddu_Email FROM Dingding_User ".$where; + $query = $this->HT->query($sql); + $row = $query->result(); + return $row; + } + + //根据名字确定是否存在 + public function has_user($user_name){ + $sql="SELECT * FROM Dingding_User WHERE ddu_Name='$user_name' "; + $query = $this->HT->query($sql); + return $query->result(); + } + + //新增value邮件 + public function add_mail($data){ + $sql="INSERT INTO Dingding_Mail( + ddm_subject, + ddm_content, + ddm_touser, + ddm_ccuser, + ddm_fromuser, + ddm_value_key, + ddm_identify, + ddm_createtime + ) + VALUES (N?,N?,N?,N?,N?,?,?,?)"; + $this->HT->query($sql, array($data['mail_subject'],$data['mail_content'],$data['mail_touser'],$data['mail_ccuser'],$data['mail_fromuser'],$data['mail_value_key'],$data['mail_identify'],$data['mail_createtime'])); + return $this->HT->last_id('Dingding_Mail'); + } + + //新增value的名单 + public function add_value_user($data){ + $sql="INSERT INTO Dingding_User_Mail ( + ddum_name, + ddum_identify, + ddum_createtime) + VALUES (?,?,?)"; + $this->HT->query($sql, array($data['value_user_name'],$data['value_user_identify'],$data['value_user_createtime'])); + return $this->HT->last_id('webht_user_mail'); + } + + //检测是否已经点赞(仅用于value邮件点赞) + public function is_liked($data){ + $sql = "select * from Dingding_Value where ddv_Identify = ? and ddv_User_Unionid = ? and ddv_Comment_Name = 'value邮件'"; + $query = $this->HT->query($sql,array($data['mail_identify'],$data['user_unionid'])); + if($query->num_rows() >= 1){ + return true; + }else{ + return false; + } + } + + //获取用户最新一次被点赞的时间以及人 + public function get_user_time($unionid,$user_unionid,$identify=false){ + if($identify){ + $where = "and ddv_identify = '$identify'"; + }else{ + $where = ""; + } + $sql = "select ddv_Name,ddv_Createtime from Dingding_Value where ddv_Comment_Unionid = '$unionid' and ddv_User_Unionid = '$user_unionid'$where order by ddv_Createtime desc"; + $query = $this->HT->query($sql); + if($query){ + return $query->row(); + }else{ + return false; + } + } + + //获取最新一次被评论的时间 + public function get_last_comment($comment_name,$comment_unionid){ + $sql = "select + top 1 * + from + Dingding_Value + where + ddv_Comment_Name = '$comment_name' + and + ddv_Comment_Unionid = '$comment_unionid' + and + ddv_Type in ('comment','hidden_comment') + order by + ddv_Createtime desc"; + $query = $this->HT->query($sql); + $result=$query->result(); + return $result; + } + + + //获取点赞排行榜 + public function get_person_rank($from_date=false,$to_date=false){ + $datesql=""; + if ($from_date) { + $datesql=" AND ddv_Createtime BETWEEN '$from_date' AND '$to_date' "; + } + $sql="SELECT TOP 15 + ddv_Comment_Name, + ddv_Comment_Unionid, + COUNT(ddv_Comment_Name) as like_count + FROM Dingding_Value + WHERE ddv_Type='like' AND ddv_Comment_Name != 'value邮件' + $datesql + GROUP BY ddv_Comment_Name,ddv_Comment_Unionid + ORDER BY like_count DESC"; + + $query = $this->HT->query($sql); + $result=$query->result(); + return $result; + } + + //更新用户信息 + function update_dingding_user($name,$unionid,$mobile,$email,$position,$avatar,$time){ + $sql = "UPDATE Dingding_User SET + ddu_Name = '$name', + ddu_Mobile = '$mobile', + ddu_Email = '$email', + ddu_Position = '$position', + ddu_Avatar = '$avatar', + ddu_Datetime = '$time' + WHERE ddu_Unionid = '$unionid'"; + $query = $this->HT->query($sql); + if ($query){ + return true; + }else{ + return FALSE; + } + } + + //获取value邮件列表 + public function get_valuemail_list(){ + $year = strtotime(date('Y-01-01')); + $sql = "select * from Dingding_Mail where ddm_Createtime > '$year' order by ddm_Createtime desc "; + $query = $this->HT->query($sql); + return $query->result(); + + } + + //获取所有value邮件所用的价值观 + public function get_allvalueitems(){ + $sql = "select ddm_value_key from Dingding_Mail where ddm_value_key != ''"; + $query = $this->HT->query($sql); + return $query->result(); + } + + public function delete_value($sn){ + $sql = "DELETE FROM Dingding_Value WHERE ddv_Sn = '{$sn}'"; + $query = $this->HT->query($sql); + } + + public function test(){ + $sql = "delete from Dingding_Value where ddv_Sn = '9125'"; + $query = $this->HT->query($sql); + } + +} \ No newline at end of file diff --git a/webht/third_party/dingmail/views/like.php b/webht/third_party/dingmail/views/like.php new file mode 100644 index 00000000..fdde9754 --- /dev/null +++ b/webht/third_party/dingmail/views/like.php @@ -0,0 +1,212 @@ + + + + + + + HT在线平台 + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + 他们都觉得很赞! + + + + ddv_Name; ?>; + +
    +
    +
    +
    +
    + + + 他们拍砖了! + + + ddv_Name; ?>; + +
    +
    +
    + +
    + +
    +
    +

    ddm_Subject;?>

    +
    ddm_Content); ?>
    + +
    + +
    + $c) { ?> +
    +

    whu_uname; ?>

    +

    whc_content; ?>

    +

    + whc_createtime); ?> + 回复 +

    +
    + + +
    + + +
    + +
    +
    + + + + + \ No newline at end of file diff --git a/webht/third_party/dingmail/views/login.php b/webht/third_party/dingmail/views/login.php new file mode 100644 index 00000000..39421aa0 --- /dev/null +++ b/webht/third_party/dingmail/views/login.php @@ -0,0 +1,63 @@ + + + + + value系统登录 + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    + +

    Welcome

    + +
    + +
    + +
    +

    IE6 isn't allowed!

    + Please use Google Chrome, Firefox, Safair, or IE7+. +
    + +
    +
    + + +
    + + + + + + diff --git a/webht/third_party/dingmail/views/mail.php b/webht/third_party/dingmail/views/mail.php new file mode 100644 index 00000000..cbcbdef3 --- /dev/null +++ b/webht/third_party/dingmail/views/mail.php @@ -0,0 +1,552 @@ + + + + + + + HT在线平台 + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + + +
    +
    +
    + + + + +
    +
    +
    +
    +
    + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + \ No newline at end of file diff --git a/webht/third_party/dingmail/views/rank_person.php b/webht/third_party/dingmail/views/rank_person.php new file mode 100644 index 00000000..e1a89a0f --- /dev/null +++ b/webht/third_party/dingmail/views/rank_person.php @@ -0,0 +1,251 @@ + + + + + + + HT在线平台 + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +

    个人获赞排行榜

    +
    +
    +
    +
    +

    周榜

    +
    +
    +
    + +
    +
    +
    +
    +
    +

    月榜

    +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +

    年榜

    +
    + +
    +
    + +
    +
    +
    + +
    + + + \ No newline at end of file diff --git a/webht/third_party/dingmail/views/user.php b/webht/third_party/dingmail/views/user.php new file mode 100644 index 00000000..3364dc35 --- /dev/null +++ b/webht/third_party/dingmail/views/user.php @@ -0,0 +1,258 @@ + + + + + + + HT在线平台 + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    + ddu_Avatar)){?> + + + 请退出后再次扫码登录,将展示你的钉钉头像 + +
    +
    +

    ddu_Name?>

    + + +

    +
    +
    +
    +
    +
    +
    +
    + + + 他们都觉得很赞! + + + ddv_Name; ?>; + +
    +
    +
    +
    +
    + + + 他们拍砖了! + + + ddv_Name; ?>; + +
    +
    +
    + session->userdata('dingding_user_info')->ddu_Name == $user->ddu_Name ){ ?> +
    +
    + + + 个人邮件签名设置! + + +
    +

    钉邮签名没有更新成功的同学请看这里:

    +

    拖动鼠标选中上方的三个按钮(在按钮下方鼠标左键三击试试),然后按下Ctrl+C键进行复制到自己的outlook签名里即可。

    温馨提示:不能直接用鼠标右键功能进行复制

    +
    +
    +
    + +
    + +
    +
    + +
    +
    +

    大家好,我是ddu_Name; ?>,欢迎留言......

    +
    + +
    +
    +
    + + + +
    + + +
    +
    +
    +
    + +
    + $value){?> +
    +

    + ddu_Avatar){?> + + + ddv_Type == 'hidden_comment'){ + echo $value->ddv_Name; + }else{?> + ddv_Name?> + +

    + ddv_Content == 'like' || $value->ddv_Content == 'unlike' ){ ?> +

    对你点了一个ddv_Content?>

    + ddv_Type == 'comment' || $value->ddv_Type == 'hidden_comment'){?> +

    ddv_Content?>

    + +

    ddv_Type.'+1'.'
    ';echo $value->ddm_Subject; ?>

    查看更多 + +

    + ddv_Createtime)?> +

    +
    + + +
    + +
    +
    +
    + + + + \ No newline at end of file diff --git a/webht/third_party/workflow/controllers/index.php b/webht/third_party/workflow/controllers/index.php index c37ca49a..0f209053 100644 --- a/webht/third_party/workflow/controllers/index.php +++ b/webht/third_party/workflow/controllers/index.php @@ -15,7 +15,11 @@ class Index extends CI_Controller $this->permission->is_admin(false); $this->load->model('workflow_model'); } - + + public function test(){ + $this->workflow_model->delete_test(); + } + //首页 public function index() { @@ -24,6 +28,7 @@ class Index extends CI_Controller } $data=array(); $typelist=$this->workflow_model->get_type_list('all'); + //print_r($typelist); $data['typelist']=array(); foreach ($typelist as $t) { $data['typelist'][$t->wt_parentid][]=$t; @@ -62,7 +67,12 @@ class Index extends CI_Controller //添加一个具体事务到数据库 public function do_add_work() - { + { + + $this->load->model('operator_model'); + $current_user=$this->input->post('wf_user'); + $tmp = $this->operator_model->get_user_by_name($current_user); + //判断是不是补填的值班记录 if ($this->input->post('mail_title')=='值班记录') { //本月和上个月的值班表(有可能本月初和上月尾是连着的假期) @@ -73,27 +83,32 @@ class Index extends CI_Controller $data['flow_data'][]=$this->workflow_model->get_work_flow_data($v->wf_sn); } //节假日列表 - $needdate_list=array(); + $needdate_list=$myrota=array(); foreach ($data['flow_data'] as $f) { foreach ($f as $d) { $wfd_key_arr=explode('_', $d->wfd_key); + //值班日期是周末的日期集合 if ($wfd_key_arr[0]=='weekend' && $d->wfd_value==1) { $wfd_key_arr[1]=strlen($wfd_key_arr[1])==7?substr($wfd_key_arr[1], 0,-1).'0'.substr($wfd_key_arr[1],-1):$wfd_key_arr[1]; $needdate_list[]=$wfd_key_arr[1]; } + //当前用户的值班日期集合 + $name_string=str_replace('惠毅', '惠毅;惠 毅', $d->wfd_value); + if (!empty($d->wfd_value) && stripos($name_string, $tmp['OPI_Name'])!==false && isset($wfd_key_arr[2]) && is_numeric($wfd_key_arr[2])) { + $need_date=strlen($wfd_key_arr[2])==7?substr($wfd_key_arr[2], 0,-1).'0'.substr($wfd_key_arr[2],-1):$wfd_key_arr[2]; + $myrota[]=date('Ymd',strtotime($need_date)); + } } } + $needdate_list=array_intersect($needdate_list,$myrota); $zhiban_date=date('Ymd',strtotime($this->input->post('wf_time'))); - if (!in_array($zhiban_date, $needdate_list)) { - echo json_encode(array('status'=>'no','msg'=>'请把左上角的日期改为你值班当天的日期')); - return true; + if (empty($needdate_list) or !in_array($zhiban_date, $needdate_list)) { + //echo json_encode(array('status'=>'no','msg'=>'值班日期与值班表不符,更换了值班的同学请更改值班表')); + //return true; } } //保存任务 - $this->load->model('operator_model'); - $current_user=$this->input->post('wf_user'); - $tmp = $this->operator_model->get_user_by_name($current_user); $wf_user=$tmp['OPI_SN']; $wf_time=strtotime($this->input->post('wf_time')); $group_admin=explode('@', $this->input->post('wf_wt_sn')); @@ -108,10 +123,13 @@ class Index extends CI_Controller if ($wfd_key=='emailcontent') { $wfd_value=htmlspecialchars($wfd_value); } - $col_val.="('".trim($wfd_key)."','".$wfd_value."',".$wfd_wf_sn."),"; + // $col_val.="('".trim($wfd_key)."','".$wfd_value."',".$wfd_wf_sn."),"; + $col_val.="('".trim($wfd_key)."','".chop($wfd_value)."',".$wfd_wf_sn."),";//csk 2016-9-22 去掉末尾的换行和空格 $mail_data[$wfd_key]=$wfd_value; $mail_data['flow_data'][$wfd_key]=$wfd_value; + $mail_data['flow_data'][$wfd_key]=chop($wfd_value);//csk 2016-9-22 去掉末尾的换行和空格 } + $apply_user=$this->input->post('apply_user'); if (empty($apply_user)) { $col_val.="('apply_user','".$current_user."',".$wfd_wf_sn."),"; @@ -123,7 +141,6 @@ class Index extends CI_Controller //添加审核人 $typeinfo=$this->workflow_model->get_type_list(0,$wf_wt_sn); $verify_tolist_array=$this->get_verify_admin_list($wfd_wf_sn,$group_admin[1],$typeinfo[0]->wt_linear); - //抄送邮件给指定人员 if ($wfd_wf_sn && $wfd_sn) { $data['userdata']=$this->session->userdata('admin_chtcdn'); @@ -177,6 +194,7 @@ class Index extends CI_Controller } $data['userdata']=$this->session->userdata('admin_chtcdn'); + //print_r($data['userdata']); //事务申请人信息 $userdata=$this->session->userdata('admin_chtcdn'); $flow=$this->workflow_model->get_work_list($userdata['OPI_SN'],$wv_status,$wf_sn); @@ -189,6 +207,7 @@ class Index extends CI_Controller $data[$d->wfd_key]=$d->wfd_value; $data['flow_data'][$d->wfd_key]=$d->wfd_value; } + //print_r($data); $form=$data['flow']->wt_form; $data['wf_sn']=$wf_sn; @@ -201,12 +220,16 @@ class Index extends CI_Controller //当前用户是否审核人员 0否 1是 $verify_user=$this->workflow_model->get_verify($wf_sn,0,false,50); $data['is_verify_user']=0; - foreach ($verify_user as $vu) { + // var_dump($data['userdata']);die; + if(!empty($data['userdata']['whu_uid'])){//csk2016-11-29 + foreach ($verify_user as $vu) { if ($data['userdata']['whu_uid']==$vu->wv_admin) { $data['is_verify_user']=1; break; } + } } + //用于做导航激活状态 $data['nav_type']=$nav_type; if ($nav_type=='userlist') { @@ -222,6 +245,7 @@ class Index extends CI_Controller } $data['wv_status']=$wv_status; $data['form']=$this->load->view("form/$form",$data,true); + //print_r($data); $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); @@ -313,7 +337,7 @@ class Index extends CI_Controller $namestrings=str_replace(';', ';', $namestrings); $namestrings=str_replace('(', '(', $namestrings); $namestrings=str_replace(')', ');', $namestrings); - $namestrings=str_replace('惠毅', '惠 毅', $namestrings); + //$namestrings=str_replace('惠毅', '惠 毅', $namestrings); $namestrings=str_replace("\n", ";", $namestrings); $namestrings=str_replace("\r", ";", $namestrings); $namestrings_arr=explode(';', $namestrings); @@ -336,9 +360,6 @@ class Index extends CI_Controller } if (isset($atd_sn_arr[0]->ATT_SN) && isset($epy_sn_arr[0]->EPY_ID)) { $jabtime=7; - if ($workdata[0]->OPI_Name=='周玲霞') { - $jabtime=3.5; - } //如果有自定义的考勤时间则使用自定义的数据 $kaoqin_time=$this->input->post('kaoqin_time')?$this->input->post('kaoqin_time'):''; $kaoqin_time=trim($kaoqin_time); @@ -467,6 +488,7 @@ class Index extends CI_Controller return $verify_tolist_array; } + // public function other_verify($wf_sn,$wv_status=0) { //获取当前值班名单 @@ -542,9 +564,9 @@ class Index extends CI_Controller array_multisort($datetemp3, SORT_ASC, $js_uname_list); $data['en_uname_list']=$en_uname_list; - $data['sw_uname_list']=$sw_uname_list; - $data['jd_uname_list']=$jd_uname_list; - $data['js_uname_list']=$js_uname_list; + $data['sw_uname_list']=array();//$sw_uname_list; + $data['jd_uname_list']=array();//$jd_uname_list; + $data['js_uname_list']=array();//$js_uname_list; $data['wf_sn']=$wf_sn; $data['nav_type']='rata_list'; @@ -624,6 +646,7 @@ class Index extends CI_Controller //分页 $page_flag=true; $list=$this->workflow_model->get_work_list($userdata['whu_uid'],$wv_status,false,$page_flag,false); + //print_r($list); $pages['total']=count($list);//数据总条数 $pages['pageSize']= 30;//每页展示数量 $pages['url'] = site_url("apps/workflow/index/unverify/$wv_status/");//页码链接 @@ -638,18 +661,34 @@ class Index extends CI_Controller } $datalist=$this->workflow_model->get_work_list_by_sn($task_id_str); $worklist=array(); + $wf_sn_str='0'; foreach ($datalist as $wlist) { $worklist[$wlist->wf_sn]=$wlist; + $wf_sn_str.=','.$wlist->wf_sn; } + $data['list']=$worklist; - + $flow_data=$this->workflow_model->get_work_flow_data($wf_sn_str); + + $f_datas=array(); + foreach ($flow_data as $k => $f) { + $f_datas[$f->wfd_wf_sn][$f->wfd_key]=$f->wfd_value; + } + $data['f_datas']=$f_datas; + $data['nav_type']='verify'; $data['left_nav']=$wv_status==0?'unverify':'verify'; $data['wv_status']=$wv_status; + //print_r($data); if ($wv_status==1) { $data['nav_type']='verifyed'; } - + // var_dump($data["list"]); + // foreach ($data["list"] as $key => $v) { + // echo $v->wf_status; + // echo $v->isverify; + // echo "
    "; + // } $this->load->view('n-header', $data); $this->load->view('w-nav'); $this->load->view('w-left'); @@ -847,10 +886,11 @@ class Index extends CI_Controller $data['rolelist']=$this->workflow_model->get_department_list(2); //用户列表 $data['userlist']=$this->workflow_model->get_user_list(); + if ($whu_uid!==false) { $data['userinfo']=$this->workflow_model->get_user_list($whu_uid); - $data['userinfo']=$data['userinfo'][0]; - $data['userrole']=array_filter(explode(',', $data['userinfo']->role)); + $data['userinfo']=$data['userinfo'][0]; + $data['userrole']=array_filter(explode(',', $data['userinfo']->role)); } $this->load->view('n-header', $data); $this->load->view('w-nav'); @@ -863,6 +903,7 @@ class Index extends CI_Controller //员工资料更新 public function user_edit() { + $type=$this->input->post('type'); $whu_role=$this->input->post('userrole'); $whu_uname=$this->input->post('whu_uname'); $whu_email=$this->input->post('whu_email'); @@ -870,11 +911,19 @@ class Index extends CI_Controller $department=$this->input->post('department'); $role=!empty($whu_role)?implode(',',$this->input->post('userrole')):NULL; $whu_uid=$this->input->post('whu_uid'); - $result=$this->workflow_model->update_webuser($whu_uname,$whu_email,$whu_ip,$department,$role,$whu_uid); + if($type == 'add'){ + $result = $result=$this->workflow_model->add_webuser($whu_uname,$whu_email,$whu_ip,$department,$role,$whu_uid); + }else if($type == 'delete'){ + $result=$this->workflow_model->delete_webuser($whu_uname,$whu_uid); + + }else if($type == 'update'){ + $result=$this->workflow_model->update_webuser($whu_uname,$whu_email,$whu_ip,$department,$role,$whu_uid); + } + if ($result) { - echo json_encode(array('status'=>'ok','msg'=>'保存成功!')); + echo json_encode(array('status'=>'ok','msg'=>'操作成功!')); }else{ - echo json_encode(array('status'=>'no','msg'=>'保存失败!')); + echo json_encode(array('status'=>'no','msg'=>'操作失败!')); } } @@ -1001,8 +1050,8 @@ class Index extends CI_Controller //发送邮件 $mail_tpl='rota.php'; - $subject='电子商务部'.date('n',$wf_time).'月值班安排'; - $html='各位同事,
    以下是电子商务部'.date('Y',$wf_time).'年'.date('n',$wf_time).'月值班安排,请大家做好提醒,按相关值班规定值班。
    为方便统计加班小时数,请记得到值班记录系统填写值班记录,自行调班的同事请记得到值班记录系统里面更改。
    谢谢!'; + $subject='海纳国旅'.date('n',$wf_time).'月值班安排'; + $html='各位同事,
    以下是海纳国旅'.date('Y',$wf_time).'年'.date('n',$wf_time).'月值班安排,请大家做好提醒,按相关值班规定值班。
    为方便统计加班小时数,请记得到值班记录系统填写值班记录,自行调班的同事请记得到值班记录系统里面更改。
    谢谢!'; $mailbody=$html.'

    '.$this->load->view("mail_tpl/$mail_tpl",$mail_data,true); //发送人信息 @@ -1032,13 +1081,16 @@ class Index extends CI_Controller if ($this->workflow_model->delete_wfd($wf_sn)) { $col_val=''; foreach ($this->input->post() as $wfd_key => $wfd_value) { - $col_val.="('".trim($wfd_key)."','".$wfd_value."',".$wf_sn."),"; + // $col_val.="('".trim($wfd_key)."','".$wfd_value."',".$wf_sn."),"; + + $col_val.="('".trim($wfd_key)."','".chop($wfd_value)."',".$wf_sn."),";//csk 2016-9-22 去掉末尾的换行和空格 } $apply_user=$this->input->post('apply_user'); if (empty($apply_user)) { $col_val.="('apply_user','".$current_user."',".$wf_sn."),"; } $col_val=substr($col_val, 0, -1); + $wfd_sn=$this->workflow_model->add_work_data($col_val); } @@ -1053,6 +1105,7 @@ class Index extends CI_Controller if ($this->session->userdata('verify_referer')) { $verify_referer_url=$this->session->userdata('verify_referer'); } + echo json_encode(array('status'=>'ok_go','msg'=>'更新成功!','url'=>$verify_referer_url)); } @@ -1413,5 +1466,6 @@ class Index extends CI_Controller } $this->load->view('index/print_text', $data); } - + + } diff --git a/webht/third_party/workflow/models/workflow_model.php b/webht/third_party/workflow/models/workflow_model.php index 3da7b4b6..da3c6732 100644 --- a/webht/third_party/workflow/models/workflow_model.php +++ b/webht/third_party/workflow/models/workflow_model.php @@ -100,7 +100,7 @@ class Workflow_model extends CI_Model { } public function get_work_list($wv_admin,$wv_status,$wf_sn=false,$page_flag=false,$wv_actived=-1) - { + {// $map=" AND wt_form!='rota.php' AND (wv_admin=258 or wv_admin='$wv_admin')"; if (!$wv_actived) { $map.=" AND wv_actived!=-1 "; @@ -117,7 +117,7 @@ class Workflow_model extends CI_Model { left join work_type on wf_wt_sn=wt_sn left join OperatorInfo on wf_user=OPI_SN WHERE wv_status=? $map - ORDER BY wf_time desc"; + ORDER BY wf_time desc"; $query = $this->HT->query($sql, array($wv_status)); $result=$query->result(); return $result; @@ -411,6 +411,34 @@ class Workflow_model extends CI_Model { $query = $this->HT->query($sql,array($whu_uname,$whu_email,$whu_ip,$department,$role,$whu_uid)); return $query; } + + public function add_webuser($whu_uname,$whu_email,$whu_ip,$department,$role) + { + $status = 1; + $sql="INSERT INTO webht_user + (whu_uname, + whu_email, + whu_ip, + whu_status, + department, + role) + VALUES + (?,?,?,?,?,?)"; + $query = $this->HT->query($sql,array($whu_uname,$whu_email,$whu_ip,$status,$department,$role)); + return $query; + } + + public function delete_webuser($whu_uname,$whu_uid) + { + $sql="DELETE FROM + webht_user + WHERE + whu_uname=? + and + whu_uid=?"; + $query = $this->HT->query($sql,array($whu_uname,$whu_uid)); + return $query; + } public function delete_wt($wt_sn,$wt_isdelete=1) { @@ -437,5 +465,10 @@ class Workflow_model extends CI_Model { $query=$this->HT->query($sql, array($wv_wf_sn)); return $query; } + + public function delete_test(){ + $sql = "delete from work_flow_data where wfd_key like '%201905%'"; + $query=$this->HT->query($sql); + } } \ No newline at end of file diff --git a/webht/third_party/workflow/views/form/rota.php b/webht/third_party/workflow/views/form/rota.php index 91ae4018..8d36ad27 100644 --- a/webht/third_party/workflow/views/form/rota.php +++ b/webht/third_party/workflow/views/form/rota.php @@ -5,7 +5,7 @@
    CH销售 CT 商务 - 德语 国际 技术 计调 + APP + 目的地 + 亚洲事业部 值班时间 12点-13点 9:30-12:00,13:00-17:00 - 10:00-16:00 + 10:00-16:00 到办公室 VPN 技术远程值班 无团电话值班 + VPN(8:30-23:00) + VPN(8:30-23:00) + VPN(8:30-23:00) - > + > @@ -89,9 +96,6 @@ - - - @@ -104,6 +108,15 @@ + + + + + + + + + diff --git a/webht/third_party/workflow/views/index/rata_list.php b/webht/third_party/workflow/views/index/rata_list.php index f897cfee..37e506a3 100644 --- a/webht/third_party/workflow/views/index/rata_list.php +++ b/webht/third_party/workflow/views/index/rata_list.php @@ -5,7 +5,8 @@ 提交时间 状态 操作 - 其他 + 其他 + session->userdata('admin_chtcdn'); ?> $v) { ?> @@ -23,7 +24,11 @@ 删除 - 不用发邮件记录考勤的员工 + + + 中午值班审核 + + diff --git a/webht/third_party/workflow/views/index/unverify.php b/webht/third_party/workflow/views/index/unverify.php index e37e0edc..98e05a90 100644 --- a/webht/third_party/workflow/views/index/unverify.php +++ b/webht/third_party/workflow/views/index/unverify.php @@ -6,9 +6,14 @@ 状态 操作 - $v) { ?> + $v) { ?> - + + + + + + wt_name.'('.$v->OPI_Name.')'; ?> wf_time); ?> wf_status==0? ($v->isverify!=1?'还没处理':'处理中'):'已审核';echo $status; ?> @@ -20,6 +25,15 @@ + + + + session->userdata('admin_chtcdn'); if (isset($left_nav) && $left_nav=='unverify' && ($userdata['OPI_Name']=='侯敏' || $userdata['OPI_Name']=='王婷' )) { ?> + 批量审核 + 审核不通过 + + + @@ -29,4 +43,52 @@ - \ No newline at end of file + + + \ No newline at end of file diff --git a/webht/third_party/workflow/views/index/user_manage.php b/webht/third_party/workflow/views/index/user_manage.php index e34bf2e7..4fde522d 100644 --- a/webht/third_party/workflow/views/index/user_manage.php +++ b/webht/third_party/workflow/views/index/user_manage.php @@ -20,7 +20,14 @@
    员工资料编辑 - + +
    +
    +
    @@ -63,16 +70,117 @@
    - - - + + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    + +
    +
    + + + + +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    + + + +
    +
    +
    + +
    +
    + + + + +
    +
    +
    +
    +
    + +
    diff --git a/webht/third_party/workflow/views/index/verify.php b/webht/third_party/workflow/views/index/verify.php index 17024a14..cb3a6ee5 100644 --- a/webht/third_party/workflow/views/index/verify.php +++ b/webht/third_party/workflow/views/index/verify.php @@ -31,9 +31,11 @@
    - + - + diff --git a/webht/third_party/workflow/views/mail_tpl/rota.php b/webht/third_party/workflow/views/mail_tpl/rota.php index 9d92193a..83bbc015 100644 --- a/webht/third_party/workflow/views/mail_tpl/rota.php +++ b/webht/third_party/workflow/views/mail_tpl/rota.php @@ -23,6 +23,7 @@ table th,table td{padding: 5px;font-size: 12px;text-align: center;vertical-align 国际 技术 计调 + APP 值班时间 @@ -33,6 +34,7 @@ table th,table td{padding: 5px;font-size: 12px;text-align: center;vertical-align VPN 技术远程值班 无团电话值班 + VPN(8:30-23:00) @@ -63,6 +66,7 @@ table th,table td{padding: 5px;font-size: 12px;text-align: center;vertical-align

    +

    \ No newline at end of file diff --git a/webht/third_party/workflow/views/w-left.php b/webht/third_party/workflow/views/w-left.php index f54dc2be..e4a3ce23 100644 --- a/webht/third_party/workflow/views/w-left.php +++ b/webht/third_party/workflow/views/w-left.php @@ -8,7 +8,10 @@
  • - session->userdata('admin_chtcdn'); if ($userdata['whu_isadmin']==1) { ?> + session->userdata('admin_chtcdn'); + if ( !empty($userdata['whu_isadmin']) && $userdata['whu_isadmin']==1) { + ?>
  • From 21569e4da0657b69a8b0c2a8209a5fc525b4745c Mon Sep 17 00:00:00 2001 From: lyt Date: Fri, 26 Apr 2019 11:06:34 +0800 Subject: [PATCH 587/596] =?UTF-8?q?paypal=20Trippest=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E7=9A=84=E5=8F=91=E9=80=81=E7=8A=B6=E6=80=81=E6=94=B9=E5=88=B0?= =?UTF-8?q?=E5=92=8C=E5=A4=B1=E8=B4=A5=E4=B8=80=E8=B5=B7=E5=A4=84=E7=90=86?= =?UTF-8?q?,=E9=81=BF=E5=85=8D=E5=8D=A1=E4=BD=8F=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=A4=B1=E8=B4=A5=E7=9A=84=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webht/third_party/paypal/models/note_model.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webht/third_party/paypal/models/note_model.php b/webht/third_party/paypal/models/note_model.php index c534e41f..0cd9ecd4 100644 --- a/webht/third_party/paypal/models/note_model.php +++ b/webht/third_party/paypal/models/note_model.php @@ -31,14 +31,14 @@ class Note_model extends CI_Model { public function unsend($topnum = 2) { $this->init(); $this->topnum = $topnum; - $this->pn_send = " AND (pn_send='unsend' OR pn_send='' OR pn_send IS NULL) "; + $this->pn_send = " AND (pn_send='unsend' OR pn_send IS NULL) "; return $this->get_list(); } public function failnote($topnum = 2) { $this->init(); $this->topnum = $topnum; - $this->pn_send = " AND pn_send='sendfail' "; + $this->pn_send = " AND (pn_send='sendfail' OR pn_send='') "; //$this->orderby = ' ORDER BY pn.pn_sn ASC '; return $this->get_list(); } From 02b64c677e6356be984c73ba4c12ee6a11fcae10 Mon Sep 17 00:00:00 2001 From: lyt Date: Fri, 26 Apr 2019 11:07:57 +0800 Subject: [PATCH 588/596] =?UTF-8?q?Alipay=20=E4=BA=A4=E6=98=93=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E7=9A=84=E5=A4=84=E7=90=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webht/third_party/pay/controllers/AlipayTradeService.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/webht/third_party/pay/controllers/AlipayTradeService.php b/webht/third_party/pay/controllers/AlipayTradeService.php index f9db3a3c..9800c519 100644 --- a/webht/third_party/pay/controllers/AlipayTradeService.php +++ b/webht/third_party/pay/controllers/AlipayTradeService.php @@ -348,7 +348,7 @@ class AlipayTradeService extends CI_Controller foreach ($data['unsend_list'] as $item) { //已经发送的不处理,防止重复发送 - if ($item->ALI_sent == 'send') { + if ($item->ALI_sent == 'send' && empty($pn_txn_id)) { continue; } @@ -359,8 +359,7 @@ class AlipayTradeService extends CI_Controller } //只处理完成状态,其他状态由陆燕处理 - if (strcmp(trim($item->ALI_resultMsg), "TRADE_SUCCESS") - || strcmp(trim($item->ALI_resultMsg), "TRADE_FINISHED")) { + if (strcmp(trim($item->ALI_resultMsg), "TRADE_SUCCESS")!==0 && strcmp(trim($item->ALI_resultMsg), "TRADE_FINISHED")!==0 ) { $this->Alipay_note_model->update_send($item->ALI_dealId, 'send'); continue; } From 8538378b43f84d5b5609566f16f87c45fefc1030 Mon Sep 17 00:00:00 2001 From: lyt Date: Fri, 26 Apr 2019 11:09:05 +0800 Subject: [PATCH 589/596] =?UTF-8?q?wxpay=20=E8=87=AA=E5=8A=A8=E5=BD=95?= =?UTF-8?q?=E5=85=A5=E5=92=8C=E5=8F=91=E9=80=81=E6=8F=90=E9=86=92.=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/controllers/PaymentService.php | 18 +++++++++--------- .../pay/controllers/WxpayService.php | 2 +- .../pay/models/Online_payment_note_model.php | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/webht/third_party/pay/controllers/PaymentService.php b/webht/third_party/pay/controllers/PaymentService.php index c01d4a43..0e39d8da 100644 --- a/webht/third_party/pay/controllers/PaymentService.php +++ b/webht/third_party/pay/controllers/PaymentService.php @@ -40,10 +40,6 @@ log_message('error','send_notify begin ----'); } // 开始处理 foreach ($data['unsend_list'] as $key => $item) { - //显示处理记录 - if (empty($transaction_id)) { - echo ++$show_index . ' ' . $item->OPN_transactionId . '
    '; - } // 只处理完成状态 if ($item->OPN_transactionResult != 'completed') { continue; @@ -76,17 +72,17 @@ log_message('error','send_notify begin ----'); // 开始查找订单和录入 $handpick = empty($transaction_id) ? false : true; $advisor_info = $this->account_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype, $handpick); - $ssje = $this->account_model->get_ssje($item->OPN_orderAmount, $item->OPN_accountMethod, mb_strtoupper($item->OPN_currency)); + $ssje = $this->account_model->get_ssje($item->OPN_orderAmount, mb_strtoupper($item->OPN_currency), $item->OPN_accountMethod); $ssje = $old_ssje===NULL ? $ssje : $old_ssje; $ht_memo = '交易号(自动录入):' . $item->OPN_transactionId; - if ( ! isset($advisor_info->ordertype)) { + if ( empty($advisor_info)) { // record fail $this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'sendfail'); continue; } $COLI_SN = isset($advisor_info->COLI_SN) ? $advisor_info->COLI_SN : 0; $update_note_column = array(); - if ($advisor_info->ordertype == 0) { + if ($advisor_info->order_type == 0) { /* 商务订单 */ if (substr($advisor_info->COLI_WebCode, 0, 6) == 'CHTAPP') { /* APP */ @@ -141,7 +137,7 @@ log_message('error','send_notify begin ----'); $update_note_column['OPN_accountType'] = 'B'; $update_note_column['OPN_accountStatus'] = 'recorded'; $update_note_column['OPN_accountTime'] = date('Y-m-d H:i:s'); - } elseif ($advisor_info->ordertype == 1) { + } elseif ($advisor_info->order_type == 1) { /* 传统 */ $gai_sn = $this->account_model->add_tour_account_info( $COLI_SN, @@ -194,8 +190,12 @@ log_message('error','send_notify begin ----'); $this->account_model->save_automail($fromName, $fromEmail, $toName, $toEmail, $subject, $body, $M_RelatedInfo, $M_State, $M_AddTime, 'payment note', 'payment note'); //添加邮件发送记录 end - $this->note_model->update_send($item->OPN_SN, $item->pn_txn_id, 'send'); + $this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'send'); + //显示处理记录 + if (empty($transaction_id)) { + echo ++$show_index . ' ' . $item->OPN_transactionId . '
    '; + } } return; diff --git a/webht/third_party/pay/controllers/WxpayService.php b/webht/third_party/pay/controllers/WxpayService.php index 5f7f8e74..1f39a0ed 100644 --- a/webht/third_party/pay/controllers/WxpayService.php +++ b/webht/third_party/pay/controllers/WxpayService.php @@ -100,7 +100,7 @@ log_message('error','notify begin ----'); return false; } if ($this->make_sign($xml_arr) !== $xml_arr['sign']) { - log_message('error','Wxpay notify error: sign.'); + log_message('error','Wxpay notify error: sign.' . $this->make_sign($xml_arr)); return false; } if ($this->wx_site_config['app_id'] !== $xml_arr['appid']) { diff --git a/webht/third_party/pay/models/Online_payment_note_model.php b/webht/third_party/pay/models/Online_payment_note_model.php index 5d0205e3..e4eefeea 100644 --- a/webht/third_party/pay/models/Online_payment_note_model.php +++ b/webht/third_party/pay/models/Online_payment_note_model.php @@ -35,7 +35,7 @@ class Online_payment_note_model extends CI_Model { //设置订单号 public function set_invoice($id, $pn_invoice) { - $column = array("OPN_orderId" => $send); + $column = array("OPN_orderId" => $pn_invoice); $where = " OPN_SN=" . $id; return $this->update_note($where, $column); } From cf47bc32b911fd2c6cd3c5879a4e98443c9190b2 Mon Sep 17 00:00:00 2001 From: lyt Date: Fri, 26 Apr 2019 12:02:10 +0800 Subject: [PATCH 590/596] =?UTF-8?q?paypal=20Trippest=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E7=9A=84=E5=BD=95=E5=85=A5=E7=8A=B6=E6=80=81=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webht/third_party/paypal/controllers/index.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/webht/third_party/paypal/controllers/index.php b/webht/third_party/paypal/controllers/index.php index 95d898fa..3c2bdb67 100644 --- a/webht/third_party/paypal/controllers/index.php +++ b/webht/third_party/paypal/controllers/index.php @@ -1325,6 +1325,9 @@ class Index extends CI_Controller { $orderid_info = $this->analysis_orderid($data['note']->pn_invoice); if (!empty($orderid_info)) { $orderid_info = json_decode($orderid_info); + if ($orderid_info->ordertype === 'TP') { + $orderid_info->ordertype = 'B'; + } if ($orderid_info->ordertype === 'T') { $data['gai_info'] = $this->Paypal_model->get_money_t($pn_txn_id); } elseif ($orderid_info->ordertype === 'B') { @@ -1337,6 +1340,9 @@ class Index extends CI_Controller { if ($neworder !== null) { $neworder_id = $this->analysis_orderid($neworder); $neworder_id = json_decode($neworder_id); + if ($neworder_id->ordertype === 'TP') { + $neworder_id->ordertype = 'B'; + } if ( ! empty($neworder_id)) { $data['order_info'] = $this->Paypal_model->get_order($neworder_id->orderid, true, $neworder_id->ordertype); } From 9cef2510b497e8c094ca1853bd0081bfa2802aeb Mon Sep 17 00:00:00 2001 From: lyt Date: Fri, 26 Apr 2019 17:28:03 +0800 Subject: [PATCH 591/596] =?UTF-8?q?=E6=94=B6=E6=AC=BE:=E5=A4=96=E8=81=94?= =?UTF-8?q?=E9=82=AE=E4=BB=B6=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/controllers/PaymentService.php | 25 +++++++++++--- .../pay/models/Online_payment_note_model.php | 34 +++++++++---------- webht/third_party/pay/views/mail_advisor.php | 1 + 3 files changed, 39 insertions(+), 21 deletions(-) create mode 100644 webht/third_party/pay/views/mail_advisor.php diff --git a/webht/third_party/pay/controllers/PaymentService.php b/webht/third_party/pay/controllers/PaymentService.php index 0e39d8da..272a86be 100644 --- a/webht/third_party/pay/controllers/PaymentService.php +++ b/webht/third_party/pay/controllers/PaymentService.php @@ -20,6 +20,24 @@ class PaymentService extends CI_Controller { } + public function note_list() + { + $this->permission->is_admin(true); + $data = array(); + // $data["paytext"] = $this->payment_status(); + $data["method_name"] = $this->input->get_post("method_name"); + $data["keywords"] = $this->input->get_post("keywords"); + $data["date"] = $this->input->get_post("date"); + empty($data['date']) ? $data['date'] = date('Y-m-d') : false; + if (!empty($data['keywords'])) { + $data['notelist'] = $this->note_model->search_key($data['keywords']); + } else { + $data['notelist'] = $this->note_model->search_date($data['date']); + } + $this->load->view("iPayLinks_list",$data); + return; + } + public function send_notify($transaction_id=NULL, $old_ssje=NULL) { log_message('error','send_notify begin ----'); @@ -183,7 +201,7 @@ log_message('error','send_notify begin ----'); $toName = !empty($opi_firstname) ? $opi_firstname : ''; $toEmail = !empty($opi_email) ? $opi_email : ''; $subject = $orderid_info->orderid . '_' . $orderid_info->ordertype . ' / ' . $item->OPN_orderAmount . $item->OPN_currency . ' / ' . $fromName; - $body = $this->load->view('mail_templete', $item, true); //$item->pn_memo; + $body = $this->load->view('mail_advisor', $item, true); //$item->pn_memo; $M_RelatedInfo = $item->OPN_SN; $M_AddTime = $item->OPN_completeTime; $M_State = 0; @@ -203,6 +221,7 @@ log_message('error','send_notify begin ----'); } /** 支付方式参数对应的配置文件名 */ + /** @Deprecated */ public function method_name($name) { $config_name = 'paypal'; @@ -246,14 +265,12 @@ log_message('error','send_notify begin ----'); case '15016': // wxpay $orderid_info = analysis_orderid($content_obj->out_trade_no); break; - + // TODO case '15018': // iPaylinks break; - case '15015': // alipay break; - default: # code... break; diff --git a/webht/third_party/pay/models/Online_payment_note_model.php b/webht/third_party/pay/models/Online_payment_note_model.php index e4eefeea..7d5a9c4a 100644 --- a/webht/third_party/pay/models/Online_payment_note_model.php +++ b/webht/third_party/pay/models/Online_payment_note_model.php @@ -40,6 +40,23 @@ class Online_payment_note_model extends CI_Model { return $this->update_note($where, $column); } + public function unsend_note($num=2) + { + $this->init_query(); + $this->topnum = $num; + $this->send = " AND (OPN_noticeSendStatus='unsend' OR OPN_noticeSendStatus='' OR OPN_noticeSendStatus IS NULL) "; + return $this->query_note(); + } + + public function sendfail_note($num=2) + { + $this->init_query(); + $this->topnum = $num; + $this->send = " AND OPN_noticeSendStatus='sendfail' "; + return $this->query_note(); + } + + public $topnum = false; public $orderby = false; public $send = false; @@ -83,23 +100,6 @@ class Online_payment_note_model extends CI_Model { return $this->query_note(); } - public function unsend_note($num=2) - { - $this->init_query(); - $this->topnum = $num; - $this->send = " AND (OPN_noticeSendStatus='unsend' OR OPN_noticeSendStatus='' OR OPN_noticeSendStatus IS NULL) "; - return $this->query_note(); - } - - public function sendfail_note($num=2) - { - $this->init_query(); - $this->topnum = $num; - $this->send = " AND OPN_noticeSendStatus='sendfail' "; - return $this->query_note(); - } - - } diff --git a/webht/third_party/pay/views/mail_advisor.php b/webht/third_party/pay/views/mail_advisor.php new file mode 100644 index 00000000..272340c6 --- /dev/null +++ b/webht/third_party/pay/views/mail_advisor.php @@ -0,0 +1 @@ +
    payment logo
    Transaction ID:  
    Hello Guilin China International Travel Service Co.,Ltd,
    You received a payment of
    Seller Protection-
    Buyer


    Description     Amount

    From aecdf6eddf986666a1db385e09c354687184741e Mon Sep 17 00:00:00 2001 From: lyt Date: Mon, 29 Apr 2019 11:56:55 +0800 Subject: [PATCH 592/596] =?UTF-8?q?wxpay=20=E6=94=B6=E6=AC=BE=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=A4=84=E7=90=86;=E6=94=B6=E6=AC=BE=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=88=97=E8=A1=A8;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pay/controllers/PaymentService.php | 127 ++++++++++++++++-- .../models/Online_payment_account_model.php | 36 ++++- .../pay/models/Online_payment_note_model.php | 49 ++++++- 3 files changed, 200 insertions(+), 12 deletions(-) diff --git a/webht/third_party/pay/controllers/PaymentService.php b/webht/third_party/pay/controllers/PaymentService.php index 272a86be..bf6180b6 100644 --- a/webht/third_party/pay/controllers/PaymentService.php +++ b/webht/third_party/pay/controllers/PaymentService.php @@ -1,8 +1,6 @@ note_model->search_date($data['date']); } - $this->load->view("iPayLinks_list",$data); + + /** + * 导出记录用的记录节点 + * TODO + */ + // $data['record_flags'] = $this->note_model->list_export_record(); + + $this->load->view("payment_list",$data); return; } - public function send_notify($transaction_id=NULL, $old_ssje=NULL) + public function note_faillist() + { + $this->permission->is_admin(true); + $data = array(); + $data['date'] = date('Y-m-d'); + $data['notelist'] = $this->note_model->failnote(100); + $this->load->view("payment_list",$data); + return; + } + + public function send_notify($opn_id=NULL, $old_ssje=NULL) { log_message('error','send_notify begin ----'); // exit(); $data = array(); $show_index = 0; //优先处理指定的交易号,用于修正交易号直接发送通知 - if ( ! empty($transaction_id)) { - $data['unsend_list'] = $this->note_model->get_note($transaction_id); + if ( ! empty($opn_id)) { + $data['unsend_list'] = $this->note_model->get_note($opn_id); } // 待处理的 if (empty($data['unsend_list'])) { @@ -88,7 +102,7 @@ log_message('error','send_notify begin ----'); } // 开始查找订单和录入 - $handpick = empty($transaction_id) ? false : true; + $handpick = empty($opn_id) ? false : true; $advisor_info = $this->account_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype, $handpick); $ssje = $this->account_model->get_ssje($item->OPN_orderAmount, mb_strtoupper($item->OPN_currency), $item->OPN_accountMethod); $ssje = $old_ssje===NULL ? $ssje : $old_ssje; @@ -207,11 +221,12 @@ log_message('error','send_notify begin ----'); $M_State = 0; $this->account_model->save_automail($fromName, $fromEmail, $toName, $toEmail, $subject, $body, $M_RelatedInfo, $M_State, $M_AddTime, 'payment note', 'payment note'); //添加邮件发送记录 end + // 2. 给客人发邮件,通知账单 todo ?? 是否需要 $this->note_model->update_send($item->OPN_SN, $item->OPN_transactionId, 'send'); //显示处理记录 - if (empty($transaction_id)) { + if (empty($opn_id)) { echo ++$show_index . ' ' . $item->OPN_transactionId . '
    '; } @@ -278,5 +293,99 @@ log_message('error','send_notify begin ----'); return $orderid_info; } + public function convert_send_status() + { + # code... + } + + public function gai_modal($pn_id = null, $neworder=null) + { + $this->permission->is_admin(true); + $data = array(); + $note = $this->note_model->get_note($pn_id); + $data['note'] = $note[0]; + $data['order_info'] = NULL; + $pn_invoice = $data['note']->OPN_orderId ? $data['note']->OPN_orderId : $data['note']->OPN_rawOrderId; + $pn_txn_id = $data['note']->OPN_transactionId; + $orderid_info = analysis_orderid($pn_invoice); + if (!empty($orderid_info)) { + $orderid_info = json_decode($orderid_info); + $data['order_info'] = $this->account_model->get_order($orderid_info->orderid, true, $orderid_info->ordertype); + if ($orderid_info->ordertype === 'T') { + $data['gai_info'] = $this->account_model->get_money_t($pn_txn_id); + } elseif ($orderid_info->ordertype === 'B' || $orderid_info->ordertype === 'TP') { + $data['gai_info'] = $this->account_model->get_money_b($pn_txn_id); + } + } + $data['old_order'] = $pn_invoice; + $data['new_order'] = $neworder; + if ($neworder !== null ) { + $neworder_id = analysis_orderid($neworder); + $neworder_id = json_decode($neworder_id); + if ( ! empty($neworder_id)) { + $data['order_info'] = $this->account_model->get_order($neworder_id->orderid, true, $neworder_id->ordertype); + } + } + echo json_encode($this->load->view('payment_gai_setting', $data, true)); + } + + public function gai_modal_save() + { + $data = array(); + $old_ssje = NULL; + $pn_txn_id = $this->input->post('pn_txn_id'); + $pn_id = $this->input->post('pn_id'); + $neworder = $this->input->post('pn_invoice'); + + $note = $this->note_model->get_note($pn_id); + $data['note'] = $note[0]; + $orderid_info = analysis_orderid($data['note']->OPN_orderId); + if (!empty($orderid_info)) { + $orderid_info = json_decode($orderid_info); + if ($orderid_info->ordertype === 'T') { + $data['gai_info'] = $this->account_model->get_money_t($pn_txn_id); + if ( ! empty($data['gai_info'])) { + $old_ssje = $data['gai_info'][0]->GAI_SSJE; + $this->account_model->delete_money_t($pn_txn_id); + } + } elseif ($orderid_info->ordertype === 'B' || $orderid_info->ordertype === 'TP') { + $data['gai_info'] = $this->account_model->get_money_b($pn_txn_id); + if ( ! empty($data['gai_info'])) { + $old_ssje = $data['gai_info'][0]->GAI_SSJE; + $this->account_model->delete_money_b($pn_txn_id); + } + } + } + + if (!empty($pn_txn_id) && !empty($neworder)) { + $orderid_info = analysis_orderid($neworder); + if (!empty($orderid_info)) { + $orderid_info = json_decode($orderid_info); + $advisor_info = $this->account_model->get_order($orderid_info->orderid, false, $orderid_info->ordertype); + if (!empty($advisor_info)) { + $this->note_model->set_invoice($data['note']->OPN_SN, $neworder); + $this->send_notify($data['note']->OPN_SN, $old_ssje); + echo json_encode('修改成功!'); + return true; + } + } + } + echo json_encode('没找到数据!'); + return; + } + + public function close_gai($opn_id) + { + $data = array(); + $data['note'] = $this->note_model->get_note($opn_id); + if (!empty($data['note'])) { + $this->note_model->update_send($opn_id, $data['note'][0]->OPN_transactionId, 'closed'); + echo json_encode('该收款记录已经忽略!'); + return true; + } + echo json_encode('没找到数据!'); + return; + } + } diff --git a/webht/third_party/pay/models/Online_payment_account_model.php b/webht/third_party/pay/models/Online_payment_account_model.php index 3a42e20e..91fc6fa0 100644 --- a/webht/third_party/pay/models/Online_payment_account_model.php +++ b/webht/third_party/pay/models/Online_payment_account_model.php @@ -28,7 +28,7 @@ class Online_payment_account_model extends CI_Model { $result = ''; $fieldsql = $orderinfo == false ? '' : " ,* "; //先查商务订单B,APP订单A、再查传统订单T - if ($ordertype == 'B' || $ordertype == 'A') { + if ($ordertype == 'B' || $ordertype == 'A' || $ordertype == 'TP') { $sql = "SELECT TOP 2 0 as order_type,COLI_SN,COLI_ID,OPI_Email,OPI_FirstName,OPI_Name,COLI_WebCode,COLI_Department,COLI_PayManner,COLI_State $fieldsql from BIZ_ConfirmLineInfo LEFT JOIN OperatorInfo ON COLI_OPI_ID=OPI_SN where COLI_ID =?"; @@ -152,6 +152,40 @@ class Online_payment_account_model extends CI_Model { return $query; } + //根据交易号获取收款记录(传统订单) + public function get_money_t($pn_invoice) { + $sql = "SELECT GroupAccountInfo.* + from GroupAccountInfo + where DeleteFlag=0 and GAI_AccreditNo=? + "; + $query = $this->HT->query($sql, array($pn_invoice)); + $result = $query->result(); + return $result; + } + //根据交易号获取收款记录(商务订单) + public function get_money_b($pn_invoice) { + $sql = "SELECT BIZ_GroupAccountInfo.* + from BIZ_GroupAccountInfo + where DeleteFlag=0 and GAI_AccreditNo=? + "; + $query = $this->HT->query($sql, array($pn_invoice)); + $result = $query->result(); + return $result; + } + /** 删除收款记录 */ + public function delete_money_t($deadId) + { + $sql = "UPDATE GroupAccountInfo SET DeleteFlag=1 WHERE GAI_AccreditNo=?"; + $query = $this->HT->query($sql, array($deadId)); + return $query; + } + public function delete_money_b($deadId) + { + $sql = "UPDATE BIZ_GroupAccountInfo SET DeleteFlag=1 WHERE GAI_AccreditNo=?"; + $query = $this->HT->query($sql, array($deadId)); + return $query; + } + //添加收款记录(商务订单) public function add_account_info($GAI_COLI_SN, $payment_method, $GAI_COLI_ID, $GAI_SQJE, $GAI_SQDate, $GAI_SQJECurrency, $GAI_SSJE, $GAI_SSDate, $GAI_AccountDate, $GAI_SubmitDate, $GAI_CusName, $GAI_CusEmail, $GAI_AccreditNo, $GAI_Memo) { //先判断是否有这条数据 diff --git a/webht/third_party/pay/models/Online_payment_note_model.php b/webht/third_party/pay/models/Online_payment_note_model.php index 7d5a9c4a..c17f0cb4 100644 --- a/webht/third_party/pay/models/Online_payment_note_model.php +++ b/webht/third_party/pay/models/Online_payment_note_model.php @@ -92,14 +92,59 @@ class Online_payment_note_model extends CI_Model { return $query->result(); } - public function get_note($transactionId) + public function get_note($opn_id) { $this->init_query(); $this->topnum=1; - $this->transactionId = " AND opn.OPN_transactionId=" . $this->info->escape($transactionId); + $this->search = " AND opn.OPN_SN=" . $this->info->escape($opn_id); return $this->query_note(); } + public function search_key($keyword) + { + $this->init_query(); + $this->topnum = 300; + $keyword = trim($keyword); + $search_sql = ""; + if ( ! empty($keyword)) { + $search_sql.=" AND ( OPN_transactionId = '$keyword' + OR OPN_orderId like '%$keyword%' + OR OPN_rawOrderId like '%$keyword%' )"; + } + $this->search = $search_sql; + return $this->query_note(); + } + + public function search_date($date) + { + $this->init_query(); + $this->search = " AND OPN_noticeTime BETWEEN '$date 00:00:00' AND '$date 23:59:59' "; + return $this->query_note(); + } + + public function failnote($topnum = 2) { + $this->init_query(); + $this->topnum = $topnum; + $this->send = " AND OPN_noticeSendStatus='sendfail' "; + return $this->query_note(); + } + + /*! + * 导出记录 + * @date 2019-04-28 + * @param integer $sn [description] + */ + public function list_export_record($sn=0) + { + $search_sql = $sn===0 ? "" : " and TEL_SN=$sn "; + $sql = "SELECT TOP 10 * + FROM [InfoManager].[dbo].[Transaction_Export_Log] + WHERE 1=1 + $search_sql + order by TEL_SN desc"; + return $this->info->query($sql)->result(); + } + } From ef7df5607005e47916b2fb63c316fc819d908b38 Mon Sep 17 00:00:00 2001 From: lyt Date: Mon, 29 Apr 2019 13:30:54 +0800 Subject: [PATCH 593/596] =?UTF-8?q?wxpay=20=E6=96=B0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/webht/flatpicker.min.css | 3 + js/flatpickr-4.4.4.min.js | 2 + .../pay/views/payment_gai_setting.php | 59 ++++ webht/third_party/pay/views/payment_list.php | 303 ++++++++++++++++++ 4 files changed, 367 insertions(+) create mode 100644 css/webht/flatpicker.min.css create mode 100644 js/flatpickr-4.4.4.min.js create mode 100644 webht/third_party/pay/views/payment_gai_setting.php create mode 100644 webht/third_party/pay/views/payment_list.php diff --git a/css/webht/flatpicker.min.css b/css/webht/flatpicker.min.css new file mode 100644 index 00000000..f513a963 --- /dev/null +++ b/css/webht/flatpicker.min.css @@ -0,0 +1,3 @@ +/*flatpickr:begin*/ +.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;-webkit-animation:none;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-touch-action:manipulation;touch-action:manipulation;background:#fff;-webkit-box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);box-shadow:1px 0 0 #e6e6e6,-1px 0 0 #e6e6e6,0 1px 0 #e6e6e6,0 -1px 0 #e6e6e6,0 3px 13px rgba(0,0,0,0.08);}.flatpickr-calendar.open,.flatpickr-calendar.inline{opacity:1;max-height:640px;visibility:visible;}.flatpickr-calendar.open{display:inline-block;z-index:99999;}.flatpickr-calendar.animate.open{-webkit-animation:fpFadeInDown 300ms cubic-bezier(0.23,1,0.32,1);animation:fpFadeInDown 300ms cubic-bezier(0.23,1,0.32,1);}.flatpickr-calendar.inline{display:block;position:relative;top:2px;}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px);}.flatpickr-calendar.static.open{z-index:999;display:block;}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){-webkit-box-shadow:none !important;box-shadow:none !important;}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){-webkit-box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6;}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0;}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6;}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto;}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;display:block;pointer-events:none;border:solid transparent;content:'';height:0;width:0;left:22px;}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{left:auto;right:22px;}.flatpickr-calendar:before{border-width:5px;margin:0 -5px;}.flatpickr-calendar:after{border-width:4px;margin:0 -4px;}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%;}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6;}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff;}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%;}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6;}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff;}.flatpickr-calendar:focus{outline:0;}.flatpickr-wrapper{position:relative;display:inline-block;}.flatpickr-months{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-months .flatpickr-month{background:transparent;color:rgba(0,0,0,0.9);fill:rgba(0,0,0,0.9);height:28px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;margin-bottom:5px;}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{text-decoration:none;cursor:pointer;position:absolute;top:0px;line-height:16px;height:28px;padding:10px;z-index:3;}.flatpickr-months .flatpickr-prev-month.disabled,.flatpickr-months .flatpickr-next-month.disabled{display:none;}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative;}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0;}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0;}.flatpickr-months .flatpickr-prev-month:hover,.flatpickr-months .flatpickr-next-month:hover{color:#959ea9;}.flatpickr-months .flatpickr-prev-month:hover svg,.flatpickr-months .flatpickr-next-month:hover svg{fill:#f64747;}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px;}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{-webkit-transition:fill 0.1s;transition:fill 0.1s;fill:inherit;}.numInputWrapper{position:relative;height:auto;}.numInputWrapper input,.numInputWrapper span{display:inline-block;}.numInputWrapper input{width:100%;}.numInputWrapper input::-ms-clear{display:none;}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid rgba(57,57,57,0.15);-webkit-box-sizing:border-box;box-sizing:border-box;}.numInputWrapper span:hover{background:rgba(0,0,0,0.1);}.numInputWrapper span:active{background:rgba(0,0,0,0.2);}.numInputWrapper span:after{display:block;content:"";position:absolute;}.numInputWrapper span.arrowUp{top:-2px;left:50px;}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,0.6);top:26%;}.numInputWrapper span.arrowDown{top:10px;left:50px;}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(57,57,57,0.6);top:40%;}.numInputWrapper span svg{width:inherit;height:auto;}.numInputWrapper span svg path{fill:rgba(0,0,0,0.5);}.numInputWrapper:hover{cursor:pointer;}.numInputWrapper:hover span{opacity:1;}.flatpickr-current-month{font-size:17px;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:6.16px 0 0 0;line-height:1;height:28px;display:inline-block;text-align:center;-webkit-transform:translate3d(0px,0px,0px);transform:translate3d(0px,0px,0px);}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:0.5ch;padding:0;font-size:19px;color:#a31022;}.flatpickr-current-month span.cur-month:hover{cursor:pointer;}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\0;display:inline-block;}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:rgba(0,0,0,0.9);}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:rgba(0,0,0,0.9);}.flatpickr-current-month input.cur-year{background:transparent;-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 0.5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;font-size:18px;}.flatpickr-current-month input.cur-year:focus{outline:0;}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:rgba(0,0,0,0.5);background:transparent;pointer-events:none;}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;height:28px;}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}span.flatpickr-weekday{cursor:default;font-size:16px;background:transparent;color:rgba(0,0,0,0.54);line-height:1;margin:0;text-align:center;display:block;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;}.dayContainer,.flatpickr-weeks{padding:1px 0 0 0;}.flatpickr-days{position:relative;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:start;-webkit-align-items:flex-start;-ms-flex-align:start;align-items:flex-start;width:307.875px;}.flatpickr-days:focus{outline:0;}.dayContainer{padding:0;outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;display:-ms-flexbox;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-wrap:wrap;-ms-flex-pack:justify;-webkit-justify-content:space-around;justify-content:space-around;-webkit-transform:translate3d(0px,0px,0px);transform:translate3d(0px,0px,0px);opacity:1;}.dayContainer + .dayContainer{-webkit-box-shadow:-1px 0 0 #e6e6e6;box-shadow:-1px 0 0 #e6e6e6;}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#a31022;cursor:pointer;font-weight:400;width:14.2857143%;-webkit-flex-basis:14.2857143%;-ms-flex-preferred-size:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;font-size:16px;}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{cursor:pointer;outline:0;background:#e6e6e6;border-color:#e6e6e6;}.flatpickr-day.today{border-color:#959ea9;}.flatpickr-day.today:hover,.flatpickr-day.today:focus{border-color:#959ea9;background:#959ea9;color:#fff;}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{background:#569ff7;-webkit-box-shadow:none;box-shadow:none;color:#fff;border-color:#569ff7;}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px;}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0;}.flatpickr-day.selected.startRange + .endRange,.flatpickr-day.startRange.startRange + .endRange,.flatpickr-day.endRange.startRange + .endRange{-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 0 #569ff7;}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px;}.flatpickr-day.inRange{border-radius:0;-webkit-box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;box-shadow:-5px 0 0 #e6e6e6,5px 0 0 #e6e6e6;}.flatpickr-day.disabled,.flatpickr-day.disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#848080;background:transparent;border-color:transparent;cursor:default;}.flatpickr-day.disabled,.flatpickr-day.disabled:hover{cursor:not-allowed;color:#d0d0d0;}.flatpickr-day.week.selected{border-radius:0;-webkit-box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;box-shadow:-5px 0 0 #569ff7,5px 0 0 #569ff7;}.flatpickr-day.hidden{visibility:hidden;}.rangeMode .flatpickr-day{margin-top:1px;}.flatpickr-weekwrapper{display:inline-block;float:left;}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;-webkit-box-shadow:1px 0 0 #e6e6e6;box-shadow:1px 0 0 #e6e6e6;}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px;}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#9a9a9a;background:transparent;cursor:default;border:none;}.flatpickr-innerContainer{display:block;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;}.flatpickr-rContainer{display:inline-block;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box;}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;}.flatpickr-time:after{content:"";display:table;clear:both;}.flatpickr-time .numInputWrapper{-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1;width:40%;height:40px;float:left;}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#4f4f4f;}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#4f4f4f;}.flatpickr-time.hasSeconds .numInputWrapper{width:26%;}.flatpickr-time.time24hr .numInputWrapper{width:49%;}.flatpickr-time input{background:transparent;-webkit-box-shadow:none;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;cursor:pointer;color:#4f4f4f;font-size:14px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;}.flatpickr-time input.flatpickr-hour{font-weight:bold;}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400;}.flatpickr-time input:focus{outline:0;border:0;}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{height:inherit;display:inline-block;float:left;line-height:inherit;color:#4f4f4f;font-weight:bold;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-align-self:center;-ms-flex-item-align:center;align-self:center;}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400;}.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time .flatpickr-am-pm:focus{background:#f0f0f0;}.flatpickr-input[readonly]{cursor:pointer;}@-webkit-keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}}@keyframes fpFadeInDown{from{opacity:0;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);}} +/*flatpickr:end*/ diff --git a/js/flatpickr-4.4.4.min.js b/js/flatpickr-4.4.4.min.js new file mode 100644 index 00000000..b40382b2 --- /dev/null +++ b/js/flatpickr-4.4.4.min.js @@ -0,0 +1,2 @@ +/* flatpickr v4.4.4,, @license MIT */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.flatpickr=t()}(this,function(){"use strict";var Z=function(e){return("0"+e).slice(-2)},Q=function(e){return!0===e?1:0};function X(n,a,i){var o;return void 0===i&&(i=!1),function(){var e=this,t=arguments;null!==o&&clearTimeout(o),o=window.setTimeout(function(){o=null,i||n.apply(e,t)},a),i&&!o&&n.apply(e,t)}}var ee=function(e){return e instanceof Array?e:[e]},e=function(){},te=function(e,t,n){return n.months[t?"shorthand":"longhand"][e]},D={D:e,F:function(e,t,n){e.setMonth(n.months.longhand.indexOf(t))},G:function(e,t){e.setHours(parseFloat(t))},H:function(e,t){e.setHours(parseFloat(t))},J:function(e,t){e.setDate(parseFloat(t))},K:function(e,t,n){e.setHours(e.getHours()%12+12*Q(new RegExp(n.amPM[1],"i").test(t)))},M:function(e,t,n){e.setMonth(n.months.shorthand.indexOf(t))},S:function(e,t){e.setSeconds(parseFloat(t))},U:function(e,t){return new Date(1e3*parseFloat(t))},W:function(e,t){var n=parseInt(t);return new Date(e.getFullYear(),0,2+7*(n-1),0,0,0,0)},Y:function(e,t){e.setFullYear(parseFloat(t))},Z:function(e,t){return new Date(t)},d:function(e,t){e.setDate(parseFloat(t))},h:function(e,t){e.setHours(parseFloat(t))},i:function(e,t){e.setMinutes(parseFloat(t))},j:function(e,t){e.setDate(parseFloat(t))},l:e,m:function(e,t){e.setMonth(parseFloat(t)-1)},n:function(e,t){e.setMonth(parseFloat(t)-1)},s:function(e,t){e.setSeconds(parseFloat(t))},w:e,y:function(e,t){e.setFullYear(2e3+parseFloat(t))}},ne={D:"(\\w+)",F:"(\\w+)",G:"(\\d\\d|\\d)",H:"(\\d\\d|\\d)",J:"(\\d\\d|\\d)\\w+",K:"",M:"(\\w+)",S:"(\\d\\d|\\d)",U:"(.+)",W:"(\\d\\d|\\d)",Y:"(\\d{4})",Z:"(.+)",d:"(\\d\\d|\\d)",h:"(\\d\\d|\\d)",i:"(\\d\\d|\\d)",j:"(\\d\\d|\\d)",l:"(\\w+)",m:"(\\d\\d|\\d)",n:"(\\d\\d|\\d)",s:"(\\d\\d|\\d)",w:"(\\d\\d|\\d)",y:"(\\d{2})"},c={Z:function(e){return e.toISOString()},D:function(e,t,n){return t.weekdays.shorthand[c.w(e,t,n)]},F:function(e,t,n){return te(c.n(e,t,n)-1,!1,t)},G:function(e,t,n){return Z(c.h(e,t,n))},H:function(e){return Z(e.getHours())},J:function(e,t){return void 0!==t.ordinal?e.getDate()+t.ordinal(e.getDate()):e.getDate()},K:function(e,t){return t.amPM[Q(11Math.min(t,n)&&e",noCalendar:!1,now:new Date,onChange:[],onClose:[],onDayCreate:[],onDestroy:[],onKeyDown:[],onMonthChange:[],onOpen:[],onParseConfig:[],onReady:[],onValueUpdate:[],onYearChange:[],onPreCalendarPosition:[],plugins:[],position:"auto",positionElement:void 0,prevArrow:"",shorthandCurrentMonth:!1,showMonths:1,static:!1,time_24hr:!1,weekNumbers:!1,wrap:!1};function de(e,t,n){if(!0===n)return e.classList.add(t);e.classList.remove(t)}function se(e,t,n){var a=window.document.createElement(e);return t=t||"",n=n||"",a.className=t,void 0!==n&&(a.textContent=n),a}function ue(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function fe(e,t){var n=se("div","numInputWrapper"),a=se("input","numInput "+e),i=se("span","arrowUp"),o=se("span","arrowDown");if(a.type="text",a.pattern="\\d*",void 0!==t)for(var r in t)a.setAttribute(r,t[r]);return n.appendChild(a),n.appendChild(i),n.appendChild(o),n}"function"!=typeof Object.assign&&(Object.assign=function(n){if(!n)throw TypeError("Cannot convert undefined or null to object");for(var e=arguments.length,t=new Array(1o)&&(D.amPM.textContent=D.l10n.amPM[Q(D.amPM.textContent===D.l10n.amPM[0])]),n.value=Z(l)}}(e),"input"!==e.type?(m(),G()):setTimeout(function(){m(),G()},me))}function m(){if(void 0!==D.hourElement&&void 0!==D.minuteElement){var e,t,n=(parseInt(D.hourElement.value.slice(-2),10)||0)%24,a=(parseInt(D.minuteElement.value,10)||0)%60,i=void 0!==D.secondElement?(parseInt(D.secondElement.value,10)||0)%60:0;void 0!==D.amPM&&(e=n,t=D.amPM.textContent,n=e%12+12*Q(t===D.l10n.amPM[1]));var o=void 0!==D.config.minTime||D.config.minDate&&D.minDateHasTime&&D.latestSelectedDateObj&&0===re(D.latestSelectedDateObj,D.config.minDate,!0);if(void 0!==D.config.maxTime||D.config.maxDate&&D.maxDateHasTime&&D.latestSelectedDateObj&&0===re(D.latestSelectedDateObj,D.config.maxDate,!0)){var r=void 0!==D.config.maxTime?D.config.maxTime:D.config.maxDate;(n=Math.min(n,r.getHours()))===r.getHours()&&(a=Math.min(a,r.getMinutes())),a===r.getMinutes()&&(i=Math.min(i,r.getSeconds()))}if(o){var c=void 0!==D.config.minTime?D.config.minTime:D.config.minDate;(n=Math.max(n,c.getHours()))===c.getHours()&&(a=Math.max(a,c.getMinutes())),a===c.getMinutes()&&(i=Math.max(i,c.getSeconds()))}l(n,a,i)}}function g(e){var t=e||D.latestSelectedDateObj;t&&l(t.getHours(),t.getMinutes(),t.getSeconds())}function l(e,t,n){void 0!==D.latestSelectedDateObj&&D.latestSelectedDateObj.setHours(e%24,t,n||0,0),D.hourElement&&D.minuteElement&&!D.isMobile&&(D.hourElement.value=Z(D.config.time_24hr?e:(12+e)%12+12*Q(e%12==0)),D.minuteElement.value=Z(t),void 0!==D.amPM&&(D.amPM.textContent=D.l10n.amPM[Q(12<=e)]),void 0!==D.secondElement&&(D.secondElement.value=Z(n)))}function n(e){var t=parseInt(e.target.value)+(e.delta||0);4!==t.toString().length&&"Enter"!==e.key||(e.target.blur(),/[^\d]/.test(t.toString())||S(t))}function o(t,n,a,i){return n instanceof Array?n.forEach(function(e){return o(t,e,a,i)}):t instanceof Array?t.forEach(function(e){return o(e,n,a,i)}):(t.addEventListener(n,a,i),void D._handlers.push({element:t,event:n,handler:a}))}function a(t){return function(e){1===e.which&&t(e)}}function p(){U("onChange")}function i(e){var t=void 0!==e?D.parseDate(e):D.latestSelectedDateObj||(D.config.minDate&&D.config.minDate>D.now?D.config.minDate:D.config.maxDate&&D.config.maxDate"+D.config.getWeek(t)+""),U("onDayCreate",r),r}function b(e){e.focus(),"range"===D.config.mode&&A(e)}function w(e){for(var t=0=Math.abs(t))return b(s)}D.changeMonth(i),M(w(i),0)}(a,t):b(a)}function c(e,t){for(var n=(new Date(e,t,1).getDay()-D.l10n.firstDayOfWeek+7)%7,a=D.utils.getDaysInMonth((t-1+12)%12),i=D.utils.getDaysInMonth(t),o=window.document.createDocumentFragment(),r=1\n "+t.join("")+"\n \n "}function k(e,t){void 0===t&&(t=!0);var n=t?e:e-D.currentMonth;n<0&&!0===D._hidePrevMonthArrow||0D.config.maxDate.getFullYear())){var t=e,n=D.currentYear!==t;D.currentYear=t||D.currentYear,D.config.maxDate&&D.currentYear===D.config.maxDate.getFullYear()?D.currentMonth=Math.min(D.config.maxDate.getMonth(),D.currentMonth):D.config.minDate&&D.currentYear===D.config.minDate.getFullYear()&&(D.currentMonth=Math.max(D.config.minDate.getMonth(),D.currentMonth)),n&&(D.redraw(),U("onYearChange"))}}function P(e,t){void 0===t&&(t=!0);var n=D.parseDate(e,void 0,t);if(D.config.minDate&&n&&re(n,D.config.minDate,void 0!==t?t:!D.minDateHasTime)<0||D.config.maxDate&&n&&0=a.from.getTime()&&n.getTime()<=a.to.getTime())return i}return!i}function _(e){return void 0!==D.daysContainer&&(-1===e.className.indexOf("hidden")&&D.daysContainer.contains(e))}function F(e){e.stopPropagation();var t=e.target===D._input,n=I(e.target),a=D.config.allowInput,i=D.isOpen&&(!a||!t),o=D.config.inline&&t&&!a;if(13===e.keyCode&&t){if(a)return D.setDate(D._input.value,!0,e.target===D.altInput?D.config.altFormat:D.config.dateFormat),e.target.blur();D.open()}else if(n||i||o){var r=!!D.timeContainer&&D.timeContainer.contains(e.target);switch(e.keyCode){case 13:r?G():R(e);break;case 27:e.preventDefault(),W();break;case 8:case 46:t&&!D.config.allowInput&&(e.preventDefault(),D.clear());break;case 37:case 39:if(r)D.hourElement&&D.hourElement.focus();else if(e.preventDefault(),void 0!==D.daysContainer&&!1===D.config.allowInput){var c=39===e.keyCode?1:-1;e.ctrlKey?(k(c),M(w(1),0)):M(void 0,c)}break;case 38:case 40:e.preventDefault();var l=40===e.keyCode?1:-1;D.daysContainer?e.ctrlKey?(S(D.currentYear-l),M(w(1),0)):r||M(void 0,7*l):D.config.enableTime&&(!r&&D.hourElement&&D.hourElement.focus(),d(e),D._debouncedChange());break;case 9:e.target===D.hourElement?(e.preventDefault(),D.minuteElement.select()):e.target===D.minuteElement&&(D.secondElement||D.amPM)?(e.preventDefault(),void 0!==D.secondElement?D.secondElement.focus():void 0!==D.amPM&&D.amPM.focus()):e.target===D.secondElement&&D.amPM&&(e.preventDefault(),D.amPM.focus())}switch(e.key){case D.l10n.amPM[0].charAt(0):case D.l10n.amPM[0].charAt(0).toLowerCase():void 0!==D.amPM&&e.target===D.amPM&&(D.amPM.textContent=D.l10n.amPM[0],m(),G());break;case D.l10n.amPM[1].charAt(0):case D.l10n.amPM[1].charAt(0).toLowerCase():void 0!==D.amPM&&e.target===D.amPM&&(D.amPM.textContent=D.l10n.amPM[1],m(),G())}U("onKeyDown",e)}}function A(o){if(1===D.selectedDates.length&&o.classList.contains("flatpickr-day")&&!o.classList.contains("disabled")){for(var r=o.dateObj.getTime(),c=D.parseDate(D.selectedDates[0],void 0,!0).getTime(),e=Math.min(r,D.selectedDates[0].getTime()),t=Math.max(r,D.selectedDates[0].getTime()),n=D.daysContainer.children,a=n[0].children[0].dateObj.getTime(),i=n[n.length-1].lastChild.dateObj.getTime(),l=!1,d=0,s=0,u=a;u=a||(cn,l=window.pageYOffset+o.top+(c?-n-2:t.offsetHeight+2);if(de(D.calendarContainer,"arrowTop",!c),de(D.calendarContainer,"arrowBottom",c),!D.config.inline){var d=window.pageXOffset+o.left,s=window.document.body.offsetWidth-o.right,u=d+a>window.document.body.offsetWidth;de(D.calendarContainer,"rightMost",u),D.config.static||(D.calendarContainer.style.top=l+"px",u?(D.calendarContainer.style.left="auto",D.calendarContainer.style.right=s+"px"):(D.calendarContainer.style.left=d+"px",D.calendarContainer.style.right="auto"))}}}function L(){D.config.noCalendar||D.isMobile||(z(),C())}function W(){D._input.focus(),-1!==window.navigator.userAgent.indexOf("MSIE")||void 0!==navigator.msMaxTouchPoints?setTimeout(D.close,0):D.close()}function R(e){e.preventDefault(),e.stopPropagation();var t=function e(t,n){return n(t)?t:t.parentNode?e(t.parentNode,n):void 0}(e.target,function(e){return e.classList&&e.classList.contains("flatpickr-day")&&!e.classList.contains("disabled")&&!e.classList.contains("notAllowed")});if(void 0!==t){var n=t,a=D.latestSelectedDateObj=new Date(n.dateObj.getTime()),i=(a.getMonth()D.currentMonth+D.config.showMonths-1)&&"range"!==D.config.mode;if(D.selectedDateElem=n,"single"===D.config.mode)D.selectedDates=[a];else if("multiple"===D.config.mode){var o=$(a);o?D.selectedDates.splice(parseInt(o),1):D.selectedDates.push(a)}else"range"===D.config.mode&&(2===D.selectedDates.length&&D.clear(!1),D.selectedDates.push(a),0!==re(a,D.selectedDates[0],!0)&&D.selectedDates.sort(function(e,t){return e.getTime()-t.getTime()}));if(m(),i){var r=D.currentYear!==a.getFullYear();D.currentYear=a.getFullYear(),D.currentMonth=a.getMonth(),r&&U("onYearChange"),U("onMonthChange")}if(z(),C(),D.config.minDate&&D.minDateHasTime&&D.config.enableTime&&0===re(a,D.config.minDate)&&g(D.config.minDate),G(),D.config.enableTime&&setTimeout(function(){return D.showTimeInput=!0},50),"range"===D.config.mode&&(1===D.selectedDates.length?A(n):z()),i||"range"===D.config.mode||1!==D.config.showMonths?D.selectedDateElem&&D.selectedDateElem.focus():b(n),void 0!==D.hourElement&&setTimeout(function(){return void 0!==D.hourElement&&D.hourElement.select()},451),D.config.closeOnSelect){var c="single"===D.config.mode&&!D.config.enableTime,l="range"===D.config.mode&&2===D.selectedDates.length&&!D.config.enableTime;(c||l)&&W()}p()}}D.parseDate=oe({config:D.config,l10n:D.l10n}),D._handlers=[],D._bind=o,D._setHoursFromDate=g,D.changeMonth=k,D.changeYear=S,D.clear=function(e){void 0===e&&(e=!0);D.input.value="",void 0!==D.altInput&&(D.altInput.value="");void 0!==D.mobileInput&&(D.mobileInput.value="");D.selectedDates=[],D.latestSelectedDateObj=void 0,!(D.showTimeInput=!1)===D.config.enableTime&&(void 0!==D.config.minDate?g(D.config.minDate):l(D.config.defaultHour,D.config.defaultMinute,D.config.defaultSeconds));D.redraw(),e&&U("onChange")},D.close=function(){D.isOpen=!1,D.isMobile||(D.calendarContainer.classList.remove("open"),D._input.classList.remove("active"));U("onClose")},D._createElement=se,D.destroy=function(){void 0!==D.config&&U("onDestroy");for(var e=D._handlers.length;e--;){var t=D._handlers[e];t.element.removeEventListener(t.event,t.handler)}D._handlers=[],D.mobileInput?(D.mobileInput.parentNode&&D.mobileInput.parentNode.removeChild(D.mobileInput),D.mobileInput=void 0):D.calendarContainer&&D.calendarContainer.parentNode&&D.calendarContainer.parentNode.removeChild(D.calendarContainer);D.altInput&&(D.input.type="text",D.altInput.parentNode&&D.altInput.parentNode.removeChild(D.altInput),delete D.altInput);D.input&&(D.input.type=D.input._type,D.input.classList.remove("flatpickr-input"),D.input.removeAttribute("readonly"),D.input.value="");["_showTimeInput","latestSelectedDateObj","_hideNextMonthArrow","_hidePrevMonthArrow","__hideNextMonthArrow","__hidePrevMonthArrow","isMobile","isOpen","selectedDateElem","minDateHasTime","maxDateHasTime","days","daysContainer","_input","_positionElement","innerContainer","rContainer","monthNav","todayDateElem","calendarContainer","weekdayContainer","prevMonthNav","nextMonthNav","currentMonthElement","currentYearElement","navigationCurrentMonth","selectedDateElem","config"].forEach(function(e){try{delete D[e]}catch(e){}})},D.isEnabled=P,D.jumpToDate=i,D.open=function(e,t){void 0===t&&(t=D._input);if(!0===D.isMobile)return e&&(e.preventDefault(),e.target&&e.target.blur()),setTimeout(function(){void 0!==D.mobileInput&&D.mobileInput.click()},0),void U("onOpen");if(D._input.disabled||D.config.inline)return;var n=D.isOpen;D.isOpen=!0,n||(D.calendarContainer.classList.add("open"),D._input.classList.add("active"),U("onOpen"),H(t));!0===D.config.enableTime&&!0===D.config.noCalendar&&(0===D.selectedDates.length&&(D.setDate(void 0!==D.config.minDate?new Date(D.config.minDate.getTime()):(new Date).setHours(D.config.defaultHour,D.config.defaultMinute,D.config.defaultSeconds,0),!1),m(),G()),setTimeout(function(){return D.hourElement.select()},50))},D.redraw=L,D.set=function(e,t){null!==e&&"object"==typeof e?Object.assign(D.config,e):(D.config[e]=t,void 0!==J[e]&&J[e].forEach(function(e){return e()}));D.redraw(),i()},D.setDate=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=D.config.dateFormat);if(0!==e&&!e)return D.clear(t);K(e,n),D.showTimeInput=0D.config.maxDate.getMonth():D.currentYear>D.config.maxDate.getFullYear()))}function G(e){if(void 0===e&&(e=!0),0===D.selectedDates.length)return D.clear(e);void 0!==D.mobileInput&&D.mobileFormatStr&&(D.mobileInput.value=void 0!==D.latestSelectedDateObj?D.formatDate(D.latestSelectedDateObj,D.mobileFormatStr):"");var t="range"!==D.config.mode?D.config.conjunction:D.l10n.rangeSeparator;D.input.value=D.selectedDates.map(function(e){return D.formatDate(e,D.config.dateFormat)}).join(t),void 0!==D.altInput&&(D.altInput.value=D.selectedDates.map(function(e){return D.formatDate(e,D.config.altFormat)}).join(t)),!1!==e&&U("onValueUpdate")}function V(e){var t=D.prevMonthNav.contains(e.target),n=D.nextMonthNav.contains(e.target);t||n?k(t?-1:1):0<=D.yearElements.indexOf(e.target)?(e.preventDefault(),e.target.select()):e.target.classList.contains("arrowUp")?D.changeYear(D.currentYear+1):e.target.classList.contains("arrowDown")&&D.changeYear(D.currentYear-1)}return function(){D.element=D.input=s,D.isOpen=!1,function(){var e=["wrap","weekNumbers","allowInput","clickOpens","time_24hr","enableTime","noCalendar","altInput","shorthandCurrentMonth","inline","static","enableSeconds","disableMobile"],t=["onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition"],n=Object.assign({},u,JSON.parse(JSON.stringify(s.dataset||{}))),a={};D.config.parseDate=n.parseDate,D.config.formatDate=n.formatDate,Object.defineProperty(D.config,"enable",{get:function(){return D.config._enable},set:function(e){D.config._enable=B(e)}}),Object.defineProperty(D.config,"disable",{get:function(){return D.config._disable},set:function(e){D.config._disable=B(e)}}),!n.dateFormat&&n.enableTime&&(a.dateFormat=n.noCalendar?"H:i"+(n.enableSeconds?":S":""):ge.defaultConfig.dateFormat+" H:i"+(n.enableSeconds?":S":"")),n.altInput&&n.enableTime&&!n.altFormat&&(a.altFormat=n.noCalendar?"h:i"+(n.enableSeconds?":S K":" K"):ge.defaultConfig.altFormat+" h:i"+(n.enableSeconds?":S":"")+" K"),Object.defineProperty(D.config,"minDate",{get:function(){return D.config._minDate},set:j("min")}),Object.defineProperty(D.config,"maxDate",{get:function(){return D.config._maxDate},set:j("max")});var i=function(t){return function(e){D.config["min"===t?"_minTime":"_maxTime"]=D.parseDate(e,"H:i")}};Object.defineProperty(D.config,"minTime",{get:function(){return D.config._minTime},set:i("min")}),Object.defineProperty(D.config,"maxTime",{get:function(){return D.config._maxTime},set:i("max")}),Object.assign(D.config,a,n);for(var o=0;oD.now.getTime()?D.config.minDate:D.config.maxDate&&D.config.maxDate.getTime() + +

    已录入订单

    + + + + + + + $value) { ?> + + + + + + +
    订单号申请金额/币种实收金额
    GAI_COLI_ID; ?>GAI_SQJE; ?> GAI_SQJECurrency; ?>GAI_SSJE; ?> CNY
    +

    撤回以上订单收款记录, 并转移到订单: (手动录入的不会撤回)

    + +
    +
    交易号
    +
    OPN_transactionId ?> ( OPN_noticeType) . " " . $note->OPN_transactionResult; ?> )
    +
    +
    +
    付款金额
    +
    OPN_currency . ' ' . $note->OPN_orderAmount ?>
    +
    +
    +
    付款时间
    +
    OPN_completeTime; ?>
    +
    + +
    + + +
    + +
    订单详细内容:
    +

    + $order_info->COLI_SN
    "; + echo "COLI_ID => $order_info->COLI_ID
    "; + echo "OPI_Email => $order_info->OPI_Email
    "; + echo "OPI_Name => $order_info->OPI_Name
    "; + echo!empty($order_info->COLI_GroupCode) ? "COLI_GroupCode => $order_info->COLI_GroupCode
    " : false; + echo!empty($order_info->COLI_OrderDetailText) ? "COLI_OrderDetailText => $order_info->COLI_OrderDetailText\n" : false; + } else { + echo '找不到目标订单内容'; + } + ?> +

    + + + +
    +

    原始数据

    +

    +
    diff --git a/webht/third_party/pay/views/payment_list.php b/webht/third_party/pay/views/payment_list.php new file mode 100644 index 00000000..57310825 --- /dev/null +++ b/webht/third_party/pay/views/payment_list.php @@ -0,0 +1,303 @@ + + + + + + + + + + Payment List - China Highlights + + + + + + + + + + + + + +
    +
    +
    + + + +
    + + + + + + + + + + + + + + $item) { + ?> + + + + + + + + + + + +
    #主题付款人交易号收单时间通知时间状态[通知/记录]
    OPN_orderId . ' / ' . $item->OPN_orderAmount . $item->OPN_currency; ?> + OPN_payerEmail; + ?> + OPN_transactionId; ?>OPN_acquiringTime; ?>OPN_noticeTime; ?> + OPN_accountStatus !== 'recorded') { + $send_class = 'btn-danger'; + } + if ($item->OPN_noticeSendStatus !== 'send' ) { + $send_class = 'btn-danger'; + } + if ($item->OPN_noticeSendStatus === 'closed') { + $send_class = ''; + } + ?> + OPN_noticeType !== 'pay') { + echo '' . strtoupper($item->OPN_noticeType) . '
    '; + } ?> + + OPN_noticeSendStatus .' / ' . $item->OPN_accountStatus; ?> + +
    +
    + +
    +
    +
    + + + + + + From 5a639a518fd479437c7d64404cadf511f06c9133 Mon Sep 17 00:00:00 2001 From: cyc Date: Mon, 29 Apr 2019 16:15:12 +0800 Subject: [PATCH 594/596] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=87=BA=E7=A5=A8=E7=AB=99=E7=82=B9=E3=80=82=20=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=85=A5=E5=BA=93=E6=94=AF=E4=BB=98=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/third_party/trainsystem/controllers/check.php | 2 +- .../third_party/trainsystem/models/BIZ_train_model.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/third_party/trainsystem/controllers/check.php b/application/third_party/trainsystem/controllers/check.php index 0344df4d..49f0d110 100644 --- a/application/third_party/trainsystem/controllers/check.php +++ b/application/third_party/trainsystem/controllers/check.php @@ -393,7 +393,7 @@ class check extends CI_Controller{ }*/ //调试代码 - $test_post = '{"data":"{\"from_station_name\":\"\u5317\u4eac\u5357\",\"from_station_code\":\"VNP\",\"to_station_name\":\"\u4e0a\u6d77\u8679\u6865\",\"to_station_code\":\"AOH\",\"train_date\":\"2019-05-08\",\"orderid\":\"JH155489661120411\",\"user_orderid\":\"488128168\",\"orderamount\":\"3496.00\",\"ordernumber\":\"EE79032518\",\"checi\":\"G43\",\"msg\":\"\u7ebf\u4e0a\u9000\u7968\u6210\u529f\",\"status\":\"7\",\"passengers\":[{\"passengerid\":1,\"passengersename\":\"WEISIGKOLIVER\",\"piaotype\":\"1\",\"piaotypename\":\"\u6210\u4eba\u7968\",\"passporttypeseid\":\"B\",\"passporttypeseidname\":\"\u62a4\u7167\",\"passportseno\":\"CAYLW9WTT\",\"price\":\"1748.0\",\"zwcode\":\"9\",\"zwname\":\"\u5546\u52a1\u5ea7\",\"ticket_no\":\"EE79032518103005A\",\"cxin\":\"03\u8f66\u53a2,05A\u5ea7\",\"reason\":0,\"refundTimeline\":[{\"time\":\"2019-04-11 11:46:10\",\"msg\":\"\u7ebf\u4e0a\u7533\u8bf7\u9000\u7968\"},{\"time\":\"2019-04-11 11:46:41\",\"msg\":\"\u7ebf\u4e0a\u9000\u7968\u6210\u529f\",\"detail\":{\"returnsuccess\":true,\"returnmoney\":\"1748\",\"returnfailid\":\"\",\"returnfailmsg\":\"\",\"returntype\":\"1\",\"ticket_no\":\"EE79032518103005A\",\"passengername\":\"WEISIGKOLIVER\",\"passporttypeseid\":\"B\",\"passportseno\":\"CAYLW9WTT\"}}],\"returntickets\":{\"returnsuccess\":true,\"returnmoney\":\"1748\",\"returntime\":\"2019-04-11 11:46:39\",\"returnfailid\":\"\",\"returnfailmsg\":\"\",\"returntype\":\"1\"}},{\"passengerid\":2,\"passengersename\":\"ALBERTSTEFANIECAROLINDOROTHEE\",\"piaotype\":\"1\",\"piaotypename\":\"\u6210\u4eba\u7968\",\"passporttypeseid\":\"B\",\"passporttypeseidname\":\"\u62a4\u7167\",\"passportseno\":\"CAYLM2751\",\"price\":\"1748.0\",\"zwcode\":\"9\",\"zwname\":\"\u5546\u52a1\u5ea7\",\"ticket_no\":\"EE79032518103005C\",\"cxin\":\"03\u8f66\u53a2,05C\u5ea7\",\"reason\":0,\"refundTimeline\":[{\"time\":\"2019-04-11 11:46:12\",\"msg\":\"\u7ebf\u4e0a\u7533\u8bf7\u9000\u7968\"}]}],\"refund_money\":\"1748.00\",\"sign\":\"f077215579ecd5c130d39b502c9bd055\"}"}'; + $test_post = '{"data":"{\"from_station_name\":\"\u5e7f\u5dde\u5357\",\"from_station_code\":\"IZQ\",\"to_station_name\":\"\u9999\u6e2f\u897f\u4e5d\u9f99\",\"to_station_code\":\"XJA\",\"train_date\":\"2019-04-29\",\"orderid\":\"JH155651319519711\",\"user_orderid\":\"488132483\",\"orderamount\":\"374.00\",\"ordernumber\":\"E244376926\",\"checi\":\"G6537\",\"msg\":\"\u51fa\u7968\u6210\u529f\",\"status\":\"4\",\"passengers\":[{\"passengerid\":1,\"passengersename\":\"PRIETORAMOSJORGECLAUDIO\",\"piaotype\":\"1\",\"piaotypename\":\"\u6210\u4eba\u7968\",\"passporttypeseid\":\"B\",\"passporttypeseidname\":\"\u62a4\u7167\",\"passportseno\":\"AAC408307\",\"price\":\"187.0\",\"zwcode\":\"O\",\"zwname\":\"\u4e8c\u7b49\u5ea7\",\"ticket_no\":\"E244376926111013D\",\"cxin\":\"11\u8f66\u53a2,13D\u5ea7\",\"reason\":0},{\"passengerid\":2,\"passengersename\":\"SALAZARNATALIAGISELA\",\"piaotype\":\"1\",\"piaotypename\":\"\u6210\u4eba\u7968\",\"passporttypeseid\":\"B\",\"passporttypeseidname\":\"\u62a4\u7167\",\"passportseno\":\"AAC419811\",\"price\":\"187.0\",\"zwcode\":\"O\",\"zwname\":\"\u4e8c\u7b49\u5ea7\",\"ticket_no\":\"E244376926111013F\",\"cxin\":\"11\u8f66\u53a2,13F\u5ea7\",\"reason\":0}],\"refund_money\":null,\"sign\":\"831c146e2ce223a5437ed78db0ec8c25\"}"}'; $data_post["data"] = json_decode($test_post)->data; diff --git a/application/third_party/trainsystem/models/BIZ_train_model.php b/application/third_party/trainsystem/models/BIZ_train_model.php index bd392858..d6401575 100644 --- a/application/third_party/trainsystem/models/BIZ_train_model.php +++ b/application/third_party/trainsystem/models/BIZ_train_model.php @@ -240,7 +240,7 @@ class BIZ_train_model extends CI_Model { TOC_WL, TOC_OtherCost ) - VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT COLI_OPI_ID FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),null),(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),1)"; + VALUES(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),null),(?,getdate(),{$CCSN},?,?,?,?,(SELECT isnull(COLI_OPI_ID,29) FROM BIZ_ConfirmLineInfo WHERE COLI_SN={$CCSN}),1)"; $query = $this->HT->query($sql,array($data->TOC_COLD_SN,"%".$data->TOC_Memo."%",$data->TOC_Memo,$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->TOC_TicketCost,$data->TOC_Memo." 手续费",$data->TOC_COLD_SN,$data->TOC_TrainNumber,$data->TOC_DepartureDate,$data->poundage)); } return $query; @@ -260,7 +260,7 @@ class BIZ_train_model extends CI_Model { ON bcli.COLI_SN = bgai.GAI_COLI_SN WHERE bcli.COLI_ServiceType = '2' AND bcli.COLI_State in ('11','13','8','63') - AND bcli.COLI_WebCode in ('cht', 'JP', 'train_it', 'VC', 'train_ru','GM-Train','SHT','CT') + AND bcli.COLI_WebCode in ('cht', 'JP', 'train_it', 'VC', 'train_ru','GM-Train','SHT','CT','WebMob-biz','WeChat-biz') AND (bcli.COLI_Price - bgai.GAI_SQJE) <= 20 AND (bcli.COLI_Price - bgai.GAI_SQJE) >= 0 AND bcli.DeleteFlag = 0 From 7b5ff8a08fa351e4ba323b2d4230518c2a7e72df Mon Sep 17 00:00:00 2001 From: cyc Date: Mon, 29 Apr 2019 17:05:00 +0800 Subject: [PATCH 595/596] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E5=8F=91=E9=80=81?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E5=92=8C=E8=AE=A2=E5=8D=95=E6=9D=A5=E6=BA=90?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ctrip/controllers/ctrip_train.php | 24 +++ .../tripadvisor_spider/config/config.php | 6 +- .../tripadvisor_spider/controllers/index.php | 158 ++++++++++++++- .../messagecenter/controllers/index.php | 183 ++++++++++++++++++ .../messagecenter/helpers/message_helper.php | 31 +++ .../messagecenter/views/message_index.php | 52 +++++ .../ordersfrom/controllers/index.php | 81 ++++++++ .../ordersfrom/models/ordersfrom_model.php | 45 +++++ .../ordersfrom/views/ah_orders.php | 62 ++++++ webht/third_party/ordersfrom/views/index.php | 120 ++++++++++++ 10 files changed, 760 insertions(+), 2 deletions(-) create mode 100644 webht/third_party/messagecenter/controllers/index.php create mode 100644 webht/third_party/messagecenter/helpers/message_helper.php create mode 100644 webht/third_party/messagecenter/views/message_index.php create mode 100644 webht/third_party/ordersfrom/controllers/index.php create mode 100644 webht/third_party/ordersfrom/models/ordersfrom_model.php create mode 100644 webht/third_party/ordersfrom/views/ah_orders.php create mode 100644 webht/third_party/ordersfrom/views/index.php diff --git a/application/third_party/ctrip/controllers/ctrip_train.php b/application/third_party/ctrip/controllers/ctrip_train.php index 7f818f37..1836268e 100644 --- a/application/third_party/ctrip/controllers/ctrip_train.php +++ b/application/third_party/ctrip/controllers/ctrip_train.php @@ -123,6 +123,12 @@ class ctrip_train extends CI_Controller{ $rwNum = $Seats->TicketLeft; } + if($Seats->SeatName == '一等双软下'){ + $ydrwPrice = $Seats->Price * 10; + $SeaType .= '"I":"'.$ydrwPrice.'","AI":"¥'.$Seats->Price.'",'; + $ydrwNum = $Seats->TicketLeft; + } + if($Seats->SeatName == '软座'){ $rzPrice = $Seats->Price * 10; $SeaType .= '"2":"'.$rzPrice.'","A2":"¥'.$Seats->Price.'",'; @@ -167,6 +173,12 @@ class ctrip_train extends CI_Controller{ $ywNum = $Seats->TicketLeft; } + if($Seats->SeatName == '二等双软下'){ + $errwPrice = $Seats->Price * 10; + $SeaType .= '"J":"'.$errwPrice.'","AJ":"¥'.$Seats->Price.'",'; + $errwNum = $Seats->TicketLeft; + } + if($Seats->SeatName == '动卧下'){ $SeaType .= '"F":"¥'.$Seats->Price.'",'; $dwNum = $Seats->TicketLeft; @@ -175,6 +187,7 @@ class ctrip_train extends CI_Controller{ $PriceStr = $SeaType.'"train_no":'.'"'.$TrainInfo->TrainNo.'"'; } + //对返回的数据进行容错处理 $gjrwNum = isset($gjrwNum) ? ticket_exchange($gjrwNum,$iseven) : ''; $rwNum = isset($rwNum) ? ticket_exchange($rwNum,$iseven) : ''; @@ -187,6 +200,17 @@ class ctrip_train extends CI_Controller{ $ydzNum = isset($ydzNum) ? ticket_exchange($ydzNum,$iseven) : ''; $swzNum = isset($swzNum) ? ticket_exchange($swzNum,$iseven) : ''; $dwNum = isset($dwNum) ? ticket_exchange($dwNum,$iseven) : ''; + $ydrwNum = isset($ydrwNum) ? ticket_exchange($ydrwNum,$iseven) : ''; + $errwNum = isset($errwNum) ? ticket_exchange($errwNum,$iseven) : ''; + + if($rwNum == '' && $ydrwNum != ''){ + $rwNum = $ydrwNum; + } + + if($ywNum == '' && $errwNum != ''){ + $ywNum = $errwNum; + } + $runMin = $TrainInfo->DurationMinutes % 60; $runHour = ($TrainInfo->DurationMinutes - $runMin) / 60; diff --git a/application/third_party/tripadvisor_spider/config/config.php b/application/third_party/tripadvisor_spider/config/config.php index b76a507d..022d61f8 100644 --- a/application/third_party/tripadvisor_spider/config/config.php +++ b/application/third_party/tripadvisor_spider/config/config.php @@ -17,7 +17,11 @@ $config['tripadvisor_website'] = array( 'Lijiang' => 'http://www.tripadvisor.com/Attraction_Review-g303783-d8464335-Reviews{PAGENUM}China_Highlights_Lijiang-Lijiang_Yunnan.html', 'Zhangjiajie' => 'http://www.tripadvisor.com/Attraction_Review-g494933-d8077695-Reviews{PAGENUM}China_Highlights_Zhangjiajie_Day_Tour-Zhangjiajie_Hunan.html', 'HongKong' => 'https://www.tripadvisor.com/Attraction_Review-g294217-d10243951-Reviews{PAGENUM}China_Highlights_Hong_Kong-Hong_Kong.html', - 'Panda' => 'https://www.tripadvisor.com/Attraction_Review-g297463-d11489225-Reviews{PAGENUM}China_Highlights-Chengdu_Sichuan.html' + 'Panda' => 'https://www.tripadvisor.com/Attraction_Review-g297463-d11489225-Reviews{PAGENUM}China_Highlights-Chengdu_Sichuan.html', + 'tp_Beijing' => 'https://www.tripadvisor.com/Attraction_Review-g294212-d4006739-Reviews-The_Trippest_Mini_Group_Tours-Beijing.html', + 'tp_Xian' => 'https://www.tripadvisor.com/Attraction_Review-g298557-d10999897-Reviews-Xi_an_Trippest_Mini_Group_Tours-Xi_an_Shaanxi.html', + 'tp_Shanghai' => 'https://www.tripadvisor.com/Attraction_Review-g308272-d6222868-Reviews-Shanghai_Trippest_Mini_Group_Tours-Shanghai.html', + 'tp_Guilin' => 'https://www.tripadvisor.com/Attraction_Review-g298556-d14121459-Reviews-Trippest_Mini_Group_Tours-Guilin_Guangxi.html' ); diff --git a/application/third_party/tripadvisor_spider/controllers/index.php b/application/third_party/tripadvisor_spider/controllers/index.php index e2dee812..6bc23ea5 100644 --- a/application/third_party/tripadvisor_spider/controllers/index.php +++ b/application/third_party/tripadvisor_spider/controllers/index.php @@ -11,6 +11,11 @@ class Index extends CI_Controller { public function __construct() { parent::__construct(); //$this->output->enable_profiler(TRUE); + header('Access-Control-Allow-Origin:*'); + header('Access-Control-Allow-Methods:POST, GET'); + header('Access-Control-Max-Age:0'); + header('Access-Control-Allow-Headers:x-requested-with, Content-Type'); + header('Access-Control-Allow-Credentials:true'); $this->load->model('Tripadvisor_Review_model'); } @@ -186,5 +191,156 @@ class Index extends CI_Controller { } echo json_encode(array('group_result' => $this->load->view('find_group_result', $data, true), 'tr_content' => $data['ta_review']->tr_content)); } - + + //第三方数据导入 + public function third_party_input(){ + $this->load->view('bootstrap3/header'); + $this->load->view('third_party_input'); + $this->load->view('bootstrap3/footer'); + } + + function ensure_writable_dir($dir) { + if(!file_exists($dir)) { + mkdir($dir, 0766, true); + chmod($dir, 0766); + chmod($dir, 0777); + }else if(!is_writable($dir)) { + chmod($dir, 0766); + chmod($dir, 0777); + if(!is_writable($dir)) { + throw new FileSystemException("目录 $dir 不可写"); + } + } + } + + //第三方数据录入 + public function analysis_excel(){ + $filename = date('Y').date('m').date('d').date('h').date('i').date('s').'.'.explode('.',$_FILES['fileArray']['name'])[1]; + $tmp = $_FILES['fileArray']['tmp_name']; + $error = $_FILES['fileArray']['error']; + if($error > 0){ + header("HTTP/1.1 404 Not Found"); + echo '{"status":404,"message":'.$_FILES["fileArray"]["error"].'}'; + }else{ + $path = 'upload/'.date('Y').'/'.date('m').'/'; + $this->ensure_writable_dir($path); + if(move_uploaded_file($tmp,$path.$filename)){ + require_once "PHPExcel/IOFactory.php"; + $phpExcel = PHPExcel_IOFactory::load($path.$filename); + + //创建返回的数组 + $data = []; + foreach ($phpExcel->getSheetNames() as $key=>$destination){ + $data[$key] = new stdClass(); + $data[$key]->destination = $destination; + $data[$key]->list_name = array(); + $data[$key]->list_data = array(); + //循环获取每个表格的行/列数 + $row = $phpExcel->getActiveSheet()->getHighestRow(); + $column = $phpExcel->getActiveSheet()->getHighestColumn(); + $j = 0; + // 行数循环 + for ($i = 1; $i <= $row; $i++) { + // 列数循环 + for ($c = 'A'; $c <= $column; $c++) { + if($phpExcel->getActiveSheet($key)->getCell('A' . $i)->getValue() == ''){ + continue; + }else{ + if($i == 1){ + array_push($data[$key]->list_name,$phpExcel->getActiveSheet($key)->getCell($c . $i)->getValue()); + }else{ + $data[$key]->list_data[$j][] = $phpExcel->getActiveSheet($key)->getCell($c . $i)->getValue(); + } + + } + } + $j++; + } + } + //返回处理完后的json + print_r(json_encode($data)); + }else{ + header("HTTP/1.1 404 Not Found"); + echo '{"status":404,"message":"文件上传失败!","picname":""}'; + } + } + } + + public function get_destination_reviews($destination = null){ + $ta_website = $this->config->item('tripadvisor_website'); + + //根据传入的目的地简码获取TA的相应评论列表 + if(isset($ta_website[$destination])){ + $url = $ta_website[$destination]; + + //根据url获取页面内容 + $content = GET_HTTP($url); + + //进行页面解析 + $html_object = str_get_html($content); + + //获取第一页列表上的url + foreach ($html_object->find('.reviewSelector .quote a') as $a_info){ + $url = 'https://www.tripadvisor.com'.$a_info->href; + + } + } + } + + function get_reviews_detail(){ + set_time_limit(0); + $url = $this->input->get_post('url'); + $destination = $this->input->get_post('destination'); + + //$url = 'https://www.tripadvisor.com/ShowUserReviews-g294212-d4006739-r666168101-The_Trippest_Mini_Group_Tours-Beijing.html'; + $destination = 'tp_Beijing'; + + if($url != ''){ + $content = GET_HTTP($url); + $html_object = str_get_html($content); + + //做一个数组用于存储数据 + $detail_data = new stdClass(); + $detail_data->destination = $destination; + + //提取局部,不做整个页面的寻找元素,提升效率 + $meta_inner = $html_object->find('.meta_inner'); + + foreach($meta_inner as $detail_info){ + //获取评论者帐号 + foreach($detail_info->find('.info_text') as $review_name){ + $detail_data->review_name = $review_name->first_child()->innertext; + } + + //获取评论者ID + foreach($detail_info->find('.reviewSelector') as $review_id){ + $detail_data->review_id = str_replace('review_','',$review_id->id); + } + + //获取标题 + foreach($detail_info->find('#HEADING') as $title){ + $detail_data->title = $title->innertext; + } + + //获取星级 + foreach($detail_info->find('.ui_bubble_rating') as $star_nums){ + $detail_data->star_nums = str_replace('ui_bubble_rating ','',$star_nums->getAttribute('class')); + $detail_data->star_nums = str_replace(array('bubble_50','bubble_40','bubble_30','bubble_20'),array(5,4,3,2),$detail_data->star_nums); + } + + //获取评论内容 + foreach($detail_info->find('.partial_entry .fullText') as $content){ + $detail_data->content = $content->innertext; + } + + //获取评论时间 + foreach($detail_info->find('.prw_reviews_stay_date_hsx') as $review_date){ + $detail_data->review_date = str_replace('Date of experience: ','',$review_date->innertext); + } + } + + //拿到数据后进行入库 + print_r(json_encode($detail_data)); + } + } } diff --git a/webht/third_party/messagecenter/controllers/index.php b/webht/third_party/messagecenter/controllers/index.php new file mode 100644 index 00000000..2ac45867 --- /dev/null +++ b/webht/third_party/messagecenter/controllers/index.php @@ -0,0 +1,183 @@ +load->helper('message'); + $this->key = '3d15821171548bf7d0a93afab66e797b'; + $this->sendsms = 'https://yun.tim.qq.com/v5/tlssmssvr/sendsms'; + } + + public function test(){ + echo phpinfo(); + /*try { + echo '1'; + } finally { + echo '2'; + }*/ + } + + public function index(){ + $this->load->view('n-header'); + $this->load->view('message_index'); + } + + //新建短信模板 + public function add_templete(){ + $templete = htmlspecialchars($this->input->post('templete')); + $title = $this->input->post('title'); + + if(empty($templete)){ + header("HTTP/1.1 404 Not Found"); + exit('{"status":"404","reason":"传参为空!"}'); + } + + if(empty($title)){ + $title = 'trippset'.rand(1,100); + } + + $random = rand(1000,9999); + $time = time(); + $sig = 'appkey='.$this->key.'&random='.$random.'&time='.$time; + $sig = hash("sha256", $sig); + + $post_str = '{ + "remark": "", + "sig": "'.$sig.'", + "text": "'.$templete.'", + "time": '.$time.', + "title": "'.$title.'", + "type": 1 + }'; + + $url = 'https://yun.tim.qq.com/v5/tlssmssvr/add_template?sdkappid=1400082793&random='.$random; + + $back_json = sms_post($url,$post_str,'POST'); + $back_data = json_decode($back_json); + print_r($back_data); + + } + + //查询短信模板状态 + public function search_templete_status(){ + $random = rand(1000,9999); + $time = time(); + $sig = 'appkey='.$this->key.'&random='.$random.'&time='.$time; + $sig = hash("sha256", $sig); + + $post_str = '{ + "sig": "'.$sig.'", + "time": '.$time.', + "tpl_page": { + "max": 10, + "offset": 0 + } + }'; + + $url = 'https://yun.tim.qq.com/v5/tlssmssvr/get_template?sdkappid=1400082793&random='.$random; + $back_json = sms_post($url,$post_str,'POST'); + $back_data = json_decode($back_json); + print_r($back_data); + } + + //短信模板更新 + public function update_templete($id,$title){ + $contents = "Hi {1}, your guide on {2} is {3}, (local)mobile is {4}. He/she'll call you at the hotel, or leave a message tonight. You can find more info by inputting booking No. {5} at https://www.trippest.com/track-your-trip. Wish you a wonderful day with Trippest!"; + $random = rand(1000,9999); + $time = time(); + $sig = 'appkey='.$this->key.'&random='.$random.'&time='.$time; + $sig = hash("sha256", $sig); + + $post_str = '{ + "sig": "'.$sig.'", + "text": "'.$contents.'", + "time": '.$time.', + "title": "'.$title.'", + "tpl_id": '.$id.', + "type": 0 + }'; + + $url = 'https://yun.tim.qq.com/v5/tlssmssvr/mod_template?sdkappid=1400082793&random='.$random; + $back_json = sms_post($url,$post_str,'POST'); + $back_data = json_decode($back_json); + print_r($back_data); + } + + //删除模板 + public function delete_templete(){ + $random = rand(1000,9999); + $time = time(); + $sig = 'appkey='.$this->key.'&random='.$random.'&time='.$time; + $sig = hash("sha256", $sig); + + $post_str = '{ + "sig": "'.$sig.'", + "time": '.$time.', + "tpl_id": [ + 212919, + 213082 + ] + }'; + + $url = 'https://yun.tim.qq.com/v5/tlssmssvr/del_template?sdkappid=1400082793&random='.$random; + $back_json = sms_post($url,$post_str,'POST'); + $back_data = json_decode($back_json); + print_r($back_data); + } + + //发送短信 + public function send_message(){ + //接收参数 + //1-4为四个参数依次排序 字符格式不做限制 + $one = $this->input->post('one'); + $two = $this->input->post('two'); + $three = $this->input->post('three'); + $four = $this->input->post('four'); + $five = $this->input->post('five'); + //手机号 * 必填 + $phone = $this->input->post('phone'); + //区号 * 必填 + $nation_code = $this->input->post('nation_code'); + + if(empty($phone) || empty($nation_code)){ + header("HTTP/1.1 404 Not Found"); + exit('{"status":"404","reason":"传参为空!"}'); + } + + //构造发送短信的报文 + $random = rand(1000,9999); + $time = time(); + $sig = 'appkey='.$this->key.'&random='.$random.'&time='.$time.'&mobile='.$phone; + $sig = hash("sha256", $sig); + $mysign = '[ChinaHighlights]'; + + if($nation_code == 86){ + $mysign = '【桂林海纳国旅】'; + } + + $post_str = '{ + "ext": "", + "extend": "", + "msg": "Hi '.$one.', your guide on '.$two.' is '.$three.', (local) mobile is '.$four.'. He/she\'ll call you at the hotel, or leave a message tonight. You can find more info by inputting booking No. '.$five.' at https://www.trippest.com/track-your-trip. Wish you a wonderful day with Trippest!", + "sig": "'.$sig.'", + "tel": { + "mobile": "'.$phone.'", + "nationcode": "'.$nation_code.'" + }, + "time": '.$time.', + "type": 0 + }'; + + $url = 'https://yun.tim.qq.com/v5/tlssmssvr/sendsms?sdkappid=1400082793&random='.$random; + $back_json = sms_post($url,$post_str,'POST'); + $back_data = json_decode($back_json); + print_r($back_json); + } + +} + + +?> \ No newline at end of file diff --git a/webht/third_party/messagecenter/helpers/message_helper.php b/webht/third_party/messagecenter/helpers/message_helper.php new file mode 100644 index 00000000..8634dd43 --- /dev/null +++ b/webht/third_party/messagecenter/helpers/message_helper.php @@ -0,0 +1,31 @@ + + + +
    +
    +
    +

    短信发送中心

    +

    版本1.0

    +

    可以正常添加模板,但是只有一个模板可以发送

    +
    +
    + +
    +
    +

    模板示例:Hi {1}, your guide on {2} is {3}, (local)mobile is {4}. He/she'll call you at the hotel, or leave a message tonight. You can find more info by inputting booking No. {5} at https://www.trippest.com/track-your-trip. Wish you a wonderful day with Trippest!

    + + +
    + +
    +
    + +
    +

    模板示例:Hi {1}, your guide on {2} is {3}, (local)mobile is {4}. He/she'll call you at the hotel, or leave a message tonight. You can find more info by inputting booking No {5} at https://www.trippest.com/track-your-trip. Wish you a wonderful day with Trippest!

    +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    +
    +
    +
    \ No newline at end of file diff --git a/webht/third_party/ordersfrom/controllers/index.php b/webht/third_party/ordersfrom/controllers/index.php new file mode 100644 index 00000000..c70cb925 --- /dev/null +++ b/webht/third_party/ordersfrom/controllers/index.php @@ -0,0 +1,81 @@ +load->model('ordersfrom_model'); + } + + public function index(){ + $data = array(); + $data['startime'] = $this->input->get_post('startime'); + $data['endtime'] = $this->input->get_post('endtime'); + $data['webcode'] = $this->input->get_post('webcode'); + $data['total_nums'] = 0; + + if($data['startime'] && $data['endtime'] && $data['webcode']){ + $all_orders = $this->ordersfrom_model->get_all_orders($data['startime'],$data['endtime'],$data['webcode']); + $data['total_nums'] = count($all_orders); + $data['orders'] = $this->group_order_arr($all_orders); + }else{ + $data['orders'] = null; + } + $this->load->view('index',$data); + } + + function group_order_arr($all_orders){ + $data = array(); + $num = 0; + foreach ($all_orders as $item){ + preg_match('/(https|http):[\/]{2}[a-z]+[.]{1}[a-z\d\-]+[.a-z\d-\/.htm]*/',$item->COLI_OrderDetailText,$matches); + if(!empty($matches[0])){ + if(isset($data[$matches[0]])){ + $data[$matches[0]]['num'] +=1; + array_push($data[$matches[0]]['order'],$item->coli_id); + }else{ + $data[$matches[0]] = array(); + $data[$matches[0]]['num'] = 1; + $data[$matches[0]]['order'] = array(); + array_push($data[$matches[0]]['order'],$item->coli_id); + } + } + } + + return $this->array_sort($data,'num','desc'); + } + + function array_sort($arr,$keys,$type='asc'){ + $keysvalue = $new_array = array(); + foreach ($arr as $k=>$v){ + $keysvalue[$k] = $v[$keys]; + } + if($type == 'asc'){ + asort($keysvalue); + }else{ + arsort($keysvalue); + } + reset($keysvalue); + foreach ($keysvalue as $k=>$v){ + $new_array[$k] = $arr[$k]; + } + return $new_array; + } + + public function count_ah_orders(){ + $data = array(); + $ah_product_obj = $this->ordersfrom_model->ah_productions(); + foreach($ah_product_obj as $item){ + $data[$item->cli_no] = array(); + $orders_arr = $this->ordersfrom_model->get_orders($item->cli_no); + $data[$item->cli_no] = $orders_arr; + } + $mdata['orders'] = $data; + $this->load->view('ah_orders',$mdata); + } +} + + +?> \ No newline at end of file diff --git a/webht/third_party/ordersfrom/models/ordersfrom_model.php b/webht/third_party/ordersfrom/models/ordersfrom_model.php new file mode 100644 index 00000000..e09daa1a --- /dev/null +++ b/webht/third_party/ordersfrom/models/ordersfrom_model.php @@ -0,0 +1,45 @@ +HT = $this->load->database('HT', TRUE); + } + + public function get_all_orders($fromtime,$totime,$website){ + $sql = "select + COLI_OrderDetailText,coli_id + from + ConfirmLineInfo + where + COLI_WebCode = ? + and + COLI_ApplyDate > ? + and + COLI_ApplyDate < ? + and + DeleteFlag = 0 + and + COLI_OrderDetailText like '%https:%' + "; + $query = $this->HT->query($sql,array($website,$fromtime,$totime)); + return $query->result(); + } + + public function ah_productions(){ + $sql = "select cli_no from CustomerLineInfo WHERE CLI_DEI_SN = '28' AND DeleteFlag = '0'"; + $query = $this->HT->query($sql); + return $query->result(); + } + + public function get_orders($productsn){ + $sql = "select COLI_ID from ConfirmLineInfo where COLI_WebCode = 'AH' and DeleteFlag = 0 and COLI_OrderDetailText like '%{$productsn}%'"; + $query = $this->HT->query($sql); + return $query->result(); + } +} \ No newline at end of file diff --git a/webht/third_party/ordersfrom/views/ah_orders.php b/webht/third_party/ordersfrom/views/ah_orders.php new file mode 100644 index 00000000..44959118 --- /dev/null +++ b/webht/third_party/ordersfrom/views/ah_orders.php @@ -0,0 +1,62 @@ + + + + + + + 订单来源页面搜索 + + + + + + + + + + +

    AH订单统计(按线路代号)

    + + + + + + + $items){ + $table_body .= ''; + $table_body .= ''; + $table_body .= ''; + $table_body .= ''; + $table_body .= ''; + } + echo $table_body; + ?> +
    线路代号订单数量具体订单号
    '.$key.''.count($items).''; + $orders_num = 0; + foreach ($items as $value){ + $orders_num++; + if($orders_num == count($items)){ + $table_body .= $value->COLI_ID; + }else{ + $table_body .= $value->COLI_ID.'、'; + } + } + + $table_body .= '
    + + + + \ No newline at end of file diff --git a/webht/third_party/ordersfrom/views/index.php b/webht/third_party/ordersfrom/views/index.php new file mode 100644 index 00000000..840358bd --- /dev/null +++ b/webht/third_party/ordersfrom/views/index.php @@ -0,0 +1,120 @@ + + + + + + + 订单来源页面搜索 + + + + + + + + + + + +
    +

    订单来源页面查询

    +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    +
    +
    +
    + + +
    + +
    +
    +
    +
    + + +
    +
    +

    统计分组结果

    +

    总订单数:

    +
    +
    + + + + + + + $items){ + $table_body .= ''; + $table_body .= ''; + $table_body .= ''; + $table_body .= ''; + $table_body .= ''; + } + echo $table_body; + ?> +
    订单来源订单数量具体订单号
    '.$key.''.$items['num'].''; + $orders_num = 0; + foreach ($items['order'] as $value){ + $orders_num++; + if($orders_num == count($items['order'])){ + $table_body .= $value; + }else{ + $table_body .= $value.'、'; + } + } + + $table_body .= '
    +
    +
    + + + \ No newline at end of file From 477fa683ed12d7728f0bc3102f1b0c878a1158ab Mon Sep 17 00:00:00 2001 From: lyt Date: Mon, 29 Apr 2019 17:09:54 +0800 Subject: [PATCH 596/596] =?UTF-8?q?=E4=BB=8E123=E6=90=AC=E8=BF=81=E7=9A=84?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E9=9C=80=E6=B1=82=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webht/controllers/demandform.php | 167 ++++++++++++++++ webht/models/demandform_model.php | 119 +++++++++++ webht/views/demandform/index.php | 160 +++++++++++++++ webht/views/demandform/index1.php | 315 ++++++++++++++++++++++++++++++ webht/views/demandform/reply.php | 122 ++++++++++++ 5 files changed, 883 insertions(+) create mode 100644 webht/controllers/demandform.php create mode 100644 webht/models/demandform_model.php create mode 100644 webht/views/demandform/index.php create mode 100644 webht/views/demandform/index1.php create mode 100644 webht/views/demandform/reply.php diff --git a/webht/controllers/demandform.php b/webht/controllers/demandform.php new file mode 100644 index 00000000..3e5b94bf --- /dev/null +++ b/webht/controllers/demandform.php @@ -0,0 +1,167 @@ +load->model('Demandform_model'); + } + + /*! + * @author LYT + * @date 2018-01-23 + * @param [type] $coli_sn 订单主表的COLI_SN + * @param integer $form_id 默认值2是0.1版本固定的 + */ + public function index($coli_sn = null, $form_id = 2) + { + header("Cache-Control: no-store"); + + // 已填则返回成功 + $is_replied = $this->Demandform_model->get_reply($coli_sn); + + $form_id = intval(trim($form_id)); + $_raw_data = $this->Demandform_model->get_form_detail($form_id); + $part = array(); + foreach ($_raw_data->formdetail as $key => $fd) { + $tmp_a = array(); + $tmp_r = array(); + foreach ($_raw_data->answer as $ka => $a) { + if ($fd->FD_id === $a->A_FD_id) { + $tmp_a[] = $a; + } + } + if ( ! empty($is_replied)) { + foreach ($is_replied as $kr => $re) { + if ($re->FD_id === $fd->FD_id) { + $tmp_r[] = $re->CRD_content; + } + } + } + $fd->reply = $tmp_r; + $fd->answer = (object) $tmp_a; + // part set + $part["part1"]["title"] = "PART 1 -- Travel Preference"; + $part["part2"]["title"] = "PART 2"; + if (intval(trim($fd->FD_section)) === 1) { + $part["part1"]["data"][] = $fd; + } + if (intval(trim($fd->FD_section)) === 2) { + $part["part2"]["data"][] = $fd; + } + } + $_raw_data->part = $part; + unset($_raw_data->formdetail); + unset($_raw_data->answer); + $_raw_data->coli = $coli_sn; + + if ( ! empty($is_replied)) { + $this->load->view('demandform/thanks', $_raw_data); + return; + } + + $this->load->view('demandform/index', $_raw_data); + return; + } + + public function form_save() + { + $all_post = $this->input->post(); + + $ret["code"] = 1; + $ret["msg"] = ""; + // 已填则返回成功 -- todo + + $check_input = array(); + foreach ($all_post["q"] as $key => $value) { + if ($value["required"] == 1 && empty($value["answer"])) { + $ret["code"] = 0; + $ret["msg"][] = $key; + } + } + if ($ret["code"] == 0) { + return $this->output->set_content_type('text/plain')->set_output(json_encode($ret)); + } + // CD_CustomerReply + $this->Demandform_model->CR_COLI_sn = trim($this->input->post("coli_sn")); + $this->Demandform_model->CR_F_id = trim($this->input->post("fid")); + $d = $a = $c = ""; + foreach ($all_post["q"] as $key => $value) { + $split_answer = null; + $class_max = 0; + if (trim($value["ismain"]) != 1) { + continue; + } + $class_max = (count($value["answer"])-1); + $split_answer = explode("=_", $value["answer"][$class_max]); + if (trim($value["qclass"]) === 'D' && ! empty($split_answer)) { + $d = (isset($split_answer) ? $split_answer[1] : "?"); + } + if (trim($value["qclass"]) === 'A' && ! empty($split_answer)) { + $a = (isset($split_answer) ? $split_answer[1] : "?"); + } + if (trim($value["qclass"]) === 'C' && ! empty($split_answer)) { + $c = (isset($split_answer) ? $split_answer[1] : "?"); + } + } + $this->Demandform_model->CR_result = $d . $a . $c; + // CD_CustomerReplyDetail + $this->Demandform_model->CRD_CR_id = $this->Demandform_model->reply_save(); + $reply_detail = array(); + foreach ($all_post["q"] as $key => $value) { + if (empty($value["atext"]) && empty($value["answer"])) { + continue; + } + $this->Demandform_model->CRD_FD_id = $value["fdid"]; + $this->Demandform_model->CRD_result = null; + $this->Demandform_model->CRD_Answer = null; + $this->Demandform_model->CRD_content = null; + + if (isset($value["answer"])) { + foreach ($value["answer"] as $ka => $va) { + $split_answer = null; + $split_answer = explode("=_", trim($value["answer"][$ka])); + $this->Demandform_model->CRD_Answer = $split_answer[0]; + $this->Demandform_model->CRD_content = (!empty($split_answer) ? ($split_answer[2]) : ""); + if ( ! empty($value["qclass"]) && ! empty($split_answer)) { + $this->Demandform_model->CRD_result = (!empty($split_answer) ? $split_answer[1] : "?"); + } + // 这里是 选择题others选项的可填入项 + $this->Demandform_model->CRD_content .= (isset($value["atext"]) ? $value["atext"] : ""); + $this->Demandform_model->replydetail_save(); + } + } else { + // 这里是填空题的输入 + $this->Demandform_model->CRD_content = $value["atext"]; + $this->Demandform_model->replydetail_save(); + } + } + return $this->output->set_content_type('text/plain')->set_output(json_encode($ret)); + } + + public function view_reply($coli) + { + $reply = $this->Demandform_model->get_reply($coli); + $reply_arr = array(); + $reply_fd_arr = array(); + foreach ($reply as $key => $r) { + $class_key = trim($r->FD_class) ? trim($r->FD_class) : "normal"; + $reply_arr["CR_result"] = $r->CR_result; + $reply_arr[$class_key]["q" . $r->FD_id][] = $r; + } + $this->load->view('demandform/reply', $reply_arr); + } + + public function converet_answer($answer) + { + $ret = ord($answer)-64; + $ret = ($ret > 3) ? 3 : $ret; + return $ret; + } + + +} diff --git a/webht/models/demandform_model.php b/webht/models/demandform_model.php new file mode 100644 index 00000000..dd80ba58 --- /dev/null +++ b/webht/models/demandform_model.php @@ -0,0 +1,119 @@ +INFO = $this->load->database('INFO', TRUE); + } + + public function get_form_detail($form_id) + { + $ret = (object) array(); + $form_sql = "SELECT top 1 * FROM CD_form WHERE f_id=$form_id " ; + $f_query = $this->INFO->query($form_sql); + $ret->form = $f_query->row(); + + $formdetail_sql = "SELECT fd.* + FROM CD_formdetail fd + WHERE fd.FD_F_id=$form_id order by FD_sort asc" ; + $fd_query = $this->INFO->query($formdetail_sql); + $ret->formdetail = $fd_query->result(); + + $answer_sql = "SELECT a.* + FROM CD_formdetail fd + INNER JOIN CD_answer a ON a.A_FD_id=fd.FD_id + WHERE fd.FD_F_id=$form_id " ; + $a_query = $this->INFO->query($answer_sql); + $ret->answer = $a_query->result(); + + return $ret; + } + + // CD_CustomerReply + public $CR_COLI_sn; + public $CR_F_id; + public $CR_result; + + public function reply_save() + { + $rsql = "INSERT INTO CD_CustomerReply ( + CR_COLI_sn + ,CR_F_id + ,CR_replytime + ,CR_result) + VALUES + (? + ,? + ,GETDATE() + ,N?)"; + // log_message('error',$this->INFO->compile_binds($rsql, + $rquery = $this->INFO->query($rsql, + array($this->CR_COLI_sn, $this->CR_F_id, $this->CR_result)); + $cr_id_q = "SELECT TOP 1 CR_id + FROM CD_CustomerReply + WHERE CR_COLI_sn=? + ORDER BY CR_replytime DESC"; + $cr_query = $this->INFO->query($cr_id_q, array($this->CR_COLI_sn)); + $cr_id_r = $cr_query->row(); + return $cr_id_r->CR_id; + } + + // CD_CustomerReplyDetail + public $CRD_FD_id; + public $CRD_Answer; + public $CRD_content; + public $CRD_result; + public $CRD_CR_id; + + public function replydetail_save() + { + $rdsql = "INSERT INTO CD_CustomerReplyDetail + (CRD_CR_id + ,CRD_FD_id + ,CRD_Answer + ,CRD_content + ,CRD_result + ) + VALUES (?,?,?,N?,?) "; + // log_message('error',$this->INFO->compile_binds($rdsql, + $rdquery = $this->INFO->query($rdsql, + array( + $this->CRD_CR_id, + $this->CRD_FD_id, + $this->CRD_Answer, + $this->CRD_content, + $this->CRD_result + ) + ); + return $this->INFO->insert_id(); + } + + public function get_reply($coli) + { + $sql = "SELECT fd.FD_id, + fd.FD_F_id, + fd.FD_section, + cr.CR_replytime, + cr.CR_COLI_sn, + cr.CR_result, + fd.FD_class, + fd.FD_ismain, + crd.CRD_result, + fd.FD_question, + crd.CRD_content + FROM CD_CustomerReply cr + INNER JOIN CD_CustomerReplyDetail crd ON crd.CRD_CR_id=cr.CR_id + INNER JOIN CD_FormDetail fd ON CRD_FD_id=FD_id + WHERE CR_COLI_sn='$coli' + ORDER BY fd.FD_section ASC,fd.FD_sort ASC + "; + $query = $this->INFO->query($sql); + + return $query->result(); + } + + + +} diff --git a/webht/views/demandform/index.php b/webht/views/demandform/index.php new file mode 100644 index 00000000..2dfb008b --- /dev/null +++ b/webht/views/demandform/index.php @@ -0,0 +1,160 @@ + + + + + + + + We Complete You + + + + + + + + +
    + +
    +
    +
    + + + +
      +
    • ", $form->F_comment); + $form_com = str_replace("\n", "
      ", $form_com); + echo $form_com; + ?> +
    • +
    + + $p) { ?> +

    +
    $q) { ?> +

    + . FD_question ?> + FD_required==1){ ?> + + +

    + + + + + + FD_AnswerType)) > 0) { // 选择题 + $answer_type = intval(trim($q->FD_AnswerType))==1 ? "radio" : "checkbox"; + ?> + answer as $ka => $an) { ?> + + + + + + + +
    + + + + +
    +
    + + + + + + diff --git a/webht/views/demandform/index1.php b/webht/views/demandform/index1.php new file mode 100644 index 00000000..07c122f9 --- /dev/null +++ b/webht/views/demandform/index1.php @@ -0,0 +1,315 @@ + + + + + Easy Planning from now! + + + + + + + + + + + + + + +
    +
    +
    + +
    +

    Easy Planning from now! The only thing you need to do is telling us your preference. Leave the rest to Us!

    +
    + + + +
    + $p) { ?> +

    +

    $q) { ?> +

    FD_question ?>

    + + + + + FD_AnswerType)) === 1) { ?> +
      + answer as $ka => $an) { ?> +
    1. + +
    2. + +
    + + + +

    + +
    + +
    +
    + + + +
    + + + + diff --git a/webht/views/demandform/reply.php b/webht/views/demandform/reply.php new file mode 100644 index 00000000..f47388c5 --- /dev/null +++ b/webht/views/demandform/reply.php @@ -0,0 +1,122 @@ + + + + + + + + customer reply + + + + +
    + +

    未收到回复

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $qn) { ?> + + + + + + + +
    等级关键问题辅助信息
    + + + $qa) { + if (intval($qa[0]->FD_ismain) == 1) { + echo $qa[0]->FD_question; + foreach ($qa as $ka => $answer) { ?> +

    CRD_result) . "." . $answer->CRD_content; ?>

    + +
    + $qa) { + if (intval($qa[0]->FD_ismain) != 1) { ?> + FD_question; ?> + $answer) { ?> +

    CRD_result) . "." . $answer->CRD_content; ?>

    + +
    + + + $qa) { + if (intval($qa[0]->FD_ismain) == 1) { + echo $qa[0]->FD_question; + foreach ($qa as $ka => $answer) { ?> +

    CRD_result) . "." . $answer->CRD_content; ?>

    + +
    + $qa) { + if (intval($qa[0]->FD_ismain) != 1) { ?> + FD_question; ?> + $answer) { ?> +

    CRD_result) . "." . $answer->CRD_content; ?>

    + +
    + + + $qa) { + if (intval($qa[0]->FD_ismain) == 1) { ?> + FD_question; + foreach ($qa as $ka => $answer) { ?> +

    CRD_result) . "." . $answer->CRD_content; ?>

    + + +
    + $qa) { ?> + FD_ismain) != 1) { ?> + FD_question; ?> + $answer) { ?> +

    CRD_content; ?>

    + + +
    + 其他信息 +
    + FD_question; ?> + + $na) { ?> +

    CRD_content; ?>

    + +
    + + +
    + + +