⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 service.cs

📁 动易SiteFactory&#8482 网上商店系统1.0源代码
💻 CS
字号:
namespace PowerEasy.SqlServerDal.Crm
{
    using Microsoft.Practices.EnterpriseLibrary.Data;
    using PowerEasy.Common;
    using PowerEasy.Components;
    using PowerEasy.IDal.Crm;
    using PowerEasy.Model.Crm;
    using PowerEasy.SqlServerDal;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Common;

    public class Service : IService
    {
        private int m_TotalOfService;

        public bool Add(ServiceInfo serviceInfo)
        {
            if (serviceInfo.ItemId <= 0)
            {
                serviceInfo.ItemId = this.GetMaxId() + 1;
            }
            return DBHelper.ExecuteProc("PR_Crm_Service_Add", GetParameters(serviceInfo));
        }

        private static string ComplexSearch(string keyword)
        {
            string str = " 1=1";
            if (string.IsNullOrEmpty(keyword))
            {
                return str;
            }
            ServiceInfo info = new Serialize<ServiceInfo>().DeserializeField(keyword);
            if (info == null)
            {
                return str;
            }
            if (!string.IsNullOrEmpty(info.ClientName))
            {
                str = str + " and C.ClientName like '%" + info.ClientName + "%'";
            }
            if (!string.IsNullOrEmpty(info.ServiceTitle))
            {
                str = str + " and S.ServiceTitle like '%" + info.ServiceTitle + "%'";
            }
            if (!string.IsNullOrEmpty(info.Processor))
            {
                str = str + " and S.Processor like '%" + info.Processor + "%'";
            }
            if (!string.IsNullOrEmpty(info.Inputer))
            {
                str = str + " and S.Inputer like '%" + info.Inputer + "%' ";
            }
            if (!string.IsNullOrEmpty(info.ConfirmCaller))
            {
                str = str + " and S.ConfirmCaller like '%" + info.ConfirmCaller + "%'";
            }
            if (info.TakeTime != -1)
            {
                str = str + " and S.TakeTime=" + info.TakeTime.ToString();
            }
            if (info.ServiceType != "-1")
            {
                str = str + " and S.ServiceType=" + info.ServiceType;
            }
            if (info.ServiceMode != "-1")
            {
                str = str + " and S.ServiceMode=" + info.ServiceMode;
            }
            if (info.ServiceResult != -1)
            {
                str = str + " and S.ServiceResult=" + info.ServiceResult.ToString();
            }
            if (info.ConfirmScore != -1)
            {
                str = str + " and S.ConfirmScore=" + info.ConfirmScore.ToString();
            }
            string[] strArray = info.Remark.Split(new char[] { '|' });
            if (strArray[0] != "-1")
            {
                if (strArray[0] == "0")
                {
                    str = str + " and S.ConfirmTime is null";
                }
                else
                {
                    str = str + " and S.ConfirmTime is not null";
                }
            }
            return (str + GetTimePart("S.ServiceTime", strArray[1], strArray[2]) + GetTimePart("S.ConfirmTime", strArray[3], strArray[4]));
        }

        public bool Delete(string id)
        {
            return DBHelper.ExecuteSql("Delete From PE_ServiceItem where ItemID  IN (" + id + ")");
        }

        private static string GetFilterString(string searchType, string field, string keyword)
        {
            string str = "";
            string str2 = searchType;
            if (str2 == null)
            {
                return str;
            }
            if (!(str2 == "0"))
            {
                if (str2 != "1")
                {
                    string str3;
                    if (str2 == "2")
                    {
                        return "datediff(dd,S.ServiceTime,GetDate())<30";
                    }
                    if (str2 == "3")
                    {
                        return ("S.Inputer='" + PEContext.Current.Admin.AdminName + "'");
                    }
                    if (str2 != "10")
                    {
                        return str;
                    }
                    if (string.IsNullOrEmpty(keyword) || ((str3 = field) == null))
                    {
                        return str;
                    }
                    if (!(str3 == "ClientID"))
                    {
                        if (str3 != "ClientName")
                        {
                            if (str3 == "Processor")
                            {
                                return ("S.Processor like '%" + keyword + "%' ");
                            }
                            if (str3 == "ServiceTime")
                            {
                                return ("datediff( dd ,S.ServiceTime,'" + keyword + "') < 1 ");
                            }
                            if (str3 != "ComplexSearch")
                            {
                                return str;
                            }
                            return ComplexSearch(keyword);
                        }
                    }
                    else
                    {
                        return ("C.ClientID=" + keyword);
                    }
                    return ("C.ClientName like '%" + keyword + "%' ");
                }
            }
            else
            {
                return "";
            }
            return "datediff(dd,S.ServiceTime,GetDate())<10";
        }

        public IList<ServiceInfo> GetList(int startRowIndexId, int maxNumberRows, string searchType, string field, string keyword)
        {
            Database database = DatabaseFactory.CreateDatabase();
            IList<ServiceInfo> list = new List<ServiceInfo>();
            DbCommand storedProcCommand = database.GetStoredProcCommand("PR_Common_GetList");
            database.AddInParameter(storedProcCommand, "@StartRows", DbType.Int32, startRowIndexId);
            database.AddInParameter(storedProcCommand, "@PageSize", DbType.Int32, maxNumberRows);
            database.AddInParameter(storedProcCommand, "@SortColumn", DbType.String, "ItemID");
            database.AddInParameter(storedProcCommand, "@StrColumn", DbType.String, "S.*,C.ShortedForm,C.ClientName");
            database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "DESC");
            database.AddInParameter(storedProcCommand, "@Filter", DbType.String, GetFilterString(searchType, field, keyword));
            database.AddInParameter(storedProcCommand, "@TableName", DbType.String, "PE_ServiceItem S left join PE_Client C on S.ClientID=C.ClientID");
            database.AddOutParameter(storedProcCommand, "@Total", DbType.Int32, maxNumberRows);
            using (NullableDataReader reader = new NullableDataReader(database.ExecuteReader(storedProcCommand)))
            {
                while (reader.Read())
                {
                    list.Add(ServiceFromrdr(reader));
                }
            }
            this.m_TotalOfService = (int) database.GetParameterValue(storedProcCommand, "@Total");
            return list;
        }

        public int GetMaxId()
        {
            return DBHelper.GetMaxId("PE_ServiceItem", "ItemId");
        }

        private static Parameters GetParameters(ServiceInfo serviceInfo)
        {
            Parameters parameters = new Parameters();
            parameters.AddInParameter("@ClientId", DbType.Int32, serviceInfo.ClientId);
            parameters.AddInParameter("@ContacterId", DbType.Int32, serviceInfo.ContacterId);
            parameters.AddInParameter("@OrderId", DbType.Int32, serviceInfo.OrderId);
            parameters.AddInParameter("@ServiceTime", DbType.DateTime, serviceInfo.ServiceTime);
            parameters.AddInParameter("@ServiceType", DbType.String, serviceInfo.ServiceType);
            parameters.AddInParameter("@ServiceMode", DbType.String, serviceInfo.ServiceMode);
            parameters.AddInParameter("@ServiceTitle", DbType.String, serviceInfo.ServiceTitle);
            parameters.AddInParameter("@ServiceContent", DbType.String, serviceInfo.ServiceContent);
            parameters.AddInParameter("@ServiceResult", DbType.Int32, serviceInfo.ServiceResult);
            parameters.AddInParameter("@TakeTime", DbType.Int32, serviceInfo.TakeTime);
            parameters.AddInParameter("@Processor", DbType.String, serviceInfo.Processor);
            parameters.AddInParameter("@Inputer", DbType.String, serviceInfo.Inputer);
            parameters.AddInParameter("@Feedback", DbType.String, serviceInfo.Feedback);
            parameters.AddInParameter("@ConfirmTime", DbType.DateTime, serviceInfo.ConfirmTime);
            parameters.AddInParameter("@ConfirmCaller", DbType.String, serviceInfo.ConfirmCaller);
            parameters.AddInParameter("@ConfirmScore", DbType.Int32, serviceInfo.ConfirmScore);
            parameters.AddInParameter("@ConfirmFeedback", DbType.String, serviceInfo.ConfirmFeedback);
            parameters.AddInParameter("@Remark", DbType.String, serviceInfo.Remark);
            return parameters;
        }

        public ServiceInfo GetServiceById(int id)
        {
            ServiceInfo info = new ServiceInfo();
            using (NullableDataReader reader = DBHelper.ExecuteReaderSql("select S.*,C.ShortedForm,C.ClientName from PE_ServiceItem S left join PE_Client C on S.ClientID=C.ClientID where S.ItemID=@ItemId", new Parameters("@ItemId", DbType.Int32, id)))
            {
                if (reader.Read())
                {
                    info = ServiceFromrdr(reader);
                }
            }
            return info;
        }

        private static string GetTimePart(string timeField, string beginTime, string endTime)
        {
            string str = string.Empty;
            if (!string.IsNullOrEmpty(beginTime) || !string.IsNullOrEmpty(endTime))
            {
                if (!string.IsNullOrEmpty(beginTime))
                {
                    string str2 = str;
                    str = str2 + " and " + timeField + ">='" + beginTime + "'";
                }
                if (!string.IsNullOrEmpty(endTime))
                {
                    string str3 = str;
                    str = str3 + " and " + timeField + "<='" + endTime + "'";
                }
            }
            return str;
        }

        public int GetTotalOfService()
        {
            return this.m_TotalOfService;
        }

        private static ServiceInfo ServiceFromrdr(NullableDataReader rdr)
        {
            ServiceInfo info = new ServiceInfo();
            info.ItemId = rdr.GetInt32("ItemId");
            info.ClientId = rdr.GetInt32("ClientId");
            info.ContacterId = rdr.GetInt32("ContacterId");
            info.OrderId = rdr.GetInt32("OrderId");
            info.ServiceTime = rdr.GetDateTime("ServiceTime");
            info.ServiceType = rdr.GetString("ServiceType");
            info.ServiceMode = rdr.GetString("ServiceMode");
            info.ServiceTitle = rdr.GetString("ServiceTitle");
            info.ServiceContent = rdr.GetString("ServiceContent");
            info.ServiceResult = rdr.GetInt32("ServiceResult");
            info.TakeTime = rdr.GetInt32("TakeTime");
            info.Processor = rdr.GetString("Processor");
            info.Inputer = rdr.GetString("Inputer");
            info.Feedback = rdr.GetString("Feedback");
            info.ConfirmTime = rdr.GetNullableDateTime("ConfirmTime");
            info.ConfirmCaller = rdr.GetString("ConfirmCaller");
            info.ConfirmScore = rdr.GetInt32("ConfirmScore");
            info.ConfirmFeedback = rdr.GetString("ConfirmFeedback");
            info.Remark = rdr.GetString("Remark");
            info.ClientName = rdr.GetString("ClientName");
            info.ShortedForm = rdr.GetString("ShortedForm");
            return info;
        }

        public bool Update(ServiceInfo serviceInfo)
        {
            Parameters cmdParams = GetParameters(serviceInfo);
            cmdParams.AddInParameter("@ItemId", DbType.Int32, serviceInfo.ItemId);
            return DBHelper.ExecuteProc("PR_Crm_Service_Update", cmdParams);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -