using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Runtime.Serialization.Json; using System.Web.SessionState; using Dapper; using Dapper.Contrib.Extensions; using System.Data.SqlClient; namespace abbott_2024_event.webapi { /// /// lineLogin 的摘要描述 /// public class lineLogin : IHttpHandler { SqlConnection conn = new SqlConnection(globalClass.appsettings("DBConnectionString")); public void ProcessRequest(HttpContext context) { result objRet = new result(); DataContractJsonSerializer json = new DataContractJsonSerializer(objRet.GetType()); context.Response.ContentType = "application/json;charset=utf-8"; context.Response.AddHeader("Access-Control-Allow-Origin", "*"); string line_uid = (context.Request["line_uid"] == null) ? "" : context.Request["line_uid"].ToString(); string line_displayName = (context.Request["line_displayname"] == null) ? "" : context.Request["line_displayname"].ToString(); string line_phone = (context.Request["line_phone"] == null) ? "" : context.Request["line_phone"].ToString(); string utm_source = (context.Request["utm_source"] == null) ? "" : context.Request["utm_source"].ToString(); string utm_medium = (context.Request["utm_medium"] == null) ? "" : context.Request["utm_medium"].ToString(); string utm_campaign = (context.Request["utm_campaign"] == null) ? "" : context.Request["utm_campaign"].ToString(); string utm_term = (context.Request["utm_term"] == null) ? "" : context.Request["utm_term"].ToString(); string utm_content = (context.Request["utm_content"] == null) ? "" : context.Request["utm_content"].ToString(); if (line_uid == "undefined") { line_uid = ""; } utm_source = (utm_source.Length > 20) ? utm_source.Substring(0, 20) : utm_source; utm_medium = (utm_medium.Length > 20) ? utm_medium.Substring(0, 20) : utm_medium; utm_campaign = (utm_campaign.Length > 20) ? utm_campaign.Substring(0, 20) : utm_campaign; utm_term = (utm_term.Length > 20) ? utm_term.Substring(0, 20) : utm_term; utm_content = (utm_content.Length > 20) ? utm_content.Substring(0, 20) : utm_content; if (line_uid == "") { objRet.ret = "no"; objRet.err_code = "2001"; objRet.message = "line_uid為空字串!"; json.WriteObject(context.Response.OutputStream, objRet); return; } //if (line_displayName == "") //{ // objRet.ret = "no"; // 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("select * from lineUser where line_uid = @line_uid", new { line_uid = line_uid }); if (lineUser == null) { lineUser = new lineUser(); lineUser.lineUser_uid = globalClass.CreateRandomCode(32); lineUser.line_uid = line_uid; lineUser.line_displayName = line_displayName; lineUser.line_phone = line_phone; lineUser.utm_source = utm_source; lineUser.utm_medium = utm_medium; lineUser.utm_campaign = utm_campaign; lineUser.utm_term = utm_term; lineUser.utm_content = utm_content; conn.Insert(lineUser); objRet.ret = "yes"; objRet.isFirst = "Y"; json.WriteObject(context.Response.OutputStream, objRet); return; } if (lineUser != null) { if (lineUser.line_displayName != line_displayName && line_displayName != "") { lineUser.line_displayName= line_displayName; lineUser.lineUser_modifydate = DateTime.Now; conn.Update(lineUser); } if (lineUser.line_phone != line_phone && line_phone != "") { lineUser.line_phone= line_phone; lineUser.lineUser_modifydate = DateTime.Now; conn.Update(lineUser); } List babyDatas = conn.Query("select * from babyData where line_uid = @line_uid", new { line_uid = line_uid }).ToList(); foreach (babyData data in babyDatas) { baby baby = new baby(); baby.babyData_uid = data.babyData_uid; baby.babyData_name = data.babyData_name; baby.babyData_gender = data.babyData_sexual; baby.babyData_birthday = data.babyData_birthday.ToString("yyyy/MM/dd"); objRet.babyList.Add(baby); } objRet.isFirst = "N"; objRet.ret = "yes"; json.WriteObject(context.Response.OutputStream, objRet); return; } } public class result { public string ret = "no"; public string err_code = "0000"; public string message = ""; public string isFirst = "N"; public List babyList = new List(); } public class baby { public string babyData_uid { get; set; } = ""; public string babyData_birthday { get; set; } = ""; public string babyData_name { get; set; } = ""; public string babyData_gender { get; set; } = "M"; } public bool IsReusable { get { return false; } } } }