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

📄 complain.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;
    using System.Text;

    public class Complain : IComplain
    {
        private int m_Total;

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

        private static ComplainItemInfo ComplainFromDataReader(NullableDataReader rdr)
        {
            ComplainItemInfo info = new ComplainItemInfo();
            info.ItemId = rdr.GetInt32("ItemID");
            info.ClientId = rdr.GetInt32("ClientID");
            info.ContacterId = rdr.GetInt32("ContacterID");
            info.ComplainMode = rdr.GetInt32("ComplainMode");
            info.ComplainType = rdr.GetInt32("ComplainType");
            info.ConfirmCaller = rdr.GetString("ConfirmCaller");
            info.ConfirmFeedback = rdr.GetString("ConfirmFeedback");
            info.ConfirmScore = rdr.GetInt32("ConfirmScore");
            info.ConfirmTime = rdr.GetNullableDateTime("ConfirmTime");
            info.Content = rdr.GetString("Content");
            info.CurrentOwner = rdr.GetString("CurrentOwner");
            info.DateAndTime = rdr.GetDateTime("DateAndTime");
            info.EndTime = rdr.GetNullableDateTime("EndTime");
            info.Feedback = rdr.GetString("Feedback");
            info.FirstReceiver = rdr.GetString("FirstReceiver");
            info.MagnitudeOfExigence = rdr.GetInt32("MagnitudeOfExigence");
            info.Process = rdr.GetString("Process");
            info.Processor = rdr.GetString("Processor");
            info.Remark = rdr.GetString("Remark");
            info.Result = rdr.GetString("Result");
            info.ShortedForm = rdr.GetString("ShortedForm");
            info.Status = rdr.GetInt32("Status");
            info.Title = rdr.GetString("Title");
            info.Defendant = rdr.GetString("Defendant");
            return info;
        }

        private static string ComplexSearch(string keyword)
        {
            string str = string.Empty;
            ComplainItemInfo info = new Serialize<ComplainItemInfo>().DeserializeField(keyword);
            if (!string.IsNullOrEmpty(info.ShortedForm))
            {
                str = str + " and C.ClientName like '%" + info.ShortedForm + "%'";
            }
            if (!string.IsNullOrEmpty(info.FirstReceiver))
            {
                str = str + " and S.FirstReceiver like '%" + info.FirstReceiver + "%'";
            }
            if (!string.IsNullOrEmpty(info.Processor))
            {
                str = str + " and S.Processor like '%" + info.Processor + "%'";
            }
            if (!string.IsNullOrEmpty(info.ConfirmCaller))
            {
                str = str + " and S.ConfirmCaller like '%" + info.ConfirmCaller + "%'";
            }
            if (!string.IsNullOrEmpty(info.Title))
            {
                str = str + " and S.Title like '%" + info.Title + "%'";
            }
            if (info.Status != -1)
            {
                str = str + " and S.Status = " + info.Status.ToString();
            }
            if (info.ComplainMode != -1)
            {
                str = str + " and S.ComplainMode=" + info.ComplainMode.ToString();
            }
            if (info.ComplainType != -1)
            {
                str = str + " and S.ComplainType=" + info.ComplainType.ToString();
            }
            if (info.MagnitudeOfExigence != -1)
            {
                str = str + " and S.MagnitudeOfExigence=" + info.MagnitudeOfExigence.ToString();
            }
            if (info.ConfirmScore != -1)
            {
                str = str + " and S.ConfirmScore=" + info.ConfirmScore.ToString();
            }
            if (info.Remark != "|||||")
            {
                string[] strArray = info.Remark.Split(new char[] { '|' });
                str = (str + GetTimePart("S.DateAndTime", strArray[0], strArray[1])) + GetTimePart("S.EndTime", strArray[2], strArray[3]) + GetTimePart("S.ConfirmTime", strArray[4], strArray[5]);
            }
            return str;
        }

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

        public ComplainItemInfo GetComplainById(int itemId)
        {
            using (NullableDataReader reader = DBHelper.ExecuteReaderSql("Select S.*,C.ShortedForm from PE_ComplainItem S inner join PE_Client C on S.ClientID=C.ClientID Where S.ItemId = @itemId", new Parameters("@itemId", DbType.Int32, itemId)))
            {
                if (reader.Read())
                {
                    return ComplainFromDataReader(reader);
                }
                return new ComplainItemInfo(true);
            }
        }

        public IList<ComplainItemInfo> GetList(int startRowIndexId, int maxNumberRows, int searchType, int field, string keyword)
        {
            IList<ComplainItemInfo> list = new List<ComplainItemInfo>();
            Database database = DatabaseFactory.CreateDatabase();
            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, "S.ItemID");
            database.AddInParameter(storedProcCommand, "@StrColumn", DbType.String, "S.*,C.ClientName as ShortedForm");
            database.AddInParameter(storedProcCommand, "@Sorts", DbType.String, "DESC");
            database.AddInParameter(storedProcCommand, "@TableName", DbType.String, "PE_ComplainItem S inner join PE_Client C on S.ClientID=C.ClientID");
            database.AddOutParameter(storedProcCommand, "@Total", DbType.Int32, 10);
            StringBuilder builder = new StringBuilder(0x100);
            builder.Append("1=1");
            if (string.IsNullOrEmpty(keyword))
            {
                switch (searchType)
                {
                    case 0:
                        goto Label_01BB;

                    case 1:
                        builder.Append(" and datediff(d,S.DateAndTime,getdate())<10");
                        goto Label_01BB;

                    case 2:
                        builder.Append(" and datediff(d,S.DateAndTime,getdate())<30");
                        goto Label_01BB;

                    case 3:
                        builder.Append(" and FirstReceiver like '%" + PEContext.Current.Admin.AdminName + "%'");
                        goto Label_01BB;
                }
            }
            else
            {
                switch (field)
                {
                    case 0:
                        builder.Append(" and S.ClientID=" + keyword);
                        goto Label_01BB;

                    case 1:
                        builder.Append(" and C.ClientName like '%" + keyword + "%'");
                        goto Label_01BB;

                    case 2:
                        builder.Append(" and datediff(d,S.DateAndTime,'" + keyword + "')=0");
                        goto Label_01BB;

                    case 3:
                        builder.Append(" and S.Defendant = '" + keyword + "'");
                        goto Label_01BB;

                    case 0x63:
                        builder.Append(ComplexSearch(keyword));
                        goto Label_01BB;
                }
            }
        Label_01BB:
            database.AddInParameter(storedProcCommand, "@Filter", DbType.String, builder.ToString());
            using (NullableDataReader reader = new NullableDataReader(database.ExecuteReader(storedProcCommand)))
            {
                while (reader.Read())
                {
                    list.Add(ComplainFromDataReader(reader));
                }
            }
            this.m_Total = (int) database.GetParameterValue(storedProcCommand, "@Total");
            return list;
        }

        public int GetMaxId()
        {
            return DBHelper.GetMaxId("PE_ComplainItem", "ItemID");
        }

        private static Parameters GetParameters(ComplainItemInfo info)
        {
            Parameters parameters = new Parameters();
            parameters.AddInParameter("@ItemID", DbType.Int32, info.ItemId);
            parameters.AddInParameter("@ClientID", DbType.Int32, info.ClientId);
            parameters.AddInParameter("@ContacterID", DbType.Int32, info.ContacterId);
            parameters.AddInParameter("@ComplainType", DbType.Int32, info.ComplainType);
            parameters.AddInParameter("@ComplainMode", DbType.Int32, info.ComplainMode);
            parameters.AddInParameter("@Title", DbType.String, info.Title);
            parameters.AddInParameter("@Content", DbType.String, info.Content);
            parameters.AddInParameter("@FirstReceiver", DbType.String, info.FirstReceiver);
            parameters.AddInParameter("@DateAndTime", DbType.DateTime, info.DateAndTime);
            parameters.AddInParameter("@MagnitudeOfExigence", DbType.Int32, info.MagnitudeOfExigence);
            parameters.AddInParameter("@Process", DbType.String, info.Process);
            parameters.AddInParameter("@Processor", DbType.String, info.Processor);
            parameters.AddInParameter("@Result", DbType.String, info.Result);
            parameters.AddInParameter("@EndTime", DbType.DateTime, info.EndTime);
            parameters.AddInParameter("@Feedback", DbType.String, info.Feedback);
            parameters.AddInParameter("@ConfirmTime", DbType.DateTime, info.ConfirmTime);
            parameters.AddInParameter("@ConfirmCaller", DbType.String, info.ConfirmCaller);
            parameters.AddInParameter("@ConfirmScore", DbType.Int32, info.ConfirmScore);
            parameters.AddInParameter("@ConfirmFeedback", DbType.String, info.ConfirmFeedback);
            parameters.AddInParameter("@Status", DbType.Int32, info.Status);
            parameters.AddInParameter("@CurrentOwner", DbType.String, info.CurrentOwner);
            parameters.AddInParameter("@Remark", DbType.String, info.Remark);
            parameters.AddInParameter("@Defendant", DbType.String, info.Defendant);
            return parameters;
        }

        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 GetTotal()
        {
            return this.m_Total;
        }

        public bool Update(ComplainItemInfo info)
        {
            return DBHelper.ExecuteProc("PR_Crm_ComplainItem_Update", GetParameters(info));
        }
    }
}

⌨️ 快捷键说明

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