public void ProcessRequest(HttpContext context) { string addressId = context.Request["address_id"]; string times = context.Request["times"]; SignInAddress model = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, addressId); if (model == null) { apiResp.msg = "签到地址不存在"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); return; } model.SignInTime = times; if (bllSignIn.Update(model)) { apiResp.msg = "编辑完成"; apiResp.status = true; } else { apiResp.msg = "编辑出错"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; } context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(apiResp)); }
public void ProcessRequest(HttpContext context) { string id = context.Request["id"]; SignInAddress signInAddress = bllSignIn.GetByKey <SignInAddress>("AutoID", id); if (signInAddress == null) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "地址未找到"; bllSignIn.ContextResponse(context, apiResp); return; } apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.msg = "查询完成"; apiResp.result = new { id = signInAddress.AutoID, address = signInAddress.Address, longitude = signInAddress.Longitude, latitude = signInAddress.Latitude, range = signInAddress.Range, isdelete = signInAddress.IsDelete }; bllSignIn.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { string id = Request["id"]; if (!string.IsNullOrEmpty(id)) { model = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, id); action = "update"; } else { model.Range = 100; } }
/// <summary> /// 签到 /// </summary> /// <param name="rows"></param> /// <param name="page"></param> /// <param name="longitude"></param> /// <param name="latitude"></param> /// <param name="websiteOwner"></param> /// <param name="total"></param> /// <returns></returns> public bool AddSignInLog(int autoId, string userId, double longitude, double latitude, string websiteOwner, out string errmsg) { errmsg = ""; StringBuilder sbSql = new StringBuilder(); sbSql.AppendFormat(" AutoID={0} and IsDelete=0 ", autoId); if (!string.IsNullOrWhiteSpace(websiteOwner)) { sbSql.AppendFormat(" and WebsiteOwner='{0}' ", websiteOwner); } SignInAddress signInAddress = Get <SignInAddress>(sbSql.ToString()); if (signInAddress == null) { errmsg = "签到地点未找到"; return(false); } signInAddress.Distance = GeolocationHelper.ComputeDistance(longitude, latitude , Convert.ToDouble(signInAddress.Longitude), Convert.ToDouble(signInAddress.Latitude)); SignInLog signInLog = new SignInLog(); signInLog.UserID = userId; signInLog.WebsiteOwner = websiteOwner; signInLog.IP = ZentCloud.Common.MySpider.GetClientIP(); signInLog.CreateDate = DateTime.Now; signInLog.Longitude = longitude.ToString(); signInLog.Latitude = latitude.ToString(); signInLog.AddressId = signInAddress.AutoID; signInLog.Address = signInAddress.Address; signInLog.Distance = signInAddress.Distance; string DistanceString = string.Empty; if (signInAddress.Distance > signInAddress.Range) { signInLog.Status = 0; signInLog.Remark = "签到失败,超出有效距离"; } else { signInLog.Status = 1; signInLog.Remark = "签到成功"; } if (!Add(signInLog)) { errmsg = "签到出错"; return(false); } errmsg = signInLog.Remark; return(signInLog.Status == 1); }
protected void Page_Load(object sender, EventArgs e) { if (!string.IsNullOrEmpty(Request["addressid"])) { addressId = Request["addressid"]; int totalCount = 0; List <SignInLog> list = bllSignIn.GetSignLogList(1, int.MaxValue, "", addressId, out totalCount, "", "", "", ""); var userList = list.Select(p => p.UserID).Distinct().ToList(); if (!string.IsNullOrEmpty(addressId)) { model = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, addressId); } if (!string.IsNullOrEmpty(model.SignInTime)) { tempList = JsonConvert.DeserializeObject <List <SignInTime> >(model.SignInTime); } } }
protected void Page_Load(object sender, EventArgs e) { string id = Request["id"]; if (!string.IsNullOrEmpty(id)) { model = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, id); action = "update"; } else { model.Range = 100; } //if (action == "update") //{ // List<SignInDate> list = ZentCloud.Common.JSONHelper.JsonToObjectList<SignInDate>(model.SignInTime); //} }
public void ProcessRequest(HttpContext context) { // bllSignIn.ToLog("API.SignIn", "D:\\log\\UserSignInLog.txt"); string id = context.Request["id"]; string type = context.Request["type"]; SignInAddress signInAddress = new SignInAddress(); if (string.IsNullOrEmpty(type)) { signInAddress = bllSignIn.GetByKey <SignInAddress>("AutoID", id); } else { signInAddress = bllSignIn.Get <SignInAddress>(string.Format(" WebsiteOwner='{0}' AND Type='{1}'", bllSignIn.WebsiteOwner, type)); } if (signInAddress == null) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "地址未找到"; bllSignIn.ContextResponse(context, apiResp); return; } DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = GetMondayDate(dt); DateTime endWeek = startWeek.AddDays(6); string dayStartTime = DateTime.Now.ToString("yyyy/MM/dd"); //一天开始时间 算出当天是否签到 string starkWeekStr = startWeek.ToString("yyyy/MM/dd"); //本周周一 string endWeekStr = endWeek.ToString("yyyy/MM/dd"); //本周周日 List <SignInLog> signLogs = new List <SignInLog>(); bool isSignin = false; int signInDay = 0; List <Weeks> weekList = new List <Weeks>(); int rscore = 0; if (!string.IsNullOrEmpty(type) && type == "Sign") { string[] weekNames = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" }; int[] scores = new int[] { signInAddress.MondayScore, signInAddress.TuesdayScore, signInAddress.WednesdayScore, signInAddress.ThursdayScore, signInAddress.FridayScore, signInAddress.SaturdayScore, signInAddress.SundayScore }; int[] retroactives = new int[] { signInAddress.RetroactiveToOne, signInAddress.RetroactiveToTwo, signInAddress.RetroactiveToThree, signInAddress.RetroactiveToFour, signInAddress.RetroactiveToFive, signInAddress.RetroactiveToSix, signInAddress.RetroactiveToSeven }; int count = bllSignIn.GetCount <SignInLog>(string.Format(" WebsiteOwner='{0}' AND Status=1 AND SignInDate>='{1}' AND UserId='{2}' AND Type='{3}' ", bllSignIn.WebsiteOwner, starkWeekStr, bllSignIn.GetCurrUserID(), type)); if (count > 6) { count = 6; } rscore = retroactives[count]; signLogs = bllSignIn.GetList <SignInLog>(string.Format(" WebsiteOwner='{0}' AND Type='{1}' AND UserID='{2}' AND SignInDate>='{3}'", bllSignIn.WebsiteOwner, type, CurrentUserInfo.UserID, starkWeekStr)); if (signLogs.Count > 7) { signInDay = 7; } else { signInDay = signLogs.Count; } if (signLogs.Exists(p => p.SignInDate == dayStartTime)) { isSignin = true; } for (int i = 0; i < 7; i++) { Weeks week = new Weeks(); DateTime rDate = startWeek.AddDays(i); short d = Convert.ToInt16(rDate.DayOfWeek.ToString("D")); week.week_name = weekNames[d]; week.is_signin = signLogs.Exists(p => p.SignInDate == rDate.ToString("yyyy/MM/dd")); week.month_name = rDate.ToString("M月d号"); week.score = scores[i]; week.is_show = rDate >= dt ? false : true; week.class_name = rDate.DayOfWeek.ToString(); week.week_name_date = rDate.ToString("yyyy/MM/dd"); week.week_day = d; weekList.Add(week); } } apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.msg = "查询完成"; apiResp.result = new { id = signInAddress.AutoID, address = signInAddress.Address, longitude = signInAddress.Longitude, latitude = signInAddress.Latitude, range = signInAddress.Range, isdelete = signInAddress.IsDelete, monday_score = signInAddress.MondayScore, tuesday_score = signInAddress.TuesdayScore, wednesday_score = signInAddress.WednesdayScore, thursday_score = signInAddress.ThursdayScore, friday_score = signInAddress.FridayScore, saturdayScore = signInAddress.SaturdayScore, sundayScore = signInAddress.SundayScore, lottery_type = signInAddress.LotteryType, lottery_id = signInAddress.LotteryId, desc = signInAddress.Description, type = signInAddress.Type, is_signin = isSignin, //false未签到 true已签到 sign_day = signInDay, //签到天数 button_color = signInAddress.ButtonColor, thumbnail = signInAddress.Thumbnail, retroactive_score = rscore, weeks = weekList, slide_name = signInAddress.SlideGroupName, background_image = signInAddress.BackGroundImage, //背景图片 have_sign_image = signInAddress.HaveSignImage, //已签到显示图片 no_have_sign_image = signInAddress.NoHaveSignImage, //未签到显示图片 monday_ads = signInAddress.MondayAds, tuesday_ads = signInAddress.TuesdayAds, wednesday_ads = signInAddress.WednesdayAds, thursday_ads = signInAddress.ThursdayAds, friday_ads = signInAddress.FridayAds, saturday_ads = signInAddress.SaturdayAds, sunday_ads = signInAddress.SundayAds }; bllSignIn.ContextResponse(context, apiResp); }
protected void Page_Load(object sender, EventArgs e) { addressId = int.Parse(Request["addressId"]); model = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, Request["addressId"]); }
public void ProcessRequest(HttpContext context) { string type = context.Request["type"]; string id = context.Request["id"]; string address = context.Request["address"]; if (string.IsNullOrEmpty(type)) { apiResp.msg = "未找到签到"; bllSignIn.ContextResponse(context, apiResp); return; } UserInfo currUser = bllSignIn.GetCurrentUserInfo(); DateTime dt = DateTime.Now; string dtStr = dt.ToString("yyyy/MM/dd"); string startTime = GetMondayDate(dt).ToString("yyyy/MM/dd"); SignInAddress signInAddress = bllSignIn.Get <SignInAddress>(string.Format(" WebsiteOwner='{0}' AND Type='{1}'", bllSignIn.WebsiteOwner, type)); int[] scores = new int[] { signInAddress.SundayScore, signInAddress.MondayScore, signInAddress.TuesdayScore, signInAddress.WednesdayScore, signInAddress.ThursdayScore, signInAddress.FridayScore, signInAddress.SaturdayScore }; ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction(); SignInLog model = bllSignIn.Get <SignInLog>(string.Format(" WebsiteOwner='{0}' AND UserId='{1}' AND Type='{2}' AND SignInDate='{3}'", bllSignIn.WebsiteOwner, bllSignIn.GetCurrUserID(), type, dtStr), tran); if (model == null) { model = new SignInLog(); model.AddressId = Convert.ToInt32(id); model.Address = address; model.WebsiteOwner = bllSignIn.WebsiteOwner; model.UserID = bllSignIn.GetCurrUserID(); model.CreateDate = dt; model.Remark = "周签到"; model.Type = type; model.SignInDate = dt.ToString("yyyy/MM/dd"); model.Status = 0; int addScore = scores[Convert.ToInt32(dt.DayOfWeek)]; if (model.Type == "Sign") { model.Ex1 = "签到获得" + addScore.ToString() + "积分,日期:" + dt.ToString("yyyy/MM/dd"); } DateTime startWeek = GetMondayDate(dt); string starkWeekStr = startWeek.ToString("yyyy/MM/dd");//本周周一 UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.UserID = currUser.UserID; scoreRecord.AddTime = dt; scoreRecord.TotalScore = currUser.TotalScore; scoreRecord.Score = addScore; scoreRecord.ScoreType = "SignIn"; scoreRecord.AddNote = "签到"; scoreRecord.RelationID = bllSignIn.GetCurrUserID(); scoreRecord.WebSiteOwner = bllSignIn.WebsiteOwner; scoreRecord.Ex6 = "签到获得" + addScore + "积分,日期:" + dt.ToString("yyyy/MM/dd"); try { if (!bllSignIn.Add(model, tran)) { tran.Rollback(); apiResp.msg = "签到失败"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllSignIn.ContextResponse(context, apiResp); return; } if (bllSignIn.Update(currUser, string.Format(" TotalScore=IsNull(TotalScore,0)+{0}", addScore), string.Format(" AutoId={0}", currUser.AutoID), tran) <= 0) { tran.Rollback(); apiResp.msg = "添加积分失败"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllSignIn.ContextResponse(context, apiResp); return; } if (!bllSignIn.Add(scoreRecord, tran)) { tran.Rollback(); apiResp.msg = "添加积分详情失败"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllSignIn.ContextResponse(context, apiResp); return; } } catch (Exception ex) { tran.Rollback(); apiResp.msg = "异常:" + ex.Message; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllSignIn.ContextResponse(context, apiResp); return; } tran.Commit(); apiResp.status = true; apiResp.msg = "签到成功"; } else { apiResp.msg = "已签到"; } bllSignIn.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string id = context.Request["id"]; string address = context.Request["address"]; string longitude = context.Request["longitude"]; string latitude = context.Request["latitude"]; string range = context.Request["range"]; //范围(米) string isdelete = context.Request["isdelete"]; string sueccessUrl = context.Request["successurl"]; string signintime = context.Request["signintime"]; string type = context.Request["type"]; string desc = context.Request["desc"]; string lotteryId = context.Request["lottery_id"]; string lotteryType = context.Request["lottery_type"]; string mondayScore = context.Request["monday_score"]; string tuesdayScore = context.Request["tuesday_score"]; string wednesdayScore = context.Request["wednesday_score"]; string thursdayScore = context.Request["thursday_score"]; string fridayScore = context.Request["friday_score"]; string saturdayScore = context.Request["saturday_score"]; string sundayScore = context.Request["sunday_score"]; string buttonColor = context.Request["button_color"]; string thumbnail = context.Request["thumbnail"]; string backgroundImg = context.Request["background_img"]; string havaSignImage = context.Request["have_sign_image"]; string noHavaSignImage = context.Request["no_have_sign_image"]; string retroactiveToOne = context.Request["retroactive_one"]; string retroactiveToTwo = context.Request["retroactive_two"]; string retroactiveToThree = context.Request["retroactive_three"]; string retroactiveToFour = context.Request["retroactive_four"]; string retroactiveToFive = context.Request["retroactive_five"]; string retroactiveToSix = context.Request["retroactive_six"]; string retroactiveToSeven = context.Request["retroactive_seven"]; string slideName = context.Request["slide_name"]; string mondayAds = context.Request["monday_ads"]; string tuesdayAds = context.Request["tuesday_ads"]; string wednesdayAds = context.Request["wednesday_ads"]; string thursdayAds = context.Request["thursday_ads"]; string fridayAds = context.Request["friday_ads"]; string saturdayAds = context.Request["saturday_ads"]; string sundayAds = context.Request["sunday_ads"]; SignInAddress signInAddress = bllSignIn.GetByKey <SignInAddress>("AutoID", id); if (signInAddress == null) { apiResp.code = (int)APIErrCode.PrimaryKeyIncomplete; apiResp.msg = "原地址未找到"; bllSignIn.ContextResponse(context, apiResp); return; } signInAddress.Address = address; signInAddress.Longitude = longitude; signInAddress.Latitude = latitude; signInAddress.Range = Convert.ToDouble(range); signInAddress.SignInSuccessUrl = sueccessUrl; signInAddress.SignInTime = signintime; signInAddress.Type = type; signInAddress.Description = desc; signInAddress.LotteryId = lotteryId; signInAddress.LotteryType = lotteryType; signInAddress.MondayScore = Convert.ToInt32(mondayScore); signInAddress.TuesdayScore = Convert.ToInt32(tuesdayScore); signInAddress.WednesdayScore = Convert.ToInt32(wednesdayScore); signInAddress.ThursdayScore = Convert.ToInt32(thursdayScore); signInAddress.FridayScore = Convert.ToInt32(fridayScore); signInAddress.SaturdayScore = Convert.ToInt32(saturdayScore); signInAddress.SundayScore = Convert.ToInt32(sundayScore); signInAddress.SundayScore = Convert.ToInt32(sundayScore); signInAddress.ButtonColor = buttonColor; signInAddress.Thumbnail = thumbnail; signInAddress.BackGroundImage = backgroundImg; signInAddress.HaveSignImage = havaSignImage; signInAddress.NoHaveSignImage = noHavaSignImage; signInAddress.RetroactiveToOne = Convert.ToInt32(retroactiveToOne); signInAddress.RetroactiveToTwo = Convert.ToInt32(retroactiveToTwo); signInAddress.RetroactiveToThree = Convert.ToInt32(retroactiveToThree); signInAddress.RetroactiveToFour = Convert.ToInt32(retroactiveToFour); signInAddress.RetroactiveToFive = Convert.ToInt32(retroactiveToFive); signInAddress.RetroactiveToSix = Convert.ToInt32(retroactiveToSix); signInAddress.RetroactiveToSeven = Convert.ToInt32(retroactiveToSeven); signInAddress.SlideGroupName = slideName; signInAddress.MondayAds = mondayAds; signInAddress.TuesdayAds = tuesdayAds; signInAddress.WednesdayAds = wednesdayAds; signInAddress.ThursdayAds = thursdayAds; signInAddress.FridayAds = fridayAds; signInAddress.SaturdayAds = saturdayAds; signInAddress.SundayAds = sundayAds; if (!string.IsNullOrWhiteSpace(isdelete)) { signInAddress.IsDelete = Convert.ToInt32(isdelete); } if (bllSignIn.Update(signInAddress)) { apiResp.status = true; apiResp.code = (int)APIErrCode.IsSuccess; apiResp.msg = "修改完成"; } else { apiResp.code = (int)APIErrCode.OperateFail; apiResp.msg = "修改失败"; } bllSignIn.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string keyWord = context.Request["keyword"]; string addressId = context.Request["address_id"]; string startTime = context.Request["start"]; string stopTime = context.Request["stop"]; string userId = context.Request["user_id"]; string status = context.Request["status"]; string isHide = context.Request["is_show"]; string isGroup = context.Request["is_group"]; string groupTime = context.Request["group_time"]; int totalCount = 0; List <SignInLog> list = bllSignIn.GetSignLogList(1, int.MaxValue, keyWord, addressId, out totalCount, startTime, stopTime, userId, status); SignInAddress signModel = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, addressId); List <SignInLog> sLogList = new List <SignInLog>(); if (!string.IsNullOrEmpty(groupTime)) { List <TimeList> timeList = JsonConvert.DeserializeObject <List <TimeList> >(signModel.SignInTime); foreach (TimeList temp in timeList) { list = list.Where(p => p.CreateDate >= temp.start && p.CreateDate <= temp.stop).OrderBy(p => p.AutoID).ToList(); } } apiResp.status = true; JArray returnList = new JArray(); if (!string.IsNullOrEmpty(signModel.SignInTime) && !string.IsNullOrEmpty(isGroup)) { var userList = list.Select(p => p.UserID).Distinct().ToList(); List <TimeList> timeList = JsonConvert.DeserializeObject <List <TimeList> >(signModel.SignInTime); for (var i = 0; i < userList.Count; i++) { string user = userList[i]; UserInfo userModel = bllUser.GetUserInfo(user); JToken jt = new JObject(); jt["wxnick_name"] = userModel.WXNickname; jt["name"] = userModel.TrueName; jt["phone"] = userModel.Phone; jt["head_img_url"] = userModel.WXHeadimgurl; for (int j = 0; j < timeList.Count; j++) { SignInLog log = list.Where(p => p.UserID == user && p.CreateDate >= timeList[j].start && p.CreateDate <= timeList[j].stop).OrderBy(p => p.AutoID).FirstOrDefault(); if (log != null) { jt["time" + j] = log.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"); jt["distance" + j] = log.Distance; } else { jt["time" + j] = ""; jt["distance" + j] = ""; } } returnList.Add(jt); } } else { if (!string.IsNullOrEmpty(isHide)) { var userList = list.Select(p => p.UserID).Distinct().ToList(); SignInLog log = new SignInLog(); for (int i = 0; i < userList.Count; i++) { string user = userList[i]; log = list.Where(p => p.UserID == user && p.Status == 1).OrderBy(p => p.AutoID).FirstOrDefault(); if (log == null) { log = list.Where(p => p.UserID == user && p.Status == 0).OrderBy(p => p.AutoID).FirstOrDefault(); } if (log == null) { continue; } UserInfo userModel = bllUser.GetUserInfo(user); JToken jt = new JObject(); jt["wxnick_name"] = userModel.WXNickname; jt["name"] = userModel.TrueName; jt["phone"] = userModel.Phone; jt["head_img_url"] = userModel.WXHeadimgurl; jt["createtime"] = log.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"); jt["remark"] = log.Remark; jt["distance"] = log.Distance; jt["status"] = log.Status; returnList.Add(jt); } } else { for (var i = 0; i < list.Count; i++) { UserInfo userModel = bllUser.GetUserInfo(list[i].UserID); JToken jt = new JObject(); jt["wxnick_name"] = userModel.WXNickname; jt["name"] = userModel.TrueName; jt["phone"] = userModel.Phone; jt["head_img_url"] = userModel.WXHeadimgurl; jt["createtime"] = list[i].CreateDate.ToString("yyyy-MM-dd HH:mm:ss"); jt["remark"] = list[i].Remark; jt["distance"] = list[i].Distance; jt["status"] = list[i].Status; returnList.Add(jt); } } } bllSignIn.ContextResponse(context, new { total = totalCount, rows = returnList }); }
public void ProcessRequest(HttpContext context) { string weekNameNumber = context.Request["week_name_date"]; string type = context.Request["type"]; string id = context.Request["id"]; string address = context.Request["address"]; UserInfo curUser = bllUser.GetCurrentUserInfo();// 当前用户 string msg = string.Empty; SignInAddress signInAddress = bllSignIn.Get <SignInAddress>(string.Format(" WebsiteOwner='{0}' AND Type='Sign' ", bllSignIn.WebsiteOwner)); //补签积分数组 int[] retroactives = new int[] { signInAddress.RetroactiveToOne, signInAddress.RetroactiveToTwo, signInAddress.RetroactiveToThree, signInAddress.RetroactiveToFour, signInAddress.RetroactiveToFive, signInAddress.RetroactiveToSix, signInAddress.RetroactiveToSeven }; DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = GetMondayDate(dt); string starkWeekStr = startWeek.ToString("yyyy/MM/dd"); //本周周一 int count = 0; ZentCloud.ZCBLLEngine.BLLTransaction tran = new ZCBLLEngine.BLLTransaction(); try { SignInLog log = bllSignIn.Get <SignInLog>(string.Format(" WebsiteOwner='{0}' AND Type='Sign' AND UserId='{1}' AND SignInDate='{2}'", bllSignIn.WebsiteOwner, curUser.UserID, weekNameNumber), tran); if (log != null) { apiResp.msg = "已存在记录"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.IsNotFound; bllSignIn.ContextResponse(context, apiResp); return; } count = bllSignIn.GetCount <SignInLog>(string.Format(" WebsiteOwner='{0}' AND Status=1 AND SignInDate>='{1}' AND UserId='{2}' and Type='Sign' ", bllSignIn.WebsiteOwner, starkWeekStr, curUser.UserID)); if (count > 6) { count = 6; } int score = retroactives[count]; if (curUser.TotalScore < score) { apiResp.msg = "积分不足"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllSignIn.ContextResponse(context, apiResp); return; } UserScoreDetailsInfo scoreRecord = new UserScoreDetailsInfo(); scoreRecord.UserID = curUser.UserID; scoreRecord.AddTime = dt; scoreRecord.TotalScore = curUser.TotalScore; scoreRecord.Score = -score; scoreRecord.ScoreType = "SignIn"; scoreRecord.AddNote = "补签"; scoreRecord.RelationID = bllSignIn.GetCurrUserID(); scoreRecord.WebSiteOwner = bllSignIn.WebsiteOwner; scoreRecord.Ex6 = "补签扣除" + score + "积分,日期:" + (string.IsNullOrEmpty(weekNameNumber) ? dt.ToString("yyyy/MM/dd") : weekNameNumber); //签到积分数据 int[] scores = new int[] { signInAddress.SundayScore, signInAddress.MondayScore, signInAddress.TuesdayScore, signInAddress.WednesdayScore, signInAddress.ThursdayScore, signInAddress.FridayScore, signInAddress.SaturdayScore }; log = new SignInLog(); log.AddressId = Convert.ToInt32(id); log.Address = address; log.WebsiteOwner = bllSignIn.WebsiteOwner; log.UserID = curUser.UserID; log.CreateDate = dt; log.Remark = "补签"; log.Type = type; log.SignInDate = weekNameNumber; log.Status = 1; int addScore = scores[Convert.ToInt32(dt.DayOfWeek)]; if (!string.IsNullOrEmpty(weekNameNumber)) { short d = Convert.ToInt16((DateTime.Parse(weekNameNumber)).DayOfWeek.ToString("D")); addScore = scores[d]; } log.Ex1 = "补签获得" + addScore + "积分,扣除" + score + "积分,日期:" + (string.IsNullOrEmpty(weekNameNumber) ? dt.ToString("yyyy/MM/dd") : weekNameNumber); UserScoreDetailsInfo scoreRecord1 = new UserScoreDetailsInfo(); scoreRecord1.UserID = curUser.UserID; scoreRecord1.AddTime = dt; scoreRecord1.TotalScore = curUser.TotalScore; scoreRecord1.Score = addScore; scoreRecord1.ScoreType = "SignIn"; scoreRecord1.AddNote = "补签"; scoreRecord1.RelationID = bllSignIn.GetCurrUserID(); scoreRecord1.WebSiteOwner = bllSignIn.WebsiteOwner; scoreRecord1.Ex6 = "补签获得" + addScore + "积分,日期:" + (string.IsNullOrEmpty(weekNameNumber) ? dt.ToString("yyyy/MM/dd") : weekNameNumber); if (bllUser.Update(curUser, string.Format(" TotalScore=TotalScore+({0})", (addScore - score)), string.Format(" WebsiteOwner='{0}' AND AutoID={1}", bllUser.WebsiteOwner, curUser.AutoID), tran) <= 0) { tran.Rollback(); apiResp.msg = "补签失败"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllUser.ContextResponse(context, apiResp); return; } if (!bllSignIn.Add(scoreRecord, tran)) { tran.Rollback(); apiResp.msg = "积分详情添加失败"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllUser.ContextResponse(context, apiResp); return; } if (!bllSignIn.Add(log, tran)) { tran.Rollback(); apiResp.msg = "添加签到数据失败"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllUser.ContextResponse(context, apiResp); return; } //if (bllSignIn.Update(curUser, string.Format(" TotalScore=TotalScore+{0}", addScore), string.Format(" WebsiteOwner='{0}' AND AutoId={1}", bllSignIn.WebsiteOwner, curUser.AutoID), tran) <= 0) //{ // tran.Rollback(); // apiResp.msg = "增加积分失败"; // apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; //} if (!bllSignIn.Add(scoreRecord1, tran)) { tran.Rollback(); apiResp.msg = "积分详情添加失败"; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllUser.ContextResponse(context, apiResp); return; } tran.Commit(); msg = retroactives[6].ToString(); if (count + 1 < 6) { msg = retroactives[count + 1].ToString(); } } catch (Exception ex) { tran.Rollback(); apiResp.msg = "异常" + ex.Message; apiResp.code = (int)BLLJIMP.Enums.APIErrCode.OperateFail; bllUser.ContextResponse(context, apiResp); return; } apiResp.status = true; apiResp.msg = msg; bllUser.ContextResponse(context, apiResp); }
public void ProcessRequest(HttpContext context) { string addressId = context.Request["address"]; string isGroup = context.Request["is_group"]; string isShow = context.Request["is_show"]; string startTime = context.Request["start"]; string stopTime = context.Request["stop"]; string userId = context.Request["user_id"]; int totalCount = 0; List <SignInLog> list = bllSignIn.GetSignLogList(1, int.MaxValue, "", addressId, out totalCount, startTime, stopTime, userId, ""); SignInAddress signModel = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, addressId); apiResp.status = true; DataTable dt = new DataTable(); dt.Columns.Add("微信昵称"); dt.Columns.Add("姓名"); dt.Columns.Add("手机"); if (!string.IsNullOrEmpty(signModel.SignInTime) && !string.IsNullOrEmpty(isGroup)) { var userList = list.Select(p => p.UserID).Distinct().ToList(); List <TimeList> timeList = JsonConvert.DeserializeObject <List <TimeList> >(signModel.SignInTime); for (int i = 0; i < timeList.Count; i++) { dt.Columns.Add(timeList[i].name); dt.Columns.Add(timeList[i].name + "签到距离"); } for (var i = 0; i < userList.Count; i++) { DataRow dr = dt.NewRow(); string user = userList[i]; UserInfo userModel = bllUser.GetUserInfo(user); dr["微信昵称"] = userModel.WXNickname; dr["姓名"] = userModel.TrueName; dr["手机"] = userModel.Phone; for (int j = 0; j < timeList.Count; j++) { SignInLog log = list.Where(p => p.UserID == user && p.CreateDate >= timeList[j].start && p.CreateDate <= timeList[j].stop).OrderBy(p => p.AutoID).FirstOrDefault(); if (log != null) { dr[timeList[j].name] = log.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"); dr[timeList[j].name + "签到距离"] = log.Distance; } else { dr[timeList[j].name] = ""; dr[timeList[j].name + "签到距离"] = ""; } } dt.Rows.Add(dr); } } else { dt.Columns.Add("签到时间"); dt.Columns.Add("说明"); dt.Columns.Add("距离"); if (!string.IsNullOrEmpty(isShow)) { var userList = list.Select(p => p.UserID).Distinct().ToList(); SignInLog log = new SignInLog(); for (int i = 0; i < userList.Count; i++) { string user = userList[i]; log = list.Where(p => p.UserID == user && p.Status == 1).OrderBy(p => p.AutoID).FirstOrDefault(); if (log == null) { log = list.Where(p => p.UserID == user && p.Status == 0).OrderBy(p => p.AutoID).FirstOrDefault(); } if (log == null) { continue; } UserInfo userModel = bllUser.GetUserInfo(user); DataRow dr = dt.NewRow(); dr["微信昵称"] = userModel.WXNickname; dr["姓名"] = userModel.TrueName; dr["手机"] = userModel.Phone; dr["签到时间"] = list[i].CreateDate.ToString("yyyy-MM-dd HH:mm:ss"); dr["说明"] = list[i].Remark; dr["距离"] = list[i].Distance; dt.Rows.Add(dr); } } else { for (var i = 0; i < list.Count; i++) { UserInfo userModel = bllUser.GetUserInfo(list[i].UserID); DataRow dr = dt.NewRow(); dr["微信昵称"] = userModel.WXNickname; dr["姓名"] = userModel.TrueName; dr["手机"] = userModel.Phone; dr["签到时间"] = list[i].CreateDate.ToString("yyyy-MM-dd HH:mm:ss"); dr["说明"] = list[i].Remark; dr["距离"] = list[i].Distance; dt.Rows.Add(dr); } } } DataLoadTool.ExportDataTable(dt, string.Format("{0}_{1}_data.xls", signModel.Address, DateTime.Now.ToString())); return; }
/// <summary> /// 智能签到 /// </summary> /// <param name="rows"></param> /// <param name="page"></param> /// <param name="longitude"></param> /// <param name="latitude"></param> /// <param name="websiteOwner"></param> /// <param name="total"></param> /// <returns></returns> public bool AddSignInLogAuto(string userId, double longitude, double latitude, string websiteOwner, out string errmsg) { errmsg = ""; StringBuilder sbSql = new StringBuilder(); sbSql.AppendFormat(" 1=1 "); if (!string.IsNullOrWhiteSpace(websiteOwner)) { sbSql.AppendFormat(" and WebsiteOwner='{0}' ", websiteOwner); } List <SignInAddress> list = GetList <SignInAddress>(sbSql.ToString()); if (list.Count == 0) { errmsg = "请设置签到地点"; return(false); } for (int i = 0; i < list.Count; i++) { list[i].Distance = GeolocationHelper.ComputeDistance(longitude, latitude , Convert.ToDouble(list[i].Longitude), Convert.ToDouble(list[i].Latitude)); } List <SignInAddress> tempList = list.Where(p => p.Distance <= p.Range).ToList(); SignInLog signInLog = new SignInLog(); SignInAddress nearestAddress = new SignInAddress(); signInLog.UserID = userId; signInLog.WebsiteOwner = websiteOwner; signInLog.IP = ZentCloud.Common.MySpider.GetClientIP(); signInLog.CreateDate = DateTime.Now; signInLog.Longitude = longitude.ToString(); signInLog.Latitude = latitude.ToString(); string distanceString = string.Empty; if (tempList.Count > 0) { nearestAddress = tempList.OrderBy(p => p.Distance).FirstOrDefault(); signInLog.AddressId = nearestAddress.AutoID; signInLog.Address = nearestAddress.Address; signInLog.Distance = nearestAddress.Distance; signInLog.Status = 1; distanceString = nearestAddress.Distance > 1000 ? (nearestAddress.Distance / 1000).ToString("f2") + "千米" : nearestAddress.Distance.ToString("f2") + "米"; signInLog.Remark = "签到成功,距离[" + nearestAddress.Address + "]" + distanceString; } else { nearestAddress = list.OrderBy(p => p.Distance).FirstOrDefault(); signInLog.AddressId = nearestAddress.AutoID; signInLog.Address = nearestAddress.Address; signInLog.Distance = nearestAddress.Distance; signInLog.Status = 0; distanceString = nearestAddress.Distance > 1000 ? (nearestAddress.Distance / 1000).ToString("f2") + "千米" : nearestAddress.Distance.ToString("f2") + "米"; double moreDistance = signInLog.Distance - nearestAddress.Range; string moreDistanceString = string.Empty; moreDistanceString = moreDistance > 1000 ? (moreDistance / 1000).ToString("f2") + "千米" : moreDistance.ToString("f2") + "米"; signInLog.Remark = "签到失败,距离最近签到地址[" + nearestAddress.Address + "]" + distanceString + ",超出有效距离" + moreDistanceString; } if (!Add(signInLog)) { errmsg = "签到出错"; return(false); } errmsg = signInLog.Remark; return(signInLog.Status == 1); }