예제 #1
0
        public object GetItem(IDataReader dr, ref int index)
        {
            ExpressInfo item = new ExpressInfo();

            if (!dr.IsDBNull(++index))
            {
                item.Id = (uint?)dr.GetInt32(index);
            }
            if (!dr.IsDBNull(++index))
            {
                item.Area_id = (uint?)dr.GetInt32(index);
            }
            if (!dr.IsDBNull(++index))
            {
                item.Address = dr.GetString(index);
            }
            if (!dr.IsDBNull(++index))
            {
                item.Create_time = (DateTime?)dr.GetDateTime(index);
            }
            if (!dr.IsDBNull(++index))
            {
                item.Service_features = dr.GetString(index);
            }
            if (!dr.IsDBNull(++index))
            {
                item.Telphone = dr.GetString(index);
            }
            if (!dr.IsDBNull(++index))
            {
                item.Title = dr.GetString(index);
            }
            return(item);
        }
예제 #2
0
        public Base <object> Modify(ExpressInfo model)
        {
            //取token值
            TokenReponse repository = new TokenReponse();
            Token        token      = repository.First(model.Token);
            Meta         meta       = new Meta();
            bool         editNote   = true;

            //校验数据
            if (token == null)
            {
                meta.ErrorCode = ErrorCode.LoginError.GetHashCode().ToString();
                meta.ErrorMsg  = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.LoginError);
            }
            else
            {
                model.UserID = token.UserId.ToString();
                editNote     = ExpressService.Modify(model, ref meta);
            }
            Base <object> result = new Base <object>
            {
                Meta = meta,
                Body = editNote
            };

            return(result);
        }
예제 #3
0
        public MODEL.ExpressInfo GetExpress(string username)
        {
            IQuery      query   = session.CreateQuery("from ExpressInfo e where e.UserName='******'");
            ExpressInfo express = query.FutureValue <ExpressInfo>().Value;

            return(express);
        }
예제 #4
0
파일: Get.ashx.cs 프로젝트: uvbs/mmp
        public void ProcessRequest(HttpContext context)
        {
            string expressId = context.Request["express_company_id"];

            if (string.IsNullOrEmpty(expressId))
            {
                resp.errcode = 1;
                resp.errmsg  = "express_company_id 为必填项,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            ExpressInfo expressInfo = bll.Get <ExpressInfo>(string.Format(" WebSiteOwner='{0}' AND AutoID={1} ", bll.WebsiteOwner, expressId));

            if (expressInfo == null)
            {
                resp.errcode = 1;
                resp.errmsg  = "没有找到快递公司";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            RequestModel requestModel = new RequestModel();

            requestModel.express_company_name = expressInfo.ExpressCompanyName;
            requestModel.express_company_code = expressInfo.ExpressCompanyCode;
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(requestModel));
            return;
        }
예제 #5
0
        //客户做任务
        public bool Edit(ExpressInfo model, ref Meta meta)
        {
            string msg     = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.Apply);
            string msgCode = ErrorCode.Apply.GetHashCode().ToString();

            model.TypeID = 0;
            Try(context =>
            {
                var editModel = context.Express.FirstOrDefault(c => c.ID == model.ID);
                if (editModel != null)
                {
                    if (editModel.TypeID == 0)
                    {
                        editModel.HamalUserID = model.HamalUserID;
                        editModel.ReleaseTime = DateTime.Now;
                        editModel.TypeID      = 1;
                        context.SaveChanges();
                    }
                    else
                    {
                        msg     = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.ApplyError);
                        msgCode = ErrorCode.ApplyError.GetHashCode().ToString();
                    }
                }
            });
            meta.ErrorCode = msgCode;
            meta.ErrorMsg  = msg;
            return(true);
        }
예제 #6
0
 /// <summary>
 /// 发货
 /// </summary>
 /// <param name="expressInfo"></param>
 public void Deliver(ExpressInfo expressInfo)
 {
     if (_status != StoreOrderStatus.Placed && _status != StoreOrderStatus.Expressing)
     {
         throw new Exception("不正确的包裹状态");
     }
     ApplyEvent(new StoreOrderExpressedEvent(expressInfo));
 }
예제 #7
0
 /// <summary>
 /// 退货发货
 /// </summary>
 /// <param name="expressInfo"></param>
 public void ReturnDeliver(ExpressInfo expressInfo)
 {
     if (_status != StoreOrderStatus.AgreeReturn)
     {
         throw new Exception("不正确的包裹状态");
     }
     ApplyEvent(new StoreOrderReturnExpressedEvent(expressInfo));
 }
예제 #8
0
 public Order CompleteShip(Order order, ExpressInfo expreeInfo = null)
 {
     order.ShipStatus  = ShipStatus.Shipping;
     order.OrderStatus = OrderStatus.Shiped;
     CurrentUnitOfWork.SaveChanges();
     EventBus.Trigger(new OrderShipedEventData(order, expreeInfo));
     return(order);
 }
예제 #9
0
 public void Ship(Order order, ExpressInfo expreeInfo = null)
 {
     foreach (OrderItem orderItem in order.OrderItems)
     {
         ShipOrderItem(orderItem);
     }
     OrderManager.CheckShipProgressAndCompleteShip(order, expreeInfo);
 }
예제 #10
0
        /// <summary>
        /// 放到队列中的数据是要从索引库删除的数据
        /// </summary>
        public void DeleteQueue(string id)
        {
            ExpressInfo model = new ExpressInfo();

            model.ID      = id;
            model.JobType = EnumType.Delete;
            queue.Enqueue(model);
        }
예제 #11
0
        public ExpressInfo Insert(ExpressInfo item)
        {
            uint loc1;

            if (uint.TryParse(string.Concat(SqlHelper.ExecuteScalar(TSQL.Insert, GetParameters(item))), out loc1))
            {
                item.Id = loc1;
            }
            return(item);
        }
예제 #12
0
 public int Update(ExpressInfo item)
 {
     return(new SqlUpdateBuild(null, item.Id.Value)
            .SetArea_id(item.Area_id)
            .SetAddress(item.Address)
            .SetCreate_time(item.Create_time)
            .SetService_features(item.Service_features)
            .SetTelphone(item.Telphone)
            .SetTitle(item.Title).ExecuteNonQuery());
 }
예제 #13
0
        public LogisticsInfoGetOutput GetExpresLogisticss(ExpressInfo expressInfo)
        {
            LogisticsInfoGetOutput logisticsInfoGetOutput = new LogisticsInfoGetOutput()
            {
                Logistics      = LogisticsManager.GetExpressLogisticss(expressInfo),
                ExpressCompany = ExpressCompanyRepository.Get(expressInfo.ExpressCompanyId).MapTo <ExpressCompanyDto>()
            };

            return(logisticsInfoGetOutput);
        }
예제 #14
0
파일: Add.ashx.cs 프로젝트: uvbs/mmp
        public void ProcessRequest(HttpContext context)
        {
            resp.errcode = 1;
            resp.errmsg  = "暂不支持添加";
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            return;

            string       data = context.Request["data"];
            RequestModel requestModel;

            try
            {
                requestModel = ZentCloud.Common.JSONHelper.JsonToModel <RequestModel>(context.Request["data"]);
            }
            catch (Exception)
            {
                resp.errcode = -1;
                resp.errmsg  = "json格式错误,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }

            if (string.IsNullOrEmpty(requestModel.express_company_name))
            {
                resp.errcode = 1;
                resp.errmsg  = "express_company_name 为必填项,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            if (string.IsNullOrEmpty(requestModel.express_company_code))
            {
                resp.errcode = 1;
                resp.errmsg  = "express_company_code 为必填项,请检查";
                context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
                return;
            }
            ExpressInfo express = new ExpressInfo();

            express.ExpressCompanyName = requestModel.express_company_name;
            express.ExpressCompanyCode = requestModel.express_company_code;
            express.WebsiteOwner       = bllUser.WebsiteOwner;
            if (bllUser.Add(express))
            {
                resp.errmsg    = "ok";
                resp.errcode   = 0;
                resp.isSuccess = true;
            }
            else
            {
                resp.errmsg  = "添加出错";
                resp.errcode = -1;
            }
            context.Response.Write(ZentCloud.Common.JSONHelper.ObjectToJson(resp));
            return;
        }
예제 #15
0
        public ActionResult Edit([FromQuery] uint Id)
        {
            ExpressInfo item = Express.GetItem(Id);

            if (item == null)
            {
                return(APIReturn.记录不存在_或者没有权限);
            }
            ViewBag.item = item;
            return(View());
        }
예제 #16
0
		public static ExpressInfo GetItem(uint Id) {
			if (itemCacheTimeout <= 0) return Select.WhereId(Id).ToOne();
			string key = string.Concat("pifa_BLL_Express_", Id);
			string value = RedisHelper.Get(key);
			if (!string.IsNullOrEmpty(value))
				try { return ExpressInfo.Parse(value); } catch { }
			ExpressInfo item = Select.WhereId(Id).ToOne();
			if (item == null) return null;
			RedisHelper.Set(key, item.Stringify(), itemCacheTimeout);
			return item;
		}
예제 #17
0
        public string GetExpressLogisticss(ExpressInfo expressInfo)
        {
            string         appID          = "106075";
            string         appSecret      = "adbbc25423378c43e175fe44247a1077";
            ExpressCompany expressCompany = ExpressCompanyRepository.Get(expressInfo.ExpressCompanyId);

            string           url = string.Format(urlFomat, appID, appSecret, expressCompany.Code, expressInfo.TrackingNumber);
            WebRequestHelper webRequestHelper = new WebRequestHelper();
            string           result           = webRequestHelper.HttpGet(url);

            return(result);
        }
예제 #18
0
 protected static MySqlParameter[] GetParameters(ExpressInfo item)
 {
     return(new MySqlParameter[] {
         GetParameter("?id", MySqlDbType.UInt32, 10, item.Id),
         GetParameter("?area_id", MySqlDbType.UInt32, 10, item.Area_id),
         GetParameter("?address", MySqlDbType.VarChar, 255, item.Address),
         GetParameter("?create_time", MySqlDbType.DateTime, -1, item.Create_time),
         GetParameter("?service_features", MySqlDbType.VarChar, 255, item.Service_features),
         GetParameter("?telphone", MySqlDbType.VarChar, 255, item.Telphone),
         GetParameter("?title", MySqlDbType.VarChar, 255, item.Title)
     });
 }
예제 #19
0
        public Base <object> Del(ExpressInfo model)
        {
            Meta          meta    = new Meta();
            bool          delNote = ExpressService.Delete(model, ref meta);
            Base <object> result  = new Base <object>
            {
                Meta = meta,
                Body = delNote
            };

            return(result);
        }
예제 #20
0
        public APIReturn _Add([FromForm] uint?Area_id, [FromForm] string Address, [FromForm] string Service_features, [FromForm] string Telphone, [FromForm] string Title)
        {
            ExpressInfo item = new ExpressInfo();

            item.Area_id          = Area_id;
            item.Address          = Address;
            item.Create_time      = DateTime.Now;
            item.Service_features = Service_features;
            item.Telphone         = Telphone;
            item.Title            = Title;
            item = Express.Insert(item);
            return(APIReturn.成功.SetData("item", item.ToBson()));
        }
예제 #21
0
 /// <summary>
 /// 将队列中的取出来,写到索引库中。
 /// </summary>
 public void CreateIndexContent()
 {
     while (queue.Count > 0)
     {
         Meta        meta  = new Meta();
         ExpressInfo model = queue.Dequeue();//获取队列中的数据(出队)
         Edit(model, ref meta);
         if (model.JobType == EnumType.Delete)
         {
             continue;
         }
     }
 }
예제 #22
0
        public Order Ship(Order order, bool autoShip = false, ExpressInfo expressInfo = null)
        {
            IShipProvider[] ShipProviders = _iocResolver.ResolveAll <IShipProvider>();

            foreach (IShipProvider shipProvider in ShipProviders)
            {
                if (autoShip && shipProvider is PhysicalShipProvider)
                {
                    continue;
                }
                shipProvider.Ship(order, expressInfo);
            }
            return(order);
        }
예제 #23
0
        public Base <object> Edit(ExpressInfo model)
        {
            Express entity = new Express();

            //取token值
            TokenReponse repository = new TokenReponse();
            Token        token      = repository.First(model.Token);
            Meta         meta       = new Meta();
            bool         addNote    = true;

            //校验数据
            if (token == null)
            {
                meta.ErrorCode = ErrorCode.LoginError.GetHashCode().ToString();
                meta.ErrorMsg  = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.LoginError);
            }
            else
            {
                model.HamalUserID = token.UserId;
                //入队
                this.AddQueue(model);
                while (true)
                {
                    if (queue.Count > 0)
                    {
                        while (queue.Count > 0)
                        {
                            ExpressInfo models = queue.Dequeue();//获取队列中的数据(出队)
                            addNote = ExpressService.Edit(models, ref meta);
                            if (models.JobType == EnumType.Delete)
                            {
                                continue;
                            }
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            Base <object> result = new Base <object>
            {
                Meta = meta,
                Body = addNote
            };

            return(result);
        }
예제 #24
0
 public bool CheckShipProgressAndCompleteShip(Order order, ExpressInfo expreeInfo = null)
 {
     if (order.OrderItems.Count > 0)
     {
         foreach (OrderItem orderItem in order.OrderItems)
         {
             if (orderItem.ShipStatus == ShipStatus.UnShip)
             {
                 return(false);
             }
         }
     }
     CompleteShip(order, expreeInfo);
     return(true);
 }
예제 #25
0
        //编辑
        public bool Modify(ExpressInfo model, ref Meta meta)
        {
            string msg     = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.Delivery);
            string msgCode = ErrorCode.Delivery.GetHashCode().ToString();

            Try(context =>
            {
                var editModel = context.Express.FirstOrDefault(c => c.ID == model.ID);
                if (editModel != null)
                {
                    context.SaveChanges();
                    msg     = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.DeliveryError);
                    msgCode = ErrorCode.DeliveryError.GetHashCode().ToString();
                }
            });
            meta.ErrorCode = msgCode;
            meta.ErrorMsg  = msg;
            return(true);
        }
예제 #26
0
        public APIReturn _Edit([FromQuery] uint Id, [FromForm] uint?Area_id, [FromForm] string Address, [FromForm] string Service_features, [FromForm] string Telphone, [FromForm] string Title)
        {
            ExpressInfo item = Express.GetItem(Id);

            if (item == null)
            {
                return(APIReturn.记录不存在_或者没有权限);
            }
            item.Area_id          = Area_id;
            item.Address          = Address;
            item.Create_time      = DateTime.Now;
            item.Service_features = Service_features;
            item.Telphone         = Telphone;
            item.Title            = Title;
            int affrows = Express.Update(item);

            if (affrows > 0)
            {
                return(APIReturn.成功.SetMessage($"更新成功,影响行数:{affrows}"));
            }
            return(APIReturn.失败);
        }
예제 #27
0
파일: LocalData.cs 프로젝트: sunniecc/ebox
        public ExpressInfo changeExpressToOverdue(ExpressInfo exp, int count)
        {
            exp.TFBUZSTATUS = 7;
            saveOverdueExpress("update EBOX_EXPRESINFO set TF_BUZSTATUS =7 where EI_ORDERNO =" + exp.EIORDERNO);
            DateTime dt               = Convert.ToDateTime(exp.ELOVERTIME);
            DateTime now              = DateTime.Now;
            TimeSpan ts               = now - dt;
            int      overDay          = Convert.ToInt32(Math.Ceiling(ts.TotalDays));
            int      overdueUnitPrice = Setting.Instance.overdueUnitPrice;
            int      totalPrice       = overDay * overdueUnitPrice;
            var      ee               = getExceptionExpress(exp.EIORDERNO, exp.EIID);

            if (ee == null)
            {
                saveOverdueExpress("insert into EBOX_EXPRESSEXCEPTION (EO_ID,EO_EIID,EO_LCID,EO_BARCODE,EO_ORDERNO,EO_EXPTYPE,EO_VALIDATECODE,EO_OVERTIMEDAY,EO_OVERTIMEPRICE,EO_OVERTIMEFEE,TF_BUZSTATUS) values" + "( " + getId() + count + "," + exp.EIID + "," + exp.EILCID + ",\"" + exp.EIBARCODE + "\"," + exp.EIORDERNO + "," + 2 + "," + exp.EIVALIDATECODE + "," + overDay + "," + overdueUnitPrice + "," + totalPrice + "," + 2 + ")");
            }
            else
            {
                saveOverdueExpress("update EBOX_EXPRESSEXCEPTION set EO_OVERTIMEDAY = " + overDay + " , EO_OVERTIMECNT = " + overDay + " , EO_OVERTIMEPRICE = " + overdueUnitPrice + " , EO_OVERTIMEFEE = " + totalPrice + " where EO_ORDERNO = " + exp.EIORDERNO);
            }
            return(exp);
        }
예제 #28
0
        public async Task <Order> ShipAsync(Order order, bool autoShip = false, ExpressInfo expressInfo = null)
        {
            if (!order.IsNeedShip)
            {
                throw new InfrastructureException(L("NoNeedShip"));
            }

            if (order.ShipStatus != ShipStatus.UnShip)
            {
                throw new InfrastructureException(L("OrderHasShiped"));
            }
            ShipService.Ship(order, autoShip, expressInfo);

            if (expressInfo != null)
            {
                order.ExpressCompanyId = expressInfo.ExpressCompanyId;
                order.TrackingNumber   = expressInfo.TrackingNumber;
            }
            OrderRepository.Update(order as TOrder);
            CurrentUnitOfWork.SaveChanges();
            return(order);
        }
예제 #29
0
        public Base <object> Add(ExpressInfo model)
        {
            Express entity = new Express();

            //取token值
            TokenReponse repository = new TokenReponse();
            Token        token      = repository.First(model.Token);
            Meta         meta       = new Meta();
            bool         addNote    = true;

            //校验数据

            if (token == null)
            {
                meta.ErrorCode = ErrorCode.LoginError.GetHashCode().ToString();
                meta.ErrorMsg  = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.LoginError);
            }
            else
            {
                entity.UserID      = token.UserId.ToString();
                entity.ExpressName = model.ExpressName;
                entity.ExpressPwd  = model.ExpressPwd;
                entity.Phone       = model.Phone;
                entity.Destination = model.Destination;
                entity.ExpectTime  = model.ExpectTime;
                entity.Money       = Convert.ToDecimal(model.vState);
                entity.Zy          = model.Zy;
                entity.Payway      = Convert.ToInt32(model.Rel);
                addNote            = ExpressService.Add(entity, ref meta);
            }
            Base <object> result = new Base <object>
            {
                Meta = meta,
                Body = addNote
            };

            return(result);
        }
예제 #30
0
        //后台删除
        public bool Delete(ExpressInfo model, ref Meta meta)
        {
            string msg     = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.Success);
            string msgCode = ErrorCode.Success.GetHashCode().ToString();

            Try(context =>
            {
                //查询用户名是否存在
                var Info = context.Express.Where(c => c.ID == model.ID).FirstOrDefault();
                if (Info != null)
                {
                    msgCode = ErrorCode.Error.GetHashCode().ToString();
                    msg     = EnumHelper.GetDescriptionFromEnumValue(ErrorCode.Error);
                }
                else
                {
                    Info.TypeID = 3;
                    context.SaveChanges();
                }
            });
            meta.ErrorCode = msgCode;
            meta.ErrorMsg  = msg;
            return(true);
        }
예제 #31
0
 public void CreateExpress(ExpressInfo express)
 {
     session.Save(express);
     session.Flush();
 }