public static RespFunStruct ExtBaseFuncCall(ReqeFunStruct reqeObj)
 {
     RespFunStruct resp = new RespFunStruct();
     bool result = false;
     UserIDOP userID = reqeObj.userIDOP;
     switch (reqeObj.FunName)
     {
         case ComFunCallEnum.LogFunctionCall:
             UserFunctionOPLog add = JsonConvert.DeserializeObject<UserFunctionOPLog>(reqeObj.FunObject.ToString());
             try
             {
                 add.acc_code = reqeObj.AccCode;
                 result = BLL.OPLog.Add(add, GlobalStaticObj_Server.DbPrefix + reqeObj.AccCode);
                 resp.IsSuccess = "1";
                 resp.ReturnObject = result.ToString();
             }
             catch (Exception ex)
             {
                 resp.IsSuccess = "0";
                 resp.Msg = "ComFunCallEnum.LogFunctionCall error";
                 ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.LogFunctionCall;Add对象JSON字串描述:" + reqeObj.FunObject.ToString());
                 throw ex;
             }
             break;
     }
     return resp;
 }
       public static bool TryCallWCFFunc(string OPNameStr, ReqeFunStruct requestObj, out RespFunStruct responseObj)
       {
           UserIDOP userOP = new UserIDOP() { UserID = GlobalStaticObj.UserID, OPName = OPNameStr };
           requestObj.userIDOP = userOP;
           requestObj.PCClientCookieStr = GlobalStaticObj.CookieStr;
           RespFunStruct returnObj = new RespFunStruct();
           string requestStr = HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(requestObj));
           if (!WCFClientProxy.TestPCClientProxy())
           {
               returnObj.IsSuccess = "0";
               returnObj.ReturnObject = "未能建立同服务器连接";
               responseObj = returnObj;
               MessageBox.Show("未能建立同服务器连接!");
               return false;
           }
           try
           {
               string ResultStr = GlobalStaticObj.proxy.JsonOperate(requestStr);
               string Str = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(ResultStr);
               responseObj = JsonConvert.DeserializeObject<RespFunStruct>(Str);
               return true;
           }
           catch (Exception ex)
           {
               returnObj.IsSuccess = "0";
               returnObj.ReturnObject = "发生错误";
               returnObj.Msg = ex.Message;
               responseObj = returnObj;
               MessageBox.Show("发生错误!");
               return false;
           }

       }
 /// <summary> 处理错误信息
 /// </summary>
 /// <param name="isSuccess">0:失败 1:成功</param>
 /// <param name="result">返回参数</param>
 /// <returns></returns>
 private static SYSModel.RespFunStruct HandleErr(string isSuccess, string result)
 {
     SYSModel.RespFunStruct resp = new SYSModel.RespFunStruct();
     resp.IsSuccess    = isSuccess;
     resp.ReturnObject = result;
     resp.Msg          = isSuccess == "1" ? "" : "调用WebService方法出现异常";
     return(resp);
 }
        /// <summary> 登陆验证
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string LoginIn(string str)
        {
            RespFunStruct resp = new RespFunStruct();
            try
            {
                string loginStr = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(str);
                LoginInput loginObj = Newtonsoft.Json.JsonConvert.DeserializeObject<LoginInput>(loginStr);
                if (string.IsNullOrEmpty(loginObj.acccode))
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "帐套不能为空";
                }
                else
                {
                    SetDbName(loginObj.acccode, false);

                    OperationContext context = OperationContext.Current;
                    //获取传进的消息属性  
                    MessageProperties properties = context.IncomingMessageProperties;
                    //获取消息发送的远程终结点IP和端口  
                    RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                    string IPStr = endpoint.Address + ":" + endpoint.Port.ToString();
                    DataSet ds = BLL.ClientUser.UserLogin(loginObj, IPStr, GlobalStaticObj_Server.Instance.CurrAccDbName);
                    if (ds == null || ds.Tables.Count == 0 || (ds.Tables.Count == 1 && ds.Tables[0].Rows.Count == 0))
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "登录失败,用户名、密码问题";
                    }
                    else
                    {
                        string userID = ds.Tables[0].Rows[0][0].ToString();
                        //将登陆id及cookie信息加入到缓存中
                        string cookieStr = LoginSessionInfo.Instance.LoginIn(userID); ;
                        DataTable dt = new DataTable("cookieStr");
                        DataColumn dc = new DataColumn("cookieStr", typeof(string));
                        dt.Columns.Add(dc);
                        DataRow dr = dt.NewRow();
                        dr["cookieStr"] = cookieStr;
                        dt.Rows.Add(dr);
                        ds.Tables.Add(dt);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = JsonConvert.SerializeObject(ds);
                    }
                }
            }
            catch (Exception ex)
            {
                resp.IsSuccess = "0";
                resp.Msg = "登陆失败:" + ex.Message;
                Utility.Log.Log.writeLineToLog("【登陆验证】" + ex.Message, "wcf服务");
            }
            return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
        }
 /// <summary> 获取所使用中的有帐套列表
 /// </summary>
 /// <returns>返回resp对象</returns>
 public string GetAccList()
 {
     RespFunStruct resp = new RespFunStruct();
     DataTable dt = new DataTable();
     try
     {
         string where = string.Format("setbook_code!='000' and enable_flag='{0}' ", ((int)DataSources.EnumEnableFlag.USING));
         dt = BLL.DBHelper.GetTable("获取帐套列表", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "sys_setbook", "*", where, "", "order by setbook_code");
         resp.IsSuccess = "1";
         resp.RecordCount = dt.Rows.Count;
         resp.ReturnObject = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
     }
     catch (Exception ex)
     {
         dt = new DataTable();
         resp.IsSuccess = "0";
         resp.RecordCount = dt.Rows.Count;
         resp.Msg = "获取账套信息失败:" + ex.Message;
         resp.ReturnObject = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
         Utility.Log.Log.writeLineToLog("【获取账套】" + ex.Message, "wcf服务");
     }
     return Newtonsoft.Json.JsonConvert.SerializeObject(resp);
 }
 /// <summary> 数据操作
 /// </summary>
 /// <param name="strJson">json字串</param>
 /// <returns></returns>
 public string JsonOperate(string strJson)
 {
     RespFunStruct resp = new RespFunStruct();
     string returnStr = string.Empty;
     string opName = string.Empty;
     try
     {
         string objStr = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(strJson);
         ReqeFunStruct reqeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ReqeFunStruct>(objStr);
         opName = reqeObj.userIDOP.OPName;
         if (string.IsNullOrEmpty(reqeObj.AccCode))
         {
             resp.IsSuccess = "0";
             resp.Msg = "帐套不能为空";
         }
         else
         {
             SetDbName(reqeObj.AccCode, false);
             if (!LoginSessionInfo.Instance.ValidaiteUser(reqeObj.userIDOP.UserID, reqeObj.PCClientCookieStr))
             {
                 resp.IsSuccess = "0";
                 resp.Msg = "用户验证失败";
             }
             else
             {
                 switch (reqeObj.SubSysName)
                 {
                     case SubSysName.CommonBaseFuncCall:
                         resp = CommonBaseFuncCall.ComFunCall(reqeObj);
                         break;
                     case SubSysName.ExtendBaseFuncCall:
                         resp = ExtendBaseFuncCall.ExtBaseFuncCall(reqeObj);
                         break;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         resp.IsSuccess = "0";
         resp.Msg = "【接口调用】-" + opName + ":" + ex.Message;
         Utility.Log.Log.writeLineToLog("【数据操作】-" + opName + ":" + ex.Message, "wcf服务");
     }
     returnStr = HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
     return returnStr;
 }
        /// <summary> 登出
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string LoginOut(string strJson)
        {
            RespFunStruct resp = new RespFunStruct();
            try
            {
                string objStr = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(strJson);
                ReqeFunStruct reqeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ReqeFunStruct>(objStr);

                if (string.IsNullOrEmpty(reqeObj.AccCode))
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "帐套不能为空";
                }
                else
                {
                    SetDbName(reqeObj.AccCode, false);
                    string userID = reqeObj.userIDOP.UserID;
                    BLL.ClientUser.UserLoginOut(userID, reqeObj.AccCode);
                    //将登陆id及cookie信息从缓存中移除
                    LoginSessionInfo.Instance.LoginOut(userID);
                    resp.IsSuccess = "1";
                }
            }
            catch (Exception ex)
            {
                resp.IsSuccess = "0";
                resp.Msg = "登出失败:" + ex.Message;
                Utility.Log.Log.writeLineToLog("【用户登出】" + ex.Message, "wcf服务");
            }
            return Newtonsoft.Json.JsonConvert.SerializeObject(resp);
        }
 /// <summary> 处理错误信息
 /// </summary>
 /// <param name="isSuccess">0:失败 1:成功</param>
 /// <param name="result">返回参数</param>
 /// <returns></returns>
 private static SYSModel.RespFunStruct HandleErr(string isSuccess, string result)
 {
     SYSModel.RespFunStruct resp = new SYSModel.RespFunStruct();
     resp.IsSuccess = isSuccess;
     resp.ReturnObject = result;
     resp.Msg = isSuccess == "1" ? "" : "调用WebService方法出现异常";
     return resp;
 }
        /// <summary> 根据EnumWebServFunName枚举,调用WebService方法名称
        /// </summary>
        /// <param name="funcName">WebService方法名称</param>
        /// <param name="funcObject">WebService参数对象</param>
        /// <returns>返回约定内容</returns>
        public static SYSModel.RespFunStruct WebServHandler(SYSModel.EnumWebServFunName enumFunName, object funcObject)
        {
            SYSModel.RespFunStruct resp = new SYSModel.RespFunStruct();
            string msg = string.Empty;//错误消息
            switch (enumFunName)
            {
                #region 基础数据
                case SYSModel.EnumWebServFunName.UpLoadCcontact:
                    {
                        tb_contacts_ex model = Newtonsoft.Json.JsonConvert.DeserializeObject<tb_contacts_ex>(funcObject.ToString());
                        string result = WebServ_YT_BasicData.UpLoadCcontact(model);
                        resp = HandleErr(string.IsNullOrEmpty(result) ? "1" : "0", result);
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpLoadCustomer:
                    {
                        tb_customer model = Newtonsoft.Json.JsonConvert.DeserializeObject<tb_customer>(funcObject.ToString());
                        string result = WebServ_YT_BasicData.UpLoadCustomer(model);
                        resp = HandleErr(string.IsNullOrEmpty(result) ? "1" : "0", result);
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpLoadSercicePartStock:
                    {
                        Dictionary<string, int> dic = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, int>>(funcObject.ToString());
                        bool flag = WebServ_YT_BasicData.UpLoadSercicePartStock(dic);
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.SearchContact:
                    {
                        DataTable dt = WebServ_YT_BasicData.SearchContact();
                        if (dt == null || dt.Rows.Count == 0)
                        {
                            resp.IsSuccess = "0";
                        }
                        else
                        {
                            resp.IsSuccess = "1";
                        }
                        resp.Msg = "";
                        resp.ReturnObject = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
                        break;
                    }
                #endregion
                #region 业务数据
                case SYSModel.EnumWebServFunName.UpLoadPartSale:
                    {
                        bool flag = WebServ_YT_BusiData.UpLoadPartSale(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpLoadServiceOrder:
                    {
                        bool flag = WebServ_YT_BusiData.UpLoadServiceOrder(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpLoadRepairBill:
                    {
                        bool flag = WebServ_YT_BusiData.UpLoadRepairBill(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpLoadPartPurchase:
                    {
                        bool flag = WebServ_YT_BusiData.UpLoadPartPurchase(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpLoadPartPutStore:
                    {
                        bool flag = WebServ_YT_BusiData.UpLoadPartPutStore(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.LoadOrderStatus:
                    {
                        bool flag = WebServ_YT_BusiData.LoadOrderStatus(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.LoadPartInStore:
                    {
                        bool flag = WebServ_YT_BusiData.LoadPartInStore(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.LoadPartPurchaseStauts:
                    {
                        bool flag = WebServ_YT_BusiData.LoadPartPurchaseStauts(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.LoadStoreCenter:
                    {
                        bool flag = WebServ_YT_BusiData.LoadStoreCenter(funcObject.ToString());
                        resp = HandleErr(flag ?"1":"0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.QuerySettleAccounts:
                    {
                        bool flag = WebServ_YT_BusiData.QuerySettleAccounts(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.LoadServiceSettleStatus:
                    {
                        bool flag = WebServ_YT_BusiData.LoadServiceSettleStatus(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpPartReturnCreate:
                    {
                        bool flag = WebServ_YT_BusiData.UpPartReturnCreate(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.LoadPartRetureStatus:
                    {
                        bool flag = WebServ_YT_BusiData.LoadPartRetureStatus(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case SYSModel.EnumWebServFunName.UpPartRetureUpdate:
                    {
                        bool flag = WebServ_YT_BusiData.UpPartRetureUpdate(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                case EnumWebServFunName.SearchOrderStatus:
                    {
                        string status = WebServ_YT_BusiData.SearchOrderStatus(funcObject.ToString());
                        resp = HandleErr(string.IsNullOrEmpty(status) ? "0" : "1", status);
                        break;
                    }
                case EnumWebServFunName.UpLoadServiceSettleStatus:
                    {
                        bool flag = WebServ_YT_BusiData.UpLoadServiceSettleStatus(funcObject.ToString());
                        resp = HandleErr(flag ? "1" : "0", flag.ToString());
                        break;
                    }
                #endregion
                default:
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "找不到对应的Wcf方法";
                        break;
                    }
            }

            return resp;
        }
Beispiel #10
0
 private bool Call(string opName, ReqeFunStruct request0, out RespFunStruct result)
 {
     return CommonFuncCall.TryCallWCFFunc(opName, request0, out result);
 }
Beispiel #11
0
 private void CallBack(IAsyncResult ar)
 {
     RespFunStruct result = new RespFunStruct();
     FunctionReturnBoolDelegateHandler andl = (FunctionReturnBoolDelegateHandler)ar.AsyncState;
     andl.EndInvoke(out result, ar);
     bool flag = false;
     string str = bool.TryParse(result.ReturnObject, out flag) ? "新建用户成功" : "新建用户失败";
     OpCommand.closeForm(OpCommand.myFormClose, OpCommand.LForm);
     MessageBox.Show(str);
 }
        public static RespFunStruct ComFunCall(ReqeFunStruct reqeObj)
        {
            RespFunStruct resp = new RespFunStruct();
            bool result = false;
            int exeCount = 0;
            UserIDOP userID = reqeObj.userIDOP;
            switch (reqeObj.FunName)
            {
                //根据主键值,单表添加或者更新,给定主键为Update,缺失为Insert操作                    
                case ComFunCallEnum.Submit_AddOrEdit:
                    Submit_AddOrEdit add = JsonConvert.DeserializeObject<Submit_AddOrEdit>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.Submit_AddOrEdit(connString, add.TableName, add.pkName, add.pkVal, (Dictionary<string, string>)add.DicParam, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "Submit_AddOrEdit error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.Submit_AddOrEdit;Submit_AddOrEdit对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //根据主键值,单表删除单记录
                case ComFunCallEnum.DeleteDataByID:
                    DeleteDataByID del = JsonConvert.DeserializeObject<DeleteDataByID>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.DeleteDataByID(connString, del.TableName, del.pkName, del.pkVal, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "DeleteDataByID  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.DeleteDataByID;DeleteDataByID对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //根据主键值,单表删除多记录,In操作
                case ComFunCallEnum.BatchDeleteDataByIn:
                    BatchDeleteDataByIn delBat = JsonConvert.DeserializeObject<BatchDeleteDataByIn>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        exeCount = BLL.DbCommon.Instance.BatchDeleteDataByIn(connString, delBat.TableName, delBat.pkName, delBat.pkValues, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = exeCount.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchDeleteDataByIn  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchDeleteDataByIn;BatchDeleteDataByIn对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //根据Where条件,单表删除多记录
                case ComFunCallEnum.BatchDeleteDataByWhere:
                    BatchDeleteDataByWhere delWhere = JsonConvert.DeserializeObject<BatchDeleteDataByWhere>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        exeCount = BLL.DbCommon.Instance.BatchDeleteDataByWhere(connString, delWhere.TableName, delWhere.whereString, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = exeCount.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchDeleteDataByWhere  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchDeleteDataByWhere;BatchDeleteDataByWhere对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //根据主键值,单表更新多记录,In操作
                case ComFunCallEnum.BatchUpdateDataByIn:
                    BatchUpdateDataByIn updaByIn = JsonConvert.DeserializeObject<BatchUpdateDataByIn>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        exeCount = BLL.DbCommon.Instance.BatchUpdateDataByIn(connString, updaByIn.TableName, (Dictionary<string, string>)updaByIn.DicParam, updaByIn.pkName, updaByIn.pkValues, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = exeCount.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchUpdateDataByIn  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchUpdateDataByIn;BatchUpdateDataByIn对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                // 根据Where条件,单表更新多记录
                case ComFunCallEnum.BatchUpdateDataByWhere:
                    BatchUpdateDataByWhere updaByWhere = JsonConvert.DeserializeObject<BatchUpdateDataByWhere>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        exeCount = BLL.DbCommon.Instance.BatchUpdateDataByWhere(connString, updaByWhere.TableName, (Dictionary<string, string>)updaByWhere.DicParam, updaByWhere.whereString, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = exeCount.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchUpdateDataByWhere  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchUpdateDataByWhere;BatchUpdateDataByWhere对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                // 批处理更新操作,普通型
                case ComFunCallEnum.BatchUpdateDataMulti:
                    BatchUpdateDataMulti updaMulti = JsonConvert.DeserializeObject<BatchUpdateDataMulti>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        exeCount = BLL.DbCommon.Instance.BatchUpdateDataMulti(connString, updaMulti.batUpdateList, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = exeCount.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchUpdateDataMulti  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchUpdateDataMulti;BatchUpdateDataMulti对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                // 批处理更新操作,事务型
                case ComFunCallEnum.BatchUpdateDataMultiByTrans:
                    BatchUpdateDataMultiByTrans updaMultiByTrans = JsonConvert.DeserializeObject<BatchUpdateDataMultiByTrans>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        exeCount = BLL.DbCommon.Instance.BatchUpdateDataMultiByTrans(connString, updaMultiByTrans.batUpdateList, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = exeCount.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchUpdateDataMultiByTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchUpdateDataMultiByTrans;BatchUpdateDataMultiByTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,多次执行多条语句,多参数多次添加)多条语句,返回bool;参数为SQLObj.
                case ComFunCallEnum.BatchExeSQLMultiByTrans:
                    BatchExeSQLMultiByTrans BatchExeSQLMultiByTrans = JsonConvert.DeserializeObject<BatchExeSQLMultiByTrans>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.BatchExeSQLMultiByTrans(connString, BatchExeSQLMultiByTrans.batSQLObjList, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchExeSQLMultiByTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchExeSQLMultiByTrans;BatchExeSQLMultiByTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,多次执行多条语句,多参数多次添加)多条语句,返回bool;参数为SQLString.
                case ComFunCallEnum.BatchExeSQLStringMultiByTrans:
                    BatchExeSQLStringMultiByTrans BatchExeSQLStringMultiByTrans = JsonConvert.DeserializeObject<BatchExeSQLStringMultiByTrans>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.BatchExeSQLMultiByTrans(connString, BatchExeSQLStringMultiByTrans.batSQLStringList, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchExeSQLMultiByTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchExeSQLStringMultiByTrans;BatchExeSQLStringMultiByTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,一次执行多条语句,多参数一次添加)多条语句,返回bool
                case ComFunCallEnum.ExecuteNonQueryReturnBoolByTrans:
                    ExecuteNonQueryReturnBoolByTrans ExeSQLMultiByTrans = JsonConvert.DeserializeObject<ExecuteNonQueryReturnBoolByTrans>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.ExecuteNonQueryReturnBoolByTrans(connString, ExeSQLMultiByTrans.sqlObj.cmdType, ExeSQLMultiByTrans.sqlObj.sqlString, ExeSQLMultiByTrans.sqlObj.Param, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "ExecuteNonQueryReturnBoolByTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.ExecuteNonQueryReturnBoolByTrans;ExecuteNonQueryReturnBoolByTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,多次执行多条语句,没有参数)多条语句带事务(无备份操作记录功能,无SQL日志操作记录功能),返回带事务的bool执行结果
                case ComFunCallEnum.BatchExeSQLStrMultiByTransNoLogNoBackup:
                    BatchExeSQLStringMultiByTrans BatchExeSQLStringMultiByTransNoLog = JsonConvert.DeserializeObject<BatchExeSQLStringMultiByTrans>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.BatchExeSQLStrMultiByTransNoLogNoBackup(connString, BatchExeSQLStringMultiByTransNoLog.batSQLStringList, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "BatchExeSQLStrMultiByTransNoLogNoBackup  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.BatchExeSQLStrMultiByTransNoLogNoBackup;BatchExeSQLStringMultiByTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,一次执行多条语句)多条语句(不带事务),返回bool。
                case ComFunCallEnum.ExecuteNonQueryReturnBoolNoTrans:
                    ExecuteNonQueryReturnBoolByTrans ExeSQLReturnBoolNoTrans = JsonConvert.DeserializeObject<ExecuteNonQueryReturnBoolByTrans>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.ExecuteNonQueryReturnBoolNoTrans(connString, ExeSQLReturnBoolNoTrans.sqlObj.cmdType, ExeSQLReturnBoolNoTrans.sqlObj.sqlString, ExeSQLReturnBoolNoTrans.sqlObj.Param, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "ExecuteNonQueryReturnBoolNoTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.ExecuteNonQueryReturnBoolNoTrans;ExecuteNonQueryReturnBoolNoTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,一次执行多条语句)多条语句(不带事务),返回影响行数Int。
                case ComFunCallEnum.ExecuteNonQueryReturnIntNoTrans:
                    ExecuteNonQueryReturnIntNoTrans ExeSQLReturnIntNoTrans = JsonConvert.DeserializeObject<ExecuteNonQueryReturnIntNoTrans>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        exeCount = BLL.DbCommon.Instance.ExecuteNonQueryReturnIntNoTrans(connString, ExeSQLReturnIntNoTrans.sqlObj.cmdType, ExeSQLReturnIntNoTrans.sqlObj.sqlString, ExeSQLReturnIntNoTrans.sqlObj.Param, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = exeCount.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "ExecuteNonQueryReturnIntNoTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.ExecuteNonQueryReturnIntNoTrans;ExecuteNonQueryReturnIntNoTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,一次执行多条语句)多条语句(不带事务),返回Object。
                case ComFunCallEnum.ExecuteNonQueryReturnObjectNoTrans:
                    ExecuteNonQueryReturnDataSetNoTrans ExeSQLReturnObjNoTrans = JsonConvert.DeserializeObject<ExecuteNonQueryReturnDataSetNoTrans>(reqeObj.FunObject.ToString());
                    Object obj;
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        obj = BLL.DbCommon.Instance.ExecuteNonQueryReturnObjectNoTrans(connString, ExeSQLReturnObjNoTrans.sqlObj.cmdType, ExeSQLReturnObjNoTrans.sqlObj.sqlString, ExeSQLReturnObjNoTrans.sqlObj.Param, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = obj == null ? "" : obj.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "ExecuteNonQueryReturnObjectNoTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.ExecuteNonQueryReturnObjectNoTrans;ExecuteNonQueryReturnObjectNoTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //一次执行(一次连接,一次执行多条语句)多条语句(不带事务),返回DataSet。
                case ComFunCallEnum.ExecuteNonQueryReturnDataSetNoTrans:
                    ExecuteNonQueryReturnDataSetNoTrans ExeSQLReturnDSNoTrans = JsonConvert.DeserializeObject<ExecuteNonQueryReturnDataSetNoTrans>(reqeObj.FunObject.ToString());
                    DataSet ds = new DataSet();
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringReadonly);
                        ds = BLL.DbCommon.Instance.ExecuteNonQueryReturnDataSetNoTrans(connString, ExeSQLReturnDSNoTrans.sqlObj.cmdType, ExeSQLReturnDSNoTrans.sqlObj.sqlString, ExeSQLReturnDSNoTrans.sqlObj.Param, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = JsonConvert.SerializeObject(ds);
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "ExecuteNonQueryReturnDataSetNoTrans  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.ExecuteNonQueryReturnDataSetNoTrans;ExecuteNonQueryReturnDataSetNoTrans对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //根据查询条件,查单表,重点是Where条件,拼接SQL
                case ComFunCallEnum.SelOPSingleTable:
                    SelOPSingleTable selOpSingTable = JsonConvert.DeserializeObject<SelOPSingleTable>(reqeObj.FunObject.ToString());
                    DataSet ds1 = new DataSet();
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringReadonly);
                        ds1 = BLL.DbCommon.Instance.SelOPSingleTable(connString, selOpSingTable.Fields, selOpSingTable.TableName, selOpSingTable.whereString, selOpSingTable.AdditionalConditions, userID);
                        //var jSetting = new JsonSerializerSettings();
                        //jSetting.NullValueHandling = NullValueHandling.Include;
                        //jSetting.DefaultValueHandling = DefaultValueHandling.Include;
                        //jSetting.MissingMemberHandling = MissingMemberHandling.Error;
                        resp.IsSuccess = "1";
                        resp.ReturnObject = JsonConvert.SerializeObject(ds1);
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "SelOPSingleTable error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.SelOPSingleTable;SelOPSingleTable对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //根据查询条件,查单表,查前几条,重点是Where条件,拼接SQL
                case ComFunCallEnum.SelTopOPSingleTable:
                    SelTopOPSingleTable selTopOpSingTable = JsonConvert.DeserializeObject<SelTopOPSingleTable>(reqeObj.FunObject.ToString());
                    DataSet ds2 = new DataSet();
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringReadonly);
                        ds2 = BLL.DbCommon.Instance.SelTopOPSingleTable(connString, selTopOpSingTable.TopNum, selTopOpSingTable.Fields, selTopOpSingTable.TableName, selTopOpSingTable.whereString, selTopOpSingTable.AdditionalConditions, userID);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = JsonConvert.SerializeObject(ds2);
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "SelTopOPSingleTable  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.SelTopOPSingleTable;SelTopOPSingleTable对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                //根据通用的分页存储过程,分页查询GetListPageStoreProcedure(page, pageSize, tableSource, whereValue, OrderExpression, Fields, ref Counts);   
                case ComFunCallEnum.SelOPByStoreProcePage:
                    SelOPByStoreProcePage selOpBySPPage = JsonConvert.DeserializeObject<SelOPByStoreProcePage>(reqeObj.FunObject.ToString());
                    DataSet ds3 = new DataSet();
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringReadonly);
                        ds3 = BLL.DbCommon.Instance.GetListPageStoreProcedure(connString, selOpBySPPage.PageIndex, selOpBySPPage.PageSize, selOpBySPPage.TableSource, selOpBySPPage.whereString, selOpBySPPage.OrderExpression, selOpBySPPage.Fields, userID, ref exeCount);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = JsonConvert.SerializeObject(ds3);
                        resp.RecordCount = exeCount;
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "SelOPByStoreProcePage  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.SelOPByStoreProcePage;SelOPByStoreProcePage对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;
                /// <summary>
                /// SQLBulk方式操作带事务,无日志记录,无操作备份
                /// </summary>
                /// <param name="connStr">数据库连接串</param>
                /// <param name="tableName">表名</param>
                /// <param name="listRow">DataRowList集合</param>
                /// <returns>SQLBulk批处理方式操作带事务,执行结果。全部成功,返回Bool True; 否则,返回False。</returns>
                case ComFunCallEnum.SqlBulkByTransNoLogNoBackUp:
                    SqlBulkByTransNoLogNoBackUp SqlBulkNoLogNoBackUp = JsonConvert.DeserializeObject<SqlBulkByTransNoLogNoBackUp>(reqeObj.FunObject.ToString());
                    try
                    {
                        string connString = LocalVariable.GetConnString(GlobalStaticObj_Server.Instance.CurrAccDbName, ConfigConst.ConnectionStringWrite);
                        result = BLL.DbCommon.Instance.SqlBulkByTransNoLogNoBackUp(connString, SqlBulkNoLogNoBackUp.tableName, SqlBulkNoLogNoBackUp.listRow);
                        resp.IsSuccess = "1";
                        resp.ReturnObject = result.ToString();
                    }
                    catch (Exception ex)
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "SqlBulkByTransNoLogNoBackUp  error:" + ex.Message;
                        ex.Data.Add("UserCustomDefinitionMsg", "准确点错误描述:ComFunCallEnum.SqlBulkByTransNoLogNoBackUp;SqlBulkByTransNoLogNoBackUp对象JSON字串描述:" + reqeObj.FunObject.ToString());
                        throw ex;
                    }
                    break;

            }
            exeCount = 0;
            return resp;
        }
Beispiel #13
0
        /// <summary> 调用webService方法
        /// </summary>
        /// <param name="funcName">调用webService方法的枚举</param>
        /// <param name="funcObject">调用Webservice传递对象,参考枚举描述</param>
        /// <returns>返回错信息,如果错误信息为空则为执行成功</returns>
        public static RespFunStruct WebServHandlerByFun(string opName, SYSModel.EnumWebServFunName enumFuncName, object webServFuncObj)
        {
            ReqeFunStruct_WebServ reqeFunStruct = new ReqeFunStruct_WebServ();
            reqeFunStruct.FunName = enumFuncName;
            reqeFunStruct.AccCode = GlobalStaticObj.CurrAccCode;
            reqeFunStruct.userIDOP.UserID = GlobalStaticObj.UserID;
            reqeFunStruct.userIDOP.OPName = opName;
            reqeFunStruct.PCClientCookieStr = GlobalStaticObj.CookieStr;
            reqeFunStruct.FunObject = webServFuncObj;

            string jsonStr = HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(reqeFunStruct));
            if (!WCFClientProxy.TestDataProxy())
            {
                throw new Exception("未能建立同服务器连接!");
            }
            RespFunStruct resp = new RespFunStruct();
            try
            {
                string resultStr = GlobalStaticObj.proxy.HandleWebServ(jsonStr);
                if (string.IsNullOrEmpty(resultStr))
                {
                    throw new Exception("调用webservice失败!");
                }
                string Str = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(resultStr);
                resp = JsonConvert.DeserializeObject<RespFunStruct>(Str);
                return resp;
            }
            catch (TimeoutException te)
            {
                WebServiceLogService.WriteLog(te);
                resp.IsSuccess = "0";
                resp.Msg = "操作超时";
            }
            catch (Exception e)
            {
                WebServiceLogService.WriteLog(e);
                resp.IsSuccess = "0";
                resp.Msg = "调用webservice出错!";
            }
            return resp;
        }
        /// <summary> 登陆验证
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string LoginIn(string str)
        {
            RespFunStruct resp = new RespFunStruct();
            try
            {
                string loginStr = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(str);
                LoginInput loginObj = Newtonsoft.Json.JsonConvert.DeserializeObject<LoginInput>(loginStr);

                #region 账套信息
                if (string.IsNullOrEmpty(loginObj.acccode))
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "帐套不能为空";
                    return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                }
                #endregion

                SetDbName(loginObj.acccode, false);

                #region 软件注册信息
                DataTable dt = BLL.DBHelper.GetTable("获取注册信息", GlobalStaticObj_Server.DbPrefix + GlobalStaticObj_Server.CommAccCode, "tb_signing_info", "authentication_status,protocol_expires_time", "", "", "");
                if (dt.Rows.Count == 0)
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "软件未注册";
                    return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                }
                DataSources.EnumAuthenticationStatus enumAuthenticationStatus = (DataSources.EnumAuthenticationStatus)Convert.ToInt32(dt.Rows[0]["authentication_status"].ToString());
                if (enumAuthenticationStatus != DataSources.EnumAuthenticationStatus.AUTHORIZED)
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "软件" + DataSources.GetDescription(enumAuthenticationStatus, true);
                    return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                }

                DateTime applyTime = Common.UtcLongToLocalDateTime(Convert.ToInt64(dt.Rows[0]["protocol_expires_time"].ToString()));
                if (applyTime < GlobalStaticObj_Server.Instance.CurrentDateTime)
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "软件过期";
                    return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                }
                #endregion

                #region 验证用户
                string tempUserID = BLL.DBHelper.GetSingleValue("验证用户是否存在", GlobalStaticObj_Server.Instance.CurrAccDbName, "sys_user", "user_id", " land_name='" + loginObj.username + "'", "");
                if (string.IsNullOrEmpty(tempUserID))
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "登录用户不存在";
                    return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                }
                //if (LoginSessionInfo.Instance.dicLoginInfos.ContainsKey(tempUserID))
                //{
                //    resp.IsSuccess = "0";
                //    resp.Msg = "该用户已在其他电脑登录";
                //     return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                //}

                OperationContext context = OperationContext.Current;
                //获取传进的消息属性  
                MessageProperties properties = context.IncomingMessageProperties;
                //获取消息发送的远程终结点IP和端口  
                RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;
                string IPStr = endpoint.Address + ":" + endpoint.Port.ToString();

                DataSet ds = new DataSet();
                string errMsg = BLL.ClientUser.UserLogin(loginObj, IPStr, GlobalStaticObj_Server.Instance.CurrAccDbName, out ds);
                if (!string.IsNullOrEmpty(errMsg))
                {
                    resp.IsSuccess = "0";
                    //resp.Msg = "登录密码错误";
                    resp.Msg = errMsg;
                    return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                }
                if (ds == null || ds.Tables.Count == 0 || (ds.Tables.Count == 1 && ds.Tables[0].Rows.Count == 0))
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "登录异常";
                    return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
                }
                #endregion

                string userID = ds.Tables[0].Rows[0][0].ToString();
                //将登陆id及cookie信息加入到缓存中
                string cookieStr = LoginSessionInfo.Instance.LoginIn(loginObj.acccode, userID); ;
                DataTable dtReturn = new DataTable("cookieStr");
                DataColumn dc = new DataColumn("cookieStr", typeof(string));
                dtReturn.Columns.Add(dc);
                DataRow dr = dtReturn.NewRow();
                dr["cookieStr"] = cookieStr;
                dtReturn.Rows.Add(dr);
                ds.Tables.Add(dtReturn);
                resp.IsSuccess = "1";
                resp.ReturnObject = JsonConvert.SerializeObject(ds);
            }
            catch (Exception ex)
            {
                resp.IsSuccess = "0";
                resp.Msg = "登陆失败:" + ex.Message;
                GlobalStaticObj_Server.WCFLogService.WriteLog("登陆验证", ex);
            }
            return HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
        }
        /// <summary> webservice方法调用
        /// </summary>
        /// <param name="strJson">json串</param>
        /// <returns>返回RespFunStruct</returns>
        public string HandleWebServ(string strJson)
        {
            RespFunStruct resp = new RespFunStruct();
            string returnStr = string.Empty;
            string opName = string.Empty;
            try
            {
                string objStr = HXCCommon.DotNetEncrypt.DESEncrypt.Decrypt(strJson);
                ReqeFunStruct_WebServ reqeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ReqeFunStruct_WebServ>(objStr);
                opName = reqeObj.userIDOP.OPName;
                if (string.IsNullOrEmpty(reqeObj.AccCode))
                {
                    resp.IsSuccess = "0";
                    resp.Msg = "帐套不能为空";
                }
                else
                {
                    SetDbName(reqeObj.AccCode, true);
                    if (!LoginSessionInfo.Instance.ValidaiteUser(reqeObj.userIDOP.UserID, reqeObj.PCClientCookieStr))
                    {
                        resp.IsSuccess = "0";
                        resp.Msg = "用户验证失败";
                    }
                    else
                    {
                        EnumWebServFunName enumFun = reqeObj.FunName;
                        resp = WebServHelper.WebServHandler(reqeObj.FunName, reqeObj.FunObject);

                    }
                }
            }
            catch (Exception ex)
            {
                resp.IsSuccess = "0";
                resp.Msg = "【接口调用】-" + opName + ":" + ex.Message;
                Utility.Log.Log.writeLineToLog("【接口调用】-" + opName + ":" + ex.Message, "wcf服务");
            }
            returnStr = HXCCommon.DotNetEncrypt.DESEncrypt.Encrypt(Newtonsoft.Json.JsonConvert.SerializeObject(resp));
            return returnStr;
        }
Beispiel #16
0
 private void tSMenuItem_UserInfo_Click(object sender, EventArgs e)
 {
     RespFunStruct respO = new RespFunStruct();
     ReqeFunStruct UserO = opUserParam();
     FunctionReturnBoolDelegateHandler funcCall = new FunctionReturnBoolDelegateHandler(Call);
     OpCommand.ShowLoadForm(GlobalStaticObj.AppMainForm, OpCommand.LForm);
     funcCall.BeginInvoke("新建用户", UserO, out respO, CallBack, funcCall);
 }
Beispiel #17
0
        /// <summary> 根据EnumWebServFunName枚举,调用WebService方法名称
        /// </summary>
        /// <param name="funcName">WebService方法名称</param>
        /// <param name="funcObject">WebService参数对象</param>
        /// <returns>返回约定内容</returns>
        public static SYSModel.RespFunStruct WebServHandler(SYSModel.EnumWebServFunName enumFunName, object funcObject)
        {
            SYSModel.RespFunStruct resp = new SYSModel.RespFunStruct();
            string msg = string.Empty;//错误消息

            switch (enumFunName)
            {
                #region 基础数据
            case SYSModel.EnumWebServFunName.UpLoadCcontact:
            {
                tb_contacts_ex model  = Newtonsoft.Json.JsonConvert.DeserializeObject <tb_contacts_ex>(funcObject.ToString());
                string         result = WebServ_YT_BasicData.UpLoadCcontact(model);
                resp = HandleErr(string.IsNullOrEmpty(result) ? "1" : "0", result);
                break;
            }

            case SYSModel.EnumWebServFunName.UpLoadCustomer:
            {
                tb_customer model  = Newtonsoft.Json.JsonConvert.DeserializeObject <tb_customer>(funcObject.ToString());
                string      result = WebServ_YT_BasicData.UpLoadCustomer(model);
                resp = HandleErr(string.IsNullOrEmpty(result) ? "1" : "0", result);
                break;
            }

            case SYSModel.EnumWebServFunName.UpLoadSercicePartStock:
            {
                Dictionary <string, int> dic = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, int> >(funcObject.ToString());
                bool flag = WebServ_YT_BasicData.UpLoadSercicePartStock(dic);
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.SearchContact:
            {
                DataTable dt = WebServ_YT_BasicData.SearchContact();
                if (dt == null || dt.Rows.Count == 0)
                {
                    resp.IsSuccess = "0";
                }
                else
                {
                    resp.IsSuccess = "1";
                }
                resp.Msg          = "";
                resp.ReturnObject = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
                break;
            }

                #endregion
                #region 业务数据
            case SYSModel.EnumWebServFunName.UpLoadPartSale:
            {
                bool flag = WebServ_YT_BusiData.UpLoadPartSale(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.UpLoadServiceOrder:
            {
                bool flag = WebServ_YT_BusiData.UpLoadServiceOrder(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.UpLoadRepairBill:
            {
                bool flag = WebServ_YT_BusiData.UpLoadRepairBill(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.UpLoadPartPurchase:
            {
                bool flag = WebServ_YT_BusiData.UpLoadPartPurchase(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.UpLoadPartPutStore:
            {
                bool flag = WebServ_YT_BusiData.UpLoadPartPutStore(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.LoadOrderStatus:
            {
                bool flag = WebServ_YT_BusiData.LoadOrderStatus(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.LoadPartInStore:
            {
                bool flag = WebServ_YT_BusiData.LoadPartInStore(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.LoadPartPurchaseStauts:
            {
                bool flag = WebServ_YT_BusiData.LoadPartPurchaseStauts(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.LoadStoreCenter:
            {
                bool flag = WebServ_YT_BusiData.LoadStoreCenter(funcObject.ToString());
                resp = HandleErr(flag ?"1":"0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.QuerySettleAccounts:
            {
                bool flag = WebServ_YT_BusiData.QuerySettleAccounts(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.LoadServiceSettleStatus:
            {
                bool flag = WebServ_YT_BusiData.LoadServiceSettleStatus(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.UpPartReturnCreate:
            {
                bool flag = WebServ_YT_BusiData.UpPartReturnCreate(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.LoadPartRetureStatus:
            {
                bool flag = WebServ_YT_BusiData.LoadPartRetureStatus(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case SYSModel.EnumWebServFunName.UpPartRetureUpdate:
            {
                bool flag = WebServ_YT_BusiData.UpPartRetureUpdate(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

            case EnumWebServFunName.SearchOrderStatus:
            {
                string status = WebServ_YT_BusiData.SearchOrderStatus(funcObject.ToString());
                resp = HandleErr(string.IsNullOrEmpty(status) ? "0" : "1", status);
                break;
            }

            case EnumWebServFunName.UpLoadServiceSettleStatus:
            {
                bool flag = WebServ_YT_BusiData.UpLoadServiceSettleStatus(funcObject.ToString());
                resp = HandleErr(flag ? "1" : "0", flag.ToString());
                break;
            }

                #endregion
            default:
            {
                resp.IsSuccess = "0";
                resp.Msg       = "找不到对应的Wcf方法";
                break;
            }
            }

            return(resp);
        }