protected void Page_Load(object sender, EventArgs e)
        {
            string str = base.Request.Form["task"];

            if (!string.IsNullOrEmpty(str))
            {
                this.TaskMsg.state = "faild";
                this.TaskMsg.msg   = "未知错误";
                NameValueCollection form = new NameValueCollection();
                form.Add(base.Request.Form);
                FreightTemplate freightTemplate = this.ReadPostData(form);
                if (this.TaskMsg.state == "success")
                {
                    if (SettingsHelper.CreateShippingTemplate(freightTemplate))
                    {
                        this.TaskMsg.msg = "添加成功!";
                    }
                    else
                    {
                        this.TaskMsg.state = "faild";
                        if (SettingsHelper.Error != "")
                        {
                            this.TaskMsg.msg = "添加数据失败:" + SettingsHelper.Error;
                        }
                        else
                        {
                            this.TaskMsg.msg = "该运费模板名称已存在,请重新输入运费模板名称!";
                        }
                    }
                }
                base.Response.Write(JsonConvert.SerializeObject(this.TaskMsg));
                base.Response.End();
            }
        }
Exemplo n.º 2
0
 protected void rptypelist_ItemDataBound(object sender, RepeaterItemEventArgs e)
 {
     if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
     {
         Repeater                   repeater            = e.Item.FindControl("ListShipper") as Repeater;
         FreightTemplate            dataItem            = (FreightTemplate)e.Item.DataItem;
         IList <SpecifyRegionGroup> specifyRegionGroups = SettingsHelper.GetSpecifyRegionGroups(Convert.ToInt32(dataItem.TemplateId));
         if (specifyRegionGroups.Count < 1)
         {
             SpecifyRegionGroup item = new SpecifyRegionGroup
             {
                 RegionIds   = "",
                 ModeId      = 1,
                 FristNumber = 1M,
                 FristPrice  = 0M,
                 AddNumber   = 1M,
                 AddPrice    = 0M,
                 IsDefault   = true
             };
             specifyRegionGroups.Add(item);
         }
         repeater.DataSource = specifyRegionGroups;
         repeater.DataBind();
     }
 }
Exemplo n.º 3
0
        public static FreightTemplate GetFreightTemplate(long templateId, long shopId)
        {
            var model = Service.GetFreightTemplate(templateId);

            if (model.ShopID != shopId)
            {
                throw new MallException("此运费模板不存在");
            }

            var freeregions = Service.GetShippingFreeRegions(templateId);

            //     var freightTemplate = AutoMapper.Mapper.Map<FreightTemplate>(model);
            FreightTemplate freightTemplate = model.Map <FreightTemplate>();

            //     freightTemplate.FreightArea = AutoMapper.Mapper.Map<List<FreightArea>>(model.FreightAreaContentInfo);

            freightTemplate.FreightArea = model.FreightAreaContentInfo.Map <List <FreightArea> >();


            foreach (var area in freightTemplate.FreightArea)
            {
                //   area.FreightAreaDetail = AutoMapper.Mapper.Map<List<FreightAreaDetail>>(model.FreightAreaContentInfo.Where(a => a.Id == area.Id).FirstOrDefault().FreightAreaDetailInfo);
                area.FreightAreaDetail = model.FreightAreaContentInfo.Where(a => a.Id == area.Id).FirstOrDefault().FreightAreaDetailInfo.Map <List <FreightAreaDetail> >();
            }
            freightTemplate.FreeTempContent = new List <FreeTempContent>();
            var freeGroups  = Service.GetShippingFreeGroups(model.Id);
            var freeRegions = Service.GetShippingFreeRegions(model.Id);

            freeGroups.ForEach(item =>
            {
                var info = new FreeTempContent()
                {
                    ConditionNumber = item.ConditionNumber,
                    ConditionType   = item.ConditionType
                };
                if (!string.IsNullOrWhiteSpace(info.ConditionNumber))
                {
                    var condition = info.ConditionNumber.Split('$');
                    if (condition.Length == 2)
                    {
                        info.ConditionNumber1 = condition[0];
                        info.ConditionNumber2 = condition[1];
                    }
                    else if (condition.Length == 1)
                    {
                        info.ConditionNumber1 = condition[0];
                    }
                }
                info.FreightAreaDetail = new List <FreightAreaDetail>();
                freeRegions.Where(p => p.GroupId == item.Id).ToList().ForEach(a =>
                {
                    info.FreightAreaDetail.Add(new FreightAreaDetail()
                    {
                        RegionPath = a.RegionPath
                    });
                });
                freightTemplate.FreeTempContent.Add(info);
            });
            return(freightTemplate);
        }
Exemplo n.º 4
0
 /// <summary>
 /// 获取运费模板列表
 /// </summary>
 /// <param name="appId"></param>
 /// <returns></returns>
 public List <FreightDTO> GetFreightListByAppIdExt(Guid appId)
 {
     try
     {
         var query = (from data in FreightTemplate.ObjectSet()
                      where data.AppId == appId
                      orderby data.SubTime descending
                      select new FreightDTO()
         {
             Id = data.Id,
             Name = data.Name,
             FreightMethod = data.FreightMethod,
             FreightTo = data.FreightTo,
             FirstCount = data.FirstCount,
             FirstCountPrice = data.FirstCountPrice,
             NextCount = data.NextCount,
             NextCountPrice = data.NextCountPrice,
             IsFreeExp = data.IsFreeExp,
             SubTime = data.SubTime,
             ModifiedOn = data.ModifiedOn,
             PricingMethod = data.PricingMethod,
             ExpressType = data.ExpressType
         }).ToList();
         return(query);
     }
     catch (Exception ex)
     {
         LogHelper.Error(string.Format("获取运费模板列表。appId:{0}", appId), ex);
         return(null);
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// 添加修改运费模板
        /// </summary>
        /// <param name="templateInfo"></param>
        public static void AddOrUpdateFreightTemplate(FreightTemplate templateInfo)
        {
            //   var freightTemplate = AutoMapper.Mapper.Map<FreightTemplateInfo>(templateInfo);
            var freightTemplate = templateInfo.Map <FreightTemplateInfo>();


            freightTemplate.ShippingFreeGroupInfo = new List <ShippingFreeGroupInfo>();
            if (templateInfo.FreeTempContent != null)
            {
                templateInfo.FreeTempContent.ForEach(p =>
                {
                    var info = new Mall.Entities.ShippingFreeGroupInfo()
                    {
                        ConditionNumber = p.ConditionNumber,
                        ConditionType   = p.ConditionType
                    };
                    info.ShippingFreeRegionInfo = new List <Mall.Entities.ShippingFreeRegionInfo>();
                    p.FreightAreaDetail.ForEach(a =>
                    {
                        info.ShippingFreeRegionInfo.Add(new Mall.Entities.ShippingFreeRegionInfo()
                        {
                            RegionId   = a.RegionId,  //保留最后一级地址ID
                            RegionPath = a.RegionPath //保留地址全路径方便查询
                        });
                    });
                    freightTemplate.ShippingFreeGroupInfo.Add(info);
                });
            }
            Service.UpdateFreightTemplate(freightTemplate);
        }
Exemplo n.º 6
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            string value = base.Request.Form["task"];

            if (!string.IsNullOrEmpty(value))
            {
                this.TaskMsg.state = "faild";
                this.TaskMsg.msg   = "未知错误";
                FreightTemplate freightTemplate = this.ReadPostData(new System.Collections.Specialized.NameValueCollection
                {
                    base.Request.Form
                });
                if (this.TaskMsg.state == "success")
                {
                    if (SettingsHelper.CreateShippingTemplate(freightTemplate))
                    {
                        this.TaskMsg.msg = "添加成功!";
                    }
                    else
                    {
                        this.TaskMsg.state = "faild";
                        this.TaskMsg.msg   = "添加数据失败:" + SettingsHelper.Error;
                    }
                }
                base.Response.Write(JsonConvert.SerializeObject(this.TaskMsg));
                base.Response.End();
            }
        }
Exemplo n.º 7
0
 protected void rptypelist_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
 {
     if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Item || e.Item.ItemType == System.Web.UI.WebControls.ListItemType.AlternatingItem)
     {
         System.Web.UI.WebControls.Repeater repeater = e.Item.FindControl("ListShipper") as System.Web.UI.WebControls.Repeater;
         FreightTemplate freightTemplate             = (FreightTemplate)e.Item.DataItem;
         int             templateId = System.Convert.ToInt32(freightTemplate.TemplateId);
         System.Collections.Generic.IList <SpecifyRegionGroup> specifyRegionGroups = SettingsHelper.GetSpecifyRegionGroups(templateId);
         if (specifyRegionGroups.Count < 1)
         {
             specifyRegionGroups.Add(new SpecifyRegionGroup
             {
                 RegionIds   = "",
                 ModeId      = 1,
                 FristNumber = 1m,
                 FristPrice  = 0m,
                 AddNumber   = 1m,
                 AddPrice    = 0m,
                 IsDefault   = true
             });
         }
         repeater.DataSource = specifyRegionGroups;
         repeater.DataBind();
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// 获取运费模板列表
        /// </summary>
        /// <param name="appId">应用ID</param>
        /// <param name="pageIndex">查询第几页的数据</param>
        /// <param name="pageSize">每页查询几条数据</param>
        /// <returns></returns>
        public List <FreightDTO> GetFreightTemplateListByAppIdExt(Guid appId, int pageIndex, int pageSize, out int rowCount)
        {
            try
            {
                var query = from data in FreightTemplate.ObjectSet()
                            where data.AppId == appId
                            orderby data.SubTime descending
                            select data;

                rowCount = query != null?query.Count() : 0;

                var fTemplateDTOList = query.Skip((pageIndex - 1) * pageSize).Take(pageSize).Select(data => new FreightDTO
                {
                    Id              = data.Id,
                    Name            = data.Name,
                    FreightMethod   = data.FreightMethod,
                    FreightTo       = data.FreightTo,
                    FirstCount      = data.FirstCount,
                    FirstCountPrice = data.FirstCountPrice,
                    NextCount       = data.NextCount,
                    NextCountPrice  = data.NextCountPrice,
                    IsFreeExp       = data.IsFreeExp,
                    SubTime         = data.SubTime,
                    ModifiedOn      = data.ModifiedOn,
                    AppId           = data.AppId,
                    PricingMethod   = data.PricingMethod,
                    ExpressType     = data.ExpressType
                }).ToList();
                var list = (from data in fTemplateDTOList
                            select new FreightDTO()
                {
                    Id = data.Id,
                    Name = data.Name,
                    FreightMethod = data.FreightMethod,
                    FreightTo = data.FreightTo,
                    FirstCount = data.FirstCount,
                    FirstCountPrice = data.FirstCountPrice,
                    NextCount = data.NextCount,
                    NextCountPrice = data.NextCountPrice,
                    IsFreeExp = data.IsFreeExp,
                    SubTime = data.SubTime,
                    ModifiedOn = data.ModifiedOn,
                    AppId = data.AppId,
                    PricingMethod = data.PricingMethod,
                    ExpressType = data.ExpressType,
                    FreightDetailList = GetFreightTemplateDetailListByTemId(data.Id)
                }).ToList();

                ComputeFreightRangeDTOs(list);

                return(list);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("获取运费模板列表。appId:{0},pageIndex:{1},pageSize:{2}", appId, pageIndex, pageSize), ex);
                rowCount = 0;
                return(null);
            }
        }
Exemplo n.º 9
0
        public static bool UpdateShippingTemplate(FreightTemplate freightTemplate)
        {
            ShippingModeDao shippingModeDao = new ShippingModeDao();
            bool            result          = shippingModeDao.UpdateShippingTemplate(freightTemplate);

            SettingsHelper.Error = shippingModeDao.Error;
            return(result);
        }
Exemplo n.º 10
0
        public static bool CreateShippingTemplate(FreightTemplate freightTemplate)
        {
            ShippingModeDao shippingModeDao = new ShippingModeDao();
            bool            flag            = shippingModeDao.CreateShippingTemplate(freightTemplate);

            SettingsHelper.Error = shippingModeDao.Error;
            return(flag);
        }
Exemplo n.º 11
0
        public static bool UpdateShippingTemplate(FreightTemplate freightTemplate, string templateName)
        {
            ShippingModeDao shippingModeDao = new ShippingModeDao();
            bool            flag            = shippingModeDao.UpdateShippingTemplate(freightTemplate, templateName);

            SettingsHelper.Error = shippingModeDao.Error;
            return(flag);
        }
Exemplo n.º 12
0
        public static bool UpdateShippingTemplate(FreightTemplate freightTemplate)
        {
            ShippingModeDao dao  = new ShippingModeDao();
            bool            flag = dao.UpdateShippingTemplate(freightTemplate);

            Error = dao.Error;
            return(flag);
        }
Exemplo n.º 13
0
        /// <summary>
        /// 运费模板管理
        /// </summary>
        /// <param name="user"></param>
        /// <param name="entity"></param>
        /// <param name="FRegions"></param>
        /// <returns></returns>
        public JsonResult DoFreightTemplateForm(SysUser user, [FromBody] dynamic entity)
        {
            FreightTemplate      fTemplate = JsonConvert.DeserializeObject <FreightTemplate>(entity.entity.ToString());
            List <FreightRegion> FRegions  = JsonConvert.DeserializeObject <List <FreightRegion> >(entity.FRegions.ToString());
            StateCode            code      = ServiceIoc.Get <FreightTemplateService>().Save(user.id, fTemplate, FRegions);

            return(Json(GetResult(code)));
        }
Exemplo n.º 14
0
 /// <summary>
 /// 保存运费及其明细
 /// </summary>
 /// <param name="freight">运费模板</param>
 /// <param name="freightDetailList">运费明细集合</param>
 /// <returns></returns>
 public ResultDTO AddFreightAndFreightDetailExt(FreightTemplateDTO freight, List <FreightTemplateDetailDTO> freightDetailList)
 {
     try
     {
         if (freight == null)
         {
             return(new ResultDTO {
                 ResultCode = 2, Message = "运费模板为null"
             });
         }
         ContextSession  contextSession = ContextFactory.CurrentThreadContext;
         FreightTemplate tem            = new FreightTemplate();
         Guid            ID             = Guid.NewGuid();
         tem.Id              = ID;
         tem.Name            = freight.Name;
         tem.FreightMethod   = freight.FreightMethod;
         tem.FreightTo       = freight.FreightTo;
         tem.FirstCount      = freight.FirstCount;
         tem.FirstCountPrice = freight.FirstCountPrice;
         tem.NextCount       = freight.NextCount;
         tem.NextCountPrice  = freight.NextCountPrice;
         tem.IsFreeExp       = freight.IsFreeExp;
         tem.AppId           = freight.AppId;
         tem.SubTime         = DateTime.Now;
         tem.ModifiedOn      = DateTime.Now;
         tem.EntityState     = System.Data.EntityState.Added;
         contextSession.SaveObject(tem);
         if (freightDetailList != null && freightDetailList.Count > 0)
         {
             FreightTemplateDetail ftDetail;
             foreach (FreightTemplateDetailDTO detail in freightDetailList)
             {
                 ftDetail    = new FreightTemplateDetail();
                 ftDetail.Id = Guid.NewGuid();
                 ftDetail.FreightTemplateId = ID;
                 ftDetail.FreightTo         = detail.FreightTo;
                 ftDetail.FirstCount        = detail.FirstCount;
                 ftDetail.FirstCountPrice   = detail.FirstCountPrice;
                 ftDetail.NextCount         = detail.NextCount;
                 ftDetail.NextCountPrice    = detail.NextCountPrice;
                 ftDetail.EntityState       = System.Data.EntityState.Added;
                 contextSession.SaveObject(ftDetail);
             }
         }
         contextSession.SaveChanges();
         return(new ResultDTO {
             ResultCode = 0, Message = ID.ToString()
         });
     }
     catch (Exception ex)
     {
         LogHelper.Error(string.Format("保存运费及其明细服务异常。freight:{0},freightDetailList:{1}", JsonHelper.JsonSerializer(freight), JsonHelper.JsonSerializer(freightDetailList)), ex);
         return(new ResultDTO {
             ResultCode = 1, Message = ex.Message
         });
     }
 }
Exemplo n.º 15
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            this.TemplateId = base.Request["TemplateId"];
            this.SName      = base.Request["TemplateName"];
            if (string.IsNullOrEmpty(this.TemplateId))
            {
                this.ShowMsg("读取数据异常,无法编辑", false);
                return;
            }
            string text = base.Request["task"];

            if (!string.IsNullOrEmpty(text))
            {
                if (text == "ReadData")
                {
                    FreightTemplate freightTemplate = SettingsHelper.GetFreightTemplate(int.Parse(this.TemplateId), true);
                    base.Response.ContentType = "text/json";
                    base.Response.Write(JsonConvert.SerializeObject(freightTemplate));
                    base.Response.End();
                    return;
                }
                if (text == "EditSave")
                {
                    this.TaskMsg.state = "faild";
                    this.TaskMsg.msg   = "未知错误";
                    FreightTemplate freightTemplate2 = this.ReadPostData(new System.Collections.Specialized.NameValueCollection
                    {
                        base.Request.Form
                    });
                    if (this.TaskMsg.state == "success")
                    {
                        string templateName = base.Request.Form["sName"];
                        if (SettingsHelper.UpdateShippingTemplate(freightTemplate2, templateName))
                        {
                            this.TaskMsg.msg = "模板修改成功!";
                        }
                        else
                        {
                            this.TaskMsg.state = "faild";
                            if (SettingsHelper.Error != "")
                            {
                                this.TaskMsg.msg = "模板修改失败:" + SettingsHelper.Error;
                            }
                            else
                            {
                                this.TaskMsg.msg = "该模板名称已存在,请重新输入名称!";
                            }
                        }
                    }
                    base.Response.Write(JsonConvert.SerializeObject(this.TaskMsg));
                    base.Response.End();
                }
            }
        }
Exemplo n.º 16
0
        /// <summary>
        /// 运费模板管理
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        public IActionResult FreightTemplateForm(SysUser user)
        {
            FreightTemplate entity = ServiceIoc.Get <FreightTemplateService>().GetById(bid);

            if (entity != null)
            {
                //运费模板对象
                ViewBag.entity   = JsonConvert.SerializeObject(entity);
                ViewBag.FRegions = ServiceIoc.Get <FreightRegionService>().GetList("where freight_template_id = @0", bid);
            }
            return(View());
        }
Exemplo n.º 17
0
        /// <summary>
        /// 仅更新区间运费模板
        /// </summary>
        /// <param name="inputDTO"></param>
        private void OnlyUpdateRangeFreightTemplate(Deploy.CustomDTO.RangeFreightTemplateInputDTO inputDTO)
        {
            if (inputDTO == null)
            {
                throw new ArgumentNullException("inputDTO");
            }

            if (inputDTO.TemplateId == Guid.Empty)
            {
                throw new ArgumentException("inputDTO.TemplateId");
            }

            var templateId = inputDTO.TemplateId;

            var template = FreightTemplate.ObjectSet().FirstOrDefault(predicate => predicate.Id == templateId);

            if (template == null)
            {
                throw new Exception(string.Format("未找到运费模板对象 FreightTemplateId: {0}", templateId));
            }

            template.Name       = inputDTO.Name;
            template.IsFreeExp  = inputDTO.FreeExpress;
            template.ModifiedId = base.ContextDTO.LoginUserID;

            FreightRangeDetails.ObjectSet()
            .Where(predicate => predicate.TemplateId == templateId)
            .ToList()
            .ForEach(freight =>
                     freight.EntityState = System.Data.EntityState.Deleted);

            var context = ContextFactory.CurrentThreadContext;

            foreach (var group in inputDTO.Freights.GroupBy(selector => selector.IsSpecific))
            {
                foreach (var freight in group)
                {
                    var detail = FreightRangeDetails.CreateFreightRangeDetails();
                    detail.TemplateId    = template.Id;
                    detail.ProvinceCodes = freight.ProvinceCodes;
                    detail.IsSpecific    = freight.IsSpecific;
                    detail.Min           = freight.Min;
                    detail.Max           = freight.Max;
                    detail.Cost          = freight.Cost;

                    context.SaveObject(detail);
                }
            }

            context.SaveObject(template);
            context.SaveChange();
        }
Exemplo n.º 18
0
        public FreightTemplate GetTemplateMessage(int TemplateId)
        {
            if (TemplateId <= 0)
            {
                return(null);
            }
            FreightTemplate template         = null;
            DbCommand       sqlStringCommand = this.database.GetSqlStringCommand(string.Format("SELECT * FROM Hishop_FreightTemplate_Templates where TemplateId={0}", TemplateId));

            using (IDataReader reader = this.database.ExecuteReader(sqlStringCommand))
            {
                if (reader.Read())
                {
                    template = DataMapper.PopulateTemplateMessage(reader);
                }
            }
            return(template);
        }
Exemplo n.º 19
0
 protected void Page_Load(object sender, EventArgs e)
 {
     this.TemplateId = base.Request["TemplateId"];
     if (string.IsNullOrEmpty(this.TemplateId))
     {
         this.ShowMsg("读取数据异常,无法编辑", false);
     }
     else
     {
         string str = base.Request["task"];
         if (!string.IsNullOrEmpty(str))
         {
             if (str == "ReadData")
             {
                 FreightTemplate freightTemplate = SettingsHelper.GetFreightTemplate(int.Parse(this.TemplateId), true);
                 base.Response.ContentType = "text/json";
                 base.Response.Write(JsonConvert.SerializeObject(freightTemplate));
                 base.Response.End();
             }
             else if (str == "EditSave")
             {
                 this.TaskMsg.state = "faild";
                 this.TaskMsg.msg   = "未知错误";
                 NameValueCollection form = new NameValueCollection();
                 form.Add(base.Request.Form);
                 FreightTemplate template2 = this.ReadPostData(form);
                 if (this.TaskMsg.state == "success")
                 {
                     if (SettingsHelper.UpdateShippingTemplate(template2))
                     {
                         this.TaskMsg.msg = "模板修改成功!";
                     }
                     else
                     {
                         this.TaskMsg.state = "faild";
                         this.TaskMsg.msg   = "模板修改失败:" + SettingsHelper.Error;
                     }
                 }
                 base.Response.Write(JsonConvert.SerializeObject(this.TaskMsg));
                 base.Response.End();
             }
         }
     }
 }
Exemplo n.º 20
0
        public static FreightTemplate PopulateTemplateMessage(IDataReader reader)
        {
            if (reader == null)
            {
                return(null);
            }
            FreightTemplate template = new FreightTemplate {
                FreeShip = (bool)reader["FreeShip"],
                HasFree  = (bool)reader["HasFree"]
            };

            if (DBNull.Value != reader["MUnit"])
            {
                template.MUnit = int.Parse(reader["MUnit"].ToString());
            }
            template.Name       = (string)reader["Name"];
            template.TemplateId = (int)reader["TemplateId"];
            return(template);
        }
Exemplo n.º 21
0
 /// <summary>
 /// 删除运费模板
 /// </summary>
 /// <param name="Id"></param>
 /// <returns></returns>
 public ResultDTO DeleteFreightExt(Guid Id)
 {
     try
     {
         ContextSession contextSession = ContextFactory.CurrentThreadContext;
         var            query          = FreightTemplateDetail.ObjectSet().Where(s => s.FreightTemplateId == Id).ToList();
         if (query != null && query.Count > 0)
         {
             foreach (FreightTemplateDetail detail in query)
             {
                 detail.EntityState = System.Data.EntityState.Deleted;
                 contextSession.Delete(detail);
             }
         }
         var fpfQuery = FreightPartialFree.ObjectSet().Where(fpf => fpf.FreightTemplateId == Id);
         if (fpfQuery.Any())
         {
             foreach (FreightPartialFree partialFree in fpfQuery)
             {
                 partialFree.EntityState = System.Data.EntityState.Deleted;
                 contextSession.Delete(partialFree);
             }
         }
         FreightTemplate tem = FreightTemplate.ObjectSet().Where(s => s.Id == Id).FirstOrDefault();
         if (tem != null)
         {
             tem.EntityState = System.Data.EntityState.Deleted;
             contextSession.Delete(tem);
         }
         contextSession.SaveChanges();
         return(new ResultDTO {
             ResultCode = 0, Message = "Success"
         });
     }
     catch (Exception ex)
     {
         LogHelper.Error(string.Format("删除运费模板服务异常。Id:{0}", Id), ex);
         return(new ResultDTO {
             ResultCode = 1, Message = ex.Message
         });
     }
 }
Exemplo n.º 22
0
        /// <summary>
        /// 仅创建区间运费模板
        /// </summary>
        /// <param name="inputDTO"></param>
        private void OnlyCreateRangeFreightTemplate(Deploy.CustomDTO.RangeFreightTemplateInputDTO inputDTO)
        {
            var context = ContextFactory.CurrentThreadContext;

            var template = FreightTemplate.CreateFreightTemplate();

            template.AppId         = inputDTO.AppId;
            template.SubId         = base.ContextDTO.LoginUserID;
            template.Name          = inputDTO.Name;
            template.IsFreeExp     = inputDTO.FreeExpress;
            template.PricingMethod = 3; //按区间计价
            template.SubTime       = DateTime.Now;
            template.ExpressType   = 0;

            template.FreightMethod   = 0;
            template.FreightTo       = "";
            template.FirstCount      = 0M;
            template.FirstCountPrice = 0M;
            template.NextCount       = 0M;
            template.NextCountPrice  = 0M;
            template.ModifiedOn      = DateTime.Now;
            template.IsDefault       = 0;

            context.SaveObject(template);

            foreach (var freight in inputDTO.Freights)
            {
                var detail = FreightRangeDetails.CreateFreightRangeDetails();
                detail.TemplateId    = template.Id;
                detail.ProvinceCodes = freight.ProvinceCodes;
                detail.IsSpecific    = !string.IsNullOrEmpty(freight.ProvinceCodes);
                detail.Min           = freight.Min;
                detail.Max           = freight.Max;
                detail.Cost          = freight.Cost;

                context.SaveObject(detail);
            }
            context.SaveChanges();
        }
Exemplo n.º 23
0
        public FreightTemplate GetTemplateMessage(int TemplateId)
        {
            FreightTemplate result;

            if (TemplateId <= 0)
            {
                result = null;
            }
            else
            {
                FreightTemplate freightTemplate = null;
                System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(string.Format("SELECT * FROM Hishop_FreightTemplate_Templates where TemplateId={0}", TemplateId));
                using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
                {
                    if (dataReader.Read())
                    {
                        freightTemplate = DataMapper.PopulateTemplateMessage(dataReader);
                    }
                }
                result = freightTemplate;
            }
            return(result);
        }
Exemplo n.º 24
0
        /// <summary>
        /// 根据重量生成配送方式
        /// 默认配送方式
        /// </summary>
        /// <param name="orderProducts"></param>
        /// <param name="shippingAddressID"></param>
        /// <returns></returns>
        public StateCode GetDefaultFreight(List <JsonOrderProduct> orderProducts, long shippingAddressID, out string result)
        {
            result = "";
            using (ISession s = SessionFactory.Instance.CreateSession())
            {
                //用户收货地址
                ShoppingAddress shippingAddress = s.Get <ShoppingAddress>(shippingAddressID);
                if (shippingAddress == null)
                {
                    return(StateCode.State_252);
                }

                //配送方式实体类
                DeliveryMode mode = s.Get <DeliveryMode>("where is_default = @0", true);
                if (mode == null)
                {
                    return(StateCode.State_251);
                }

                decimal price = 0, first_price = 0, add_price = 0;
                long    weight = 0;

                foreach (JsonOrderProduct jop in orderProducts)
                {
                    Product pdt = s.Get <Product>(new string[] { "id", "is_postage" }, "where id = @0", jop.product_id);
                    //排除包邮商品
                    if (pdt != null && !pdt.is_postage)
                    {
                        ProductSku sku = s.Get <ProductSku>("where dbo.fn_check_specset(specset,@0) = 1 and product_id = @1", jop.specset ?? "", jop.product_id);
                        weight += sku.weight * jop.qty;
                    }
                }

                //获取当前配送方式运费模板
                FreightTemplate fTemplate = s.Get <FreightTemplate>(mode.freight_template_id);

                if (fTemplate != null && weight > 0)
                {
                    //默认首重价格
                    first_price = fTemplate.default_first_price;
                    //默认续重价格
                    add_price = fTemplate.default_add_price;

                    //特殊地区按特殊地区价格算
                    FreightRegion fRegion = s.Get <FreightRegion>("where region_name like '%'+@0+'%' and freight_template_id = @1 ", shippingAddress.province, fTemplate.id);
                    if (fRegion != null)
                    {
                        if (weight < fRegion.first_weight)
                        {
                            price = fRegion.first_price;
                        }
                        else
                        {
                            decimal t = (((weight - fRegion.first_weight) / fRegion.add_weight) + (((weight - fRegion.first_weight) % fRegion.add_weight) == 0 ? 0 : 1)) * fRegion.add_price;
                            price = weight <= fRegion.first_weight ? fRegion.first_price : t + fRegion.first_price;
                        }
                    }
                    else
                    {
                        if (weight < fTemplate.first_weight)
                        {
                            price = fTemplate.default_first_price;
                        }
                        else
                        {
                            decimal tmp = (((weight - fTemplate.first_weight) / fTemplate.add_weight) + (((weight - fTemplate.first_weight) % fTemplate.add_weight) == 0 ? 0 : 1)) * add_price;
                            price = weight <= fTemplate.first_weight ? first_price : Math.Ceiling((decimal)(weight - fTemplate.first_weight) / (decimal)fTemplate.add_weight) * add_price + first_price;
                        }
                    }
                }

                result = mode.id + "#" + price;

                return(StateCode.State_200);
            }
        }
Exemplo n.º 25
0
        public FreightTemplate GetFreightTemplate(int templateId, bool includeDetail)
        {
            FreightTemplate freightTemplate = new FreightTemplate();

            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(" SELECT * FROM Hishop_FreightTemplate_Templates Where TemplateId =@TemplateId");
            if (includeDetail)
            {
                System.Data.Common.DbCommand expr_24 = sqlStringCommand;
                expr_24.CommandText += " SELECT * FROM Hishop_FreightTemplate_FreeShipping g,vw_Hishop_FreightTemplate_FreeShippingRegions r Where g.FreeId=r.FreeId and TemplateId =@TemplateId";
                System.Data.Common.DbCommand expr_3B = sqlStringCommand;
                expr_3B.CommandText += " SELECT g.*,r.RegionIds FROM Hishop_FreightTemplate_SpecifyRegionGroups g  LEFT JOIN  vw_Hishop_FreightTemplate_SpecifyRegions r on (g.GroupId=r.GroupId) where  g.TemplateId =@TemplateId";
            }
            this.database.AddInParameter(sqlStringCommand, "TemplateId", System.Data.DbType.Int32, templateId);
            using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                if (dataReader.Read())
                {
                    if (dataReader["TemplateId"] != DBNull.Value)
                    {
                        freightTemplate.TemplateId = (int)dataReader["TemplateId"];
                    }
                    freightTemplate.Name     = (string)dataReader["Name"];
                    freightTemplate.FreeShip = (bool)dataReader["FreeShip"];
                    freightTemplate.HasFree  = (bool)dataReader["HasFree"];
                    freightTemplate.MUnit    = (int)((byte)dataReader["MUnit"]);
                }
                if (includeDetail)
                {
                    dataReader.NextResult();
                    freightTemplate.FreeShippings = new List <FreeShipping>();
                    while (dataReader.Read())
                    {
                        FreeShipping freeShipping = new FreeShipping();
                        freeShipping.TemplateId      = (int)dataReader["TemplateId"];
                        freeShipping.ModeId          = (int)((byte)dataReader["ModeId"]);
                        freeShipping.FreeId          = (int)((decimal)dataReader["FreeId"]);
                        freeShipping.ConditionNumber = (string)dataReader["ConditionNumber"];
                        freeShipping.ConditionType   = (int)((byte)dataReader["ConditionType"]);
                        freeShipping.RegionIds       = (string)dataReader["RegionIds"];
                        freightTemplate.FreeShippings.Add(freeShipping);
                    }
                    dataReader.NextResult();
                    freightTemplate.SpecifyRegionGroups = new List <SpecifyRegionGroup>();
                    while (dataReader.Read())
                    {
                        SpecifyRegionGroup specifyRegionGroup = new SpecifyRegionGroup();
                        specifyRegionGroup.TemplateId  = (int)dataReader["TemplateId"];
                        specifyRegionGroup.GroupId     = (int)dataReader["GroupId"];
                        specifyRegionGroup.FristNumber = (decimal)dataReader["FristNumber"];
                        specifyRegionGroup.FristPrice  = (decimal)dataReader["FristPrice"];
                        specifyRegionGroup.AddNumber   = (decimal)dataReader["AddNumber"];
                        specifyRegionGroup.AddPrice    = (decimal)dataReader["AddPrice"];
                        specifyRegionGroup.ModeId      = (int)((byte)dataReader["ModeId"]);
                        specifyRegionGroup.IsDefault   = (bool)dataReader["IsDefault"];
                        string regionIds = "";
                        if (DBNull.Value != dataReader["RegionIds"])
                        {
                            regionIds = (string)dataReader["RegionIds"];
                        }
                        specifyRegionGroup.RegionIds = regionIds;
                        freightTemplate.SpecifyRegionGroups.Add(specifyRegionGroup);
                    }
                }
            }
            return(freightTemplate);
        }
        private FreightTemplate ReadPostData(NameValueCollection Form)
        {
            string          str      = "";
            FreightTemplate template = new FreightTemplate();

            try
            {
                this.TaskMsg.msg    = "";
                template.Name       = Form["Name"];
                template.TemplateId = int.Parse(Form["TemplateId"]);
                if (!string.IsNullOrEmpty(template.Name))
                {
                    template.MUnit = int.Parse(Form["MUnit"]);
                    if (int.Parse(Form["FreeShip"]) == 0)
                    {
                        template.FreeShip = false;
                    }
                    else
                    {
                        template.FreeShip = true;
                    }
                    if (!template.FreeShip)
                    {
                        ValidationResults results;
                        if (int.Parse(Form["HasFree"]) == 0)
                        {
                            template.HasFree = false;
                        }
                        else
                        {
                            template.HasFree = true;
                            int num = 0;
                            template.FreeShippings = new List <FreeShipping>();
                            while (!string.IsNullOrEmpty(Form["freeShippings[" + num + "][ModelId]"]) && (this.TaskMsg.msg == ""))
                            {
                                FreeShipping target = new FreeShipping
                                {
                                    ModeId          = int.Parse(Form["freeShippings[" + num + "][ModelId]"]),
                                    ConditionType   = int.Parse(Form["freeShippings[" + num + "][ConditionType]"]),
                                    ConditionNumber = Form["freeShippings[" + num + "][ConditionNumber]"]
                                };
                                string str2 = Form["freeShippings[" + num + "][FreeRegions]"];
                                if (!string.IsNullOrEmpty(str2))
                                {
                                    string[] strArray = str2.Split(new char[] { ',' });
                                    if (strArray.Length > 0)
                                    {
                                        target.FreeShippingRegions = new List <FreeShippingRegion>();
                                        foreach (string str3 in strArray)
                                        {
                                            int num2 = 0;
                                            if (int.TryParse(str3, out num2) && (num2 != 0))
                                            {
                                                FreeShippingRegion item = new FreeShippingRegion
                                                {
                                                    RegionId = num2
                                                };
                                                target.FreeShippingRegions.Add(item);
                                            }
                                        }
                                    }
                                }
                                results = Hishop.Components.Validation.Validation.Validate <FreeShipping>(target, new string[] { "ValFree" });
                                str     = "";
                                if (!results.IsValid)
                                {
                                    foreach (ValidationResult result in (IEnumerable <ValidationResult>)results)
                                    {
                                        str = str + result.Message;
                                    }
                                    this.TaskMsg.msg = str;
                                }
                                template.FreeShippings.Add(target);
                                num++;
                            }
                        }
                        int num3 = 0;
                        if (!string.IsNullOrEmpty(Form["shipperSelect[" + num3 + "][ModelId]"]) && (this.TaskMsg.msg == ""))
                        {
                            template.SpecifyRegionGroups = new List <SpecifyRegionGroup>();
                            while (!string.IsNullOrEmpty(Form["shipperSelect[" + num3 + "][ModelId]"]) && (this.TaskMsg.msg == ""))
                            {
                                SpecifyRegionGroup group = new SpecifyRegionGroup
                                {
                                    ModeId      = int.Parse(Form["shipperSelect[" + num3 + "][ModelId]"]),
                                    FristPrice  = decimal.Parse(Form["shipperSelect[" + num3 + "][FristPrice]"]),
                                    AddNumber   = decimal.Parse(Form["shipperSelect[" + num3 + "][AddNumber]"]),
                                    FristNumber = decimal.Parse(Form["shipperSelect[" + num3 + "][FristNumber]"]),
                                    AddPrice    = decimal.Parse(Form["shipperSelect[" + num3 + "][AddPrice]"]),
                                    IsDefault   = false
                                };
                                if (int.Parse(Form["shipperSelect[" + num3 + "][IsDefault]"]) == 1)
                                {
                                    group.IsDefault = true;
                                }
                                string str4 = Form["shipperSelect[" + num3 + "][SpecifyRegions]"];
                                if (!string.IsNullOrEmpty(str4))
                                {
                                    string[] strArray2 = str4.Split(new char[] { ',' });
                                    if (strArray2.Length > 0)
                                    {
                                        group.SpecifyRegions = new List <SpecifyRegion>();
                                        foreach (string str5 in strArray2)
                                        {
                                            int num4 = 0;
                                            if (int.TryParse(str5, out num4) && (num4 != 0))
                                            {
                                                SpecifyRegion region2 = new SpecifyRegion
                                                {
                                                    RegionId = num4
                                                };
                                                group.SpecifyRegions.Add(region2);
                                            }
                                        }
                                    }
                                }
                                results = Hishop.Components.Validation.Validation.Validate <SpecifyRegionGroup>(group, new string[] { "ValRegionGroup" });
                                str     = "";
                                if (!results.IsValid)
                                {
                                    foreach (ValidationResult result2 in (IEnumerable <ValidationResult>)results)
                                    {
                                        str = str + result2.Message;
                                    }
                                    this.TaskMsg.msg = str;
                                }
                                template.SpecifyRegionGroups.Add(group);
                                num3++;
                            }
                        }
                        else
                        {
                            this.TaskMsg.msg = "没有运送方式选择";
                        }
                    }
                    else
                    {
                        template.HasFree = false;
                    }
                }
                else
                {
                    this.TaskMsg.msg = "模板名称不能为空";
                }
                if (this.TaskMsg.msg == "")
                {
                    this.TaskMsg.state = "success";
                    return(template);
                }
                this.TaskMsg.state = "faild";
            }
            catch (Exception exception)
            {
                this.TaskMsg.msg = "参数异常:" + exception.Message.ToString();
            }
            return(template);
        }
Exemplo n.º 27
0
        /// <summary>
        /// 保存运费模板
        /// </summary>
        /// <param name="user"></param>
        /// <param name="entity"></param>
        /// <param name="FTRegions"></param>
        /// <param name="FRegions"></param>
        /// <returns></returns>
        public JsonResult SaveFreightTemplate(SysUser user, FreightTemplate entity, List <FreightRegion> FRegions)
        {
            StateCode code = ServiceIoc.Get <FreightTemplateService>().Save(user.id, entity, FRegions);

            return(Json(GetResult(code)));
        }
Exemplo n.º 28
0
        /// <summary>
        /// 添加修改运费模板
        /// </summary>
        /// <param name="templateInfo"></param>
        public static void AddOrUpdateFreightTemplate(FreightTemplate templateInfo)
        {
            var freightTemplate = AutoMapper.Mapper.Map <Himall.Model.FreightTemplateInfo>(templateInfo);

            _iFreightTemplateService.UpdateFreightTemplate(freightTemplate);
        }
Exemplo n.º 29
0
        /// <summary>
        /// 根据重量生成配送方式(集合)
        /// </summary>
        /// <param name="orderProducts"></param>
        /// <param name="ShippingAddressID"></param>
        /// <returns></returns>
        public Dictionary <long, string> GenerateDeliveryModes(List <JsonOrderProduct> orderProducts, long ShippingAddressID)
        {
            using (ISession s = SessionFactory.Instance.CreateSession())
            {
                //用户收货地址
                ShoppingAddress shippingAddress = s.Get <ShoppingAddress>(ShippingAddressID);
                if (shippingAddress == null)
                {
                    throw new Exception("不存在该用户收货地址");
                }

                int weight = 0;

                foreach (JsonOrderProduct jop in orderProducts)
                {
                    ProductSku sku = s.Get <ProductSku>("where dbo.fn_check_specset(specset,@0) = 1 and product_id = @1", (jop.specset ?? ""), jop.product_id);
                    weight += sku.weight * jop.qty;
                }

                //配送方式实体类
                List <DeliveryMode> modes = s.List <DeliveryMode>("", "");

                //配送方式以及运费集合
                Dictionary <long, string> deliveryMode = new Dictionary <long, string>();
                decimal price = 0, first_price = 0, add_price = 0;

                foreach (DeliveryMode m in modes)
                {
                    //获取当前配送方式运费模板
                    FreightTemplate fTemplate = s.Get <FreightTemplate>(m.freight_template_id);

                    if (fTemplate != null)
                    {
                        //默认首重价格
                        first_price = fTemplate.default_first_price;
                        //默认续重价格
                        add_price = fTemplate.default_add_price;

                        //特殊地区按特殊地区价格算
                        FreightRegion fRegion = s.Get <FreightRegion>("where region_name like '%'+@0+'%' and freight_template_id = @1 ", shippingAddress.province, fTemplate.id);
                        if (fRegion != null)
                        {
                            if (weight < fRegion.first_weight)
                            {
                                price = fRegion.first_price;
                            }
                            else
                            {
                                decimal t = (((weight - fRegion.first_weight) / fRegion.add_weight) + ((weight - fRegion.first_weight) % fRegion.add_weight) == 0 ? 0 : 1) * fRegion.add_price;
                                price = weight <= fRegion.first_weight ? fRegion.first_price : t + fRegion.first_price;
                            }
                        }
                        else
                        {
                            if (weight < fTemplate.first_weight)
                            {
                                price = fTemplate.default_first_price;
                            }
                            else
                            {
                                decimal tmp = (((weight - fTemplate.first_weight) / fTemplate.add_weight) + ((weight - fTemplate.first_weight) % fTemplate.add_weight) == 0 ? 0 : 1) * add_price;
                                price = weight <= fTemplate.first_weight ? first_price : Math.Ceiling((decimal)(weight - fTemplate.first_weight) / (decimal)fTemplate.add_weight) * add_price + first_price;
                            }
                        }

                        deliveryMode.Add(m.id, string.Format("{0}: {1}", m.name, price.ToString("f2")));
                    }
                }
                return(deliveryMode);
            }
        }
Exemplo n.º 30
0
        /// <summary>
        /// 根据重量生成配送方式(最小运费)
        /// </summary>
        /// <param name="orderProducts"></param>
        /// <param name="shippingAddressID"></param>
        /// <returns></returns>
        public string GetDeliveryModeFreight(List <JsonOrderProduct> orderProducts, long shippingAddressID)
        {
            using (ISession s = SessionFactory.Instance.CreateSession())
            {
                //用户收货地址
                ShoppingAddress shippingAddress = s.Get <ShoppingAddress>(shippingAddressID);
                if (shippingAddress == null)
                {
                    throw new Exception("不存在该用户收货地址");
                }

                decimal price = 0, first_price = 0, add_price = 0;
                decimal pricetmp = 0;
                long    defaultModeID = 0, modeID = 0, weight = 0;

                foreach (JsonOrderProduct jop in orderProducts)
                {
                    Product pdt = s.Get <Product>(jop.product_id);
                    //排除包邮商品
                    if (pdt != null && !pdt.is_postage)
                    {
                        ProductSku sku = s.Get <ProductSku>("where dbo.fn_check_specset(specset,@0) = 1 and product_id = @1", jop.specset ?? "", jop.product_id);
                        weight += sku.weight * jop.qty;
                    }
                }

                //配送方式实体类
                List <DeliveryMode> modes = s.List <DeliveryMode>("", "");

                foreach (DeliveryMode m in modes)
                {
                    //记录当前配送方式ID
                    modeID = m.id;

                    //获取当前配送方式运费模板
                    FreightTemplate fTemplate = s.Get <FreightTemplate>(m.freight_template_id);

                    if (fTemplate != null)
                    {
                        //默认首重价格
                        first_price = fTemplate.default_first_price;
                        //默认续重价格
                        add_price = fTemplate.default_add_price;

                        //获取特殊区域
                        FreightRegion fRegion = s.Get <FreightRegion>("where region_name like '%'+@0+'%' and freight_template_id = @1 ", shippingAddress.province, fTemplate.id);
                        if (fRegion != null)
                        {
                            if (weight < fRegion.first_weight)
                            {
                                pricetmp = fRegion.first_price;
                            }
                            else
                            {
                                decimal t = (((weight - fRegion.first_weight) / fRegion.add_weight) + ((weight - fRegion.first_weight) % fRegion.add_weight) == 0 ? 0 : 1) * fRegion.add_price;
                                pricetmp = weight <= fRegion.first_weight ? fRegion.first_price : t + fRegion.first_price;
                            }
                        }

                        if (weight < fTemplate.first_weight)
                        {
                            price = fTemplate.default_first_price;
                        }
                        else
                        {
                            decimal tmp = (((weight - fTemplate.first_weight) / fTemplate.add_weight) + ((weight - fTemplate.first_weight) % fTemplate.add_weight) == 0 ? 0 : 1) * add_price;
                            price = weight <= fTemplate.first_weight ? first_price : Math.Ceiling((decimal)(weight - fTemplate.first_weight) / (decimal)fTemplate.add_weight) * add_price + first_price;
                        }

                        //最小价格
                        if (price < pricetmp)
                        {
                            pricetmp      = price;
                            defaultModeID = m.id;
                        }
                    }
                }

                defaultModeID = defaultModeID == 0 ? modeID : defaultModeID;
                price         = price < pricetmp ? price : pricetmp == 0 ? price : pricetmp;

                return(defaultModeID + "#" + (int)price);
            }
        }