Beispiel #1
0
        private tbl_trone_orderItem CreateDefaultTrone()
        {
            lock (locker)
            {
                var ret = tbl_trone_orderItem.GetCacheUnkowOrder(Trone.id);
                if (ret != null)
                {
                    WriteTrackLog("CreateDefaultTrone,其它线程已经创建");
                    return(ret);
                }

                ret                  = new tbl_trone_orderItem();
                ret.cp_id            = 34; //未知CP的ID
                ret.create_date      = DateTime.Now;
                ret.disable          = false;
                ret.is_dynamic       = false;
                ret.is_unknow        = true;
                ret.order_num        = "*";
                ret.order_trone_name = "未分配指令";
                ret.push_url_id      = 47; //未知CP推送URL
                ret.trone_id         = Trone.id;
                ret.SaveToDatabase(dBase);
                WriteTrackLog("CreateDefaultTrone,创建成功");
                return(ret);
            }
        }
    protected string GetHoldInfo(object data)
    {
        n8wan.Public.Logical.IHold_DataItem hold = null;

        tbl_trone_orderItem t = (tbl_trone_orderItem)data;
        string html           = string.Empty;

        if (t.hold_is_Custom)
        {
            hold = t;
            html = "<span class='red'>[自定义]</span>";
        }
        else
        {
            hold = Urls.Find(e => e.id == t.push_url_id);
            if (hold == null)
            {
                return("[丢失]");
            }
        }
        html += string.Format("{0}%", hold.hold_percent);
        if (hold.hold_amount > 0)
        {
            html += string.Format(",限额{0}", hold.hold_amount);
        }

        return(html);
    }
    private string SaveData()
    {
        bool isNew = Row == null;

        if (isNew)
        {
            Row          = new tbl_trone_orderItem();
            Row.trone_id = trone_id;
            Row.cp_id    = cpId;

            Row.create_date = DateTime.Now;
        }

        if (rblPush_Url_Id.SelectedIndex == -1)
        {
            return("请选择同步地址");
        }

        Row.order_num        = txtorder_num.Text;
        Row.order_trone_name = txtorder_trone_name.Text;
        Row.is_dynamic       = chkdynamic.Checked;
        Row.push_url_id      = int.Parse(rblPush_Url_Id.SelectedValue);
        Row.disable          = chkDisable.Checked;
        Row.hold_is_Custom   = chkIsCustom.Checked;
        decimal dec;

        if (string.IsNullOrEmpty(txtHold_amount.Text))
        {
            dec = 0;
        }
        else if (!decimal.TryParse(txtHold_amount.Text, out dec))
        {
            return("最大单日同步金额设置错误");
        }
        Row.hold_amount = dec;
        int per;

        if (string.IsNullOrEmpty(txtHold_precent.Text))
        {
            per = 0;
        }
        else if (!int.TryParse(txtHold_precent.Text, out per))
        {
            return("扣量比设置错误");
        }
        Row.hold_percent = per;



        try
        {
            Row.SaveToDatabase(dBase);
        }
        catch (Exception ex)
        {
            return("保存出错\n" + ex.Message);
        }
        return(null);
    }
Beispiel #4
0
    private void SaveData()
    {
        var ids    = Request["troneId"].Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
        var cp_id  = int.Parse(rblCpId.SelectedValue);
        var url_id = int.Parse(Request["url_id"]);

        foreach (var id in ids)
        {
            var m = new tbl_trone_orderItem();
            m.cp_id            = cp_id;
            m.push_url_id      = url_id;
            m.create_date      = DateTime.Now;
            m.is_dynamic       = Request["dynamic_" + id] == "1";
            m.order_num        = Request["CPTroneOrder_" + id];
            m.order_trone_name = Request["CPTroneName_" + id];
            m.trone_id         = int.Parse(id);
            m.SaveToDatabase(dBase);
        }
    }
    private void LoadDefault()
    {
        var idStr = Request["id"];

        if (string.IsNullOrEmpty(idStr))
        {
            InitNew();
            return;
        }

        if (int.TryParse(idStr, out id))
        {
            Row = tbl_trone_orderItem.GetRowById(dBase, id);
        }

        if (Row == null)
        {
            form1.Controls.Clear();
            form1.InnerHtml = "<h1>ID无效!</h1>";
            return;
        }
        mv.ActiveViewIndex = 1;
        if (IsPostBack)
        {
            return;
        }
        trone_id = Row.trone_id;
        cpId     = Row.cp_id;

        txtorder_num.Text        = Row.order_num;
        txtorder_trone_name.Text = Row.order_trone_name;
        chkdynamic.Checked       = Row.is_dynamic;
        chkDisable.Checked       = Row.disable;
        txtHold_amount.Text      = Row.hold_amount.ToString();
        txtHold_precent.Text     = Row.hold_percent.ToString();
        chkIsCustom.Checked      = Row.hold_is_Custom;
        InitNew();
        InitPushUrl();
    }
Beispiel #6
0
        private tbl_trone_orderItem MatchTroneOrder(n8wan.Public.Logical.ISMS_DataItem sms)
        {
            var _allCfg = LightDataModel.tbl_trone_orderItem.QueryByTroneIdWithCache(dBase, sms.trone_id);

            if (_allCfg.Count() == 0)
            {
                return(null);
            }
            tbl_trone_orderItem tOrder = null;
            var matchCount             = 0;
            var msg = sms.ori_order;

            foreach (var m in _allCfg)
            {
                if (m.is_unknow)
                {
                    continue;
                }
                if (!IsMatch(m, msg))
                {
                    continue;
                }

                if (tOrder == null)
                {
                    tOrder = m;
                }
                matchCount++;
            }

            if (matchCount != 1)
            {
                return(null);
            }
            return(tOrder);
        }
Beispiel #7
0
        public override bool DoPush()
        {
            //bool isRecord = false;
            tbl_trone_orderItem defCfg = null;

            if (PushObject.cp_id > 0 && PushObject.cp_id != 34)
            {
                defCfg = tbl_trone_orderItem.GetRowByIdWithCache(dBase, PushObject.trone_order_id);
                if (defCfg == null)
                {
                    return(SetErrorMesage("已经绑定的渠道业务信息丢失"));
                }
                base.SetConfig(defCfg);
                return(base.DoPush());
            }

            tbl_trone_orderItem tOrder = null;
            int    matchCount          = 0;
            string rel = PushObject.GetValue(EPushField.Msg);

            foreach (var m in _allCfg)
            {
                if (m.is_unknow)
                {
                    if (defCfg != null)
                    {
                        base.WriteLog(-3, string.Format("存在多个默认CP! cfgId:{0} linkid:{1}", m.id.ToString(), PushObject.GetValue(EPushField.LinkID)));
                    }
                    defCfg = m;
                    continue;
                }
                if (!IsMatch(m, rel))
                {
                    continue;
                }

                if (tOrder == null)
                {
                    tOrder = m;
                }
                else
                {
                    base.WriteLog(-3, string.Format("配置有冲突! cfgId:{0} linkid:{1}", m.id.ToString(), PushObject.GetValue(EPushField.LinkID)));
                    WriteTrackLog(string.Format("配置有冲突! cfgId:{0} linkid:{1}", m.id.ToString(), PushObject.GetValue(EPushField.LinkID)));
                    continue;
                }
                //isRecord = true;
                matchCount++;
            }
            if (matchCount > 1)
            {
                SetErrorMesage(string.Format("匹配到{0}个CP业务", matchCount));
                return(false);//匹配到多个渠道
            }

            if (tOrder != null)
            {//匹配到一个渠道
                base.SetConfig(tOrder);
                base.DoPush();
                return(true);
            }

            if (PushObject.cp_id == 34)
            {
                WriteTrackLog("CP_id=34???");
                return(true);
            }
            if (defCfg == null)
            {
                defCfg = CreateDefaultTrone();
            }
            base.SetConfig(defCfg);
            base.DoPush();
            WriteTrackLog("未匹配CP");
            return(true);
        }