コード例 #1
0
ファイル: sw.cs プロジェクト: lxyandy66/x.yfj
        protected override XResp Execute()
        {
            var c = DB.x_collect.FirstOrDefault(o => o.coop_id == coopid && o.user_id == us.id);
            var r = new XResp()
            {
                msg = ""
            };

            if (c == null)
            {
                c = new x_collect()
                {
                    coop_id = coopid,
                    time    = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                    user_id = us.id
                };
                DB.x_collect.InsertOnSubmit(c);
                r.msg = c.id + "";
            }
            else
            {
                DB.x_collect.DeleteOnSubmit(c);
            }

            SubmitDBChanges();

            return(r);
        }
コード例 #2
0
ファイル: closing.cs プロジェクト: orapow/x.yc
        protected override XResp Execute()
        {
            var r   = new XResp();
            var ods = DB.x_order.Where(o => o.iscancel == false && o.isclosing == false && o.isrefund == false && o.status == 4 && o.sign_time >= DateTime.Now.AddDays(-cfg.refdays)).Take(5);

            if (ods.Count() == 0)
            {
                return(r);
            }

            foreach (var o in ods)
            {
                o.isclosing = true;
                allotBonus(o.x_user.invter, 1, o.yf_amount.Value);

                var log = new x_lottery_log()
                {
                    amount  = o.yf_amount.Value * cfg.brate,
                    ctime   = DateTime.Now,
                    oamount = o.yf_amount,
                    rate    = cfg.brate
                };

                o.x_lottery_log.Add(log);

                cfg.pool_lott += o.yf_amount.Value * cfg.brate;
                cfg.pool_fund += o.yf_amount.Value * cfg.mrate;
                cfg.od_count++;
                cfg.od_amount += o.yf_amount.Value;
            }

            Config.SaveConfig(cfg);
            SubmitDBChanges();
            return(new XResp());
        }
コード例 #3
0
        protected override XResp Execute()
        {
            var rsp = new XResp();
            var lot = DB.x_lottery.FirstOrDefault(o => (o.ltime == null && o.runtp == 1) || o.runtp == 2);

            if (lot == null)
            {
                return(rsp);
            }

            var rules = lot.rules.Split(',');
            var match = 0;

            foreach (var rule in rules)
            {
                var r = rule.Split('-');
                if (r[0] == "1" && (lot.ltime == null || lot.ltime.Value.Date <= DateTime.Now.AddDays(-int.Parse(r[1])).Date))
                {
                    match = 1; break;
                }
                if (r[0] == "2" && cfg.od_count >= int.Parse(r[1]))
                {
                    match = 2; break;
                }
                if (r[0] == "3" && cfg.od_amount >= int.Parse(r[1]))
                {
                    match = 3; break;
                }
            }

            if (match == 0)
            {
                return(rsp);
            }
            RunLot(lot, match);

            cfg.od_amount = 0;
            cfg.od_count  = 0;
            Config.SaveConfig(cfg);

            return(rsp);
        }
コード例 #4
0
ファイル: XApp.cs プロジェクト: orapow/yt
        public void ProcessRequest(HttpContext c)
        {
            var   v    = c.Request.QueryString["v"].ToLower().Replace("/", ".");
            var   t    = int.Parse(c.Request.QueryString["t"]);
            var   data = (byte[])null;
            XFace face = null;
            var   assb = Assembly.Load("X.App");

            try
            {
                face = assb.CreateInstance(String.Format("X.App.{0}.{1}", (t == 1 ? "Views" : "Apis"), v)) as XFace;
                if (face == null)
                {
                    throw new XExcep((t == 1 ? "0x0001" : "0x0002"), v);
                }
                face.Init(c);
                data = face.GetResponse();
            }
            catch (XExcep fe)
            {
                var rsp = new XResp(fe.ErrCode, fe.ErrMsg);
                if (t == 1)
                {
                    var view = assb.CreateInstance("X.App.Views.com.err") as Views.View;
                    var html = "<html><head><meta http-equiv=\"Content-Type]\" content=\"text/html;charset=utf-8\" /></head><body>{body}</body></html>";
                    if (view == null)
                    {
                        data = Encoding.UTF8.GetBytes(html.Replace("{body}", Serialize.ToJson(rsp)));
                    }
                    else
                    {
                        view.Init(c);
                        view.dict.Add("rsp", rsp);
                        view.dict.Add("backurl", Secret.ToBase64(c.Request.RawUrl));
                        data = view.GetResponse();
                    }
                }
                else
                {
                    data = Encoding.UTF8.GetBytes(Serialize.ToJson(rsp));
                }
                if (fe.ErrCode != "0x0001")
                {
                    Loger.Error(Serialize.ToJson(rsp));
                }
            }
            catch (Exception ex)
            {
                if (ex is ThreadAbortException)
                {
                    return;
                }
                var resp = new XResp(Guid.NewGuid().ToString(), ex.Message);
                data = Encoding.UTF8.GetBytes(Serialize.ToJson(resp) + "\r\n" + Serialize.ToJson(ex));
                Loger.Fatal(GetType(), ex);
            }

            if (data != null)
            {
                c.Response.Clear();
                c.Response.HeaderEncoding  = Encoding.UTF8;
                c.Response.ContentEncoding = Encoding.UTF8;
                c.Response.OutputStream.Write(data, 0, data.Length);
                c.Response.End();
            }
        }