/// <summary>
            /// 发货指令
            /// </summary>
            /// <param name="hw_contract_no">华为合同号,即PO单号</param>
            /// <param name="items">物料数组,结构{
            /// PROD_CODE_SALE:"华为产品Item,即待发货的华为物料编码,必填,来自PO单",
            /// PROD_CODE_CUST:"客户Item,即中邮的物料编码,非必填,来自PO单,不填时默认为空",
            /// CUST_PURCHASE_ITEM:"客户采购凭证号,由客户定义,匹配到客户采购凭证的唯一一行数据。后面发货状态查询时可以回传,非必填",
            /// CUST_PURCHASE_QUANTITY:"客户采购数量,必填",
            /// CUST_PURCHASE_UNIT_PRICE:"客户采购单价(含税人民币),非必填",
            /// SHIPPING_TO_WAREHOUSE_ID:"目标仓库编码(唯一标识)。编码为中邮的编码,必填",
            /// COMMENTS:"备注,非必填",
            /// FREE_TEXT:"扩展文本信息,用于中邮保存自己的资料信息,长度不超过1000个字符,可以保存发货单,分货单号等资料信息,火猫发货涨停查询时可以回传,非必填"
            /// }</param>
            /// <returns>如果缺少参数则返回null</returns>
            public string CreatDelivery(string hw_contract_no, params object[] items)
            {
                if (string.IsNullOrEmpty(hw_contract_no))
                {
                    return(null);
                }
                if (items == null && items.Length <= 0)
                {
                    return(null);
                }

                var url  = $"{Server_URL}/delivery/create";
                var data = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);

                data.USER_ID          = User_ID;
                data.CUST_ID          = Cust_ID;
                data.HW_CONTRACT_NO   = hw_contract_no;
                data.CUST_CONTRACT_NO = null;
                var list = new List <object>();

                foreach (var item in items)
                {
                    list.Add(FrameDLRObject.CreateInstance(item, FrameDLRFlags.SensitiveCase));
                }
                data.ITEMS = list;

                return(Send(url, data));
            }
Esempio n. 2
0
        private dynamic GetSql(UnitParameter arg)
        {
            var rtn = FrameDLRObject.CreateInstance();

            rtn.sql = ComFunc.nvl(arg["___host_sql___"]);
            return(rtn);
        }
Esempio n. 3
0
            /// <summary>
            /// 呼叫js脚本
            /// </summary>
            /// <param name="scriptstr"></param>
            /// <param name="input"></param>
            /// <param name="outputkey"></param>
            /// <param name="others"></param>
            /// <returns></returns>
            public object Call(string scriptstr, FrameDLRObject input, string outputkey, params KeyValuePair <string, object>[] others)
            {
                try
                {
                    var jse = _logic.CallContext_ResourceManage.CreateInstance <HostJs>();
                    input = input == null?FrameDLRObject.CreateInstance() : input;

                    var lp = others.ToList();
                    lp.Add(new KeyValuePair <string, object>("input", input.ToDictionary()));
                    jse.Evaluate(scriptstr, lp.ToArray());
                    var obj = jse.GetOutObject(outputkey);
                    if (obj is Dictionary <string, object> )
                    {
                        return(FrameDLRObject.CreateInstance((Dictionary <string, object>)obj));
                    }
                    else
                    {
                        return(obj);
                    }
                }
                catch (JavascriptException jex)
                {
                    var strmsg = new StringBuilder();
                    strmsg.AppendLine(jex.V8SourceLine);
                    strmsg.AppendLine(jex.V8StackTrace);
                    throw new Exception(strmsg.ToString(), jex);
                }
            }
Esempio n. 4
0
        private object copyOrderItem(dynamic source)
        {
            var rtn = FrameDLRObject.CreateInstance();

            rtn.order_no         = source.order_no;
            rtn.order_region     = source.order_region;
            rtn.region_name      = source.region_name;
            rtn.area_num         = source.area_num;
            rtn.area_name        = source.area_name;
            rtn.build_time       = source.build_time;
            rtn.order_deliv_time = source.order_deliv_time;
            rtn.build_name       = source.build_name;
            rtn.build_tel        = source.build_tel;
            rtn.dept_code        = source.dept_code;
            rtn.dept_name        = source.dept_name;
            rtn.dist_code        = source.dist_code;
            rtn.dist_name        = source.dist_name;
            rtn.order_money      = source.order_money;
            rtn.deliv_name       = source.deliv_name;
            rtn.deliv_mobile     = source.deliv_mobile;
            rtn.deliv_address    = source.deliv_address;
            rtn.is_meeting       = source.is_meeting;
            rtn.meeting_name     = source.meeting_name;
            rtn.pay_mode         = source.pay_mode;
            rtn.all_pay_money    = source.all_pay_money;
            rtn.order_status     = "HZTDFH";//待发货
            rtn.hongxun_order_no = source.hongxun_order_no;

            return(rtn);
        }
Esempio n. 5
0
        public virtual object QueryByPage(Dictionary <string, object> sqlobj, int topage, int count_per_page, Dictionary <string, object> data)
        {
            if (sqlobj == null)
            {
                sqlobj = new Dictionary <string, object>();
            }
            var dsql = FrameDLRObject.CreateInstance(sqlobj);


            _up.SetValue("___host_sql___", ComFunc.nvl(dsql.sql));
            _up.SetValue("___host_orderby___", ComFunc.nvl(dsql.orderby));
            _up.SetValue("___host_pre___", ComFunc.nvl(dsql.presql));
            _up.SetValue("___host_after___", ComFunc.nvl(dsql.aftersql));
            if (data != null)
            {
                foreach (var item in data)
                {
                    _up.SetValue(item.Key, item.Value);
                }
            }
            _up.Count_Of_OnePage = count_per_page;
            _up.ToPage           = topage;
            var udc  = _logic.DB.QueryByPage <HostQueryByPageUnit>(_up, "");
            var list = udc.QueryData <FrameDLRObject>();

            list = list == null ? new List <FrameDLRObject>() : list;
            var rtn = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);

            rtn.data             = list;
            rtn.TotalPage        = udc.TotalPage;
            rtn.TotalRow         = udc.TotalRow;
            rtn.Count_Of_OnePage = udc.Count_Of_OnePage;
            rtn.CurrentPage      = udc.CurrentPage;
            return(((FrameDLRObject)rtn).ToDictionary());
        }
Esempio n. 6
0
        /// <summary>
        /// 登入时通过Code获取到登入人的UserID
        /// </summary>
        /// <param name="code">传入,Code</param>
        /// <param name="userTicket">传出,ticketId可以让你在7200s之内获取更加详细的用户信息</param>
        /// <param name="deviceId">传出,登入用设备ID</param>
        /// <param name="openId">非企业成员OpenID</param>
        /// <returns></returns>
        public string GetUserIdByCode(string code, ref string userTicket, ref string deviceId, ref string openId)
        {
            /*  企业成员rtn
             *      {
             *         "errcode": 0,
             *         "errmsg": "ok",
             *         "UserId":"USERID",
             *         "DeviceId":"DEVICEID",
             *         "user_ticket": "USER_TICKET",
             *         "expires_in":7200
             *      }
             */
            /*非企业成员Rtn
             *  {
             *    "errcode": 0,
             *    "errmsg": "ok",
             *    "OpenId":"OPENID",
             *    "DeviceId":"DEVICEID"
             *  }
             */
            FrameDLRObject obj = CallWeixinServer(string.Format(GetUserTicketUrl, Access_Token, code));

            GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "***********************" + obj.ToJSONString());
            dynamic dobj   = obj;
            string  userId = ComFunc.nvl(dobj.userid);

            deviceId   = ComFunc.nvl(dobj.DeviceId);
            userTicket = ComFunc.nvl(dobj.user_ticket);
            openId     = ComFunc.nvl(dobj.OpenId);
            return(userId);
        }
Esempio n. 7
0
        public new bool delete(string id)
        {
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();

            BeginTrans();

            DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Delete',
$table : 'Map_RoleFunction',
$where:{
        RoleUID:{0}
    }
}", id));
            DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Delete',
$table : 'Map_LoginRole',
$where:{
        RoleUID:{0}
    }
}", id));

            DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Delete',
$table : 'RoleInfo',
$where:{
        RoleUID:{0}
    }
}", id));
            CommitTrans();
            SetRefreshCacheRoute($"/role/{id}", "/role");
            return(true);
        }
        /// <summary>
        /// 执行update操作
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <param name="source"></param>
        public virtual void DoUpdate <TSource>(LinqDLR2Sql <TSource> source, object columns)
        {
            if (columns == null)
            {
                throw new ArgumentNullException("columns");
            }
            if (CurrentOperation == LinqDLR2SQLOperation.SelectJoin ||
                CurrentOperation == LinqDLR2SQLOperation.SelectMany)
            {
                throw new NotSupportedException("当前模式不支持Update操作");
            }

            FrameDLRObject columnsobj = FrameDLRObject.CreateInstance(columns);
            var            columnsstr = "";

            foreach (var key in columnsobj.Keys)
            {
                columnsstr += $"{string.Format(SqlFlags.Column_Quatation, key)}={Convert2Express(columnsobj.GetValue(key))},";
            }
            columnsstr = columnsstr == "" ? "" : columnsstr.Substring(0, columnsstr.Length - 1);

            var sql       = "UPDATE {tables} SET {columns} {where}";
            var alianname = string.IsNullOrEmpty(source.AliasName) ? "" : $"{source.AliasName}";
            var tables    = source.Table;

            var where  = (Lastwhere == null || string.IsNullOrEmpty(Lastwhere.Result)) ? "" : $"WHERE {Lastwhere.Result.Replace($"{alianname}.", "")}";
            CurrentSQL = sql.Replace("{tables}", tables).Replace("{columns}", columnsstr).Replace("{where}", where);
        }
        /// <summary>
        /// 执行Insert操作
        /// </summary>
        /// <typeparam name="TSource"></typeparam>
        /// <param name="source"></param>
        /// <param name="columns"></param>
        public virtual void DoInsert <TSource>(LinqDLR2Sql <TSource> source, object columns)
        {
            if (columns == null)
            {
                throw new ArgumentNullException("columns");
            }
            if (CurrentOperation == LinqDLR2SQLOperation.SelectJoin ||
                CurrentOperation == LinqDLR2SQLOperation.SelectMany)
            {
                throw new NotSupportedException("当前模式不支持INSERT操作");
            }

            FrameDLRObject columnsobj = FrameDLRObject.CreateInstance(columns);
            var            columnsstr = "";
            var            valuestr   = "";

            foreach (var key in columnsobj.Keys)
            {
                columnsstr += $"{string.Format(SqlFlags.Column_Quatation, key)},";
                valuestr   += $"{Convert2Express(columnsobj.GetValue(key))},";
            }
            columnsstr = columnsstr == "" ? "" : columnsstr.Substring(0, columnsstr.Length - 1);
            valuestr   = valuestr == "" ? "" : valuestr.Substring(0, valuestr.Length - 1);

            var sql       = "INSERT INTO {tables}({columns})VALUES({values})";
            var alianname = string.IsNullOrEmpty(source.AliasName) ? "" : $"{source.AliasName}";
            var tables    = source.Table;

            CurrentSQL = sql.Replace("{tables}", tables).Replace("{columns}", columnsstr).Replace("{values}", valuestr);
        }
Esempio n. 10
0
        public dynamic ToJSONObject()
        {
            var rtn = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);
            Dictionary <string, object> d = new Dictionary <string, object>();

            foreach (var item in _d)
            {
                d.Add(item.Key, item.Value.Clone());
            }
            rtn.content = d;
            Dictionary <string, object> dbyurl = new Dictionary <string, object>();

            foreach (var item in _dbyurl)
            {
                dbyurl.Add(item.Key, item.Value.Clone());
            }
            rtn.content_by_url = dbyurl;
            Dictionary <string, object> wildcardsmap = new Dictionary <string, object>();

            foreach (var item in _wildcardsmap)
            {
                wildcardsmap.Add(item.Key, item.Value);
            }
            rtn.wild_cards_map = wildcardsmap;
            return(rtn);
        }
Esempio n. 11
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            var options = FrameDLRObject.CreateInstance();

            //Logic参数设定
            options.BusinessAssemblyName = "RestAPISample";
            options.WeixinHome           = "weixinhome";
            //EWRA自定义模块加载
            options.RestAPIModuleName = typeof(MyWebModule).FullName;
            //Logic参数设定
            options.RestAPILogicAssemblyName = "RestAPISample";
            //RestAPI模块启用定义
            options.RestAPILogicBaseType = typeof(MyRestLogic);
            //Tag模块启动定义
            options.TagAssembly        = "RestAPISample";
            options.RestAPIMainVersion = "v1.0";
            //默认起始路由
            options.DefaultStartRoute = MyConfig.GetConfiguration("Server", "DefaultStartRoute");
            //设置apidoc的路由
            options.APIDocRoute = MyConfig.GetConfiguration("Server", "APIDocRoute");
            //设置是否显示api doc
            options.IsShowRestAPIDoc = BoolStd.IsNotBoolThen(MyConfig.GetConfiguration("Server", "IsShowAPIDoc"), false);
            //设置中间件参数
            options.MiddleWareOptionsType = typeof(MyWebOptions);

            app.UseWeixinEWRAMiddleWare((FrameDLRObject)options);
        }
        public static APIPointContext Create(string assemblyName, string mainversion)
        {
            var rtn = new APIPointContext();

            rtn.MainVersion = mainversion;
            Assembly asm = Assembly.Load(new AssemblyName(assemblyName));

            Type[] ts   = asm.GetTypes();
            var    reg  = new Regex(@"(?<=.)V\d+._\d+", RegexOptions.IgnoreCase);
            var    list = ts.Where(p => p.GetTypeInfo().IsSubclassOf(typeof(PointLogic))).ToList();

            foreach (var t in list.Where(p => p.GetTypeInfo().BaseType == typeof(PointLogic)))
            {
                var ple = EntryPointEntity.CreateFrom(t, list);
                if (!rtn._d_entry_.ContainsKey(ple.APIVersion))
                {
                    rtn._d_entry_.Add(ple.APIVersion, ple);
                }
            }
            rtn.RouteDesc     = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);
            rtn.MainRouteDesc = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);
            foreach (var item in rtn._d_entry_)
            {
                rtn.RouteDesc.SetValue(item.Value.APIVersion, item.Value.RouteDesc);
            }
            rtn.MainRouteDesc = (FrameDLRObject)rtn.RouteDesc.GetValue(rtn.MainVersion);

            return(rtn);
        }
        /// <summary>
        /// 呼叫本地logic
        /// </summary>
        /// <param name="url">请求的路由,格式:/xxxx/yyyy</param>
        /// <param name="method">请求的method,post,get,patch等</param>
        /// <param name="header">额外附加的header信息</param>
        /// <param name="query_string">额外附加的query_string信息</param>
        /// <param name="post_data">额外附加的post_data信息</param>
        /// <returns></returns>
        public object CallLocalLogic(string url, string method, FrameDLRObject header = null, FrameDLRObject query_string = null, FrameDLRObject post_data = null)
        {
            object obj = new EWRAData();
            var    dp  = CallContext_Parameter.DeepCopy <EWRAParameter>();

            dp.RequestUri         = new Uri(ServerInfo.SiteHostUrl + url);
            dp.RequestRoute       = url;
            dp.RestResourcesArray = url.Split('/');
            dp.MethodName         = method;

            if (header != null)
            {
                foreach (var item in header.Items)
                {
                    dp.SetValue(DomainKey.HEADER, item.Key, item.Value);
                }
            }
            if (query_string != null)
            {
                foreach (var item in query_string.Items)
                {
                    dp.SetValue(DomainKey.QUERY_STRING, item.Key, item.Value);
                }
            }
            if (post_data != null)
            {
                foreach (var item in post_data.Items)
                {
                    dp.SetValue(DomainKey.POST_DATA, item.Key, item.Value);
                }
            }

            GlobalCommon.Proxys["busi"].CallModule(ref obj, new object[] { dp });
            return(((EWRAData)obj).Result);
        }
Esempio n. 14
0
            /// <summary>
            /// 执行发货状态查询
            /// </summary>
            /// <param name="hw_contract_no">华为合同号,即PO单号</param>
            /// <param name="cust_contract_no">中邮合同号,即PO单号</param>
            /// <param name="asd_start_date">华为实际发货开始时间,默认为当前时间往前推3天</param>
            /// <param name="asd_end_date">华为实际发货结束时间,默认为当天</param>
            /// <param name="shipping_status">华为发货的状态:0:unshipped,1:shipped,2:all</param>
            /// <param name="topage">翻页,默认第一页</param>
            /// <param name="pagesize">每页资料笔数,默认100</param>
            /// <returns></returns>
            public string QueryDelivery(string hw_contract_no, string cust_contract_no,
                                        DateTime?asd_start_date = null,
                                        DateTime?asd_end_date   = null,
                                        string shipping_status  = "1",
                                        int topage   = 1,
                                        int pagesize = 100)
            {
                var url  = $"{Server_URL}/asn";
                var data = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);

                data.cust_id            = Cust_ID;
                data.delivery_id        = "";
                data.packing_list_no    = "";
                data.hw_contract_no     = hw_contract_no;
                data.cust_contract_no   = cust_contract_no;
                data.cust_purchase_no   = "";
                data.prod_code_sale     = "";
                data.prod_model_ext     = "";
                data.cust_purchase_item = "";
                data.asd_start_date     = asd_start_date == null ?$"{DateTime.Now.AddDays(-3).ToString("yyyy-MM-dd")} 00:00:00" : asd_start_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
                data.asd_end_date       = asd_end_date == null ? $"{DateTime.Now.ToString("yyyy-MM-dd")} 23:59:59" : asd_end_date.Value.ToString("yyyy-MM-dd HH:mm:ss");
                data.shipping_status    = shipping_status;
                data.page_size          = "" + pagesize;
                data.current_page       = "" + topage;
                return(Send(url, data));
            }
        /// <summary>
        /// 用户支付完成后,获取该用户的 UnionId,无需用户授权
        /// </summary>
        /// <param name="openid">传入,支付用户唯一标识</param>
        /// <param name="transaction_id">微信支付订单号</param>
        /// <param name="mch_id">微信支付分配的商户号,和商户订单号配合使用</param>
        /// <param name="out_trade_no">微信支付商户订单号,和商户号配合使用</param>
        /// <returns></returns>
        public FrameDLRObject GetPaidUnionId(string openid, string transaction_id = "", string mch_id = "", string out_trade_no = "")
        {
            /*  成功 rtn
             *      {
             *         unionid	string	用户唯一标识,调用成功后返回
             *          errcode	number	错误码
             *          errmsg	string	错误信息
             *      }
             *  失败{
             *          errcode	number	错误码
             *          errmsg	string	错误信息
             *      }
             */
            var url = string.Format(GetUnionIDByPayUrl, AppSecret, openid);

            if (!string.IsNullOrEmpty(transaction_id))
            {
                url += $"&transaction_id={transaction_id}";
            }
            if (!string.IsNullOrEmpty(mch_id))
            {
                url += $"&mch_id={mch_id}";
            }
            if (!string.IsNullOrEmpty(out_trade_no))
            {
                url += $"&out_trade_no={out_trade_no}";
            }
            FrameDLRObject obj = CallWeixinServer(url, "get");

            GlobalCommon.Logger.WriteLog(LoggerLevel.DEBUG, "***********************GetPaidUnionId result=" + obj.ToJSONString());
            return(obj);
        }
Esempio n. 16
0
        private RsaSecurityKey GetRSAPublicKey()
        {
            if (string.IsNullOrEmpty(publicKey) && !string.IsNullOrEmpty(PublicKeySavePath))
            {
                var physicalPath = PublicKeySavePath.Replace("~", ServerRootPath);
                if (File.Exists(physicalPath))
                {
                    var content = File.ReadAllText(physicalPath);
                    publicKey = content;
                    RSAParameters rp = ((FrameDLRObject)FrameDLRObject.CreateInstance(content, FrameDLRFlags.SensitiveCase)).ToModel <RSAParameters>(Encoding.Unicode);
                    publicSK = new RsaSecurityKey(rp);
                }
                else
                {
                    GlobalCommon.Logger.WriteLog(LoggerLevel.INFO, $"Rest验证读取PublicKey文件失败,原因是目录文件{PublicKeySavePath}不存在,请给出正确的公钥文件路径(请在验证的Logic中重载PublicKeySavePath的get方法),没有公钥会导致验证失败甚至出现异常");
                }
            }

            if (string.IsNullOrEmpty(publicKey))
            {
                GlobalCommon.Logger.WriteLog(LoggerLevel.INFO, $"Rest验证公钥不存在,没有公钥会导致验证失败甚至出现异常,如果本API服务提供生成Token的功能则请不要重载PublicKeySavePath和PrivateKeySavePath两个属性的get方法或在get时返回空串,如果不是则请提供正确的PublicKeySavePath路径值");
            }

            return(publicSK);
        }
        /// <summary>
        /// 发送模板消息,相关参数和回传,查看https://developers.weixin.qq.com/miniprogram/dev/api-backend/templateMessage.send.html
        /// </summary>
        /// <param name="touser"></param>
        /// <param name="template_id"></param>
        /// <param name="form_id"></param>
        /// <param name="page"></param>
        /// <param name="emphasis_keyword"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public FrameDLRObject SendTemplateMsg(string touser, string template_id, string form_id, string page = "", string emphasis_keyword = "", params KeyValuePair <string, string>[] data)
        {
            var url      = string.Format(SendCustomeServiceMsgUrl, Access_Token);
            var postdata = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);

            postdata.touser      = touser;
            postdata.template_id = template_id;
            if (!string.IsNullOrEmpty(page))
            {
                postdata.page = page;
            }
            postdata.form_id = form_id;
            if (data != null)
            {
                FrameDLRObject d = FrameDLRObject.CreateInstance(FrameDLRFlags.SensitiveCase);
                foreach (var item in data)
                {
                    d.SetValue(item.Key, new
                    {
                        value = item.Value
                    });
                }
                postdata.data = d;
            }

            if (!string.IsNullOrEmpty(emphasis_keyword))
            {
                postdata.emphasis_keyword = emphasis_keyword;
            }
            FrameDLRObject obj = CallWeixinServer(url, "post", "application/json", null, postdata);

            return(obj);
        }
Esempio n. 18
0
        public override object get(string no)
        {
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'FunctionInfo',
    $where:{
        FunctionNo:{0}
    }
}", no));

            var list = re.QueryData <FrameDLRObject>();

            if (list.Count() > 0)
            {
                dynamic t = list[0];
                return(new
                {
                    No = t.FunctionNo,
                    Name = t.FunctionName,
                    Level = t.FunctionLevel,
                    Url = t.Url,
                    IsMenu = t.IsMenu,
                    Remark = t.Remark
                });
            }
            else
            {
                return(null);
            }
        }
Esempio n. 19
0
        public bool Insert(string collectionname, FrameDLRObject item)
        {
            var collection = database.GetCollection <FrameDLRObject>(collectionname);

            collection.InsertOne(item);
            return(true);
        }
Esempio n. 20
0
        public override bool delete(string no)
        {
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();

            BeginTrans();

            DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Delete',
$table : 'Map_RoleFunction',
$where:{
        FunctionNo:{0}
    }
}", no));

            DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Delete',
$table : 'FunctionInfo',
$where:{
        FunctionNo:{0}
    }
}", no));

            CommitTrans();
            SetRefreshCacheRoute($"/functions/{no}");
            return(true);
        }
Esempio n. 21
0
        public override object get(string id)
        {
            var up = DB.NewDefaultDBUnitParameter <SqliteAccess>();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
	$acttype: 'Query',
	$table: 'RoleInfo',
    $where:{
        RoleUID:{0}
    }
}", id));

            var list = re.QueryData <FrameDLRObject>();

            if (list.Any())
            {
                dynamic t = list[0];
                return(new
                {
                    Id = t.RoleUID,
                    Name = t.RoleName,
                    Remark = t.Remark
                });
            }
            else
            {
                return(null);
            }
        }
Esempio n. 22
0
 public void SetValue(FrameDLRObject obj)
 {
     foreach (var key in obj.Keys)
     {
         SetValue(key, obj.GetValue(key));
     }
 }
Esempio n. 23
0
            /// <summary>
            /// 呼叫本地logic
            /// </summary>
            /// <param name="logic"></param>
            /// <param name="action"></param>
            /// <param name="p"></param>
            /// <returns></returns>
            public object CallLocalLogic(string logic, string action, FrameDLRObject p)
            {
                var copyp = (WebParameter)_logic.CallContext_Parameter.WebParam.Clone();
                var copyd = (GoData)_logic.CallContext_DataCollection.WebData.Clone();

                copyp.RequestResourceName = logic;
                copyp.Action = action;
                ResourceManage rema = new ResourceManage();

                copyp.SetValue(ParameterKey.RESOURCE_MANAGER, rema);
                var defaulttoken = TransactionToken.NewToken();

                copyp.TransTokenList.Add(defaulttoken);
                copyp.SetValue(ParameterKey.TOKEN, defaulttoken);
                copyp.SetValue("IsAjaxAsync", false);
                if (p != null)
                {
                    foreach (var key in p.Keys)
                    {
                        copyp.SetValue(DomainKey.CUSTOMER_PARAMETER, key, p.GetValue(key));
                    }
                }

                return(CallLocalLogic(logic, action, copyp, copyd));
            }
Esempio n. 24
0
        object delete(LogicData arg)
        {
            var rtn = FrameDLRObject.CreateInstance(@"{
issuccess:true,
msg:'操作成功'
}");
            var no  = ComFunc.nvl(arg["no"]);

            BeginTrans();
            var up = DB.NewDBUnitParameter();
            UnitDataCollection re = DB.Excute(up, FrameDLRObject.CreateInstanceFromat(@"{
$acttype : 'Query',
$table : 'FunctionInfo',
$where : {
		FunctionNo:{0}
}
}", no));

            if (re.QueryTable.RowLength <= 0)
            {
                rtn.issuccess = false;
                rtn.msg       = "待删除的功能不存在";
                return(rtn);
            }
            up.SetValue("no", no);
            DB.NonQuery <FunctionUnit>(up, "delete");

            CommitTrans();
            return(rtn);
        }
        private dynamic Load(UnitParameter arg)
        {
            var rtn  = FrameDLRObject.CreateInstance();
            var json = arg.GetValue("__json__");

            if (json != null && json is DBExpress)
            {
                var            express = (DBExpress)json;
                var            re      = express.ToExpress();
                var            sql     = ComFunc.nvl(re.GetValue("sql"));
                FrameDLRObject data    = re.GetValue("data") != null ? (FrameDLRObject)re.GetValue("data") : FrameDLRObject.CreateInstance();
                var            orderby = ComFunc.nvl(re.GetValue("orderby"));
                foreach (var k in data.Keys)
                {
                    arg.SetValue(k, data.GetValue(k));
                }
                if (express.CurrentAct == DBExpress.ActType.QueryByPage)
                {
                    rtn.sql     = sql;
                    rtn.orderby = orderby;
                }
                else
                {
                    rtn.sql = sql;
                }
            }
            return(rtn);
        }
Esempio n. 26
0
        object tree(LogicData ld)
        {
            var rtn      = FrameDLRObject.CreateInstance(@"{
issuccess:true,
msg:''
}");
            var up       = DB.NewDBUnitParameter();
            var re       = DB.Query <FunctionUnit>(up, "all");
            var maxlevel = int.Parse(ComFunc.nvl(re.QueryTable[0, "maxlevel"]));
            var tree     = new List <object>();
            var items    = re.QueryData <FrameDLRObject>(1);

            foreach (dynamic item in items)
            {
                if (item.functionlevel == 0)
                {
                    var dobj = FrameDLRObject.CreateInstance();
                    dobj.text   = item.functionname;
                    dobj.url    = item.url;
                    dobj.no     = item.functionno;
                    dobj.nodes  = LoadChildNodes(items, item.functionno, 1);
                    dobj.level  = item.functionlevel;
                    dobj.remark = item.remark;

                    tree.Add(dobj);
                }
            }
            rtn.data = tree;

            return(rtn);
        }
 /// <summary>
 /// 异步调用微信服务
 /// </summary>
 /// <typeparam name="RType"></typeparam>
 /// <param name="url"></param>
 /// <param name="method"></param>
 /// <param name="contenttype"></param>
 /// <param name="header"></param>
 /// <param name="data"></param>
 /// <param name="isneedcert"></param>
 /// <param name="callbackLA">只会调用Method为Post的方法</param>
 /// <param name="recorddata"></param>
 private void CallWeixinServerAsync <RType>(string url, string method = "POST", string contenttype = "text/json", FrameDLRObject header = null, FrameDLRObject data = null, bool isneedcert = false, string callbackLA = "", FrameDLRObject recorddata = null)
 {
     base.CallWeixinServerAsync <RType>(url, method, contenttype, header, data, isneedcert, (arg) =>
     {
         _logic.CallLocalLogic(url, "POST", null, null, FrameDLRObject.CreateInstance(arg, FrameDLRFlags.SensitiveCase));
     }, recorddata);
 }
Esempio n. 28
0
        public static void Test()
        {
            //JsEngineSwitcher engineSwitcher = JsEngineSwitcher.Instance;
            //IJsEngine js = null;
            //engineSwitcher.EngineFactories
            //    .AddEFFCChakraCore();

            //engineSwitcher.DefaultEngineName = EFFCChakraCoreJsEngine.EngineName;

            //js = engineSwitcher.CreateDefaultEngine();
            //js.EmbedHostObject("f_p_0", "ych");
            //js.EmbedHostObject("f_p_1", 22);
            //js.Execute($"var js ={{name:f_p_0,age:f_p_1}};");
            //var re = js.GetVariableValue("js");
            //var fec = FrameExposedObject.From(re.GetType());

            //js.Dispose();
            var md5 = ComFunc.getMD5_String(ComFunc.getMD5_String("sa").ToLower() + "8128").ToLower();
            //var serializer = JsonSerializer.Create();
            var json   = "{name:'ych',age:22,schools:[{name:'小学',address:''},{name:'中学',address:''}],birth:{0}}";
            var dobj   = FrameDLRObject.CreateInstanceFromat(json, DateTime.Now);
            var jarray = "[{name:'小学',address:''},{name:'中学',address:''}]";
            var aobj   = FrameDLRObject.CreateArray(jarray);

            Console.WriteLine(dobj.tojsonstring());
        }
Esempio n. 29
0
        /// <summary>
        /// 根据参数采用MD5算法生成数字签名
        /// </summary>
        /// <param name="obj">参数集,该参数集不可包含数字签名的栏位</param>
        /// <param name="mch_key">微信商户支付秘钥</param>
        /// <returns></returns>
        public static string GenMD5SignString(FrameDLRObject obj, string mch_key)
        {
            SortedDictionary <string, object> p = new SortedDictionary <string, object>();

            foreach (var k in obj.Keys)
            {
                p.Add(k, obj.GetValue(k));
            }
            string buff = "";

            foreach (KeyValuePair <string, object> pair in p)
            {
                if (pair.Key != "sign" && ComFunc.nvl(pair.Value) != "")
                {
                    buff += pair.Key + "=" + pair.Value + "&";
                }
            }
            buff  = buff.Trim('&');
            buff += "&key=" + mch_key;

            //MD5加密
            var md5 = MD5.Create();
            var bs  = md5.ComputeHash(Encoding.UTF8.GetBytes(buff));
            var sb  = new StringBuilder();

            foreach (byte b in bs)
            {
                sb.Append(b.ToString("x2"));
            }
            return(sb.ToString().ToUpper());
        }
        public static void Test()
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://10.15.1.245:5001/dms/jiangsu/orders_hongxun");

            //HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://119.97.137.9:8080/dms/jiangsu/orders_hongxun");
            //HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://localhost:5002/dms/jiangsu/orders_hongxun");
            try
            {
                var    orders       = WebUtility.UrlEncode("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiIHN0YW5kYWxvbmU9InllcyI/PgoKPHJlcXVlc3Q+CgogICAgPGhlYWRlcj4KCiAgICAgICAgPHJlc3BvbnNldGltZT4yMDE4MDMxMjE1Mjg1MzwvcmVzcG9uc2V0aW1lPgoKICAgICAgICA8c3VwcGxpZXJfbnVtPjk5MTAwMDE1PC9zdXBwbGllcl9udW0+CgogICAgPC9oZWFkZXI+CgogICAgPGJvZHk+CgogICAgICAgIDxyZXN1bHQ+MDwvcmVzdWx0PgoKICAgICAgICA8cmVzdWx0cmVtYXJrPuaJp+ihjOaIkOWKnzwvcmVzdWx0cmVtYXJrPgoKICAgICAgICA8b3JkZXJfbnVtYmVyPjQ8L29yZGVyX251bWJlcj4KCiAgICAgICAgPG9yZGVyX2xpc3RzPgoKICAgICAgICAgICAgPG9yZGVyPgoKICAgICAgICAgICAgICAgIDxob25neHVuX29yZGVyX25vPum4v+i/heiuouWNleWPtzwvaG9uZ3h1bl9vcmRlcl9ubz4KCiAgICAgICAgICAgICAgICA8b3JkZXJfbm8+QjIwMTgwMzEyMTUyMjQ5NzIwNjA3PC9vcmRlcl9ubz4KCiAgICAgICAgICAgICAgICA8b3JkZXJfc3RhdHVzPjwvb3JkZXJfc3RhdHVzPgoKICAgICAgICAgICAgICAgIDxvcmRlcl9yZWdpb24+MTI8L29yZGVyX3JlZ2lvbj4KCiAgICAgICAgICAgICAgICA8cmVnaW9uX25hbWU+5reu5a6JPC9yZWdpb25fbmFtZT4KCiAgICAgICAgICAgICAgICA8YXJlYV9udW0+MTIxMjwvYXJlYV9udW0+CgogICAgICAgICAgICAgICAgPGFyZWFfbmFtZT7mtp/msLQ8L2FyZWFfbmFtZT4KCiAgICAgICAgICAgICAgICA8YnVpbGRfdGltZT4yMDE4MDMxMjE1MjI0OTc5NjwvYnVpbGRfdGltZT4KCiAgICAgICAgICAgICAgICA8b3JkZXJfZGVsaXZfdGltZT4yMDE4MDMxMjE1MjMwNDwvb3JkZXJfZGVsaXZfdGltZT4KCiAgICAgICAgICAgICAgICA8YnVpbGRfbmFtZT7okovlubPlubM8L2J1aWxkX25hbWU+CgogICAgICAgICAgICAgICAgPGJ1aWxkX3RlbD4xODkwMDAwMDAwMDwvYnVpbGRfdGVsPgoKICAgICAgICAgICAgICAgIDxkZXB0X2NvZGU+MTIxNjQ4Mjg8L2RlcHRfY29kZT4KCiAgICAgICAgICAgICAgICA8ZGVwdF9uYW1lPua2n+awtOWVhuS4muW5v+WcuuaMh+WumuS4k+iQpeW6lzwvZGVwdF9uYW1lPgoKICAgICAgICAgICAgICAgIDxkaXN0X2NvZGU+MTIxMDQyMzA8L2Rpc3RfY29kZT4KCiAgICAgICAgICAgICAgICA8ZGlzdF9uYW1lPuabvuWNju+8iOe7j+mUgOWVhu+8iXRlc3Q8L2Rpc3RfbmFtZT4KCiAgICAgICAgICAgICAgICA8b3JkZXJfbW9uZXk+MjA8L29yZGVyX21vbmV5PgoKICAgICAgICAgICAgICAgIDxkZWxpdl9uYW1lPua3ruWuieWQiOS9nOWOhTE8L2RlbGl2X25hbWU+CgogICAgICAgICAgICAgICAgPGRlbGl2X21vYmlsZT4xMzkwNTE5NDU4MTwvZGVsaXZfbW9iaWxlPgoKICAgICAgICAgICAgICAgIDxkZWxpdl9hZGRyZXNzPuS4reWkrui3rzQw5Y+3MTA25Y2V5YWDPC9kZWxpdl9hZGRyZXNzPgoKICAgICAgICAgICAgICAgIDxpc19tZWV0aW5nPjA8L2lzX21lZXRpbmc+CgogICAgICAgICAgICAgICAgPG1lZXRpbmdfbmFtZT48L21lZXRpbmdfbmFtZT4KCiAgICAgICAgICAgICAgICA8cGF5X21vZGU+MTwvcGF5X21vZGU+CgogICAgICAgICAgICAgICAgPGFsbF9wYXlfbW9uZXk+MjA8L2FsbF9wYXlfbW9uZXk+CgogICAgICAgICAgICAgICAgPG11bHRpcGx5X3BheT4KCiAgICAgICAgICAgICAgICAgICAgPHBheT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXlfdGltZT4yMDE4MDMxMjE1MjMwNDwvcGF5X3RpbWU+CgogICAgICAgICAgICAgICAgICAgICAgICA8cGF5X21vbmV5PjIwPC9wYXlfbW9uZXk+CgogICAgICAgICAgICAgICAgICAgICAgICA8cGF5X3R5cGU+RkxLPC9wYXlfdHlwZT4KCiAgICAgICAgICAgICAgICAgICAgPC9wYXk+CgogICAgICAgICAgICAgICAgPC9tdWx0aXBseV9wYXk+CgogICAgICAgICAgICAgICAgPGl0ZW1fbGlzdD4KCiAgICAgICAgICAgICAgICAgICAgPGl0ZW0+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGV0YWlsX251bT5TMjAxODAzMTIxNTIyNDk3MjA2MDg8L2RldGFpbF9udW0+CgogICAgICAgICAgICAgICAgICAgICAgICA8Z29vZHNfdHlwZT5TUExYX1NKWkQ8L2dvb2RzX3R5cGU+CgogICAgICAgICAgICAgICAgICAgICAgICA8Z29vZHNfbnVtPkpTWUQtRERTQ1NQUC1ERFNDU1hINi0wMjwvZ29vZHNfbnVtPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGdvb2RzX3ByaWNlPjEwPC9nb29kc19wcmljZT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxnb29kc19jb3VudD4yPC9nb29kc19jb3VudD4KCiAgICAgICAgICAgICAgICAgICAgPC9pdGVtPgoKICAgICAgICAgICAgICAgIDwvaXRlbV9saXN0PgoKICAgICAgICAgICAgICAgIDxnaWZ0X2xpc3QvPgoKICAgICAgICAgICAgPC9vcmRlcj4KCiAgICAgICAgICAgIDxvcmRlcj4KCiAgICAgICAgICAgICAgICA8aG9uZ3h1bl9vcmRlcl9ubz7puL/ov4XorqLljZXlj7c8L2hvbmd4dW5fb3JkZXJfbm8+CgogICAgICAgICAgICAgICAgPG9yZGVyX25vPkIyMDE4MDMxMjE1MjQ0MDcyMDYxNTwvb3JkZXJfbm8+CgogICAgICAgICAgICAgICAgPG9yZGVyX3N0YXR1cz48L29yZGVyX3N0YXR1cz4KCiAgICAgICAgICAgICAgICA8b3JkZXJfcmVnaW9uPjEyPC9vcmRlcl9yZWdpb24+CgogICAgICAgICAgICAgICAgPHJlZ2lvbl9uYW1lPua3ruWuiTwvcmVnaW9uX25hbWU+CgogICAgICAgICAgICAgICAgPGFyZWFfbnVtPjEyMTI8L2FyZWFfbnVtPgoKICAgICAgICAgICAgICAgIDxhcmVhX25hbWU+5raf5rC0PC9hcmVhX25hbWU+CgogICAgICAgICAgICAgICAgPGJ1aWxkX3RpbWU+MjAxODAzMTIxNTI0NDAxOTg8L2J1aWxkX3RpbWU+CgogICAgICAgICAgICAgICAgPG9yZGVyX2RlbGl2X3RpbWU+MjAxODAzMTIxNTI0NTc8L29yZGVyX2RlbGl2X3RpbWU+CgogICAgICAgICAgICAgICAgPGJ1aWxkX25hbWU+6JKL5bmz5bmzPC9idWlsZF9uYW1lPgoKICAgICAgICAgICAgICAgIDxidWlsZF90ZWw+MTg5MDAwMDAwMDA8L2J1aWxkX3RlbD4KCiAgICAgICAgICAgICAgICA8ZGVwdF9jb2RlPjEyMTY0ODI4PC9kZXB0X2NvZGU+CgogICAgICAgICAgICAgICAgPGRlcHRfbmFtZT7mtp/msLTllYbkuJrlub/lnLrmjIflrprkuJPokKXlupc8L2RlcHRfbmFtZT4KCiAgICAgICAgICAgICAgICA8ZGlzdF9jb2RlPjEyMTA0MjMwPC9kaXN0X2NvZGU+CgogICAgICAgICAgICAgICAgPGRpc3RfbmFtZT7mm77ljY7vvIjnu4/plIDllYbvvIl0ZXN0PC9kaXN0X25hbWU+CgogICAgICAgICAgICAgICAgPG9yZGVyX21vbmV5PjMwPC9vcmRlcl9tb25leT4KCiAgICAgICAgICAgICAgICA8ZGVsaXZfbmFtZT7mt67lronlkIjkvZzljoUxPC9kZWxpdl9uYW1lPgoKICAgICAgICAgICAgICAgIDxkZWxpdl9tb2JpbGU+MTM5MDUxOTQ1ODE8L2RlbGl2X21vYmlsZT4KCiAgICAgICAgICAgICAgICA8ZGVsaXZfYWRkcmVzcz7kuK3lpK7ot680MOWPtzEwNuWNleWFgzwvZGVsaXZfYWRkcmVzcz4KCiAgICAgICAgICAgICAgICA8aXNfbWVldGluZz4wPC9pc19tZWV0aW5nPgoKICAgICAgICAgICAgICAgIDxtZWV0aW5nX25hbWU+PC9tZWV0aW5nX25hbWU+CgogICAgICAgICAgICAgICAgPHBheV9tb2RlPjE8L3BheV9tb2RlPgoKICAgICAgICAgICAgICAgIDxhbGxfcGF5X21vbmV5PjMwPC9hbGxfcGF5X21vbmV5PgoKICAgICAgICAgICAgICAgIDxtdWx0aXBseV9wYXk+CgogICAgICAgICAgICAgICAgICAgIDxwYXk+CgogICAgICAgICAgICAgICAgICAgICAgICA8cGF5X3RpbWU+MjAxODAzMTIxNTI0NTc8L3BheV90aW1lPgoKICAgICAgICAgICAgICAgICAgICAgICAgPHBheV9tb25leT4zMDwvcGF5X21vbmV5PgoKICAgICAgICAgICAgICAgICAgICAgICAgPHBheV90eXBlPkZMSzwvcGF5X3R5cGU+CgogICAgICAgICAgICAgICAgICAgIDwvcGF5PgoKICAgICAgICAgICAgICAgIDwvbXVsdGlwbHlfcGF5PgoKICAgICAgICAgICAgICAgIDxpdGVtX2xpc3Q+CgogICAgICAgICAgICAgICAgICAgIDxpdGVtPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGRldGFpbF9udW0+UzIwMTgwMzEyMTUyNDQwNzIwNjE2PC9kZXRhaWxfbnVtPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGdvb2RzX3R5cGU+U1BMWF9TSlpEPC9nb29kc190eXBlPgoKICAgICAgICAgICAgICAgICAgICAgICAgPGdvb2RzX251bT5KU1lELUREU0NTUFAtRERTQ1NYSDYtMDI8L2dvb2RzX251bT4KCiAgICAgICAgICAgICAgICAgICAgICAgIDxnb29kc19wcmljZT4xMDwvZ29vZHNfcHJpY2U+CgogICAgICAgICAgICAgICAgICAgICAgICA8Z29vZHNfY291bnQ+MzwvZ29vZHNfY291bnQ+CgogICAgICAgICAgICAgICAgICAgIDwvaXRlbT4KCiAgICAgICAgICAgICAgICA8L2l0ZW1fbGlzdD4KCiAgICAgICAgICAgICAgICA8Z2lmdF9saXN0Lz4KCiAgICAgICAgICAgIDwvb3JkZXI+CgogICAgICAgIDwvb3JkZXJfbGlzdHM+CgogICAgPC9ib2R5PgoKPC9yZXF1ZXN0Pg==");
                var    b            = ComFunc.Base64DeCode(ComFunc.UrlDecode(orders));
                var    d            = FrameDLRObject.CreateInstance(b);
                byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes($"orders={orders}");
                req.Method           = "POST";
                req.ContentType      = "application/x-www-form-urlencoded";
                req.ContentLength    = requestBytes.Length;
                req.Timeout          = 60000;
                req.ReadWriteTimeout = 60000;
                Stream requestStream = req.GetRequestStream();
                requestStream.Write(requestBytes, 0, requestBytes.Length);
                requestStream.Close();
                HttpWebResponse res     = (HttpWebResponse)req.GetResponse();
                StreamReader    sr      = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8);
                string          backstr = sr.ReadToEnd();
                requestStream = null;
                sr.Close();
                res.Close();
            }
            finally
            {
                req = null;
            }
        }