示例#1
0
        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));
        }
示例#2
0
        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);
        }
示例#3
0
        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;
            }
        }
示例#4
0
文件: BLLSignIn.cs 项目: uvbs/mmp
        /// <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);
        }
示例#5
0
 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);
         }
     }
 }
示例#6
0
        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);
            //}
        }
示例#7
0
文件: Get.ashx.cs 项目: uvbs/mmp
        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);
        }
示例#8
0
文件: SignIn.aspx.cs 项目: uvbs/mmp
 protected void Page_Load(object sender, EventArgs e)
 {
     addressId = int.Parse(Request["addressId"]);
     model     = bllSignIn.GetSignInAddress(bllSignIn.WebsiteOwner, Request["addressId"]);
 }
示例#9
0
        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);
        }
示例#10
0
        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);
        }
示例#11
0
文件: List.ashx.cs 项目: uvbs/mmp
        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
            });
        }
示例#12
0
        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);
        }
示例#13
0
文件: Export.ashx.cs 项目: uvbs/mmp
        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;
        }
示例#14
0
文件: BLLSignIn.cs 项目: uvbs/mmp
        /// <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);
        }