abbott_2024_event/webapi/lineLogin.ashx.cs

161 lines
6.3 KiB
C#

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
{
/// <summary>
/// lineLogin 的摘要描述
/// </summary>
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<lineUser>("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>(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>(lineUser);
}
if (lineUser.line_phone != line_phone && line_phone != "") {
lineUser.line_phone= line_phone;
lineUser.lineUser_modifydate = DateTime.Now;
conn.Update<lineUser>(lineUser);
}
List<babyData> babyDatas = conn.Query<babyData>("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<baby> babyList = new List<baby>();
}
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;
}
}
}
}