master
dk96 2025-02-20 15:08:04 +08:00
parent 3160d3ec63
commit 4e89791865
8 changed files with 417 additions and 271 deletions

View File

@ -92,12 +92,13 @@ namespace abbott_2024_event.BackEnd.api
filiterString += " and babyRec_months >= " + (int.Parse(min_age) * 12).ToString() + " and babyRec_months <= " + (int.Parse(max_age) * 12).ToString();
List<babyDataRecView> babyDataRecViews = conn.Query<babyDataRecView>("select distinct line_uid, line_displayname from babyDataRecView " + filiterString + " ").ToList();
List<babyDataRecView> babyDataRecViews = conn.Query<babyDataRecView>("select distinct line_uid, line_displayname, line_phone from babyDataRecView " + filiterString + " ").ToList();
foreach (babyDataRecView view in babyDataRecViews) {
userData userData = new userData();
userData.line_uid = view.line_uid;
userData.line_displayName = view.line_displayName;
userData.line_phone = view.line_phone;
List<babyDataRecView> subViews = conn.Query<babyDataRecView>("select * from babyDataRecView " + filiterString + " and line_uid = @line_uid ", new { line_uid = view.line_uid }).ToList();

Binary file not shown.

View File

@ -120,7 +120,7 @@ function buttonClick(obj) {
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
$('#LineTitle').val("Line 名稱:" + data.user.line_displayName + ", Line Uid" + data.user.line_uid);
$('#LineTitle').val("Line 名稱:" + data.user.line_displayName + ", Line Uid" + data.user.line_uid + ", 電話:" + data.user.line_phone);
$("#baby_select option").remove();
@ -242,13 +242,14 @@ function loadDataTable() {
columns: [
{ data: 'line_displayName', className: 'align-middle text-left', orderable: true, searchable: true },
{ data: 'line_uid', className: 'align-middle text-left', orderable: false, searchable: true },
{ data: 'line_phone', className: 'align-middle text-left', orderable: false, searchable: true },
{ data: 'testdate', className: 'align-top text-center', orderable: false, searchable: false, visible: false },
{ data: 'line_uid', className: 'align-middle text-left', orderable: false, searchable: false },
{ data: 'line_uid', className: 'align-middle text-center', orderable: false, searchable: false }
],
columnDefs: [
{
targets: 3,
targets: 4,
className: 'align-middle text-left',
orderable: false,
searchable: true,
@ -338,7 +339,7 @@ function loadDataTable() {
}
},
{
targets: 4,
targets: 5,
orderable: false,
searchable: false,
render: function render(data, type, row, meta) {

View File

@ -33,7 +33,7 @@
<div class="card-body">
<!-- .form-row -->
<div class="row">
<div class="col-md-2">
<div class="col-md-4">
<label for="quotation-datepicker">測驗起訖日期</label>
<div class="input-daterange input-group" id="quotation-datepicker">
<input type="text" class="form-control form-control-sm" name="start" id="startDate" />
@ -81,11 +81,11 @@
<option value="10" selected="selected">10歲</option>
</select>
</div>
<div class="col-md-2">
<div class="col-md-1">
<label for="search_btn" style="display: block;">&nbsp; &nbsp;</label>
<button type="button" class="btn btn-info btn-sm" id="search_btn">篩選</button>
</div>
<div class="col-md-2">
<div class="col-md-1">
<label for="export_btn" style="display: block;">&nbsp; &nbsp;</label>
<button type="button" class="btn btn-danger btn-sm" id="export_btn">匯出</button>
</div>
@ -101,6 +101,7 @@
<th>Line名稱 </th>
<th>Line UID </th>
<th>電話 </th>
<th style="display:none;">測驗日期 </th>
<th style="min-width: 50%;">寶寶資料</th>
<th style="min-width: 60px;">&nbsp; </th>
@ -192,5 +193,5 @@
</form><!-- /.modal -->
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="server">
<script src="assets/javascript/custom/userList.js?v=3"></script>
<script src="assets/javascript/custom/userList.js?v=6"></script>
</asp:Content>

View File

@ -11,16 +11,16 @@
<link rel="stylesheet" href="assets/stylesheets/theme.min.css" data-skin="default">
<link rel="stylesheet" href="assets/stylesheets/custom.css">
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-2G92RZQS1G"></script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-2G92RZQS1G"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-F1FH9SR1JC"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-2G92RZQS1G');
//gtag('config', 'G-2G92RZQS1G');
gtag('config', 'G-F1FH9SR1JC');
</script>
</head>
<body>
@ -38,6 +38,16 @@
<input type="text" id="line_displayname" class="form-control" placeholder="姓名" autofocus=""> <label for="login_id">姓名</label>
</div>
</div><!-- /.form-group -->
<div class="form-group">
<div class="form-label-group">
<input type="text" id="line_phone" class="form-control" placeholder="電話" autofocus=""> <label for="login_phone">電話</label>
</div>
</div><!-- /.form-group -->
<div class="form-group">
<div class="form-label-group">
<input type="text" readonly="readonly" id="line_uid" class="form-control" placeholder="Line UID" autofocus=""> <label for="login_uid">Line UID</label>
</div>
</div><!-- /.form-group -->
<!-- .form-group -->
<div class="form-group">
<button id="submit_btn" class="btn btn-lg btn-primary btn-block" type="button">確定送出</button>
@ -58,16 +68,89 @@
<script src="assets/javascript/theme.js"></script> <!-- END THEME JS -->
<script>
var search_url = location.search;
var line_uid = "";
var line_name = "";
$(document).ready(function () {
(function ($) {
$.UrlParam = function (name) {
//宣告正規表達式
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
/*
* window.location.search 獲取URL ?之後的參數(包含問號)
* substr(1) 獲取第一個字以後的字串(就是去除掉?號)
* match(reg) 用正規表達式檢查是否符合要查詢的參數
*/
var r = window.location.search.substr(1).match(reg);
//如果取出的參數存在則取出參數的值否則回穿null
//if (r != null) return r[2]; return '';
if (r != null) return unescape(r[2]); return '';
}
})(jQuery);
gtag('event', 'page_view', {
page_title: '',
page_location: '',
'utm_source': $.UrlParam("utm_source"),
'utm_medium': $.UrlParam("utm_medium"),
'utm_campaign': $.UrlParam("utm_campaign"),
'utm_content': $.UrlParam("utm_content"),
'utm_term': $.UrlParam("utm_term")
});
var utm_source = escape($.UrlParam("utm_source"));
var utm_medium = escape($.UrlParam("utm_medium"));
var utm_campaign = escape($.UrlParam("utm_campaign"));
var utm_content = escape($.UrlParam("utm_content"));
var utm_term = escape($.UrlParam("utm_term"));
var reg2 = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var param_url = window.location.search.substr(1).match(reg2);
var line_uid = getUrlParameter("uid");
var user_name = getUrlParameter("username");
var phone = getUrlParameter("phone");
if (line_uid == '' || user_name == '') {
alert('請先登入Line綁定會員!');
location.href = "https://liff.line.me/1655253332-w8On6p2r?traceId=109&&utm_source=" + utm_source + "&utm_medium=" + utm_medium + "&utm_campaign=" + utm_campaign + "&utm_content=" + utm_content + "&utm_term=" + utm_term;
}
$('#line_displayname').val(user_name).trigger('change');
$('#line_phone').val(phone).trigger('change');
$('#line_uid').val(line_uid).trigger('change');
$('#submit_btn').on('click', function () {
var displayname = $('#line_displayname').val();
var line_phone = $('#line_phone').val();
var line_uid = $('#line_uid').val();
if (displayname.length == 0) {
alert('請輸入姓名!');
return;
}
location.href = "page1.html";
if (line_phone.length == 0) {
alert('請輸入電話!');
return;
}
gtag('event', 'form_submit_success', {
'utm_source': $.UrlParam("utm_source"),
'utm_medium': $.UrlParam("utm_medium"),
'utm_campaign': $.UrlParam("utm_campaign"),
'utm_content': $.UrlParam("utm_content"),
'utm_term': $.UrlParam("utm_term")
}
);
location.href = "page1.html" + search_url;
});
});
@ -89,281 +172,283 @@
//return;
var liffID = '2006708411-0lWgQ4Va';
liff.init({
liffId: liffID
}).then(function () {
//if (!liff.isInClient()) {
// alert("請在Line App裡開啟!");
// return;
//}
console.log('LIFF init');
// 這邊開始寫使用其他功能
if (!liff.isLoggedIn()) {
console.log("你還沒登入Line哦");
liff.login();
} else {
var line_uid = "";
var line_name = "";
//var liffID = '2006708411-0lWgQ4Va';
//liff.init({
// liffId: liffID
//}).then(function () {
// //if (!liff.isInClient()) {
// // alert("請在Line App裡開啟!");
// // return;
// //}
// console.log('LIFF init');
// // 這邊開始寫使用其他功能
// if (!liff.isLoggedIn()) {
// console.log("你還沒登入Line哦");
// //liff.login({ redirectUri: "https://abbott-2024-event.bremennetwork.tw/abbott-2024/Line/" + search_url });
// liff.login({ redirectUri: "https://www.abbott-nutrition.com.tw/pediasure/4Ip2xCJElotaBUKBNJuz9sUY5/" + search_url });
// } else {
method = getUrlParameter("method");
//alert(method);
liff.getProfile()
.then(profile => {
line_uid = profile.userId;
line_name = profile.displayName;
$('#line_displayname').val(line_name).trigger('change');
// method = getUrlParameter("method");
// //alert(method);
// liff.getProfile()
// .then(profile => {
// line_uid = profile.userId;
// line_name = profile.displayName;
//測試
if (method == "test") {
var formData = {
uid: "Ud08c721e9f14c02da8a000ac0900f3f7",
finished: "game3"
}
// $('#line_displayname').val(line_name).trigger('change');
$.ajax({
url: "https://heineken-line.horyuken.com/api/gamestatus",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
liff.closeWindow();
} else {
// //測試
// if (method == "test") {
// var formData = {
// uid: "Ud08c721e9f14c02da8a000ac0900f3f7",
// finished: "game3"
// }
if (data.err_code == "0004") {
alert('您尚未報名活動喔!');
} else {
alert(data.message);
}
// $.ajax({
// url: "https://heineken-line.horyuken.com/api/gamestatus",
// type: "POST",
// data: formData,
// success: function (data, textStatus, jqXHR) {
// if (data.ret == "yes") {
// liff.closeWindow();
// } else {
liff.closeWindow();
}
// if (data.err_code == "0004") {
// alert('您尚未報名活動喔!');
// } else {
// alert(data.message);
// }
// liff.closeWindow();
// }
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
liff.closeWindow();
}
});
}
// },
// error: function (jqXHR, textStatus, errorThrown) {
// alert('網路或伺服器發生錯誤,請稍後重試!');
// liff.closeWindow();
// }
// });
// }
//報到
if (method == "checkin") {
var formData = {
uid: line_uid,
name: line_name
}
// //報到
// if (method == "checkin") {
// var formData = {
// uid: line_uid,
// name: line_name
// }
$.ajax({
url: "/api/checkin",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
location.href = "https://r.botbonnie.com/5qq3b";
//liff.closeWindow();
} else {
// $.ajax({
// url: "/api/checkin",
// type: "POST",
// data: formData,
// success: function (data, textStatus, jqXHR) {
// if (data.ret == "yes") {
// location.href = "https://r.botbonnie.com/5qq3b";
// //liff.closeWindow();
// } else {
if (data.err_code == "0001") {
alert('您尚未報名活動喔!');
} else {
alert(data.message);
}
// if (data.err_code == "0001") {
// alert('您尚未報名活動喔!');
// } else {
// alert(data.message);
// }
liff.closeWindow();
}
// liff.closeWindow();
// }
},
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
alert('網路或伺服器發生錯誤,請稍後重試!');
liff.closeWindow();
}
});
}
// },
// error: function (jqXHR, textStatus, errorThrown) {
// alert(textStatus);
// alert('網路或伺服器發生錯誤,請稍後重試!');
// liff.closeWindow();
// }
// });
// }
//vip報到
if (method == "vip_checkin") {
var formData = {
uid: line_uid,
name: line_name
}
// //vip報到
// if (method == "vip_checkin") {
// var formData = {
// uid: line_uid,
// name: line_name
// }
$.ajax({
url: "/api/vip_checkin",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
location.href = "https://r.botbonnie.com/5qq3b";
//liff.closeWindow();
} else {
// $.ajax({
// url: "/api/vip_checkin",
// type: "POST",
// data: formData,
// success: function (data, textStatus, jqXHR) {
// if (data.ret == "yes") {
// location.href = "https://r.botbonnie.com/5qq3b";
// //liff.closeWindow();
// } else {
if (data.err_code == "0001") {
alert('您尚未報名活動喔!');
} else {
alert(data.message);
}
// if (data.err_code == "0001") {
// alert('您尚未報名活動喔!');
// } else {
// alert(data.message);
// }
liff.closeWindow();
}
// liff.closeWindow();
// }
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
liff.closeWindow();
}
});
}
// },
// error: function (jqXHR, textStatus, errorThrown) {
// alert('網路或伺服器發生錯誤,請稍後重試!');
// liff.closeWindow();
// }
// });
// }
//準備釀造之旅
if (method == "readyplay") {
var formData = {
uid: line_uid
}
// //準備釀造之旅
// if (method == "readyplay") {
// var formData = {
// uid: line_uid
// }
$.ajax({
url: "/api/readyplay",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
liff.closeWindow();
} else {
// $.ajax({
// url: "/api/readyplay",
// type: "POST",
// data: formData,
// success: function (data, textStatus, jqXHR) {
// if (data.ret == "yes") {
// liff.closeWindow();
// } else {
if (data.err_code == "0001") {
alert('您尚未報名活動喔!');
} else {
alert(data.message);
}
// if (data.err_code == "0001") {
// alert('您尚未報名活動喔!');
// } else {
// alert(data.message);
// }
liff.closeWindow();
}
// liff.closeWindow();
// }
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
liff.closeWindow();
}
});
}
// },
// error: function (jqXHR, textStatus, errorThrown) {
// alert('網路或伺服器發生錯誤,請稍後重試!');
// liff.closeWindow();
// }
// });
// }
//領取啤酒
if (method == "getBeer") {
// //領取啤酒
// if (method == "getBeer") {
if (confirm("限工作人員點擊才能領取喔!") == true) {
var formData = {
uid: line_uid
}
// if (confirm("限工作人員點擊才能領取喔!") == true) {
// var formData = {
// uid: line_uid
// }
$.ajax({
url: "/api/getBeer",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
liff.closeWindow();
} else {
// $.ajax({
// url: "/api/getBeer",
// type: "POST",
// data: formData,
// success: function (data, textStatus, jqXHR) {
// if (data.ret == "yes") {
// liff.closeWindow();
// } else {
if (data.err_code == "0004") {
alert('您尚未報名活動喔!');
liff.closeWindow();
} else {
if (data.err_code == "0009") {
alert('您已經領過啤酒了喔!');
liff.closeWindow();
} else {
alert(data.message);
liff.closeWindow();
}
}
// if (data.err_code == "0004") {
// alert('您尚未報名活動喔!');
// liff.closeWindow();
// } else {
// if (data.err_code == "0009") {
// alert('您已經領過啤酒了喔!');
// liff.closeWindow();
// } else {
// alert(data.message);
// liff.closeWindow();
// }
// }
liff.closeWindow();
}
// liff.closeWindow();
// }
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
liff.closeWindow();
}
});
}
else {
liff.closeWindow();
}
}
// },
// error: function (jqXHR, textStatus, errorThrown) {
// alert('網路或伺服器發生錯誤,請稍後重試!');
// liff.closeWindow();
// }
// });
// }
// else {
// liff.closeWindow();
// }
// }
//開始體驗
if (method == "gamestatus") {
var formData = {
uid: line_uid,
finished: "nogame"
}
// //開始體驗
// if (method == "gamestatus") {
// var formData = {
// uid: line_uid,
// finished: "nogame"
// }
$.ajax({
url: "/api/gamestatus",
type: "POST",
data: formData,
success: function (data, textStatus, jqXHR) {
if (data.ret == "yes") {
liff.closeWindow();
} else {
// $.ajax({
// url: "/api/gamestatus",
// type: "POST",
// data: formData,
// success: function (data, textStatus, jqXHR) {
// if (data.ret == "yes") {
// liff.closeWindow();
// } else {
if (data.err_code == "0004") {
alert('您尚未報名活動喔!');
} else {
alert(data.message);
}
// if (data.err_code == "0004") {
// alert('您尚未報名活動喔!');
// } else {
// alert(data.message);
// }
liff.closeWindow();
}
// liff.closeWindow();
// }
},
error: function (jqXHR, textStatus, errorThrown) {
alert('網路或伺服器發生錯誤,請稍後重試!');
liff.closeWindow();
}
});
}
// },
// error: function (jqXHR, textStatus, errorThrown) {
// alert('網路或伺服器發生錯誤,請稍後重試!');
// liff.closeWindow();
// }
// });
// }
//發送填寫問卷
if (method == "survey") {
var survey_url = 'https://www.surveycake.com/s/vG3zw?ssn27=' + line_uid;
// //發送填寫問卷
// if (method == "survey") {
// var survey_url = 'https://www.surveycake.com/s/vG3zw?ssn27=' + line_uid;
liff.openWindow({
url: survey_url,
external: false
});
// liff.openWindow({
// url: survey_url,
// external: false
// });
//liff.closeWindow();
}
// //liff.closeWindow();
// }
})
.catch((err) => {
console.log('error', err);
});
}
// })
// .catch((err) => {
// console.log('error', err);
// });
// }
}).catch(function (error) {
console.log(error);
});
//}).catch(function (error) {
// console.log(error);
//});
</script>
<script src="https://unpkg.com/vconsole@latest/dist/vconsole.min.js"></script>
<script>

View File

@ -12,13 +12,14 @@
<link rel="stylesheet" href="assets/stylesheets/custom.css">
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-2G92RZQS1G"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-F1FH9SR1JC"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-2G92RZQS1G');
//gtag('config', 'G-2G92RZQS1G');
gtag('config', 'G-F1FH9SR1JC');
</script>
</head>
<body>
@ -59,9 +60,57 @@
//vConsole.destroy();
</script>
<script>
var search_url = location.search;
var line_uid = "";
var line_name = "";
$(document).ready(function () {
(function ($) {
$.UrlParam = function (name) {
//宣告正規表達式
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
/*
* window.location.search 獲取URL ?之後的參數(包含問號)
* substr(1) 獲取第一個字以後的字串(就是去除掉?號)
* match(reg) 用正規表達式檢查是否符合要查詢的參數
*/
var r = window.location.search.substr(1).match(reg);
//如果取出的參數存在則取出參數的值否則回穿null
if (r != null) return unescape(r[2]); return '';
}
})(jQuery);
var utm_source = escape($.UrlParam("utm_source"));
var utm_medium = escape($.UrlParam("utm_medium"));
var utm_campaign = escape($.UrlParam("utm_campaign"));
var utm_content = escape($.UrlParam("utm_content"));
var utm_term = escape($.UrlParam("utm_term"));
var line_uid = $.UrlParam("uid");
var user_name = $.UrlParam("username");
var phone = $.UrlParam("phone");
if (line_uid == '' || user_name == '') {
alert('請先登入Line綁定會員!');
location.href = "https://liff.line.me/1655253332-w8On6p2r?traceId=109&&utm_source=" + utm_source + "&utm_medium=" + utm_medium + "&utm_campaign=" + utm_campaign + "&utm_content=" + utm_content + "&utm_term=" + utm_term;
}
$('#getcoupon_btn').on('click', function () {
alert('領取成功!');
//alert($.UrlParam("utm_campaign"));
gtag('event', 'click', {
'button': 'sample',
'utm_source': $.UrlParam("utm_source"),
'utm_medium': $.UrlParam("utm_medium"),
'utm_campaign': $.UrlParam("utm_campaign"),
'utm_content': $.UrlParam("utm_content"),
'utm_term': $.UrlParam("utm_term")
});
location.href = "https://www.abbott-nutrition.com.tw/pediasure/trial2020.html" + search_url;
});
});
@ -81,50 +130,50 @@
return false;
};
return;
var liffID = '2006708411-0lWgQ4Va';
liff.init({
liffId: liffID
}).then(function () {
//if (!liff.isInClient()) {
// alert("請在Line App裡開啟!");
// return;
//}
console.log('LIFF init');
// 這邊開始寫使用其他功能
if (!liff.isLoggedIn()) {
console.log("你還沒登入Line哦");
liff.login();
} else {
var line_uid = "";
var line_name = "";
//var liffID = '2006708411-0lWgQ4Va';
//liff.init({
// liffId: liffID
//}).then(function () {
// //if (!liff.isInClient()) {
// // alert("請在Line App裡開啟!");
// // return;
// //}
// console.log('LIFF init');
// // 這邊開始寫使用其他功能
// if (!liff.isLoggedIn()) {
// console.log("你還沒登入Line哦");
// //liff.login({ redirectUri: "https://abbott-2024-event.bremennetwork.tw/abbott-2024/Line/" + search_url });
// liff.login({ redirectUri: "https://www.abbott-nutrition.com.tw/pediasure/4Ip2xCJElotaBUKBNJuz9sUY5/" + search_url });
// } else {
method = getUrlParameter("method");
//alert(method);
liff.getProfile()
.then(profile => {
line_uid = profile.userId;
line_name = profile.displayName;
// method = getUrlParameter("method");
// //alert(method);
// liff.getProfile()
// .then(profile => {
// line_uid = profile.userId;
// line_name = profile.displayName;
})
.catch((err) => {
console.log('error', err);
});
}
// })
// .catch((err) => {
// console.log('error', err);
// });
// }
}).catch(function (error) {
console.log(error);
});
//}).catch(function (error) {
// console.log(error);
//});
</script>
</body>
</html>

View File

@ -31,7 +31,7 @@ namespace abbott_2024_event.webapi
{
objRet.ret = "no";
objRet.err_code = "2001";
objRet.message = "line_uid或line_displayname為空字串!";
objRet.message = "line_uid為空字串!";
json.WriteObject(context.Response.OutputStream, objRet);
return;
}
@ -39,12 +39,21 @@ namespace abbott_2024_event.webapi
if (line_displayName == "")
{
objRet.ret = "no";
objRet.err_code = "1005";
objRet.err_code = "2002";
objRet.message = "line_displayname為空字串!";
json.WriteObject(context.Response.OutputStream, objRet);
return;
}
if (line_phone == "")
{
objRet.ret = "no";
objRet.err_code = "2003";
objRet.message = "line_phone為空字串!";
json.WriteObject(context.Response.OutputStream, objRet);
return;
}
lineUser lineUser = conn.QueryFirstOrDefault<lineUser>("select * from lineUser where line_uid = @line_uid", new { line_uid = line_uid });
if (lineUser == null)