public bool CheckSubCompanyIsExist(QuerySubCompanyListParameter parameter)
        {
            this.ExecuteSQL    = string.Format("SELECT * FROM dbo.subcompany WHERE name=@name AND serialnumber=@serialnumber{0}", parameter.SubComId == 0 ? string.Empty : string.Concat(" AND subcomid<>", parameter.SubComId));
            this.DataParameter = new IDbDataParameter[]
            {
                new SqlParameter("@name", parameter.Name),
                new SqlParameter("@serialnumber", parameter.SerialNumber)
            };
            var subCompany = this.ExecuteReadSqlToCompanyInfoDataModel();

            return(subCompany != null);
        }
 public int UpdateChildNumberByClassId(IDbTransaction tran, QuerySubCompanyListParameter parameter)
 {
     this.ExecuteSQL    = "UPDATE dbo.subcompany SET childnumber=childnumber+1 WHERE classid=@classid";
     this.DataParameter = new IDbDataParameter[]
     {
         new SqlParameter("@classid", SqlDbType.VarChar)
         {
             Value = parameter.ParentId
         }
     };
     return(this.ExecuteNonQuery(tran));
 }
 public subcompanyDataModel GetSubCompanyByClassID(QuerySubCompanyListParameter parameter)
 {
     this.ExecuteSQL    = "SELECT * FROM dbo.subcompany WHERE classid=@classid";
     this.DataParameter = new IDbDataParameter[]
     {
         new SqlParameter("@classid", SqlDbType.VarChar)
         {
             Value = parameter.ParentId
         }
     };
     return(this.ExecuteReadSqlTosubcompanyDataModel());
 }
 public List <subcompanyDataModel> GetSubCompanyListByParentID(QuerySubCompanyListParameter parameter)
 {
     this.ExecuteSQL    = "SELECT  * FROM dbo.subcompany WHERE parentid=@parentid ORDER BY classid DESC";
     this.DataParameter = new IDbDataParameter[]
     {
         new SqlParameter("@parentid", SqlDbType.VarChar)
         {
             Value = parameter.ParentId
         }
     };
     return(this.ExecuteReadSqlTosubcompanyDataModelList());
 }
        public PageData <subcompanyDataModel> GetQuerySubCompanyList(QuerySubCompanyListParameter parameter)
        {
            var isSearch = !(string.IsNullOrEmpty(parameter.Email) && string.IsNullOrEmpty(parameter.LinkMan) && string.IsNullOrEmpty(parameter.LinkTel) &&
                             string.IsNullOrEmpty(parameter.Name) && string.IsNullOrEmpty(parameter.SerialNumber) && string.IsNullOrEmpty(parameter.Spelling) &&
                             parameter.PriceMode == 0 && parameter.Status == (short)CommonStatus.Default);

            this.ExecuteSQL = string.Format("SELECT * FROM dbo.subcompany WHERE {0} serialnumber LIKE '%{1}%' AND name LIKE '%{2}%' AND pinyin LIKE '%{3}%' AND email LIKE '%{4}%' AND linkman LIKE '%{5}%' AND linktel LIKE '%{6}%' AND [status] IN({7}) AND pricemode in({8}) AND deleted IN({9})"
                                            , isSearch ? string.Empty : string.Format(" parentid='{0}' AND ", parameter.ParentId)
                                            , parameter.SerialNumber
                                            , parameter.Name
                                            , parameter.Spelling
                                            , parameter.Email
                                            , parameter.LinkMan
                                            , parameter.LinkTel
                                            , parameter.Status == (short)CommonStatus.Default ? string.Concat((short)CommonStatus.Used, ",", (short)CommonStatus.Stopped) : parameter.Status.ToString()
                                            , parameter.PriceMode == 0 ? "1,2,3" : parameter.PriceMode.ToString()
                                            , parameter.Deleted == (short)CommonDeleted.Default ? string.Concat((short)CommonDeleted.Deleted, ",", (short)CommonDeleted.NotDeleted) : parameter.Deleted.ToString());
            return(this.ExecuteReadSqlTosubcompanyDataModelPageData("subcomid", parameter.PageIndex, parameter.PageSize, "classid ASC, [sort] DESC"));
        }
        public RespondWebViewData <List <RespondQuerySubCompanyViewModel> > GetQueryCompanyList(RequestWebViewData <RequestQuerySubCompanyViewModel> request)
        {
            if (request.data == null)
            {
                request.data = new RequestQuerySubCompanyViewModel();
            }

            return(MemcacheHelper.Get(new RequestMemcacheParameter <RespondWebViewData <List <RespondQuerySubCompanyViewModel> > >
            {
                CacheKey = string.Format(PRE_CACHE_KEY, "GetQueryCompanyList"),

                #region ==========================

                CallBackFunc = () =>
                {
                    var parameter = new QuerySubCompanyListParameter
                    {
                        Email = request.data.Email,
                        LinkMan = request.data.LinkMan,
                        LinkTel = request.data.LinkTel,
                        Name = request.data.Name,
                        PageIndex = request.page,
                        PageSize = request.rows,
                        ParentId = request.data.ParentId,
                        PriceMode = request.data.PriceMode,
                        SerialNumber = request.data.SerialNumber,
                        Spelling = request.data.Spelling,
                        Status = request.data.Status,
                        Deleted = request.data.Deleted
                    };
                    var pageDataList = this.mSubCompanyDataAccess.GetQuerySubCompanyList(parameter);
                    var respond = new RespondWebViewData <List <RespondQuerySubCompanyViewModel> >
                    {
                        total = pageDataList.DataCount,
                        rows = pageDataList.Datas.Select(item => new RespondQuerySubCompanyViewModel
                        {
                            ClassId = item.classid,
                            ComId = item.subcomid,
                            Email = item.email,
                            Comment = item.comment,
                            LinkMan = item.linkman,
                            LinkTel = item.linktel,
                            Name = item.name,
                            ParentId = item.parentid,
                            PriceMode = item.pricemode.ToString(),
                            SerialNumber = item.serialnumber,
                            sort = item.sort.ToString(),
                            Status = item.status.ToString(),
                            Spelling = item.pinyin,
                            ChildNumber = item.childnumber,
                            Deleted = item.deleted
                        }).ToList()
                    };
                    return respond;
                },

                #endregion

                ExpiresAt = DateTime.Now.AddMinutes(30),
                ManageCacheKeyForKey = ServiceMemcachedKeyManageConst.BasicSubCompany,
                ParamsKeys = new object[]
                {
                    request.page,
                    request.rows,
                    request.data.ParentId,
                    request.data.Email,
                    request.data.LinkMan,
                    request.data.LinkTel,
                    request.data.Name,
                    request.data.PriceMode,
                    request.data.SerialNumber,
                    request.data.Spelling,
                    request.data.Status,
                    request.data.Deleted
                }
            }));
        }
        public RespondWebViewData <RespondAddSubCompanyViewModel> AddSubCompany(RequestWebViewData <RequestAddSubCompanyViewModel> request)
        {
            var rData = request.data;

            if (this.mSubCompanyDataAccess.CheckSubCompanyIsExist(new QuerySubCompanyListParameter {
                Name = rData.Name, SerialNumber = rData.SerialNumber
            }))
            {
                return(new RespondWebViewData <RespondAddSubCompanyViewModel>(WebViewErrorCode.ExistsDataInfo.ErrorCode, string.Format("名称为[{0}]或编号为[{1}]的分公司已经存在", rData.Name, rData.SerialNumber)));
            }

            var respond = new RespondWebViewData <RespondAddSubCompanyViewModel>(WebViewErrorCode.Success);

            try
            {
                var subCompany = this.mSubCompanyDataAccess.GetSubCompanyByClassID(new QuerySubCompanyListParameter {
                    ParentId = rData.ParentId
                });
                if (subCompany == null)
                {
                    return(new RespondWebViewData <RespondAddSubCompanyViewModel>(WebViewErrorCode.NotExistsDataInfo));
                }
                if (subCompany.deleted == (short)CommonDeleted.Deleted)
                {
                    return(new RespondWebViewData <RespondAddSubCompanyViewModel>(WebViewErrorCode.NotExistsDataInfo));
                }
                this.mDbConnection.ExecuteTransaction(tran =>
                {
                    var parameter = new QuerySubCompanyListParameter
                    {
                        ParentId = rData.ParentId
                    };
                    var classId     = string.Concat(rData.ParentId, "000001");
                    var companyList = this.mSubCompanyDataAccess.GetSubCompanyListByParentID(parameter);
                    if (companyList.Count > 0)
                    {
                        classId = BuildNewClassIdByLastClassId.GeneratedNewClassIdByLastClassId(companyList[0].classid);
                    }

                    var data = new subcompanyDataModel
                    {
                        childnumber  = 0,
                        classid      = classId,
                        comment      = rData.Comment,
                        email        = rData.Email,
                        linktel      = rData.LinkTel,
                        linkman      = rData.LinkMan,
                        name         = rData.Name,
                        parentid     = rData.ParentId,
                        pinyin       = rData.Spelling,
                        pricemode    = rData.PriceMode,
                        serialnumber = rData.SerialNumber,
                        sort         = rData.Sort,
                        status       = (short)CommonStatus.Used,
                        deleted      = (short)CommonDeleted.NotDeleted
                    };
                    var addResult = this.mSubCompanyDataAccess.Add(data, tran);
                    if (addResult > 0)
                    {
                        this.mSubCompanyDataAccess.UpdateChildNumberByClassId(tran, parameter);
                    }
                    MemcacheHelper.RemoveBy(ServiceMemcachedKeyManageConst.BasicSubCompany);

                    //由于电脑配置不上mongodb固暂时先屏蔽掉此段mongodb的数据操作
                    //this.SaveMongoDbData("新增分公司资料", request, respond, this.GetType());
                });
            }
            catch (Exception ex)
            {
                respond = new RespondWebViewData <RespondAddSubCompanyViewModel>(new ErrorCodeItem(WebViewErrorCode.Exception.ErrorCode, ex.Message));
            }
            return(respond);
        }