Esempio n. 1
0
        public int Add(CustomerInfo entity)
        {
            int id = CommonDataProvider.Instance().AddCustomer(entity);

            if (id > 0)
            {
                RefreshCustomerCache(entity);

                CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
                {
                    CustomerID       = id,
                    CustomerStatus   = entity.CustomerStatus,
                    OwnerID          = entity.OwnerID,
                    Owner            = entity.Owner,
                    LastUpdateUserID = entity.LastUpdateUserID,
                    LastUpdateUser   = entity.LastUpdateUser,
                    CreateTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                    SystemMsg        = entity.SystemRemark
                };

                CustomerMoveRecords.Instance.Add(minfo);
            }

            return(id);
        }
Esempio n. 2
0
        public int Move(CustomerInfo entity)
        {
            int result = 0;
            CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
            {
                CustomerID           = entity.ID,
                CustomerStatus       = entity.CustomerStatus,
                CustomerStatusSource = entity.CustomerStatus,
                OwnerID          = entity.OwnerID,
                Owner            = entity.Owner,
                LastUpdateUserID = entity.LastUpdateUserID,
                LastUpdateUser   = entity.LastUpdateUser,
                CreateTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                SystemMsg        = DateTime.Today.ToString("yyyy年MM月dd日") + "线索批量移交"
            };

            CustomerMoveRecords.Instance.Add(minfo);

            entity.SystemRemark = minfo.SystemMsg;

            result = CommonDataProvider.Instance().UpdateCustomer(entity);

            if (result > 0)
            {
                RefreshCustomerCache(entity);
            }

            return(result);
        }
Esempio n. 3
0
        public int Add(CustomerInfo entity)
        {
            int id = CommonDataProvider.Instance().AddCustomer(entity);

            if (id > 0)
            {
                RefreshCustomerCache(entity);

                CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
                {
                    CustomerID = id,
                    CustomerStatus = entity.CustomerStatus,
                    OwnerID = entity.OwnerID,
                    Owner = entity.Owner,
                    LastUpdateUserID = entity.LastUpdateUserID,
                    LastUpdateUser = entity.LastUpdateUser,
                    CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                    SystemMsg = entity.SystemRemark
                };

                CustomerMoveRecords.Instance.Add(minfo);
            }

            return id;
        }
Esempio n. 4
0
 public void Add(CustomerMoveRecordInfo entity)
 {
     int id = CommonDataProvider.Instance().AddCustomerMoveRecord(entity);
     if (id > 0)
     {
         RefreshCustomerMoveRecordCache(entity);
     }
 }
Esempio n. 5
0
        public int Update(CustomerInfo entity)
        {
            int          result    = 0;
            CustomerInfo entityold = GetCustomerByID(entity.ID);

            if (entity.CustomerStatus != entityold.CustomerStatus || entity.OwnerID != entityold.OwnerID)
            {
                CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
                {
                    CustomerID           = entity.ID,
                    CustomerStatus       = entity.CustomerStatus,
                    CustomerStatusSource = entityold.CustomerStatus,
                    OwnerID          = entity.OwnerID,
                    Owner            = entity.Owner,
                    LastUpdateUserID = entity.LastUpdateUserID,
                    LastUpdateUser   = entity.LastUpdateUser,
                    CreateTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm")
                };
                if (entity.CustomerStatus == (int)CustomerStatus.潜客_战败)
                {
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "战败";
                }
                else if (entity.CustomerStatus == (int)CustomerStatus.潜客_转出)
                {
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "由" + entityold.CustomerStatusName + "转出";
                }
                else if (entity.CustomerStatus != entityold.CustomerStatus)
                {
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "由" + entityold.CustomerStatusName + "转入";
                }
                else if (entity.OwnerID != entityold.OwnerID)
                {
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "变更线索所有人";
                }

                CustomerMoveRecords.Instance.Add(minfo);

                if (entity.CustomerStatus != (int)CustomerStatus.潜客_战败 && entity.CustomerStatus != (int)CustomerStatus.潜客_转出)
                {
                    entity.SystemRemark = minfo.SystemMsg;
                }
                if (entity.OwnerID != entityold.OwnerID)
                {
                    AdminInfo owner = Admins.Instance.GetAdmin(entity.OwnerID);
                    entity.OwnerPowerGroupID = owner.PowerGroupID;
                }
            }

            result = CommonDataProvider.Instance().UpdateCustomer(entity);

            if (result > 0)
            {
                RefreshCustomerCache(entity);
            }

            return(result);
        }
Esempio n. 6
0
        public void Add(CustomerMoveRecordInfo entity)
        {
            int id = CommonDataProvider.Instance().AddCustomerMoveRecord(entity);

            if (id > 0)
            {
                RefreshCustomerMoveRecordCache(entity);
            }
        }
Esempio n. 7
0
 /// <summary>
 /// 更新客户线索流转记录缓存
 /// </summary>
 /// <param name="entity"></param>
 public void RefreshCustomerMoveRecordCache(CustomerMoveRecordInfo entity)
 {
     string key = GlobalKey.CUSTOMERMOVERECORD_LIST + "_c" + entity.CustomerID;
     List<CustomerMoveRecordInfo> list = MangaCache.Get(key) as List<CustomerMoveRecordInfo>;
     entity = GetCustomerMoveRecordByID(entity.ID);
     if (list != null && list.Exists(c => c.ID == entity.ID))
     {
         list[list.FindIndex(c => c.ID == entity.ID)] = entity;
     }
     else if (list == null)
     {
         GetListByCustomerID(entity.CustomerID,true);
     }
     else
         list.Add(entity);
 }
Esempio n. 8
0
        public static CustomerMoveRecordInfo PopulateCustomerMoveRecordInfo(IDataReader reader)
        {
            CustomerMoveRecordInfo entity = new CustomerMoveRecordInfo()
            {
                ID                   = (int)reader["ID"],
                CustomerID           = (int)reader["CustomerID"],
                CustomerStatus       = (int)reader["CustomerStatus"],
                CustomerStatusSource = (int)reader["CustomerStatusSource"],
                OwnerID              = (int)reader["OwnerID"],
                Owner                = reader["Owner"] as string,
                LastUpdateUserID     = (int)reader["LastUpdateUserID"],
                LastUpdateUser       = reader["LastUpdateUser"] as string,
                CreateTime           = reader["CreateTime"] as string,
                SystemMsg            = reader["SystemMsg"] as string
            };

            return(entity);
        }
Esempio n. 9
0
        /// <summary>
        /// 更新客户线索流转记录缓存
        /// </summary>
        /// <param name="entity"></param>
        public void RefreshCustomerMoveRecordCache(CustomerMoveRecordInfo entity)
        {
            string key = GlobalKey.CUSTOMERMOVERECORD_LIST + "_c" + entity.CustomerID;
            List <CustomerMoveRecordInfo> list = MangaCache.Get(key) as List <CustomerMoveRecordInfo>;

            entity = GetCustomerMoveRecordByID(entity.ID);
            if (list != null && list.Exists(c => c.ID == entity.ID))
            {
                list[list.FindIndex(c => c.ID == entity.ID)] = entity;
            }
            else if (list == null)
            {
                GetListByCustomerID(entity.CustomerID, true);
            }
            else
            {
                list.Add(entity);
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 每天凌晨2点5分开始执行
        /// </summary>
        public void CustomerForcedout()
        {
            if (DateTime.Now.Hour == 2 && DateTime.Now.Minute == 5)
            {
                if (!hasruncustomerforcedout)
                {
                    hasruncustomerforcedout = true;
                    try
                    {
                        EventLogs.JobLog("开始作业-线索强制转出");
                        List <CorporationInfo> list = Corporations.Instance.GetList(true);
                        foreach (CorporationInfo corpinfo in list)
                        {
                            List <CustomerInfo> listForced = new List <CustomerInfo>();
                            List <CustomerInfo> clist      = GetCustomerListByCorporation(corpinfo.ID, true);
                            if (corpinfo.Forcedoffday > 0)
                            {
                                string[] offcustomerlevel = corpinfo.Offcustomerlevel.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                                listForced.AddRange(clist.FindAll(l => l.CustomerStatus == (int)CustomerStatus.清洗_邀约 && DateTime.Today.Subtract(DataConvert.SafeDate(l.PostTime)).TotalDays >= (corpinfo.Forcedoffday - 1) && !offcustomerlevel.Contains(l.LastCustomerLevelID.ToString())));
                            }
                            if (corpinfo.Forcedoutday > 0)
                            {
                                string[] forcedoutdaylevel = corpinfo.Forcedoutdaylevel.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                                listForced.AddRange(clist.FindAll(l => l.CustomerStatus == (int)CustomerStatus.追踪_促成 && DateTime.Today.Subtract(DataConvert.SafeDate(l.PostTime)).TotalDays >= (corpinfo.Forcedoutday - 1) && !forcedoutdaylevel.Contains(l.LastCustomerLevelID.ToString())));
                            }
                            foreach (CustomerInfo entity in listForced)
                            {
                                entity.CustomerStatusSource = entity.CustomerStatus;
                                entity.CustomerStatus       = (int)CustomerStatus.潜客_转出;
                                entity.LurkStatus           = 1;

                                CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
                                {
                                    CustomerID           = entity.ID,
                                    CustomerStatus       = entity.CustomerStatus,
                                    CustomerStatusSource = entity.CustomerStatus,
                                    OwnerID          = entity.OwnerID,
                                    Owner            = entity.Owner,
                                    LastUpdateUserID = entity.LastUpdateUserID,
                                    LastUpdateUser   = entity.LastUpdateUser,
                                    CreateTime       = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                                    SystemMsg        = DateTime.Today.ToString("yyyy年MM月dd日") + "线索强制转出"
                                };

                                CustomerMoveRecords.Instance.Add(minfo);

                                entity.SystemRemark = minfo.SystemMsg;

                                CommonDataProvider.Instance().UpdateCustomer(entity);
                            }
                            if (listForced.Count > 0)
                            {
                                ReloadCustomerListByCorporationCache(corpinfo.ID);
                            }
                        }
                        EventLogs.JobLog("完成作业-线索强制转出");
                    }
                    catch (Exception ex)
                    {
                        EventLogs.JobError("作业发生错误-线索强制转出", EventLogs.EVENTID_JOB_ERROR, 0, ex);
                        ExpLog.Write(ex);
                    }
                }
            }
            else
            {
                hasruncustomerforcedout = false;
            }
        }
Esempio n. 11
0
        public static CustomerMoveRecordInfo PopulateCustomerMoveRecordInfo(IDataReader reader)
        {
            CustomerMoveRecordInfo entity = new CustomerMoveRecordInfo()
            {
                ID = (int)reader["ID"],
                CustomerID = (int)reader["CustomerID"],
                CustomerStatus = (int)reader["CustomerStatus"],
                CustomerStatusSource = (int)reader["CustomerStatusSource"],
                OwnerID = (int)reader["OwnerID"],
                Owner = reader["Owner"] as string,
                LastUpdateUserID = (int)reader["LastUpdateUserID"],
                LastUpdateUser = reader["LastUpdateUser"] as string,
                CreateTime = reader["CreateTime"] as string,
                SystemMsg = reader["SystemMsg"] as string
            };

            return entity;
        }
Esempio n. 12
0
 public abstract int AddCustomerMoveRecord(CustomerMoveRecordInfo entity);
Esempio n. 13
0
 public override int AddCustomerMoveRecord(CustomerMoveRecordInfo entity)
 {
     string sql = @"
         INSERT INTO ComOpp_CustomerMoveRecord(
             [CustomerID],[CustomerStatus],[CustomerStatusSource],[OwnerID],[Owner],[LastUpdateUserID],[LastUpdateUser],[CreateTime],[SystemMsg]
         )VALUES(
             @CustomerID,@CustomerStatus,@CustomerStatusSource,@OwnerID,@Owner,@LastUpdateUserID,@LastUpdateUser,@CreateTime,@SystemMsg
         );
         SELECT @@IDENTITY;
     ";
     SqlParameter[] p =
     {
         new SqlParameter("@CustomerID",entity.CustomerID),
         new SqlParameter("@CustomerStatus",entity.CustomerStatus),
         new SqlParameter("@CustomerStatusSource",entity.CustomerStatusSource),
         new SqlParameter("@OwnerID",entity.OwnerID),
         new SqlParameter("@Owner",entity.Owner),
         new SqlParameter("@LastUpdateUserID",entity.LastUpdateUserID),
         new SqlParameter("@LastUpdateUser",entity.LastUpdateUser),
         new SqlParameter("@CreateTime",entity.CreateTime),
         new SqlParameter("@SystemMsg",entity.SystemMsg)
     };
     entity.ID = DataConvert.SafeInt(SqlHelper.ExecuteScalar(_con, CommandType.Text, sql, p));
     return entity.ID;
 }
Esempio n. 14
0
 public abstract int AddCustomerMoveRecord(CustomerMoveRecordInfo entity);
Esempio n. 15
0
        public int Update(CustomerInfo entity)
        {
            int result = 0;
            CustomerInfo entityold = GetCustomerByID(entity.ID);

            if (entity.CustomerStatus != entityold.CustomerStatus || entity.OwnerID != entityold.OwnerID)
            {
                CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
                {
                    CustomerID = entity.ID,
                    CustomerStatus = entity.CustomerStatus,
                    CustomerStatusSource = entityold.CustomerStatus,
                    OwnerID = entity.OwnerID,
                    Owner = entity.Owner,
                    LastUpdateUserID = entity.LastUpdateUserID,
                    LastUpdateUser = entity.LastUpdateUser,
                    CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm")
                };
                if (entity.CustomerStatus == (int)CustomerStatus.潜客_战败)
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "战败";
                else if (entity.CustomerStatus == (int)CustomerStatus.潜客_转出)
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "由" + entityold.CustomerStatusName + "转出";
                else if (entity.CustomerStatus != entityold.CustomerStatus)
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "由" + entityold.CustomerStatusName + "转入";
                else if (entity.OwnerID != entityold.OwnerID)
                    minfo.SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "变更线索所有人";

                CustomerMoveRecords.Instance.Add(minfo);

                if (entity.CustomerStatus != (int)CustomerStatus.潜客_战败 && entity.CustomerStatus != (int)CustomerStatus.潜客_转出)
                    entity.SystemRemark = minfo.SystemMsg;
                if (entity.OwnerID != entityold.OwnerID)
                {
                    AdminInfo owner = Admins.Instance.GetAdmin(entity.OwnerID);
                    entity.OwnerPowerGroupID = owner.PowerGroupID;
                }
            }

            result = CommonDataProvider.Instance().UpdateCustomer(entity);

            if (result > 0)
            {
                RefreshCustomerCache(entity);
            }

            return result;
        }
Esempio n. 16
0
        public int Move(CustomerInfo entity)
        {
            int result = 0;
            CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
            {
                CustomerID = entity.ID,
                CustomerStatus = entity.CustomerStatus,
                CustomerStatusSource = entity.CustomerStatus,
                OwnerID = entity.OwnerID,
                Owner = entity.Owner,
                LastUpdateUserID = entity.LastUpdateUserID,
                LastUpdateUser = entity.LastUpdateUser,
                CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "线索批量移交"
            };

            CustomerMoveRecords.Instance.Add(minfo);

            entity.SystemRemark = minfo.SystemMsg;

            result = CommonDataProvider.Instance().UpdateCustomer(entity);

            if (result > 0)
            {
                RefreshCustomerCache(entity);
            }

            return result;
        }
Esempio n. 17
0
        /// <summary>
        /// 每天凌晨2点5分开始执行
        /// </summary>
        public void CustomerForcedout()
        {
            if (DateTime.Now.Hour == 2 && DateTime.Now.Minute == 5)
            {
                if (!hasruncustomerforcedout)
                {
                    hasruncustomerforcedout = true;
                    try
                    {
                        EventLogs.JobLog("开始作业-线索强制转出");
                        List<CorporationInfo> list = Corporations.Instance.GetList(true);
                        foreach (CorporationInfo corpinfo in list)
                        {
                            List<CustomerInfo> listForced = new List<CustomerInfo>();
                            List<CustomerInfo> clist = GetCustomerListByCorporation(corpinfo.ID, true);
                            if (corpinfo.Forcedoffday > 0)
                            {
                                string[] offcustomerlevel = corpinfo.Offcustomerlevel.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                                listForced.AddRange(clist.FindAll(l => l.CustomerStatus == (int)CustomerStatus.清洗_邀约 && DateTime.Today.Subtract(DataConvert.SafeDate(l.PostTime)).TotalDays >= (corpinfo.Forcedoffday - 1) && !offcustomerlevel.Contains(l.LastCustomerLevelID.ToString())));

                            }
                            if (corpinfo.Forcedoutday > 0)
                            {
                                string[] forcedoutdaylevel = corpinfo.Forcedoutdaylevel.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                                listForced.AddRange(clist.FindAll(l => l.CustomerStatus == (int)CustomerStatus.追踪_促成 && DateTime.Today.Subtract(DataConvert.SafeDate(l.PostTime)).TotalDays >= (corpinfo.Forcedoutday - 1) && !forcedoutdaylevel.Contains(l.LastCustomerLevelID.ToString())));
                            }
                            foreach (CustomerInfo entity in listForced)
                            {
                                entity.CustomerStatusSource = entity.CustomerStatus;
                                entity.CustomerStatus = (int)CustomerStatus.潜客_转出;
                                entity.LurkStatus = 1;

                                CustomerMoveRecordInfo minfo = new CustomerMoveRecordInfo()
                                {
                                    CustomerID = entity.ID,
                                    CustomerStatus = entity.CustomerStatus,
                                    CustomerStatusSource = entity.CustomerStatus,
                                    OwnerID = entity.OwnerID,
                                    Owner = entity.Owner,
                                    LastUpdateUserID = entity.LastUpdateUserID,
                                    LastUpdateUser = entity.LastUpdateUser,
                                    CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm"),
                                    SystemMsg = DateTime.Today.ToString("yyyy年MM月dd日") + "线索强制转出"
                                };

                                CustomerMoveRecords.Instance.Add(minfo);

                                entity.SystemRemark = minfo.SystemMsg;

                                CommonDataProvider.Instance().UpdateCustomer(entity);
                            }
                            if (listForced.Count > 0)
                                ReloadCustomerListByCorporationCache(corpinfo.ID);
                        }
                        EventLogs.JobLog("完成作业-线索强制转出");
                    }
                    catch (Exception ex)
                    {
                        EventLogs.JobError("作业发生错误-线索强制转出", EventLogs.EVENTID_JOB_ERROR, 0, ex);
                        ExpLog.Write(ex);
                    }
                }
            }
            else
                hasruncustomerforcedout = false;
        }