Exemplo n.º 1
0
 public AlipayPrec_MY() //获取小区、项目信息
 {
     base.Token   = "20160804AlipayPrec";
     c            = new Config();
     c.notify_url = Global_Fun.AppWebSettings("AliPayPrec_Notify_Url").ToString();
     //c.notify_url = "http://125.64.16.10:9999/TWInterface/Service/AlipayCallBack/AliPayPrec.ashx";
 }
Exemplo n.º 2
0
        private string GetCommunityList(DataRow row)
        {
            if (!row.Table.Columns.Contains("CorpID") || string.IsNullOrEmpty(row["CorpID"].ToString()))
            {
                return(JSONHelper.FromString(false, "公司编号不能为空"));
            }

            using (IDbConnection conn = new SqlConnection(Global_Fun.Tw2bsConnectionString("1")))
            {
                dynamic dbInfo = conn.Query(@"SELECT DBServer,DBName,DBUser,DBPwd FROM Tb_System_Corp WHERE CorpID=@CorpID",
                                            new { CorpID = row["CorpID"].ToString() }).FirstOrDefault();

                if (dbInfo != null)
                {
                    Tb_Community community = new Tb_Community()
                    {
                        DBServer = dbInfo.DBServer,
                        DBName   = dbInfo.DBName,
                        DBUser   = dbInfo.DBUser,
                        DBPwd    = dbInfo.DBPwd
                    };

                    using (IDbConnection conn2 = new SqlConnection(GetConnectionStringStr(community)))
                    {
                        IEnumerable <dynamic> resultSet = conn2.Query(@"SELECT CommID,CommName FROM Tb_HSPR_Community WHERE isnull(IsDelete,0)=0");

                        return(new ApiResult(true, resultSet).toJson());
                    }
                }
                return(JSONHelper.FromString(false, "未查询到公司信息"));
            }
        }
Exemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="BussId"></param>
        /// <param name="out_trade_no"></param>
        /// <param name="txnTime"></param>
        /// <param name="total_fee"></param>
        /// <param name="R"></param>
        /// <param name="prepay_str"></param>
        /// <param name="WPD"></param>
        /// <returns></returns>
        public string GenerateBankOrder(string BussId, string out_trade_no, string txnTime, int total_fee, ref bool R, ref WxPayData WPD, WxPayConfig wxPayConfig, string subject = "")
        {
            R = false;
            //统一下单
            WxPayData data = new WxPayData();

            data.SetValue("body", string.IsNullOrEmpty(subject) ? "商品购买" : subject);
            data.SetValue("attach", BussId.ToString());
            data.SetValue("out_trade_no", out_trade_no);
            data.SetValue("total_fee", total_fee);
            data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
            data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss"));
            data.SetValue("notify_url", Global_Fun.AppWebSettings("WechatPayBuss_Notify_Url").ToString());
            data.SetValue("trade_type", "APP");

            WxPayData result = WxPayApi.UnifiedOrder(data, wxPayConfig);

            if (!result.IsSet("appid") || !result.IsSet("prepay_id") || result.GetValue("prepay_id").ToString() == "")
            {
                R = false;
                return("UnifiedOrder response error");
            }
            R   = true;
            WPD = result;
            return("SUCCESS");
        }
Exemplo n.º 4
0
        /// <summary>
        /// 预缴信息
        /// </summary>
        private string GetCustomerType8(string CustID, string CommID, int Start, int End, int Size)
        {
            var chargeConnString = Global_Fun.BurstConnectionString(AppGlobal.StrToInt(CommID), Global_Fun.BURST_TYPE_CHARGE);

            using (var conn = new SqlConnection(chargeConnString))
            {
                var sql = @"SELECT COUNT(*) FROM Tb_HSPR_PreCostsDetail a 
                            WHERE PrecAmount>0 AND ISNULL(IsDelete,0)=0 AND CommID=@CommID AND CustID=@CustID";

                long count    = conn.QueryFirstOrDefault <long>(sql, new { CommID, CustID });
                long pageRes  = count % Size > 0 ? (count / Size) + 1 : count / Size;
                long countRes = count;

                var FeesList = conn.Query(@"SELECT CostName,RoomSign,PrecAmount,PrecMemo,ParkNames,isnull(NewPrecAmount,0) AS NewPrecAmount
                                            FROM(SELECT *,ROW_NUMBER () OVER ( ORDER BY CustID DESC ) AS RowId FROM
	                                        view_HSPR_PreCostsDetail_Filter a 
                                            WHERE PrecAmount>0 
											AND ISNULL(IsDelete,0)=0
	                                        AND CommID = @CommID 
	                                        AND CustID = @CustID 
	                                        ) AS a WHERE
	                                        RowId BETWEEN @Start 
	                                        AND @END"    , new
                {
                    CommID = CommID,
                    CustID = CustID,
                    Start  = Start,
                    End    = End
                }).ToList();

                return(new ApiPageResult(true, FeesList, pageRes, countRes).toJson());
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 小区是否支持红色物业
        /// </summary>
        /// <param name="row"></param>
        /// <param name="trans"></param>
        /// <returns></returns>
        private string CheckRedWuYeInfo(DataRow row, Transfer trans)
        {
            string result = "0";

            if (!row.Table.Columns.Contains("CommunityId") && String.IsNullOrEmpty(row["CommunityId"].ToString()))
            {
                return(result);
            }

            string CommunityId = row["CommunityId"].ToString();
            string sql         = string.Format("select CommID from Tb_Community where Id='{0}'", row["CommunityId"].ToString());

            DataTable dTable = new DbHelperSQLP(PubConstant.GetConnectionString("UnifiedConnectionString")).Query(sql.ToString()).Tables[0];

            if (dTable.Rows.Count > 0)
            {
                string CommID = dTable.Rows[0]["CommID"].ToString();
                if (!string.IsNullOrEmpty(CommID))
                {
                    string haveRedWuYe = Global_Fun.AppWebSettings("HaveRedWuYeCommID").ToString();
                    if (!string.IsNullOrEmpty(haveRedWuYe))
                    {
                        if (haveRedWuYe.Contains(CommunityId))
                        {
                            result = "1";
                        }
                    }
                }
            }

            return(result);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 分页下载任务标准
        /// </summary>
        private string DownloadTaskStandardWithPager(DataRow row)
        {
            if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString()))
            {
                return(JSONHelper.FromString(false, "小区id不能为空"));
            }
            if (!row.Table.Columns.Contains("TaskId") || string.IsNullOrEmpty(row["TaskId"].ToString()))
            {
                return(JSONHelper.FromString(false, "任务id不能为空"));
            }

            var taskId = row["TaskId"].ToString();
            var commId = AppGlobal.StrToInt(row["CommID"].ToString());

            var pageSize  = TASK_POINT_STANDARD_PAGE_SIZE;
            var pageIndex = 1;

            if (row.Table.Columns.Contains("PageSize") && !string.IsNullOrEmpty(row["PageSize"].ToString()))
            {
                pageSize = AppGlobal.StrToInt(row["PageSize"].ToString());
            }
            if (row.Table.Columns.Contains("PageIndex") && !string.IsNullOrEmpty(row["PageIndex"].ToString()))
            {
                pageIndex = AppGlobal.StrToInt(row["PageIndex"].ToString());
            }

            var connStr = Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SUPERVISION);

            using (var conn = new SqlConnection(connStr))
            {
                var sql = $@"SELECT * FROM (
                                SELECT ROW_NUMBER() OVER(ORDER BY a.TaskStandardId) AS RN,
                                CASE c.CheckMethod
                                    WHEN 1 THEN a.ProfessionalLine
                                    WHEN 2 THEN a.CategoryDimension
                                    WHEN 3 THEN a.Department
                                    ELSE '' END AS ScoreItemID,
                                    a.TaskStandardId,a.TaskId,a.ItemId,a.ItemNameAll,a.StandardId,a.Content,a.CheckScenario,a.CheckMethod,
                                    a.SamplingStandard,a.MarkStandard,a.StandardScore,a.IsAllowFloat,a.MaximumFloatingScore,a.DeductionNature,
                                    a.ProfessionalLine,a.CategoryDimension,a.Department,a.DeductionScore,a.CheckUserCode,a.CheckUserName,
                                    a.CheckDate,a.IsDiscard,'' AS Remark, '' AS Img,
                                    g.Sort
                                FROM Tb_Supervision_TaskStandard a WITH(NOLOCK)
                                LEFT JOIN Tb_Supervision_Task b ON a.TaskId=b.TaskId
                                LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_Plan c ON b.PlanId=c.Id
                                LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_ScoreItem d ON d.Id = a.ProfessionalLine
                                LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_ScoreItem e ON e.Id = a.CategoryDimension
                                LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_ScoreItem f ON f.Id = a.Department
                                LEFT JOIN { Global_Var.ERPDatabaseName }.dbo.Tb_Supervision_CheckStandard_CheckItem g ON a.ItemId=g.Id
                                WHERE a.TaskId='{ taskId }'
                                ORDER BY g.Sort ASC
                            ) t
							WHERE t.RN BETWEEN ({ pageIndex }-1)*{ pageSize }+1 AND { pageIndex }*{ pageSize }"                            ;

                var data = conn.Query(sql).ToList();

                return(new ApiResult(true, data).toJson());
            }
        }
Exemplo n.º 7
0
 public static string GetConnection(string CommunityId)
 {
     //IDbConnection conn = new SqlConnection(PubConstant.UnifiedContionString.ToString());
     //string query = "SELECT * FROM Tb_Community WHERE Id=@id";
     //var T = conn.Query<Tb_Community>(query, new { id = CommunityId }).ToList();
     //if (T.Count > 0)
     //{
     //    return UnionUtil.GetConnectionString(T[0]).ToString();
     //}
     //return "";
     return(Global_Fun.GetConnectionString(""));
 }
Exemplo n.º 8
0
        /// <summary>
        /// 分页下载标准的加扣分项
        /// </summary>
        private string DownloadTaskDeductionWithPager(DataRow row)
        {
            if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString()))
            {
                return(JSONHelper.FromString(false, "小区id不能为空"));
            }
            if (!row.Table.Columns.Contains("TaskId") || string.IsNullOrEmpty(row["TaskId"].ToString()))
            {
                return(JSONHelper.FromString(false, "任务id不能为空"));
            }

            var taskId = row["TaskId"].ToString();
            var commId = AppGlobal.StrToInt(row["CommID"].ToString());

            var pageSize  = TASK_POINT_STANDARD_PAGE_SIZE;
            var pageIndex = 1;

            if (row.Table.Columns.Contains("PageSize") && !string.IsNullOrEmpty(row["PageSize"].ToString()))
            {
                pageSize = AppGlobal.StrToInt(row["PageSize"].ToString());
            }
            if (row.Table.Columns.Contains("PageIndex") && !string.IsNullOrEmpty(row["PageIndex"].ToString()))
            {
                pageIndex = AppGlobal.StrToInt(row["PageIndex"].ToString());
            }

            var connStr = Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SUPERVISION);

            using (var conn = new SqlConnection(connStr))
            {
                var sql = $@"SELECT * FROM (
                                SELECT ROW_NUMBER() OVER(ORDER BY a.TaskDeductionItemId) AS RN,
                                a.*
                                FROM Tb_Supervision_TaskDeductionItem a WITH(NOLOCK)
                                WHERE a.TaskId='{ taskId }'
                            ) t
							WHERE t.RN BETWEEN ({ pageIndex }-1)*{ pageSize }+1 AND { pageIndex }*{ pageSize }"                            ;

                var data = conn.Query(sql).ToList();


                foreach (var deductionItem in data)
                {
                    var keyId = deductionItem.TaskDeductionItemId;
                    sql = $@"SELECT a.* FROM Tb_Supervision_TaskFiles a WITH(NOLOCK) WHERE TaskId='{ taskId }' AND KeyId='{ keyId }'";

                    var files = conn.Query(sql).ToList();
                    deductionItem.Files = files;
                }

                return(new ApiResult(true, data).toJson());
            }
        }
Exemplo n.º 9
0
 private string ReceFees(DataRow row)
 {
     #region 获取基本参数
     string CommID = string.Empty;
     if (row.Table.Columns.Contains("CommID"))
     {
         CommID = row["CommID"].ToString();
     }
     string RoomID = string.Empty;
     if (row.Table.Columns.Contains("RoomID"))
     {
         RoomID = row["RoomID"].ToString();
     }
     string CustID = string.Empty;
     if (row.Table.Columns.Contains("CustID"))
     {
         CustID = row["CustID"].ToString();
     }
     #endregion
     #region 计算金额
     if (!row.Table.Columns.Contains("PayData") || string.IsNullOrEmpty(row["PayData"].ToString()))
     {
         return new ApiResult(false, "缺少参数PayData").toJson();
     }
     string PayData = row["PayData"].ToString();
     if (!CheckPayData(Global_Fun.BurstConnectionString(Convert.ToInt32(CommID), Global_Fun.BURST_TYPE_CHARGE), Convert.ToInt64(CustID), Convert.ToInt64(RoomID), PayData, out decimal Amt, out string errMsg, true, false, !"1940".Equals(Global_Var.LoginCorpID)))
     {
         return new ApiResult(false, errMsg).toJson();
     }
     if (Amt <= 0.00M)
     {
         return new ApiResult(false, "金额必须大于0").toJson();
     }
     #endregion
     JObject jObj = JObject.Parse(PayData);
     int Type = (int)jObj["Type"];
     if (Type != 1)
     {
         return new ApiResult(false, "收费类型有误").toJson();
     }
     JArray Data = (JArray)jObj["Data"];
     StringBuilder FeesIds = new StringBuilder();
     foreach (JObject item in Data)
     {
         FeesIds.Append((string)item["FeesId"] + ",");
     }
     if (!PubInfo.ReceFees(Global_Fun.BurstConnectionString(Convert.ToInt32(CommID), Global_Fun.BURST_TYPE_CHARGE), out long ReceID, CommID, CustID, RoomID, FeesIds.ToString(), 0.00M, "员工APP", "扫码支付", Global_Var.UserCode, 1))
     {
         return new ApiResult(false, "下账失败").toJson();
     }
     return new ApiResult(true, "下账成功").toJson();
 }
Exemplo n.º 10
0
        /// <summary>
        /// 关闭任务
        /// </summary>
        private string CloseTask(DataRow row)
        {
            if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString()))
            {
                return(JSONHelper.FromString(false, "小区id不能为空"));
            }

            if (!row.Table.Columns.Contains("TaskId") || string.IsNullOrEmpty(row["TaskId"].ToString()))
            {
                return(JSONHelper.FromString(false, "任务id不能为空"));
            }

            if (!row.Table.Columns.Contains("TaskType") || string.IsNullOrEmpty(row["TaskType"].ToString()))
            {
                return(JSONHelper.FromString(false, "任务类型不能为空"));
            }

            if (!row.Table.Columns.Contains("CloseReason") || string.IsNullOrEmpty(row["CloseReason"].ToString()))
            {
                return(JSONHelper.FromString(false, "请选择任务关闭原因"));
            }

            var commId   = AppGlobal.StrToInt(row["CommID"].ToString());
            var taskId   = row["TaskId"].ToString();
            var taskType = row["TaskType"].ToString();

            var closeReason = row["CloseReason"].ToString();
            var closeRemark = default(string);

            if (row.Table.Columns.Contains("CloseRemark") && !string.IsNullOrEmpty(row["CloseRemark"].ToString()))
            {
                closeRemark = row["CloseRemark"].ToString();
            }

            using (var conn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SUPERVISION)))
            {
                var sql = $@"UPDATE Tb_Supervision_Task SET IsClose=1,CloseDate=getdate(),CloseUserCode=@CloseUserCode,
                            CloseReason=@CloseReason,CloseRemark=@CloseRemark WHERE TaskId=@TaskId";

                int i = conn.Execute(sql, new { CloseUserCode = Global_Var.LoginUserCode, CloseReason = closeReason, CloseRemark = closeRemark, TaskId = taskId });
                if (i == 1)
                {
                    return(JSONHelper.FromString(true, "关闭成功"));
                }
                return(JSONHelper.FromString(false, "关闭失败"));
            }
        }
Exemplo n.º 11
0
        /// <summary>
        /// 获取单个模块详情
        /// </summary>
        /// <returns></returns>
        ///
        private string GetSunPropertyTaskDetail(DataRow row)
        {
            if (!row.Table.Columns.Contains("CommunityId") || string.IsNullOrEmpty(row["CommunityId"].AsString()))
            {
                return(new ApiResult(false, "缺少参数CommunityId").toJson());
            }

            if (!row.Table.Columns.Contains("TaskType") || string.IsNullOrEmpty(row["TaskType"].AsString()))
            {
                return(new ApiResult(false, "缺少参数TaskType").toJson());
            }

            var communityId = row["CommunityId"].ToString();
            var taskType    = row["TaskType"].ToString();
            var community   = GetCommunity(communityId);

            if (community == null)
            {
                return(JSONHelper.FromString(false, "未查询到小区信息"));
            }
            var commId = AppGlobal.StrToInt(community.CommID);

            PubConstant.tw2bsConnectionString  = Global_Fun.Tw2bsConnectionString("1");
            PubConstant.hmWyglConnectionString = GetConnectionStr(community);
            try {
                var list = new List <TaskDetailInfo>();
                switch (taskType)
                {
                case "环境巡检":
                    list.AddRange(GetEnviromentTaskRecentlyExecuteInfo(commId));
                    break;

                case "设备巡检":
                    list.AddRange(GetEquipmentExecuteInfo(commId));
                    break;

                case "安全巡检":
                    list.AddRange(GetSecureExecuteInfo(commId));
                    break;
                }
                return(new ApiResult(true, list).toJson());
            }
            catch (Exception o)
            {
                return(new ApiResult(false, o.Message).toJson());
            }
        }
Exemplo n.º 12
0
        private String GetBusinessOpenStatus()
        {
            int result = 0;

            try
            {
                var openStatus = Global_Fun.AppWebSettings("Business_Open");
                if (!String.IsNullOrEmpty(openStatus))
                {
                    int.TryParse(openStatus, out result);
                }
            }
            catch (Exception ex)
            {
                //
            }
            return(new ApiResult(true, result).toJson());
        }
Exemplo n.º 13
0
        /// <summary>
        /// 报事信息
        /// </summary>
        private string GetCustomerType5(string CustID, string CommID, int Start, int End, int Size, int IsTousu = -1)
        {
            using (var conn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                var sql = @"SELECT COUNT(1) FROM Tb_HSPR_IncidentAccept a 
                            WHERE ISNULL( IsDelete, 0 )=0 AND CommID=@CommID AND CustID=@CustID";

                long count    = conn.QueryFirstOrDefault <long>(sql, new { CommID, CustID });
                long pageRes  = count % Size > 0 ? (count / Size) + 1 : count / Size;
                long countRes = count;

                var chargeConnString = Global_Fun.BurstConnectionString(AppGlobal.StrToInt(CommID), Global_Fun.BURST_TYPE_CHARGE);
                using (var chargeConn = new SqlConnection(chargeConnString))
                {
                    sql = $@"SELECT * FROM
                            (
                                SELECT *,ROW_NUMBER () OVER ( ORDER BY IncidentDate DESC ) AS RowId
                                FROM
                                (
                                    SELECT x.CommID,x.CustID,x.IncidentNum,x.RoomSign,x.IncidentPlace,x.IncidentContent,
                                        x.IncidentDate,x.DealMan,x.DealSituation,x.IsDelete,x.IsTouSu,
                                        (SELECT isnull(sum(isnull(y.DueAmount,0)),0) FROM Tb_HSPR_Fees y
                                            WHERE isnull(IsDelete,0)=0 AND y.IncidentID=x.IncidentID) AS ChargeAmount,
                                        (SELECT TOP 1 CASE y.ReplyResult WHEN 1 THEN '成功回访' ELSE '不成功回访' END
                                            FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_IncidentReply y
                                            WHERE y.IncidentID=x.IncidentID ORDER BY y.ReplyResult DESC) AS ReplyResult,
                                        (SELECT TOP 1 y.ServiceQuality FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_IncidentReply y
                                            WHERE y.IncidentID=x.IncidentID ORDER BY y.ReplyResult DESC) AS ServiceQuality,
                                        (SELECT TOP 1 y.ReplyContent FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_IncidentReply y
                                            WHERE y.IncidentID=x.IncidentID ORDER BY y.ReplyResult DESC) AS ReplyContent,
                                        (SELECT y.TypeName FROM {Global_Var.ERPDatabaseName}.dbo.Tb_HSPR_CorpIncidentType y
                                            WHERE y.CorpTypeID=isnull(x.FineCorpTypeID,x.BigCorpTypeID)) AS TypeName
                                    FROM {Global_Var.ERPDatabaseName}.dbo.view_HSPR_IncidentAccept_Filter x
                                ) a
                                WHERE ISNULL(IsDelete, 0)=0 AND CommID=@CommID AND CustID=@CustID {(IsTousu == 1 ? " AND isnull(IsTousu,0)=1" : "")}
                            ) AS a WHERE
                            RowId BETWEEN @Start AND @END;";

                    var IncidentList = chargeConn.Query(sql, new { CommID = CommID, CustID = CustID, Start = Start, End = End });

                    return(new ApiPageResult(true, IncidentList, pageRes, countRes).toJson());
                }
            }
        }
Exemplo n.º 14
0
        public static string getSignature(Dictionary <string, string> parameters)
        {
            string data   = "";
            string secret = Global_Fun.AppWebSettings("ZLSecret");              //"3KUkEEV0zTLLXSqWG2KMRCgOU+GZDHj5cL1i8xdFVKD1QXG2lLCvOEYZs9SUKTqEbLSFtDO5DllNxYSG/nff6A==";

            byte[]   key        = Convert.FromBase64String(secret);
            HMACSHA1 myhmacsha1 = new HMACSHA1(key);

            myhmacsha1.Initialize();
            byte[] b    = null;
            var    vDic = parameters.OrderBy(x => x.Key, new ComparerString()).ToDictionary(x => x.Key, y => y.Value);

            foreach (KeyValuePair <string, string> kv in vDic)
            {
                data = data + kv.Key + kv.Value;
            }
            b = myhmacsha1.ComputeHash(Encoding.UTF8.GetBytes(data));
            return(Convert.ToBase64String(b));
        }
Exemplo n.º 15
0
        public string SendStatusForZL(long IncidentID, int status, string flowNode, string message)
        {
            string requestUrl = Global_Fun.AppWebSettings("ZLRequestUrl");              //"http://test118.zuolin.com/vdocking/privilege/hasManagePrivilege";

            ZLDataModel model = new ZLDataModel();

            model.appKey    = Global_Fun.AppWebSettings("ZLAppKey");           //"9057b579-1f68-456d-b98d-a151ddeacd35";
            model.timeStamp = ConvertDateTimeToLong(DateTime.Now);

            Random rad = new Random();            //实例化随机数产生器rad;

            model.nonce = rad.Next(1000, 10000).ToString();

            model.namespaceId = int.Parse(Global_Fun.AppWebSettings("ZLNamespaceId"));              //11;
            model.sendNo      = ConvertDateTimeToLong(DateTime.Now);
            model.incidentId  = 19730200002222;
            model.status      = 2;
            model.flowNode    = "11111";
            model.message     = "11111";

            Dictionary <string, string> parameters = new Dictionary <string, string>();

            parameters.Add("appKey", model.appKey);
            parameters.Add("nonce", model.nonce);
            parameters.Add("timeStamp", model.timeStamp);
            parameters.Add("namespaceId", model.namespaceId.ToString());
            parameters.Add("sendNo", model.sendNo);
            parameters.Add("data[0].incidentId", model.incidentId.ToString());
            parameters.Add("data[0].status", model.status.ToString());
            parameters.Add("data[0].flowNode", model.flowNode);
            parameters.Add("data[0].message", model.message);

            model.signature = getSignature(parameters);

            parameters.Add("signature", model.signature);

            string contents = string.Format(@"appKey={1}&timeStamp={2}&nonce={3}&namespaceId={4}&sendNo={5}&data[0].incidentId={6}&data[0].status={7}&data[0].flowNode={8}&data[0].message={9}&signature={10}", requestUrl, model.appKey, model.timeStamp, model.nonce, model.namespaceId, model.sendNo, model.incidentId, model.status, model.flowNode, model.message, model.signature);

            string str = SendHttp(requestUrl, contents);

            return(str);
        }
Exemplo n.º 16
0
        /// <summary>
        /// 配置支付请求参数,根据当前商家获取
        /// </summary>
        /// <param name="BussId"></param>
        public WxPayConfig GenerateConfig(string BussId)
        {
            WxPayConfig   wxPayConfig = null;
            IDbConnection conn        = new SqlConnection(ConnectionDb.GetBusinessConnection());
            string        query       = "SELECT * FROM Tb_WeiXinPayCertificate WHERE BussId=@BussId";

            Model.Model.Buss.Tb_WeiXinPayCertificate T = conn.Query <Model.Model.Buss.Tb_WeiXinPayCertificate>(query, new { BussId = BussId }).SingleOrDefault();
            if (T != null)
            {
                wxPayConfig                  = new WxPayConfig();
                wxPayConfig.APPID            = T.appid.ToString();
                wxPayConfig.MCHID            = T.mch_id.ToString();
                wxPayConfig.KEY              = T.appkey.ToString();
                wxPayConfig.APPSECRET        = T.appsecret.ToString();
                wxPayConfig.SSLCERT_PATH     = T.SSLCERT_PATH;
                wxPayConfig.SSLCERT_PASSWORD = T.SSLCERT_PASSWORD;
                wxPayConfig.NOTIFY_URL       = Global_Fun.AppWebSettings("WechatPayBuss_Notify_Url").ToString();
            }
            return(wxPayConfig);
        }
Exemplo n.º 17
0
        /// <summary>
        /// 配置支付请求参数,根据当前小区获取
        /// </summary>
        /// <param name="Row"></param>
        public WxPayConfig GenerateConfig(string CommunityId)
        {
            WxPayConfig             wxPayConfig = null;
            IDbConnection           conn        = new SqlConnection(PubConstant.UnifiedContionString.ToString());
            string                  query       = "SELECT * FROM Tb_WeiXinPayCertificate WHERE CommunityId=@CommunityId";
            Tb_WeiXinPayCertificate T           = conn.Query <Tb_WeiXinPayCertificate>(query, new { CommunityId = CommunityId }).SingleOrDefault();

            if (T != null)
            {
                wxPayConfig                  = new WxPayConfig();
                wxPayConfig.APPID            = T.appid.ToString();
                wxPayConfig.MCHID            = T.mch_id.ToString();
                wxPayConfig.KEY              = T.appkey.ToString();
                wxPayConfig.APPSECRET        = T.appsecret.ToString();
                wxPayConfig.SSLCERT_PATH     = T.SSLCERT_PATH;
                wxPayConfig.SSLCERT_PASSWORD = T.SSLCERT_PASSWORD;
                wxPayConfig.NOTIFY_URL       = Global_Fun.AppWebSettings("WechatPay_Notify_Url").ToString();
            }
            return(wxPayConfig);
        }
Exemplo n.º 18
0
        /// <summary>
        /// 环境巡检 记录
        /// </summary>
        /// <param name="commId"></param>
        /// <returns></returns>
        private TaskInfo GetEnvironment(int commId)
        {
            // 环境
            using (var ambientConn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_AMBIENT)))
            {
                var sql = $@"SELECT TOP 1 convert(varchar(20),LastExecuteTime,120) FROM
                            (
                                SELECT BeginTime AS LastExecuteTime FROM Tb_CP_Task_Ambient
                                WHERE IsClose=0 AND IsDelete=0 AND BeginTime<=getdate() AND CommId=@CommID
                            ) AS t
                            ORDER BY LastExecuteTime DESC";

                var ambientDate = ambientConn.Query <string>(sql, new { CommID = commId }).FirstOrDefault();
                return(new TaskInfo
                {
                    TaskType = "环境巡检",
                    LastExecuteTime = ambientDate ?? "暂无巡检记录"
                });
            }
        }
Exemplo n.º 19
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var corpId = Request["CorpId"].ToString();
            var taskId = Request["TaskId"].ToString();
            var entry  = Request["Net"] ?? "1";

            Global_Var.CorpId                 = corpId;
            Global_Var.CorpID                 = corpId;
            Global_Var.LoginCorpID            = corpId;
            PubConstant.tw2bsConnectionString = Global_Fun.Tw2bsConnectionString(entry);
            AppGlobal.GetHmWyglConnection();

            using (var conn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                var sql   = @"SELECT GuidanceDocuments FROM Tb_Visit_VisitCategory WHERE ID=(SELECT VisitCategoryID FROM Tb_Visit_Plan WHERE ID=@PlanId);";
                var guide = conn.Query <string>(sql, new { PlanId = taskId }).FirstOrDefault();

                guideContent.InnerText = guide ?? "暂无指引信息";
            }
        }
Exemplo n.º 20
0
        //活动目录判断
        public static string IsAuthenticated(String username, String pwd)
        {
            string IsAd = "true";

            try
            {
                IsAd = Global_Fun.AppWebSettings("IsAd");
            }
            catch (Exception E)
            {
                return("true");
            }

            string ADDomain = Global_Fun.AppWebSettings("ADDomain");

            if (IsAd == "true")
            {
                try
                {
                    string            domain            = ADDomain;
                    String            domainAndUsername = domain + @"\" + username;
                    DirectoryEntry    entry             = new DirectoryEntry("LDAP://" + domain, username, pwd);
                    Object            obj    = entry.NativeObject;
                    DirectorySearcher search = new DirectorySearcher(entry);
                    search.Filter = "(SAMAccountName=" + username + ")";
                    search.PropertiesToLoad.Add("cn");
                    SearchResult result = search.FindOne();
                    if (null == result)
                    {
                        return("活动目录验证该账号失败");
                    }
                }
                catch (Exception E)
                {
                    return("活动目录:" + E.Message.ToString());
                }
            }

            return("true");
        }
Exemplo n.º 21
0
        /// <summary>
        /// 获取复验待办列表
        /// </summary>
        private string GetHouseInspectionReviewList(DataRow row)
        {
            if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString()))
            {
                return(JSONHelper.FromString(false, "小区编号不能为空"));
            }

            string commID = row["CommID"].ToString();

            int PageIndex = 1;
            int PageSize  = 10;

            if (row.Table.Columns.Contains("PageIndex"))
            {
                PageIndex = Global_Fun.StrToInt(row["PageIndex"].ToString());
            }
            if (row.Table.Columns.Contains("PageSize"))
            {
                PageSize = Global_Fun.StrToInt(row["PageSize"].ToString());
            }

            using (IDbConnection con = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                string sql = @"SELECT b.IID,(SELECT stuff((SELECT ','+FilePath FROM Tb_HSPR_HousingFiles f WHERE f.InspID = CAST(b.InspID AS VARCHAR(50)) AND f.ProjID = CAST(b.ProjID AS VARCHAR(50)) FOR XML PATH ('')),1,1,'')) AS FilePath,
                                  c.HS_Projects AS ProjName,c.HS_Standards AS ProjStandard,
                                  a.IncidentID,a.IncidentNum,a.DispMan,a.DispDate,a.DealMan,a.MainEndDate,
                                  a.RoomID,e.RoomSign,d.InspRepr,d.AccoRepr,d.InspDate,isnull(b.Review,0) AS Review,g.CustName,g.MobilePhone  
                                FROM Tb_HSPR_IncidentAccept a
                                LEFT JOIN Tb_HSPR_HousingInspDetail b ON b.IID=a.HousingInspDetailID
                                LEFT JOIN Tb_HSPR_HousingProj c ON b.ProjID=c.ProjID
                                LEFT JOIN Tb_HSPR_HousingInsp d ON b.InspID=d.InspID
                                LEFT JOIN Tb_HSPR_Room e ON a.RoomID=e.RoomID
                                LEFT JOIN Tb_HSPR_Customer g ON d.CustID=g.CustID
                                WHERE isnull(a.DealState,0)=1 AND a.CommID=@CommID
                                    AND a.HousingInspDetailID IS NOT NULL 
                                    AND (isnull(b.Review,0)=0 OR b.Review=2)";
                IEnumerable <dynamic> resultSet = con.Query(sql, new { CommID = commID });
                return(new ApiResult(true, resultSet).toJson());
            }
        }
Exemplo n.º 22
0
        /// <summary>
        /// 物业ERP账号注销
        /// </summary>
        private string TWERPAccountLogout(int server, int corpId, string usercode)
        {
            PubConstant.tw2bsConnectionString = Global_Fun.Tw2bsConnectionString(server.ToString());
            DbHelperSQL.ConnectionString      = PubConstant.tw2bsConnectionString;

            using (var conn = new SqlConnection(PubConstant.tw2bsConnectionString))
            {
                var sql = @"SELECT * FROM Tb_System_Corp WHERE CorpID=@CorpID AND isnull(IsDelete,0)=0;";

                var corpInfo = conn.Query(sql, new { CorpID = corpId }).FirstOrDefault();
                if (corpInfo == null)
                {
                    return(new ApiResult(false, "未找到CorpID配置信息").toJson());
                }

                PubConstant.hmWyglConnectionString = $"Max Pool Size=2048;Min Pool Size=0;Pooling=true;Data Source={corpInfo.DBServer};Initial Catalog={corpInfo.DBName};User ID={corpInfo.DBUser};Password={corpInfo.DBPwd};";
            }

            // 记录注销日志
            WriteLog(usercode, "登出系统", "物管App登出");

            return(new ApiResult(true, "注销成功").toJson());
        }
Exemplo n.º 23
0
        /// <summary>
        /// 设备任务最近执行信息
        /// </summary>
        private IEnumerable <TaskDetailInfo> GetEquipmentExecuteInfo(int commId)
        {
            using (var conn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_EQ)))
            {
                var sql = $@"SELECT TOP 5 TaskId ,PlanName,
                                TaskStatue AS PlanState,ExecuteBeginTime AS DidBeginTime,
                                (case when ExecuteEndTime IS NOT NULL THEN ExecuteEndTime ELSE TaskEndTime end) AS DidEndTime,
                                convert(varchar(20),TaskBeginTime,120) AS TaskBeginTime, TaskTypeName='设备巡检'
                            FROM Tb_Eq_Task_Inspection
                            WHERE IsClose=0 AND IsDelete=0 AND TaskBeginTime<=getdate() AND IsFireControl=0
                            AND CommId=@CommID
                            ORDER BY TaskBeginTime DESC";

                var reader = conn.QueryMultiple(sql, new { CommID = commId });
                List <TaskRecentlyExecuteInfo> task1 = reader.Read <TaskRecentlyExecuteInfo>().ToList();

                var list = new List <TaskDetailInfo>();
                if (task1.Count > 0)
                {
                    list.Add(new TaskDetailInfo("设备巡检", task1));
                }
                return(list);
            }
        }
Exemplo n.º 24
0
        /// <summary>
        /// 安全任务最近执行信息
        /// </summary>
        private IEnumerable <TaskDetailInfo> GetSecureExecuteInfo(int commId)
        {
            using (IDbConnection safeConn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_SAFE)),
                   eqConn = new SqlConnection(Global_Fun.BurstConnectionString(commId, Global_Fun.BURST_TYPE_EQ)))
            {
                var sql = @"SELECT TOP 5 TaskId,PlanName,PlanState,DidBeginTime,
                                (case when DidEndTime IS NOT NULL THEN DidEndTime ELSE EndTime end) AS DidEndTime,
                                convert(varchar(20),BeginTime,120) AS TaskBeginTime, TaskTypeName='安全巡更'
                            FROM  Tb_CP_Task_Safe
                            WHERE IsClose=0 AND IsDelete=0 AND BeginTime<=getdate() AND CommId=@CommID AND  TaskLevelName='安全巡更'
                            ORDER BY BeginTime DESC;";

                List <TaskRecentlyExecuteInfo> task1 = safeConn.Query <TaskRecentlyExecuteInfo>(sql, new { CommID = commId }).ToList();

                sql = @"SELECT TOP 5 TaskId,PlanName,TaskStatue AS PlanState,ExecuteBeginTime AS DidBeginTime,
                            (case when ExecuteEndTime IS NOT NULL THEN ExecuteEndTime ELSE TaskEndTime end) AS DidEndTime,
                            convert(varchar(20),TaskBeginTime,120) AS TaskBeginTime, TaskTypeName='消防巡检'
                        FROM  Tb_Eq_Task_Inspection
                        WHERE IsClose=0 AND IsDelete=0 AND TaskBeginTime<=getdate() AND IsFireControl=1 AND CommId=@CommID
                        ORDER BY TaskBeginTime DESC";

                List <TaskRecentlyExecuteInfo> task2 = eqConn.Query <TaskRecentlyExecuteInfo>(sql, new { CommID = commId }).ToList();

                var list = new List <TaskDetailInfo>();

                if (task1.Count > 0)
                {
                    list.Add(new TaskDetailInfo("安全巡更", task1));
                }
                if (task2.Count > 0)
                {
                    list.Add(new TaskDetailInfo("消防巡检", task2));
                }
                return(list);
            }
        }
Exemplo n.º 25
0
 public Alipay_lf() //获取小区、项目信息
 {
     base.Token   = "20181228Alipay_lf";
     c            = new Config();
     c.notify_url = Global_Fun.AppWebSettings("AliPay_Notify_Url").ToString();
 }
Exemplo n.º 26
0
        /// <summary>
        /// 生成银行订单
        /// </summary>
        /// <param name="merId">商户号</param>
        /// <param name="orderId">订单ID</param>
        /// <param name="txnTime">订单开始时间</param>
        /// <param name="total_fee">总金额分</param>
        /// <param name="R">是否成功生成订单</param>
        /// <returns></returns>
        public string GenerateBankOrder(string CommunityId, string UserId, string feesId, string out_trade_no, string txnTime, int total_fee,
                                        ref bool R, ref string BankOrderId, ref WxPayData WPD, WxPayConfig wxPayConfig, string openId = "")
        {
            R = false;
            //统一下单
            WxPayData data = new WxPayData();

            using (var conn = new SqlConnection(PubConstant.UnifiedContionString.ToString()))
            {
                dynamic commInfo = conn.Query("SELECT * FROM Tb_Community WHERE Id=@CommunityId OR CommID=@CommunityId",
                                              new { CommunityId = CommunityId }).FirstOrDefault();

                if (commInfo != null)
                {
                    // 俊发
                    //if (commInfo.CorpID == 1985)
                    //{
                    //    data.SetValue("body", commInfo.CommName.ToString() + "物管费用");
                    //}
                    //else
                    //{
                    using (var erpConn = new SqlConnection(PubConstant.hmWyglConnectionString))
                    {
                        dynamic feesInfo = erpConn.Query(@"SELECT
                            (SELECT isnull(c.CommName,'') FROM Tb_HSPR_Community c WHERE x.CommID=c.CommID) AS CommName,
                            (SELECT isnull(isnull(a.RoomName,a.RoomSign),'') FROM Tb_HSPR_Room a WHERE a.RoomID=x.RoomID) AS RoomName,
                            (SELECT isnull(b.CustName,'') FROM Tb_HSPR_Customer b WHERE b.CustID=x.CustID) AS CustName
                        FROM Tb_HSPR_Fees x WHERE FeesID=@FeesID;", new { FeesID = feesId }).FirstOrDefault();

                        if (feesInfo != null)
                        {
                            string commName = feesInfo.CommName == null ? "" : feesInfo.CommName.ToString();
                            string roomName = feesInfo.RoomName == null ? "" : feesInfo.RoomName.ToString();
                            string custName = feesInfo.CustName == null ? "" : ",业主:" + feesInfo.CustName.ToString();

                            if (!string.IsNullOrEmpty(roomName))
                            {
                                roomName = roomName.Replace("幢", "-").Replace("栋", "-").Replace("单元", "-").Replace("楼", "-").Replace("号", "-").Replace("房", "-")
                                           .Replace("--", "-");
                            }

                            data.SetValue("body", $"{commName}{roomName}物管费用{custName}");
                        }
                        else
                        {
                            data.SetValue("body", "物管费用");
                        }
                    }
                }
                //}
                else
                {
                    data.SetValue("body", "物管费用");
                }
            }

            // 是否有使用积分
            data.SetValue("attach", CommunityId + "," + UserId);

            data.SetValue("out_trade_no", out_trade_no);
            data.SetValue("total_fee", total_fee);
            data.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss"));
            data.SetValue("time_expire", DateTime.Now.AddMinutes(10).ToString("yyyyMMddHHmmss"));
            data.SetValue("notify_url", Global_Fun.AppWebSettings("WechatPay_Notify_Url").ToString());

            //2017-06-05
            //修改人:敬志强
            //修改内容:新增openid字段判断
            //如果没有openid即视为APP支付
            //有openid即是微信公众号H5支付
            if (string.IsNullOrEmpty(openId))
            {
                data.SetValue("trade_type", "APP");
            }
            else
            {
                data.SetValue("trade_type", "JSAPI");
                data.SetValue("openid", openId);
            }

            WxPayData result = WxPayApi.UnifiedOrder(data, wxPayConfig);

            if (!result.IsSet("appid") || !result.IsSet("prepay_id") || result.GetValue("prepay_id").ToString() == "")
            {
                R = false;
                return(result.ToXml());
            }
            R   = true;
            WPD = result;
            return("SUCCESS");
        }
Exemplo n.º 27
0
        /// <summary>
        /// 获取入伙待办、进场待办,入伙:Type=1,进场:Type=2
        /// </summary>
        private string GetOccupationList(DataRow row)
        {
            if (!row.Table.Columns.Contains("CommID") || string.IsNullOrEmpty(row["CommID"].ToString()))
            {
                return(JSONHelper.FromString(false, "小区编号不能为空"));
            }
            if (!row.Table.Columns.Contains("Type") || string.IsNullOrEmpty(row["Type"].ToString()))
            {
                return(JSONHelper.FromString(false, "Type不能为空"));
            }

            string commID = row["CommID"].ToString();
            string type   = row["Type"].ToString();

            string sql = string.Empty;

            if (type == "1")
            {
                // 入伙待办
                sql = @"SELECT ('OccuID='+OccupationId) AS Id, RoomSign, CustName, RoomID, CustID, MobilePhone, PaperCode 
                            FROM View_Tb_Occupation_OccupationBacklog
                            WHERE OccupationState='待入伙' AND CommID={0} AND ISNULL(IsDelete,0)=0";
            }
            else if (type == "2")
            {
                // 进场待办,关联合同
                sql = @"SELECT ('ContID='+convert(NVARCHAR(36), x.ContID)) AS Id,x.RoomSign, x.CustName, 
                                x.CustomerLiveRoomID AS RoomID, x.CustID, y.MobilePhone, y.PaperCode
                            FROM view_HSPR_GetReadyList_Filter x LEFT JOIN Tb_HSPR_Customer y ON x.CustID=y.CustID
                            WHERE ISNULL(ApproachState, '')='' AND x.CommID={0} AND ISNULL(x.IsDelete,0)=0";
            }
            else if (type == "3")
            {
                // 退场待办,关联合同
                sql = @"SELECT ('WithdrawalID='+CONVERT(NVARCHAR(36), Id)) AS Id,RoomSign,CustName,RoomID, CustID, MobilePhone, PaperCode FROM VIEW_Tb_Customer_Withdrawal WHERE State = '待退场' AND CommID = '{0}'";
            }
            else
            {
                return(new ApiResult(false, "未知任务类型").toJson());
            }

            sql = string.Format(sql, commID);

            int PageIndex = 1;
            int PageSize  = 10;

            if (row.Table.Columns.Contains("PageIndex"))
            {
                PageIndex = Global_Fun.StrToInt(row["PageIndex"].ToString());
            }
            if (row.Table.Columns.Contains("PageSize"))
            {
                PageSize = Global_Fun.StrToInt(row["PageSize"].ToString());
            }
            using (IDbConnection con = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                DynamicParameters parameters = new DynamicParameters();
                parameters.Add("@FldName", "*");
                parameters.Add("@PageSize", PageSize);
                parameters.Add("@PageIndex", PageIndex);
                parameters.Add("@FldSort", "RoomID");
                parameters.Add("@Sort", 0);
                parameters.Add("@StrCondition", sql);
                parameters.Add("@Id", "Id");
                parameters.Add("@PageCount", 0, DbType.Int32, ParameterDirection.Output);
                parameters.Add("@Counts", 0, DbType.Int32, ParameterDirection.Output);

                IEnumerable <dynamic> resultSet = con.Query <dynamic>("Proc_System_TurnPage", parameters, null, false, null, CommandType.StoredProcedure);

                int PageCount = parameters.Get <int>("@PageCount");
                int Counts    = parameters.Get <int>("@Counts");

                if (resultSet.Count() > 0)
                {
                    List <dynamic> result = new List <dynamic>();
                    using (IDbConnection con2 = new SqlConnection(PubConstant.hmWyglConnectionString))
                    {
                        foreach (dynamic item in resultSet)
                        {
                            // 获取验房记录
                            sql = @"SELECT * FROM Tb_HSPR_HousingInsp WHERE CustID=@CustID AND RoomID=@RoomID ORDER BY InspDate DESC";

                            IEnumerable <dynamic> historySet = con2.Query(sql, new { CustID = Convert.ToInt64(item.CustID), RoomID = Convert.ToInt64(item.RoomID) });

                            item.History = historySet;

                            if (historySet.Count() > 0)
                            {
                                foreach (var historyItem in historySet)
                                {
                                    sql = @"SELECT a.*, ((SELECT stuff((SELECT ','+FilePath FROM Tb_HSPR_HousingFiles 
                                                    WHERE InspID=@InspID AND ProjID=a.ProjID FOR XML PATH('')),1,1,''))) AS FilePath
                                        FROM Tb_HSPR_HousingInspDetail a WHERE a.InspID=@InspID ORDER BY ProjID";

                                    IEnumerable <dynamic> historyDetailSet = con2.Query(sql, new { InspID = Convert.ToString(historyItem.InspID) });

                                    historyItem.Detail = historyDetailSet;
                                }
                            }

                            result.Add(item);
                        }

                        string resultString = new ApiResult(true, result).toJson();
                        resultString = resultString.Insert(resultString.Length - 1, string.Format(",\"PageCount\":{0}", PageCount));
                        return(resultString);
                    }
                }
                return(JSONHelper.FromDataTable(new DataTable()));
            }
        }
Exemplo n.º 28
0
        /// <summary>
        /// 提交魔蓝成员信息(创建或者修改成员信息)
        /// </summary>
        /// <param name="row"></param>
        /// <returns></returns>
        private string SubmitMoredianMember(DataRow row)
        {
            try
            {
                #region 获取参数并简单校验
                string Mobile = string.Empty;
                if (row.Table.Columns.Contains("Mobile"))
                {
                    Mobile = row["Mobile"].ToString();
                }
                if (string.IsNullOrEmpty(Mobile))
                {
                    return(new WxResponse(0, "用户不存在", null).toJson());
                }
                if (Mobile.Length != 11)
                {
                    return(new WxResponse(0, "用户不存在", null).toJson());
                }
                string Face = string.Empty;
                if (row.Table.Columns.Contains("Face"))
                {
                    Face = row["Face"].ToString();
                }
                DateTime DateNow = DateTime.Now;
                #endregion

                using (IDbConnection conn = new SqlConnection(PubConstant.WChat2020ConnectionString),
                       erpConn = new SqlConnection(erpConnStr))
                {
                    #region 获取AppToken
                    TianChengEntranceSyncService.Config.EntranceConnectionStr  = erpConnStr;
                    TianChengEntranceSyncService.Config.WChat2020ConnectionStr = PubConstant.WChat2020ConnectionString;
                    string app_token = AppTokenRedis.GetAppToken();
                    if (string.IsNullOrEmpty(app_token))
                    {
                        return(new WxResponse(0, "获取AppToken失败,请联系管理员", null).toJson());
                    }
                    #endregion
                    #region 先查询/创建组织机构
                    MoredianOrg moredianOrg = OrgRedis.GetMoredianOrg();
                    if (null == moredianOrg)
                    {
                        return(new WxResponse(0, "组织机构配置错误,请联系管理员", null).toJson());
                    }
                    #endregion
                    #region 获取组织机构的AccessToken
                    string access_token = AccessTokenRedis.GetAccessToken(Convert.ToString(moredianOrg.orgId), moredianOrg.orgAuthKey);
                    if (string.IsNullOrEmpty(access_token))
                    {
                        return(new WxResponse(0, "获取AccessToken失败,请联系管理员", null).toJson());
                    }
                    #endregion
                    MoredianMember moredianMember = MemberRedis.GetMoredianMember(Mobile);

                    #region 读取人脸图片
                    byte[] showFace = null;
                    string IncidentAcceptImageUrl = Global_Fun.AppWebSettings("IncidentAcceptImageUrl");
                    if (Face.Contains(IncidentAcceptImageUrl))
                    {
                        string IncidentAcceptImageSavePath = Global_Fun.AppWebSettings("IncidentAcceptImageSavePath");
                        #region 从本地服务器读取图片
                        // 替换文件路径为本地路径
                        string localFacePath = Face.Replace(IncidentAcceptImageUrl, IncidentAcceptImageSavePath);
                        if (!File.Exists(localFacePath))
                        {
                            return(new WxResponse(0, "人脸图片不存在,请重试", null).toJson());
                        }
                        FileStream fileStream = File.OpenRead(localFacePath);
                        int        filelength = (int)fileStream.Length;
                        showFace = new byte[filelength];
                        fileStream.Read(showFace, 0, filelength);
                        #endregion
                    }
                    else
                    {
                        #region 从网络获取图片内容
                        {
                            try
                            {
                                HttpHelper http = new HttpHelper();
                                HttpItem   item = new HttpItem()
                                {
                                    URL              = Face,                  //URL     必需项
                                    Method           = "GET",                 //URL     可选项 默认为Get
                                    Timeout          = 5000,                  //连接超时时间     可选项默认为100000
                                    ReadWriteTimeout = 5000,                  //写入Post数据超时时间     可选项默认为30000
                                    ResultType       = ResultType.Byte,       //返回数据类型,是Byte还是String
                                    ProtocolVersion  = HttpVersion.Version11, //获取或设置用于请求的 HTTP 版本。默认为 System.Net.HttpVersion.Version11
                                };
                                HttpResult result = http.GetHtml(item);
                                showFace = result.ResultByte;
                            }
                            catch (Exception ex)
                            {
                                return(new WxResponse(0, "读取人脸图片失败,请重试", ex.Message).toJson());
                            }
                        }
                        #endregion
                    }
                    #endregion

                    #region 成员不存在,创建成员
                    if (null == moredianMember)
                    {
                        // 进行创建人员信息
                        IMoredianApiClient          client  = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL);
                        MoredianCreateMemberRequest request = new MoredianCreateMemberRequest
                        {
                            moredianMember = new MoredianMember
                            {
                                mobile     = Mobile,
                                memberName = Mobile,
                            },

                            showFace   = showFace,
                            verifyFace = showFace,
                        };
                        MoredianCreateMemberResponse response = client.Execute(request, app_token, access_token);
                        if (!response.IsSucc())
                        {
                            return(new WxResponse(0, "上传人脸信息失败,请重试", response.Message).toJson());
                        }
                        moredianMember = new MoredianMember
                        {
                            memberId = response.memberId,
                            mobile   = Mobile,
                            showFace = Face
                        };
                        erpConn.Execute("INSERT INTO [dbo].[Tb_HSPR_Entrance_Member](Mobile, MemberId, Face) VALUES (@Mobile, @MemberId, @Face)", new { Mobile, Face, MemberId = moredianMember.memberId });
                        moredianMember = MemberRedis.UpdateMoredianMember(Mobile);
                        return(new WxResponse(200, "上传人脸信息成功", moredianMember).toJson());
                    }
                    #endregion

                    if (string.IsNullOrEmpty(moredianMember.showFace) && string.IsNullOrEmpty(Face))
                    {
                        return(new WxResponse(200, "操作成功", null).toJson());
                    }

                    #region  除人脸
                    if (string.IsNullOrEmpty(Face))
                    {
                        // 更新显示图片
                        IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL);
                        MoredianDeleteMemberVerifyFaceRequest request = new MoredianDeleteMemberVerifyFaceRequest
                        {
                            memberId = moredianMember.memberId,
                        };
                        MoredianDeleteMemberVerifyFaceResponse response = client.Execute(request, app_token, access_token);
                        if (!response.IsSucc())
                        {
                            return(new WxResponse(0, "删除人脸信息失败", response.Message).toJson());
                        }
                        erpConn.Execute("UPDATE Tb_HSPR_Entrance_Member SET Face = @Face WHERE Mobile = @Mobile AND MemberId = @MemberId", new { Mobile, Face, MemberId = moredianMember.memberId });
                        moredianMember = MemberRedis.UpdateMoredianMember(Mobile);
                        return(new WxResponse(200, "删除人脸信息成功", moredianMember).toJson());
                    }
                    #endregion


                    #region 更新成员人脸
                    {
                        // 更新显示图片
                        IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL);
                        MoredianUpdateMemberVerifyFaceRequest request = new MoredianUpdateMemberVerifyFaceRequest
                        {
                            memberId = moredianMember.memberId,
                            face     = showFace
                        };
                        MoredianUpdateMemberVerifyFaceResponse response = client.Execute(request, app_token, access_token);
                        if (!response.IsSucc())
                        {
                            return(new WxResponse(0, "更新人脸信息失败,请重试", response.Message).toJson());
                        }
                    }
                    {
                        // 更新显示图片
                        IMoredianApiClient client = new DefaultMoredianApiClient(TianChengEntranceSyncService.Config.MoreDian.APIURL);
                        MoredianUpdateMemberShowFaceRequest request = new MoredianUpdateMemberShowFaceRequest
                        {
                            memberId = moredianMember.memberId,
                            face     = showFace
                        };
                        MoredianUpdateMemberShowFaceResponse response = client.Execute(request, app_token, access_token);
                        // 显示图片不处理失败情况
                    }
                    erpConn.Execute("UPDATE Tb_HSPR_Entrance_Member SET Face = @Face WHERE Mobile = @Mobile AND MemberId = @MemberId", new { Mobile, Face, MemberId = moredianMember.memberId });
                    moredianMember = MemberRedis.UpdateMoredianMember(Mobile);
                    return(new WxResponse(200, "更新人脸信息成功", moredianMember).toJson());

                    #endregion
                }
            }
            catch (Exception ex)
            {
                GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace);
                return(new WxResponse(0, "响应异常", null).toJson());
            }
        }
 /// <summary>
 /// 构造器
 /// </summary>
 public AlipayBusinessOrder_Changcheng()
 {
     base.Token   = "20200603AlipayBusinessOrder_Changcheng";
     c            = new Config();
     c.notify_url = Global_Fun.AppWebSettings("AliPayBuss_Notify_Url").ToString();
 }
Exemplo n.º 30
0
        private string OnPay(DataRow row)
        {
            #region 获取基本参数
            string CommunityId = string.Empty;
            if (row.Table.Columns.Contains("CommunityId"))
            {
                CommunityId = row["CommunityId"].ToString();
            }
            string RoomID = string.Empty;
            if (row.Table.Columns.Contains("RoomID"))
            {
                RoomID = row["RoomID"].ToString();
            }
            string CustID = string.Empty;
            if (row.Table.Columns.Contains("CustID"))
            {
                CustID = row["CustID"].ToString();
            }
            string OpenID = string.Empty;
            if (row.Table.Columns.Contains("OpenID"))
            {
                OpenID = row["OpenID"].ToString();
            }
            if (!row.Table.Columns.Contains("PayChannel") || string.IsNullOrEmpty(row["PayChannel"].ToString()))
            {
                return(new ApiResult(false, "参数PayChannel有误").toJson());
            }
            var community = GetCommunity(CommunityId);
            if (community == null)
            {
                return(JSONHelper.FromString(false, "未查询到小区信息"));
            }

            int CommID = AppGlobal.StrToInt(community.CommID);
            PubConstant.hmWyglConnectionString = GetConnectionStr(community);

            var payChannel = row["PayChannel"].ToString();
            var payType    = 0;

            switch (payChannel.ToLower())
            {
            case PayChannelString.Alipay:
                payType = 1;
                break;

            case PayChannelString.WechatPay:
                payType = 2;
                break;

            case PayChannelString.AllInPay_Alipay:
                payType = 1;
                break;

            case PayChannelString.AllInPay_WechatPay:
                payType = 2;
                break;

            default:
                return(new ApiResult(false, "参数payChannel有误").toJson());
            }
            if (payType == 2)
            {
                if (payChannel.ToLower().Equals(PayChannelString.AllInPay_WechatPay) && string.IsNullOrEmpty(OpenID))
                {
                    return(new ApiResult(false, "参数OpenID不能为空").toJson());
                }
            }

            #endregion

            using (IDbConnection erpConn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                dynamic tb_Payment_Config = erpConn.QueryFirstOrDefault <dynamic>("SELECT * FROM Tb_Payment_Config WITH(NOLOCK) WHERE CommID = @CommID", new { CommID });
                if (null == tb_Payment_Config)
                {
                    return(new ApiResult(false, "该项目未开通对应支付方式").toJson());
                }
                // 旧方式获取对应支付配置
                AllinConfig allinConfig = null;
                // 新方式获取支付配置
                PaymentConfig paymentConfig = null;
                if (payChannel == PayChannelString.AllInPay_Alipay || payChannel == PayChannelString.AllInPay_WechatPay)
                {
                    try
                    {
                        allinConfig = JsonConvert.DeserializeObject <AllinConfig>(tb_Payment_Config.Config);
                        if (null == allinConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                    }
                }
                else
                {
                    // 新的方式,Config存储多个配置
                    try
                    {
                        // ERP的配置表,要求存储一个Json数组,用于配置支持不同支付方式
                        // 配置项要求存储一个
                        List <PaymentConfig> configs = JsonConvert.DeserializeObject <List <PaymentConfig> >(tb_Payment_Config.Config);
                        if (null == configs || configs.Count <= 0)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                        if (payChannel == PayChannelString.Alipay)
                        {
                            paymentConfig = configs.Find(item => item.type == "AliPay");
                        }
                        if (payChannel == PayChannelString.WechatPay)
                        {
                            paymentConfig = configs.Find(item => item.type == "WChatPay");
                        }
                        if (null == paymentConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
                #region 计算金额
                if (!row.Table.Columns.Contains("PayData") || string.IsNullOrEmpty(row["PayData"].ToString()))
                {
                    return(new ApiResult(false, "缺少参数PayData").toJson());
                }
                string PayData = row["PayData"].ToString();
                if (!CheckPayData(Global_Fun.BurstConnectionString(CommID, Global_Fun.BURST_TYPE_CHARGE), Convert.ToInt64(CustID), Convert.ToInt64(RoomID), PayData, out decimal Amt, out string errMsg, true, false, !"1940".Equals(Global_Var.LoginCorpID)))
                {
                    return(new ApiResult(false, errMsg).toJson());
                }
                if (Amt <= 0.00M)
                {
                    return(new ApiResult(false, "金额必须大于0").toJson());
                }
                #endregion

                JObject PayDataObj = JObject.Parse(PayData);
                int     Type       = (int)PayDataObj["Type"];

                #region 查询项目名称和房屋编号,拼接费用备注
                string FeesMemo = string.Empty;
                string RoomSign = string.Empty;
                if (Type == 1)
                {
                    FeesMemo = "物业综合费用缴纳";
                    string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
                else
                {
                    FeesMemo = "物业综合费用预存";
                    string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
                #endregion

                string NoticeId = Guid.NewGuid().ToString();

                // 生成订单
                if (erpConn.Execute("INSERT INTO Tb_Notice(Id, CommID, RoomID, CustID, PayData, CreateTime) VALUES(@Id, @CommID, @RoomID, @CustID, @PayData, @CreateTime)", new { Id = NoticeId, CommID, RoomID, CustID, PayData, CreateTime = DateTime.Now.ToString() }) <= 0)
                {
                    return(new ApiResult(false, "创建收款订单失败,请重试").toJson());
                }
                string ChargeMode = "业主APP缴费";
                if (payChannel == PayChannelString.AllInPay_Alipay)
                {
                    ChargeMode = "通联_业主APP(支付宝)";
                }
                else if (payChannel == PayChannelString.AllInPay_WechatPay)
                {
                    ChargeMode = "通联_业主APP(微信)";
                }
                else
                {
                    ChargeMode = "通联_业主APP";
                }
                #region 修改收款方式
                if (erpConn.QueryFirstOrDefault <int>("SELECT COUNT(1) FROM syscolumns WHERE id=object_id('Tb_Notice') AND name = 'ChargeMode'") > 0)
                {
                    erpConn.Execute("UPDATE Tb_Notice SET ChargeMode = @ChargeMode WHERE Id = @Id", new { ChargeMode, Id = NoticeId });
                }
                #endregion
                DateTime dateNow          = DateTime.Now;
                string   OrderSN          = dateNow.ToString("yyyyMMddHHmmssfff") + Utils.BuildRandomStr(3);
                string   PaymentNotifyUrl = string.Empty;

                Dictionary <string, string> param = null;
                if (payChannel == PayChannelString.AllInPay_Alipay || payChannel == PayChannelString.AllInPay_WechatPay)
                {
                    #region 请求通联支付
                    #region 获取对应类型的下账地址
                    if (Type == 1)
                    {
                        PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Notify_Url") + "?CommID=" + CommID;
                    }
                    else
                    {
                        PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Prec_Notify_Url") + "?CommID=" + CommID;
                    }
                    #endregion
                    try
                    {
                        param = SybWxPayService.Pay(Convert.ToInt64(Amt * 100), OrderSN, payChannel == PayChannelString.AllInPay_Alipay ? "A01" : "W06", FeesMemo, RoomSign, OpenID, "", PaymentNotifyUrl, "", "", "", "", allinConfig.orgid, allinConfig.appid, allinConfig.custid, allinConfig.appkey, allinConfig.subbranch);

                        if (param == null || !param.ContainsKey("payinfo"))
                        {
                            GetLog().Error("OnPay:" + JsonConvert.SerializeObject(param));
                            return(new ApiResult(false, "生成支付订单失败,请重试").toJson());
                        }
                    }
                    catch (Exception ex)
                    {
                        GetLog().Error("OnPay", ex);
                        return(new ApiResult(false, "生成支付订单失败,请重试").toJson());
                    }
                    if (erpConn.Execute(@"INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) 
                                            VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)",
                                        new { PayType = payType, OrderSN = OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                    {
                        return(new ApiResult(false, "生成支付订单失败,请重试(1003)").toJson());
                    }
                    return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = param["payinfo"].ToString() }).toJson());

                    #endregion
                }
                if (payChannel == PayChannelString.Alipay)
                {
                    AliConfig aliConfig = null;
                    try
                    {
                        aliConfig = Config.GetConfig <AliConfig>(paymentConfig.config);
                        if (null == aliConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                    }
                    #region 请求支付宝官方支付
                    #region 获取对应类型的下账地址
                    PaymentNotifyUrl = AppGlobal.GetAppSetting("AliPay_Notify_Url");
                    #endregion
                    AlipayTradeAppPayResponse response = null;
                    try
                    {
                        JObject BizContent = new JObject();
                        //要求15分钟内支付
                        BizContent.Add("timeout_express", "15m");
                        BizContent.Add("total_amount", Amt);
                        BizContent.Add("body", FeesMemo);
                        BizContent.Add("subject", FeesMemo);
                        BizContent.Add("out_trade_no", OrderSN);
                        IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", aliConfig.appid, aliConfig.app_private_key, "json", "1.0", "RSA2", aliConfig.alipay_public_key, "UTF-8", false);
                        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest
                        {
                            BizContent = JsonConvert.SerializeObject(BizContent),
                        };
                        request.SetNotifyUrl(PaymentNotifyUrl);
                        response = client.SdkExecute(request);
                    }
                    catch (Exception ex)
                    {
                        Log(ex.Message, "AliPayLogs\\");
                        GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace);
                        return(new ApiResult(false, "请求订单失败,请重试").toJson());
                    }
                    if (erpConn.Execute("INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = 1, OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                    {
                        return(new ApiResult(false, "生成订单失败").toJson());
                    }
                    return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = response.Body }).toJson());

                    #endregion
                }
                if (payChannel == PayChannelString.WechatPay)
                {
                    WxConfig wxConfig = null;
                    try
                    {
                        wxConfig = Config.GetConfig <WxConfig>(paymentConfig.config);
                        if (null == wxConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                    }

                    #region 请求微信官方支付
                    #region 获取对应类型的下账地址
                    PaymentNotifyUrl = AppGlobal.GetAppSetting("WxPay_Notify_Url");
                    #endregion
                    WxPayData wxPayData = new WxPayData();
                    wxPayData.SetValue("appid", wxConfig.appid);
                    wxPayData.SetValue("body", FeesMemo);
                    wxPayData.SetValue("mch_id", wxConfig.mch_id);
                    wxPayData.SetValue("nonce_str", WxPayApi.GenerateNonceStr());
                    wxPayData.SetValue("notify_url", PaymentNotifyUrl);
                    wxPayData.SetValue("out_trade_no", OrderSN);
                    wxPayData.SetValue("spbill_create_ip", "8.8.8.8");
                    wxPayData.SetValue("total_fee", Convert.ToInt32(Amt * 100));
                    wxPayData.SetValue("trade_type", "APP");
                    wxPayData.SetValue("sign_type", wxpay.utils.WxPayData.SIGN_TYPE_HMAC_SHA256);
                    wxPayData.SetValue("sign", wxPayData.MakeSign(wxConfig.appkey));
                    try
                    {
                        wxPayData = WxPayApi.UnifiedOrder(wxPayData);
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "请求超时,请重试").toJson());
                    }
                    if (!wxPayData.IsSet("return_code") || !"SUCCESS".Equals(wxPayData.GetValue("return_code").ToString()))
                    {
                        return(new ApiResult(false, "请求支付订单失败").toJson());
                    }
                    if (!wxPayData.IsSet("result_code") || !"SUCCESS".Equals(wxPayData.GetValue("result_code").ToString()))
                    {
                        return(new ApiResult(false, "请求支付订单失败").toJson());
                    }
                    if (!wxPayData.IsSet("prepay_id"))
                    {
                        return(new ApiResult(false, "请求支付订单失败").toJson());
                    }
                    string prepay_id = wxPayData.GetValue("prepay_id").ToString();
                    if (erpConn.Execute("INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = 2, OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                    {
                        return(new ApiResult(false, "生成订单失败").toJson());
                    }
                    WxPayData result = new WxPayData();
                    result.SetValue("appid", wxPayData.GetValue("appid").ToString());
                    result.SetValue("partnerid", wxPayData.GetValue("mch_id").ToString());
                    result.SetValue("prepayid", prepay_id);
                    result.SetValue("package", "Sign=WXPay");
                    result.SetValue("noncestr", wxPayData.GetValue("nonce_str").ToString());
                    result.SetValue("timestamp", WxPayApi.GenerateTimeStamp());
                    result.SetValue("sign", result.MakeSign(wxpay.utils.WxPayData.SIGN_TYPE_HMAC_SHA256, wxConfig.appkey));
                    JObject jObj = JObject.Parse(result.ToJson());
                    return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = jObj }).toJson());

                    #endregion
                }
                return(new ApiResult(false, "不支持的支付方式").toJson());
            }
        }