public static void PopulateNonNull(this ResultDTO identify, ResultDTO id2)
 {
     if (id2.model != null) identify.model = id2.model;
     if (id2.name != null) identify.name = id2.name;
     //if (id2.countcycles != null) identify.countcycles = id2.countcycles;
     if (id2.elapsedtime != null) identify.elapsedtime = id2.elapsedtime;
     if (id2.Variablenames != null) identify.Variablenames = id2.Variablenames;
     if (id2.Variablevalues != null) identify.Variablevalues = id2.Variablevalues;
     if (id2.Experimentalvalues != null) identify.Experimentalvalues = id2.Experimentalvalues;
     if (id2.Parameternames != null) identify.Parameternames = id2.Parameternames;
     if (id2.Parametervalues != null) identify.Parametervalues = id2.Parametervalues;
     if (id2.ParameterAssignment != null) identify.ParameterAssignment = id2.ParameterAssignment;
 }
Exemple #2
0
        private ResultDTO ValidateRegisterData(RegisterDTO obj)
        {
            ResultDTO resul = new ResultDTO();

            resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0000);

            if (string.IsNullOrEmpty(obj.UserName))
            {
                resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0001);
                resul.SetContentMsg();
            }

            else if (string.IsNullOrEmpty(obj.FullName))
            {
                resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0002);
                resul.SetContentMsg();
            }

            else if (string.IsNullOrEmpty(obj.Email))
            {
                resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0003);
                resul.SetContentMsg();
            }

            /*[Start] TODO xu ly trong store
             * else if(Common.IsValidEmail(obj.Email))
             * {
             *  resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0004);
             *  resul.StatusMsg = RetCodeMsg.ECS004;
             * }
             * else if (Common.IsExitsEmail(obj.Email))
             * {
             *  resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0005);
             *  resul.StatusMsg = RetCodeMsg.ECS005;
             * }
             *********[End] TODO*/
            else if (string.IsNullOrEmpty(obj.RefCode))
            {
                resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0006);
                resul.SetContentMsg();
            }

            /*xu ly trong store
             * else if (IsExitsEmail(obj.RefCode))
             * {
             *  resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0007);
             *  resul.StatusMsg = RetCodeMsg.ECS007;
             * }
             */
            else if (string.IsNullOrEmpty(obj.Phone))
            {
                resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0008);
                resul.SetContentMsg();
            }

            /*xu ly trong store
             * else if (IsExitsPhone(obj.Phone))
             * {
             *  resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0009);
             *  resul.StatusMsg = RetCodeMsg.ECS009;
             * }
             */
            /*xu ly them truong hop ko hop le*/
            else if (string.IsNullOrEmpty(obj.Password))
            {
                resul.StatusCode = Common.ConvertErrorCodeToInt(RetCode.ECS0010);
                resul.SetContentMsg();
            }

            return(resul);
        }
Exemple #3
0
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.ExpressCodeDTO> SaveExt(Jinher.AMP.BTP.Deploy.ExpressCodeDTO dto)
        {
            ResultDTO <ExpressCodeDTO> result = new ResultDTO <ExpressCodeDTO>()
            {
                isSuccess = true
            };

            if (dto == null || string.IsNullOrEmpty(dto.ExpCompanyName) || string.IsNullOrEmpty(dto.ExpCode))
            {
                result.isSuccess = false;
                result.Message   = "参数错误";
                return(result);
            }

            try
            {
                dto.ExpCompanyName = dto.ExpCompanyName.Replace(" ", "");

                var model = ExpressCode.ObjectSet().Where(d => (d.ExpCompanyName == dto.ExpCompanyName || d.ExpCode == dto.ExpCode) && d.Id != dto.Id).FirstOrDefault();
                if (model != null)
                {
                    result.isSuccess = false;
                    result.Message   = "重复名称或者编码";
                }
                else
                {
                    if (dto.Id != Guid.Empty)
                    {
                        model = ExpressCode.ObjectSet().Where(d => d.Id == dto.Id).FirstOrDefault();
                        if (model != null)
                        {
                            model.ExpCompanyName = dto.ExpCompanyName;
                            model.ExpCode        = dto.ExpCode;
                            model.EntityState    = EntityState.Modified;
                            ContextFactory.CurrentThreadContext.SaveChanges();
                        }
                        else
                        {
                            result.isSuccess = false;
                            result.Message   = "数据不存在";
                        }
                    }
                    else
                    {
                        dto.Id = Guid.NewGuid();
                        model.ExpCompanyName = dto.ExpCompanyName;
                        model.ExpCode        = dto.ExpCode;
                        model.EntityState    = EntityState.Added;
                        ContextFactory.CurrentThreadContext.SaveObject(model);
                        ContextFactory.CurrentThreadContext.SaveChanges();
                    }
                }

                result.Data = dto;
            }
            catch (Exception ex)
            {
                result.isSuccess = false;
                result.Message   = "保存异常";
                LogHelper.Error("保存快递异常", ex);
            }

            return(result);
        }
        /// <summary>
        /// 获取特定app在电商中的扩展信息。
        /// </summary>
        /// <param name="appId"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.AppExtensionDTO> GetAppExtensionByAppIdExt(System.Guid appId)
        {
            Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.AppExtensionDTO> resultAppExt = new ResultDTO <Jinher.AMP.BTP.Deploy.AppExtensionDTO>();

            try
            {
                if (appId == Guid.Empty)
                {
                    resultAppExt.Message    = "参数错误,appId不能为空!";
                    resultAppExt.ResultCode = 1;
                }
                var aeList = (from ae in AppExtension.ObjectSet()
                              where ae.Id == appId
                              select ae).ToList();
                if (aeList.Any())
                {
                    var aeFirst = aeList.FirstOrDefault();
                    Jinher.AMP.BTP.Deploy.AppExtensionDTO aeDto = aeFirst.ToEntityData();
                    resultAppExt.Data = aeDto;
                }
            }
            catch (Exception ex)
            {
                string str = string.Format("AppExtensionBP.GetAppExtensionByAppIdExt中发生异常,参数AppId:{0},异常信息:{1}", appId, ex);
                LogHelper.Error(str);

                resultAppExt.Message    = "服务异常!";
                resultAppExt.ResultCode = 2;
            }
            return(resultAppExt);
        }
Exemple #5
0
        private void AddExpressNew(List <ExpressTrace> ExpressList, ComOrderExpressNew ExpressNews, ResultDTO <ComOrderExpressNew> result)
        {
            var NewExpress = ExpressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault();

            if (NewExpress.AcceptStation.Contains("正在配送") || NewExpress.AcceptStation.Contains("自提"))
            {
                ExpressNews.shipmentsTime = NewExpress.AcceptTime;
                ExpressNews.state         = "派件中";
                ExpressNews.Remarked      = "您的订单已开始派送,请保持电话畅通,确认商品外包装完好后签收~";
                result.ResultCode         = 0;
                result.isSuccess          = true;
            }
            else if (NewExpress.AcceptStation.Contains("已签收"))
            {
                result.ResultCode = 1;
                result.isSuccess  = false;
            }
            else if (NewExpress.AcceptStation.Contains("出库") || NewExpress != null)
            {
                ExpressNews.shipmentsTime = ExpressList.Min(p => p.AcceptTime);
                ExpressNews.state         = "已发货";
                ExpressNews.Remarked      = "您的订单已发货,由京东快递配送,请注意物流信息~";
                result.ResultCode         = 0;
                result.isSuccess          = true;
            }
        }
Exemple #6
0
        /// <summary>
        /// 按快递单号获取快递路由信息。
        /// </summary>
        /// <returns></returns>
        public ResultDTO <OrderExpressRouteExtendDTO> GetExpressRouteByExpNoExt(Jinher.AMP.BTP.Deploy.OrderExpressRouteDTO express)
        {
            ResultDTO <OrderExpressRouteExtendDTO> result = new ResultDTO <OrderExpressRouteExtendDTO>();

            try
            {
                if (express == null)
                {
                    result.ResultCode = 1;
                    result.Message    = "参数错误,参数不能为空!";
                    return(result);
                }
                else if (string.IsNullOrWhiteSpace(express.ShipExpCo))
                {
                    result.ResultCode = 2;
                    result.Message    = "参数错误,物流公司名称不能为空!";
                    return(result);
                }
                else if (string.IsNullOrWhiteSpace(express.ExpOrderNo))
                {
                    result.ResultCode = 3;
                    result.Message    = "参数错误,运单号不能为空!";
                    return(result);
                }

                var cname  = express.ShipExpCo.Replace("快递", "").Replace("速递", "").Replace("物流", "").Replace("配送", "").Replace("货运", "").Replace("快运", "").Replace("速运", "").ToUpper();
                var ocInfo = ExpressCode.AllExpCodes.Where(ec => ec.ExpCompanyName.ToUpper().Contains(cname));
                if (!ocInfo.Any())
                {
                    result.ResultCode = 4;
                    result.Message    = "暂不支持该物流公司的快递单号查询!";
                    return(result);
                }
                express.ShipperCode = ocInfo.First().ExpCode;

                var oerQuery = (from oer in OrderExpressRoute.ObjectSet()
                                where oer.ShipperCode == express.ShipperCode && oer.ExpOrderNo == express.ExpOrderNo
                                select oer).FirstOrDefault();
                if (oerQuery == null)
                {
                    return(result);
                }
                OrderExpressRouteExtendDTO oerDto = new OrderExpressRouteExtendDTO();
                oerDto.FillWith(oerQuery);
                var etQuery = (from et in ExpressTrace.ObjectSet()
                               where et.ExpRouteId == oerQuery.Id
                               orderby et.AcceptTime descending
                               select et).ToList();
                if (etQuery.Any())
                {
                    List <ExpressTraceDTO> oerList = etQuery.ConvertAll <ExpressTraceDTO>(exp => exp.ToEntityData());
                    oerDto.Traces = oerList;
                }
                result.Data = oerDto;
            }
            catch (Exception ex)
            {
                result.ResultCode = -1;
                result.Message    = string.Format("按快递单号获取快递路由信息异常,异常信息:{0}", ex);
                return(result);
            }
            return(result);
        }
Exemple #7
0
        /// <summary>
        /// 获取拼团信息(必传参数AppId、PageIndex、PageSize、State,可选参数ComNameSub)
        /// </summary>
        /// <param name="search"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupManageDTO> GetDiyGroupsExt(Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupSearchDTO search)
        {
            Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupManageDTO> result = new ResultDTO <DiyGroupManageDTO>();
            if (search == null)
            {
                result.Message    = "参数错误,appId不能为空!";
                result.ResultCode = 1;
                return(result);
            }
            var resultData = new Jinher.AMP.BTP.Deploy.CustomDTO.DiyGroupManageDTO();

            var diyQuery = (from diy in DiyGroup.ObjectSet()
                            join c in Commodity.ObjectSet()
                            on diy.CommodityId equals c.Id
                            join ps in PromotionItems.ObjectSet() on c.Id equals ps.CommodityId
                            join p in Promotion.ObjectSet() on ps.PromotionId equals p.Id
                            where c.AppId == search.AppId && diy.State != 0 && diy.JoinNumber != 0 &&
                            diy.PromotionId == p.Id
                            select new DiyGroupManageVM
            {
                DiyGroupNumber = diy.Code,
                DiyGroupName = c.Name,
                DiyGroupPrice = ps.DiscountPrice,
                DiyGroupCount = p.GroupMinVolume,
                DiyId = diy.Id,
                DiyGroupSubTime = diy.SubTime,
                DiyGroupState = diy.State
            });

            if (!String.IsNullOrEmpty(search.ComNameSub))
            {
                diyQuery = diyQuery.Where(c => c.DiyGroupName.Contains(search.ComNameSub));
            }
            if (!String.IsNullOrEmpty(search.State))
            {
                if (search.State.Contains(","))
                {
                    int[] arrystate = Array.ConvertAll <string, int>(search.State.Split(','), s => int.Parse(s)).ToArray();
                    diyQuery = diyQuery.Where(c => arrystate.Contains(c.DiyGroupState));
                }
                else
                {
                    diyQuery = diyQuery.Where(c => c.DiyGroupState == 1);
                }
            }
            else if (search.State == "")
            {
            }

            diyQuery         = diyQuery.Distinct();
            resultData.Count = diyQuery.Count();

            var searchResult   = diyQuery.OrderByDescending(c => c.DiyGroupNumber).Skip((search.PageIndex - 1) * search.PageSize).Take(search.PageSize).ToList();
            var diygroupIdList = searchResult.Select(c => c.DiyId).ToList();
            //构建拼团订单id数组
            List <Guid> diyOrderIdList = new List <Guid>();

            for (int i = 0; i < searchResult.Count; i++)
            {
                diyOrderIdList.Add(searchResult[i].DiyId);
            }
            List <DiyGroupManageMM> diyGroupManageMmList = (from diyo in DiyGroupOrder.ObjectSet()
                                                            join co in CommodityOrder.ObjectSet() on diyo.OrderId equals co.Id
                                                            where diyo.AppId == search.AppId && diygroupIdList.Contains(diyo.DiyGroupId) && diyo.State == 1
                                                            select new DiyGroupManageMM
            {
                DiyGroupOrderCode = diyo.OrderCode,
                DiyGroupPersonCode = diyo.SubCode,
                DiyGroupPersonRole = diyo.Role,
                DiyGroupOrderId = diyo.OrderId,
                DiyGroupId = diyo.DiyGroupId,
                DiyGroupPrice = (decimal)co.RealPrice
            }
                                                            ).OrderBy(c => c.DiyGroupOrderCode).ToList();

            foreach (DiyGroupManageVM vm in searchResult)
            {
                List <DiyGroupManageMM> diyorderItemslist = new List <DiyGroupManageMM>();
                foreach (DiyGroupManageMM model in diyGroupManageMmList)
                {
                    if (model.DiyGroupId == vm.DiyId)
                    {
                        diyorderItemslist.Add(model);
                    }
                }
                vm.OrderDataList = diyorderItemslist;
            }
            resultData.Data = searchResult;
            result.Data     = resultData;
            return(result);
        }
        public async Task Invoke(HttpContext context, IGirisService girisService)
        {
            try
            {
                var sonuc = new ResultDTO();
                var token = context.Request.Headers["Authorization"].ToString().Replace("Bearer ", string.Empty);
                if (!string.IsNullOrEmpty(token))
                {
                    var handler = new JwtSecurityTokenHandler();
                    var tokenS  = handler.ReadToken(token) as JwtSecurityToken;
                    var expDate = tokenS.ValidTo;
                    if (expDate < DateTime.UtcNow)
                    {
                        context.Response.StatusCode  = 200;
                        context.Response.ContentType = "application/json";
                        context.Response.Headers.Add("exception", "Unauthorized");
                        sonuc.Message.Add(new MessageDTO()
                        {
                            Code        = HttpStatusCode.Unauthorized,
                            Description = "Your session has expired! Please sign in again..",
                            Status      = EDurum.ERROR
                        });
                        sonuc.Status = EDurum.ERROR;
                        var json = JsonConvert.SerializeObject(sonuc, _jsonSettings);
                        await context.Response.WriteAsync(json);
                    }
                    else
                    {
                        var kullaniciId = Convert.ToInt32(tokenS.Claims.First(claim => claim.Type == "unique_name").Value);
                        var girisDto    = girisService.KullanicininSonTokenBilgisi(kullaniciId);

                        if (girisDto != null && girisDto.Token == token)
                        {
                            await _next.Invoke(context);
                        }
                        else
                        {
                            context.Response.StatusCode  = 200;
                            context.Response.ContentType = "application/json";
                            context.Response.Headers.Add("exception", "Unauthorized");
                            sonuc.Message.Add(new MessageDTO()
                            {
                                Code        = HttpStatusCode.Unauthorized,
                                Description = "Your transaction has been terminated because another session has been opened for you!",
                                Status      = EDurum.ERROR
                            });
                            sonuc.Status = EDurum.ERROR;
                            var json = JsonConvert.SerializeObject(sonuc, _jsonSettings);
                            await context.Response.WriteAsync(json);
                        }
                    }
                }
                else
                {
                    await _next.Invoke(context);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public static ResultDTO SummaryLeadsChartByAccount(this IEntityBaseRepository <Account> repository, SummaryRequestDTO obj)
        {
            var result    = new ResultDTO();
            var dbContext = new ApplicationContext();

            var errorCode = new SqlParameter("ErrorCode", System.Data.SqlDbType.Int)
            {
                Direction = System.Data.ParameterDirection.Output
            };
            LeadsChartOfMonthDTO LeadsChart = new LeadsChartOfMonthDTO();
            int f*g = 0;

            LeadsChart.EnrolledItems = dbContext.Database.SqlQuery <LeadsOfMonthDTO>("EXEC [dbo].[sp_SummaryLeadsChartByAccount] @LeadType,@FunnalID,@SoloID,@StartList,@EndList, @UserName,@SessionKey,@errorCode out",
                                                                                     new SqlParameter("LeadType", f*g),
                                                                                     new SqlParameter("FunnalID", obj.FunnalID),
                                                                                     new SqlParameter("SoloID", obj.SoloID),
                                                                                     new SqlParameter("StartList", DB.SafeSQL(obj.StartList)),
                                                                                     new SqlParameter("EndList", DB.SafeSQL(obj.EndList)),
                                                                                     new SqlParameter("UserName", DB.SafeSQL(obj.UserName)),
                                                                                     new SqlParameter("SessionKey", DB.SafeSQL(obj.SessionKey)),
                                                                                     errorCode).ToList <LeadsOfMonthDTO>();
            f*g++;
            var errorCode1 = new SqlParameter("ErrorCode", System.Data.SqlDbType.Int)
            {
                Direction = System.Data.ParameterDirection.Output
            };

            LeadsChart.ColdItems = dbContext.Database.SqlQuery <LeadsOfMonthDTO>("EXEC [dbo].[sp_SummaryLeadsChartByAccount] @LeadType,@FunnalID,@SoloID,@StartList,@EndList, @UserName,@SessionKey,@errorCode out",
                                                                                 new SqlParameter("LeadType", f*g),
                                                                                 new SqlParameter("FunnalID", obj.FunnalID),
                                                                                 new SqlParameter("SoloID", obj.SoloID),
                                                                                 new SqlParameter("StartList", DB.SafeSQL(obj.StartList)),
                                                                                 new SqlParameter("EndList", DB.SafeSQL(obj.EndList)),
                                                                                 new SqlParameter("UserName", DB.SafeSQL(obj.UserName)),
                                                                                 new SqlParameter("SessionKey", DB.SafeSQL(obj.SessionKey)),
                                                                                 errorCode1).ToList <LeadsOfMonthDTO>();
            f*g++;
            var errorCode2 = new SqlParameter("ErrorCode", System.Data.SqlDbType.Int)
            {
                Direction = System.Data.ParameterDirection.Output
            };

            LeadsChart.WarmItems = dbContext.Database.SqlQuery <LeadsOfMonthDTO>("EXEC [dbo].[sp_SummaryLeadsChartByAccount] @LeadType,@FunnalID,@SoloID,@StartList,@EndList, @UserName,@SessionKey,@errorCode out",
                                                                                 new SqlParameter("LeadType", f*g),
                                                                                 new SqlParameter("FunnalID", obj.FunnalID),
                                                                                 new SqlParameter("SoloID", obj.SoloID),
                                                                                 new SqlParameter("StartList", DB.SafeSQL(obj.StartList)),
                                                                                 new SqlParameter("EndList", DB.SafeSQL(obj.EndList)),
                                                                                 new SqlParameter("UserName", DB.SafeSQL(obj.UserName)),
                                                                                 new SqlParameter("SessionKey", DB.SafeSQL(obj.SessionKey)),
                                                                                 errorCode2).ToList <LeadsOfMonthDTO>();
            f*g++;
            var errorCode3 = new SqlParameter("ErrorCode", System.Data.SqlDbType.Int)
            {
                Direction = System.Data.ParameterDirection.Output
            };

            LeadsChart.HotItems = dbContext.Database.SqlQuery <LeadsOfMonthDTO>("EXEC [dbo].[sp_SummaryLeadsChartByAccount] @LeadType,@FunnalID,@SoloID,@StartList,@EndList, @UserName,@SessionKey,@errorCode out",
                                                                                new SqlParameter("LeadType", f*g),
                                                                                new SqlParameter("FunnalID", obj.FunnalID),
                                                                                new SqlParameter("SoloID", obj.SoloID),
                                                                                new SqlParameter("StartList", DB.SafeSQL(obj.StartList)),
                                                                                new SqlParameter("EndList", DB.SafeSQL(obj.EndList)),
                                                                                new SqlParameter("UserName", DB.SafeSQL(obj.UserName)),
                                                                                new SqlParameter("SessionKey", DB.SafeSQL(obj.SessionKey)),
                                                                                errorCode3).ToList <LeadsOfMonthDTO>();

            result.Details    = LeadsChart;
            result.StatusCode = int.Parse(errorCode.Value.ToString(), 0);
            result.SetContentMsg();
            return(result);
        }
        /// <summary>
        /// 获取用户最新的订单物流信息
        /// </summary>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.Commodity.ComOrderExpressNew> GetUserNewOrderExpressExt(System.Guid AppId, System.Guid Userid)
        {
            ComOrderExpressNew             ExpressNews = new ComOrderExpressNew();
            ResultDTO <ComOrderExpressNew> result      = new ResultDTO <ComOrderExpressNew>()
            {
                ResultCode = 1,
                isSuccess  = false,
                Data       = ExpressNews
            };
            string  json = null;
            JObject obj  = null;

            try
            {
                //获取已发货的订单信息
                var ComOrder = CommodityOrder.ObjectSet().Where(p => p.State == 2 && p.UserId == Userid && p.EsAppId == AppId).OrderByDescending(p => p.ModifiedOn).FirstOrDefault();

                if (ComOrder != null)
                {
                    List <ExpressTrace> ExpressList = new List <ExpressTrace>();
                    var OrderItemDebug = OrderItem.ObjectSet().Where(p => p.CommodityOrderId == ComOrder.Id).FirstOrDefault();
                    ExpressNews.CommodityOrderId = ComOrder.Id;    //订单id
                    ExpressNews.Pic = OrderItemDebug.PicturesPath; //首条订单图片
                    ExpressTrace Express = new ExpressTrace();
                    //急速数据信息
                    if (!string.IsNullOrWhiteSpace(ComOrder.ExpOrderNo))
                    {
                        var orderexpressroute = OrderExpressRoute.ObjectSet().FirstOrDefault(p => p.ExpOrderNo == ComOrder.ExpOrderNo);
                        //根据快递编号获取急速数据信息
                        json = GetWuliuJson(orderexpressroute, ComOrder.AppId);
                        LogHelper.Debug(string.Format("极速快递物流信息:{0}", JsonHelper.JsonSerializer(json)));
                        obj = JObject.Parse(json);
                        if (Convert.ToInt32(obj["status"]) != 0)
                        {
                            return(result);
                        }
                        JArray arr = (JArray)JsonConvert.DeserializeObject(obj["result"]["list"].ToString());
                        foreach (var item in arr)
                        {
                            Express.AcceptTime    = Convert.ToDateTime(item["time"].ToString());
                            Express.AcceptStation = item["status"].ToString().Trim();
                            ExpressList.Add(Express);
                        }
                        var NewExpress = ExpressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault();
                        if (Convert.ToInt32(obj["result"]["deliverystatus"]) == 1)
                        {
                            result.ResultCode         = 0;
                            result.isSuccess          = true;
                            ExpressNews.shipmentsTime = ComOrder.ModifiedOn;
                            ExpressNews.state         = "已发货";
                            ExpressNews.Remarked      = "您的订单已发货,由" + ComOrder.ShipExpCo + "快递配送,请注意物流信息~";
                        }
                        else if (Convert.ToInt32(obj["result"]["deliverystatus"]) == 2)
                        {
                            result.ResultCode         = 0;
                            result.isSuccess          = true;
                            ExpressNews.shipmentsTime = NewExpress.AcceptTime;
                            ExpressNews.state         = "派件中";
                            ExpressNews.Remarked      = "您的订单已开始派送,请保持电话畅通,确认商品外包装完好后签收~";
                        }
                        else
                        {
                            result.ResultCode = 1;
                            result.isSuccess  = false;
                        }
                    }
                    else
                    {
                        //京东信息
                        var commodityOrderId = ComOrder.Id.ToString();
                        var jdOrderitem      = JdOrderItem.ObjectSet().FirstOrDefault(p => p.CommodityOrderId.Contains(commodityOrderId));
                        if (jdOrderitem != null)
                        {
                            var jdwuliu = JdHelper.orderTrack(jdOrderitem.JdOrderId);
                            LogHelper.Debug(string.Format("京东物流信息:{0}", JsonHelper.JsonSerializer(jdwuliu)));
                            if (jdwuliu != null)
                            {
                                JArray objson = JArray.Parse(jdwuliu);
                                foreach (var item in objson)
                                {
                                    Express.AcceptTime    = DateTime.Parse(item["msgTime"].ToString());
                                    Express.AcceptStation = item["content"].ToString().Trim();
                                    ExpressList.Add(Express);
                                }
                                var NewExpress = ExpressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault();
                                if (NewExpress.AcceptStation.Contains("正在配送"))
                                {
                                    result.ResultCode         = 0;
                                    result.isSuccess          = true;
                                    ExpressNews.shipmentsTime = NewExpress.AcceptTime;
                                    ExpressNews.state         = "派件中";
                                    ExpressNews.Remarked      = "您的订单已开始派送,请保持电话畅通,确认商品外包装完好后签收~";
                                }
                                else if (NewExpress.AcceptStation.Contains("订单已签收"))
                                {
                                    result.ResultCode = 1;
                                    result.isSuccess  = false;
                                }
                                else
                                {
                                    result.ResultCode         = 0;
                                    result.isSuccess          = true;
                                    ExpressNews.shipmentsTime = ComOrder.ModifiedOn;
                                    ExpressNews.state         = "已发货";
                                    ExpressNews.Remarked      = "您的订单已发货,由京东快递配送,请注意物流信息~";
                                }
                            }
                        }
                    }
                    result.Data = ExpressNews;
                    LogHelper.Debug(string.Format("获取用户最新的订单物流信息返回数据:{0}", JsonHelper.JsonSerializer(result)));
                    return(result);
                }
                else
                {
                    return(result);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("获取用户最新的订单物流信息信息异常,异常信息:{0}", ex));
                return(result);
            }
        }
        /// <summary>
        /// 接收快递鸟推送的物流路由信息。  base.Do(false);
        /// </summary>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO ReceiveKdniaoExpressRouteExt(System.Collections.Generic.List <Jinher.AMP.BTP.Deploy.CustomDTO.OrderExpressRouteExtendDTO> oerList)
        {
            ResultDTO result = new ResultDTO {
                ResultCode = 0, Message = "Success"
            };

            try
            {
                if (oerList == null || !oerList.Any())
                {
                    result.ResultCode = 1;
                    result.Message    = "参数错误,物流路由信息不能为空!";
                    return(result);
                }
                ContextSession           contextSession = ContextFactory.CurrentThreadContext;
                List <OrderExpressRoute> oerReadyList   = new List <OrderExpressRoute>();
                var distinctOEList = (from oe in oerList select new { oe.ShipperCode, oe.ExpOrderNo }).Distinct();
                foreach (var oe in distinctOEList)
                {
                    var oerQuery = (from oer in OrderExpressRoute.ObjectSet()
                                    where oer.ShipperCode == oe.ShipperCode && oer.ExpOrderNo == oe.ExpOrderNo
                                    select oer).ToList();
                    if (!oerQuery.Any())
                    {
                        continue;
                    }
                    oerReadyList.AddRange(oerQuery);

                    //清理同一运单已有路由信息。
                    var erids   = (from oer in oerQuery select oer.Id).Distinct();
                    var etQuery = (from et in ExpressTrace.ObjectSet()
                                   where erids.Contains(et.ExpRouteId)
                                   select et).ToList();
                    foreach (var etq in etQuery)
                    {
                        etq.EntityState = System.Data.EntityState.Deleted;
                    }
                }
                //将运单路由信息保存到db.

                foreach (var oere in oerList)
                {
                    OrderExpressRoute oerNew = (from oerr in oerReadyList
                                                where oerr.ShipperCode == oere.ShipperCode && oerr.ExpOrderNo == oere.ExpOrderNo
                                                select oerr).FirstOrDefault();
                    if (oerNew == null)
                    {
                        continue;
                    }
                    oerNew.ModifiedOn  = DateTime.Now;
                    oerNew.EntityState = System.Data.EntityState.Modified;

                    if (oere.Traces != null && oere.Traces.Any())
                    {
                        foreach (ExpressTraceDTO etDto in oere.Traces)
                        {
                            ExpressTrace et = ExpressTrace.CreateExpressTrace();
                            et.FillWith(etDto);
                            et.ExpRouteId  = oerNew.Id;
                            et.Id          = Guid.NewGuid();
                            et.EntityState = System.Data.EntityState.Added;
                            contextSession.SaveObject(et);
                        }
                    }
                }
                contextSession.SaveChanges();
            }
            catch (Exception ex)
            {
                string s = string.Format("保存快递鸟推送的物流路由信息异常,异常信息:{0}", ex);
                LogHelper.Error(s);
                return(new ResultDTO {
                    ResultCode = 1, Message = "Error"
                });
            }
            return(result);
        }
        /// <summary>
        /// 向快递鸟订阅需要推送的快递单号(和bp中SubscribeOrderExpress实现相同)
        /// </summary>
        /// <returns></returns>
        public ResultDTO SubscribeOneOrderExpressExt(OrderExpressRoute oer)
        {
            ResultDTO result = new ResultDTO {
                ResultCode = 0, Message = "Success"
            };
            Guid EsappId = Guid.Parse("8B4D3317-6562-4D51-BEF1-0C05694AC3A6");
            //判断是否是中石化的订订单
            var commoidtyorder = CommodityOrder.ObjectSet().Where(p => p.ExpOrderNo == oer.ExpOrderNo && p.EsAppId == EsappId).FirstOrDefault();

            if (oer == null)
            {
                result.ResultCode = 1;
                result.Message    = "参数错误,参数不能为空!";
                return(result);
            }

            if (string.IsNullOrWhiteSpace(oer.ShipExpCo))
            {
                //判断是否是中石化的订订单
                if (commoidtyorder != null)
                {
                    oer.ShipExpCo = "auto";
                }
                else
                {
                    result.ResultCode = 2;
                    result.Message    = "参数错误,物流公司名称不能为空!";
                    return(result);
                }
            }
            //校验快递公司简称(按快递公司名称找“快递鸟”编码)
            oer.ShipperCode = "";
            var cname   = oer.ShipExpCo.Replace("快递", "").Replace("速递", "").Replace("物流", "").Replace("配送", "").Replace("货运", "").Replace("快运", "").Replace("速运", "").ToUpper();
            var ocDebug = ExpressCode.AllExpCodes.Where(ec => ec.ExpCompanyName.ToUpper().Contains(cname));

            if (!ocDebug.Any())
            {
                //判断是否是中石化的订订单
                if (commoidtyorder != null)
                {
                    oer.ShipperCode = "auto";
                }
                else
                {
                    result.ResultCode = 3;
                    result.Message    = "第三方“快递鸟”暂不支持该物流公司!";
                    return(result);
                }
            }
            else
            {
                oer.ShipperCode = ocDebug.First().ExpCode;
            }


            //检查 运单号 是否存在
            var oerReady = from op in OrderExpressRoute.ObjectSet()
                           where op.ShipperCode == oer.ShipperCode && op.ExpOrderNo == oer.ExpOrderNo
                           select op;

            if (oerReady.Any())
            {
                result.ResultCode = 4;
                result.Message    = "运单号已存在!";
                return(result);
            }

            oer.Id          = Guid.NewGuid();
            oer.State       = 1;
            oer.SubTime     = DateTime.Now;
            oer.ModifiedOn  = DateTime.Now;
            oer.EntityState = System.Data.EntityState.Added;

            ContextFactory.CurrentThreadContext.SaveObject(oer);
            ContextFactory.CurrentThreadContext.SaveChanges();

            return(result);
        }
Exemple #13
0
        private ResultDTO CreateWeChatQrCodeBatchExt(QrCodeCreateDTO dto)
        {
            if (dto == null || dto.AppId == Guid.Empty || dto.CreateNo <= 0)
            {
                return new ResultDTO()
                       {
                           ResultCode = 1, Message = "参数为空"
                       }
            }
            ;
            try
            {
                WeChatQrCodeSV worker = new WeChatQrCodeSV();

                var developerInfo = WCPSV.Instance.GetDeveloperInfo(dto.AppId);
                if (developerInfo == null || string.IsNullOrEmpty(developerInfo.WAppId) || string.IsNullOrEmpty(developerInfo.WSecret))
                {
                    return new ResultDTO()
                           {
                               ResultCode = 3, Message = "未配置公众号"
                           }
                }
                ;
                var       tokenInfo = worker.GetToken(dto.AppId);
                ResultDTO ret       = new ResultDTO();
                //获取token失败
                if (tokenInfo == null)
                {
                    ret.ResultCode = 2;

                    ret.Message = "获取微信access_token失败";
                    return(ret);
                }
                if (!tokenInfo.isSuccess)
                {
                    ret.ResultCode = 2;
                    ret.Message    = tokenInfo.Message;
                    return(ret);
                }
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                int            successCount   = 0;
                bool           hasError       = false;
                string         errorMess      = string.Empty;
                for (int i = 0; i < dto.CreateNo; i++)
                {
                    var id           = Guid.NewGuid();
                    var createResult = worker.CreateForeverQrcode(new ForeverQrcodeDTO()
                    {
                        SceneStr = id.ToString()
                    }, tokenInfo);
                    if (createResult == null)
                    {
                        hasError  = true;
                        errorMess = "";
                        break;
                    }
                    if (!createResult.isSuccess)
                    {
                        hasError  = true;
                        errorMess = createResult.Message;
                        break;
                    }

                    WeChatQRCode qrCode = new WeChatQRCode
                    {
                        Id = id,
                        WeChatPublicCode = dto.WeChatPublicCode,
                        WeChatAppId      = developerInfo.WAppId,
                        WeChatSecret     = developerInfo.WSecret,
                        AppId            = dto.AppId,
                        QRNo             = GetWeChatQRNoExt(),
                        QRType           = { Value = dto.QrType },
                        SpreadInfoId     = Guid.Empty,
                        WeChatTicket     = createResult.Data,
                        Description      = dto.Description,
                        EntityState      = EntityState.Added
                    };
                    contextSession.SaveObject(qrCode);
                    contextSession.SaveChanges();
                    successCount++;
                }
                if (hasError)
                {
                    if (successCount > 0)
                    {
                        ret.ResultCode = 5;
                        ret.isSuccess  = true;
                        ret.Message    = string.Format("本次应生成二维码数量:{0},实际生成数量:{1},失败原因:{2}", dto.CreateNo, successCount, errorMess);
                    }
                    else
                    {
                        ret.ResultCode = 4;
                        ret.Message    = errorMess;
                    }
                    return(ret);
                }
                return(new ResultDTO {
                    isSuccess = true, Message = "success"
                });
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("WeChatQRCodeBP.CreateWeChatQrCodeBatchExt异常,入参:{0}", JsonHelper.JsSerializer(dto)), ex);
                return(new ResultDTO {
                    Message = "异常,请重试!"
                });
            }
        }
Exemple #14
0
        public ResultDTO OnPostUpload(IFormFile file, string testid)
        {
            ResultDTO res = new ResultDTO();

            return(res);
        }
        public HttpResponseMessage List(RequestDTO req)
        {
            try
            {
                IEnumerable<LuceneIndexItem> docs;

                var jpListQuery = BuildJpListQuery(req.StatusLst);
                if (!string.IsNullOrEmpty(req.folder) && jpListQuery.Filters.All(f => f.name != "Folder")) // If there is no "Folder" filter active, then add one
                {
                    jpListQuery.Filters.Add(new FilterDTO()
                    {
                        name = "Folder",
                        value = NormalizePath(req.folder)
                    });
                }
                else
                {
                    foreach (var item in jpListQuery.Filters.Where(f => f.name == "Folder"))
                    {
                        item.path = NormalizePath(item.path);
                    }
                }
                jpListQuery.Filters.Add(new FilterDTO()
                {
                    name = "PortalId",
                    path = PortalSettings.PortalId.ToString()
                });

                string luceneQuery = BuildLuceneQuery(jpListQuery);
                if (string.IsNullOrEmpty(luceneQuery))
                {
                    docs = SearchEngine.GetAllIndexedRecords();
                }
                else
                {
                    docs = SearchEngine.Search(luceneQuery);
                }

                int total = docs.Count();
                if (jpListQuery.Pagination.currentPage > 0)
                    docs = docs.Skip(jpListQuery.Pagination.currentPage * jpListQuery.Pagination.number).Take(jpListQuery.Pagination.number);
                var fileManager = FileManager.Instance;
                var data = new List<FileDTO>();
                foreach (var doc in docs)
                {
                    var f = fileManager.GetFile(doc.FileId);
                    if (f == null)
                    {
                        //file seems to have been deleted
                        SearchEngine.RemoveDocument(doc.FileId);
                        total -= 1;
                    }
                    else
                    {
                        data.Add(new FileDTO()
                        {
                            FileName = f.FileName,
                            FolderName = f.Folder,
                            Url = fileManager.GetUrl(f),
                            ImageUrl = ImageHelper.GetImageUrl(f, new Ratio(100, 100)),
                            Custom = GetCustomFileDataAsDynamic(f),
                            IsImage = fileManager.IsImageFile(f),
                            IconUrl = GetFileIconUrl(f.Extension)
                        });
                    }
                }

                var res = new ResultDTO<FileDTO>()
                {
                    data = data,
                    count = total
                };

                return Request.CreateResponse(HttpStatusCode.OK, res);
            }
            catch (Exception exc)
            {
                Utils.Logger.Error(exc);
                return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc);
            }
        }
        //result will contain ssq at last position
        private void BroadcastIdentifyResult(object result, TimeSpan elapsed, object ssq, object compcycles, object simtime)
        {
            var myresult = new List<double>();
            foreach (var o in (Double[,])result) myresult.Add(o);
            //var ssq = myresult.Last();
            //foreach (var o in )
            //double myssq = 0;

            var myssq = ((MWArray) ssq).ToArray();//.GetValue(0));
            var mycompcycles = ((MWArray) compcycles).ToArray();
            var simulationtime = ((MWArray)simtime).ToArray();
                //myssq = ssq;
            //var myssq = ((MWIndexArray) o).
            //TODO should it be implemented in MATLAB class instead of directly in here?
            //get workers url
            var myrepository = HostContext.Container.Resolve<WorkersRepository>();
            //var workers = (List<Worker>) myrepository.GetByModelName(identify.model);
            var workers = (List<Worker>)myrepository.GetByModelName(modelname);
            //compute on the first worker (expected that first worker is in localhost)
            logger.Debug("masterservice url:"+masterserviceurl);
            var simulator = new GenericSimulator(modelname,masterserviceurl);
            var timepoints = new List<double>();
            foreach (var row in variable_values) timepoints.Add(row[0]); //add first number - time from each experiment value

                        var responseDto = new ResultDTO()
                                  {
                                      Ssq = (double)myssq.GetValue(0,0), //TODO debug
                                      countcycles = (long)mycompcycles.GetValue(0, 0), //TODO debug
                                      elapsedtime = elapsed.ToString()+" simulation: "+simulationtime.GetValue(0,0).ToString(),
                                      name= "Result of "+modelname+" at "+DateTime.Now,
                                      model = modelname,
                                      Parameternames = Enumerable.ToArray(parameters.Keys),
                                      Parametervalues = myresult.ToArray(),
                                      ParameterAssignment = Enumerable.ToArray(parameters.Values),
                                      Variablenames = variable_names,
                                      Variablevalues = simulator.Simulate(workers.Select(w => w.RestUrl).First(),Enumerable.ToArray(parameters.Keys),myresult.ToArray(),Enumerable.ToArray(variable_names),timepoints.ToArray()), //expected that in variable-values[0] is timepoints
                                      Experimentalvalues = variable_values
                                  };
            //Clients.All.closeIdentifyProcess(responseDto);
            var repositoryResult = HostContext.Container.Resolve<ResultRepository>();
            repositoryResult.Store(responseDto);
            Clients.All.closeIdentifyProcessandResultUpdate(responseDto,repositoryResult.GetAllResultsMeta());
        }
Exemple #17
0
        public ResultDTO UpdateAPPManageExt(Jinher.AMP.BTP.Deploy.CustomDTO.APPManageDTO AppManageDTO)
        {
            ResultDTO      result         = new ResultDTO();
            ContextSession contextSession = ContextFactory.CurrentThreadContext;
            //原来的appid
            string oldAppId = string.Empty;

            try
            {
                //检查添加是否存在
                var query = APPManage.ObjectSet().Where(q => q.Id != AppManageDTO.Id && q.AppId == AppManageDTO.AppId).FirstOrDefault();

                if (query != null)
                {
                    result.ResultCode = 1;
                    result.Message    = "此应用已经存在";
                    return(result);
                }


                var appManage = APPManage.ObjectSet().Where(q => q.Id == AppManageDTO.Id).FirstOrDefault();
                oldAppId = appManage.AppId.ToString();


                if (appManage != null)
                {
                    appManage.Id         = AppManageDTO.Id;
                    appManage.AppId      = AppManageDTO.AppId;
                    appManage.AppName    = AppManageDTO.AppName;
                    appManage.Remark     = AppManageDTO.Remark;
                    appManage.SubTime    = AppManageDTO.SubTime;
                    appManage.SubId      = ContextDTO.LoginUserID;
                    appManage.ModifiedOn = AppManageDTO.ModifiedOn;
                    appManage.ModifiedId = AppManageDTO.ModifiedId;

                    appManage.EntityState = System.Data.EntityState.Modified;
                    contextSession.SaveObject(appManage);
                    int num = contextSession.SaveChanges();

                    if (num > 0)
                    {
                        //如果没有修改appid
                        if (oldAppId == AppManageDTO.AppId.ToString())
                        {
                            GlobalCacheWrapper.Remove(RedisKeyConst.AppInZPH, AppManageDTO.AppId.ToString(), CacheTypeEnum.redisSS, "BTPCache");
                        }
                        //如果修改了appid,则2个都要删除
                        else
                        {
                            GlobalCacheWrapper.Remove(RedisKeyConst.AppInZPH, AppManageDTO.AppId.ToString(), CacheTypeEnum.redisSS, "BTPCache");
                            GlobalCacheWrapper.Remove(RedisKeyConst.AppInZPH, oldAppId, CacheTypeEnum.redisSS, "BTPCache");
                        }
                        result.ResultCode = 0;
                        result.Message    = "修改成功";
                        return(result);
                    }
                    else
                    {
                        result.ResultCode = 1;
                        result.Message    = "修改失败";
                        return(result);
                    }
                }
                else
                {
                    result.ResultCode = 0;
                    result.Message    = "Deled";
                    return(result);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("修改AppManage异常。AppManageDTO:{0}", JsonHelper.JsonSerializer(AppManageDTO)), ex);
                result.ResultCode = 1;
                result.Message    = ex.Message;
                return(result);
            }
        }
Exemple #18
0
        /// <summary>
        /// 获取 未完成的拼团列表
        /// </summary>
        /// <param name="inputDTO"></param>
        /// <returns></returns>
        public Deploy.CustomDTO.ResultDTO <List <UnfinishedDiyGroupOutputDTO> > UnfinishedDiyGrouplistExt(UnfinishedDiyGroupInputDTO inputDTO)
        {
            var appId = inputDTO.AppId;
            var outsidePromotionId = inputDTO.OutsidePromoId;
            var maxTakeCount       = 10;

            var appinfos = ZPHSV.Instance.GetAppIdlist(new List <Guid>()
            {
                appId
            });
            var appids = appinfos.Select(t => t.AppId).ToList();

            appids.Add(appId);

            try
            {
                LogHelper.Debug(string.Format("查询到的未完成的拼团列表. Input:{0}", JsonHelper.JsonSerializer(inputDTO)));

                //计算未完成的拼团列表
                var query = from g in DiyGroup.ObjectSet()
                            join p in Promotion.ObjectSet() on g.PromotionId equals p.Id
                            join go in
                            (from o in DiyGroupOrder.ObjectSet()
                             where o.State == 1
                             group o by o.DiyGroupId into og
                             select new
                {
                    Key = og.Key,
                    MemberCount = og.Count()
                }) on g.Id equals go.Key
                            where
                            p.PromotionType == 3 &&
                            g.State == 1 &&
                            g.ExpireTime >= DateTime.Now &&
                            appids.Contains(g.AppId) &&
                            p.OutsideId == outsidePromotionId
                            select
                            new
                {
                    GroupId    = g.Id,
                    OwnerId    = g.SubId,
                    LackMember = (p.GroupMinVolume ?? 0) - go.MemberCount,
                    ExpireTime = g.ExpireTime
                };

                var list = query
                           .OrderByDescending(selector => selector.LackMember)
                           .ThenBy(selector => selector.ExpireTime)
                           .Take(maxTakeCount)
                           .ToList();

                //获取团长信息
                var cbcFacade    = new TPS.CBCSVFacade();
                var userNameFunc = new Func <Guid, string>(userId =>
                {
                    var user = cbcFacade.GetUserNameIconDTO(userId);
                    if (user != null)
                    {
                        return(user.Name);
                    }
                    return(string.Empty);
                });

                var userIconFunc = new Func <Guid, string>(userId =>
                {
                    var user = cbcFacade.GetUserNameIconDTO(userId);
                    if (user != null)
                    {
                        return(user.HeadIcon);
                    }
                    return(string.Empty);
                });

                var data = list.Select(selector => new UnfinishedDiyGroupOutputDTO()
                {
                    GroupId    = selector.GroupId,
                    LackMember = selector.LackMember,
                    ExpireTime = selector.ExpireTime,
                    OwnerIcon  = userIconFunc(selector.OwnerId),
                    OwnerName  = userNameFunc(selector.OwnerId)
                }).ToList();

                var result = new ResultDTO <List <UnfinishedDiyGroupOutputDTO> >()
                {
                    isSuccess  = true,
                    ResultCode = 0,
                    Data       = data
                };

                LogHelper.Debug(string.Format("查询到的未完成的拼团列表. Output:{0}", JsonHelper.JsonSerializer(result)));

                return(result);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("查询未完成的拼团列表发生异常. {0}", ex.Message), ex);
                return(new ResultDTO <List <UnfinishedDiyGroupOutputDTO> >
                {
                    Data = new List <UnfinishedDiyGroupOutputDTO>()
                });
            }
        }
Exemple #19
0
        public static ResultDTO CreateDraft(RequestTransfer[] transferRequest, User user)
        {
            var          result       = new ResultDTO();
            string       transitWhs   = String.Empty;
            var          objectCode   = BoObjectTypes.oInventoryTransferRequest;
            var          item         = String.Empty;
            FoodPlantDAO foodPlantDAO = new FoodPlantDAO();

            try {
                var oStockTransferDraft = (Documents)DIApplication.Company.GetBusinessObject(BoObjectTypes.oDrafts); //ODRF

                oStockTransferDraft.CardCode      = transferRequest[0].Code;
                oStockTransferDraft.DocObjectCode = BoObjectTypes.oStockTransfer;
                oStockTransferDraft.UserFields.Fields.Item("U_GLO_BusinessPartner").Value = transferRequest[0].Code;
                oStockTransferDraft.UserFields.Fields.Item("U_PL_WhsReq").Value           = transferRequest[0].FromWhs;
                oStockTransferDraft.Series   = user.Series;
                oStockTransferDraft.Comments = transferRequest[0].Observations;

                foreach (var line in transferRequest)
                {
                    transitWhs = foodPlantDAO.GetAvailableTransitWarehouse(line.Item);
                    if (String.IsNullOrEmpty(transitWhs))
                    {
                        item = line.Item;
                        break;
                    }

                    oStockTransferDraft.Lines.ItemCode      = line.Item;
                    oStockTransferDraft.Lines.BaseEntry     = line.Folio;
                    oStockTransferDraft.Lines.BaseLine      = line.LineNum;
                    oStockTransferDraft.Lines.WarehouseCode = foodPlantDAO.GetAvailableTransitWarehouse(line.Item);
                    oStockTransferDraft.Lines.Quantity      = line.Quantity;
                    oStockTransferDraft.Lines.BaseType      = (int)objectCode;
                    oStockTransferDraft.Lines.CostingCode   = user.Area;
                    oStockTransferDraft.Lines.Add();
                }

                if (String.IsNullOrEmpty(transitWhs))
                {
                    return(new ResultDTO()
                    {
                        Success = false, Message = String.Format("Error: No hay almacenes de transito disponibles para este artículo {0}", item)
                    });
                }

                if (oStockTransferDraft.Add() != 0)
                {
                    UIApplication.ShowMessageBox(string.Format("Exception: {0}", DIApplication.Company.GetLastErrorDescription()));
                    QsLog.WriteError("TransferDI (Draft) " + DIApplication.Company.GetLastErrorDescription());
                    result.Success = false;
                    result.Message = "Error: " + DIApplication.Company.GetLastErrorDescription();
                }
                else
                {
                    result.Success = true;
                    result.Message = DIApplication.Company.GetNewObjectKey();
                }
            }
            catch (AggregateException ae) {
                ae.Handle(e => {
                    HandleException(e, "TransferDI(Draft)");
                    result.Message = "Error: " + e.Message;
                    result.Success = false;
                    return(true);
                });
            }
            catch (Exception ex) {
                HandleException(ex, "TransferDI(Draft)");
                result.Message = "Error: " + ex.Message;
                result.Success = false;
            }

            return(result);
        }
Exemple #20
0
        /// <summary>
        /// 向快递鸟订阅需要推送的快递单号
        /// </summary>
        /// <returns></returns>
        private ResultDTO SubscribeOrderExpressMultiple(List <OrderExpressRoute> expressList)
        {
            ResultDTO result = new ResultDTO {
                ResultCode = 0, Message = "Success"
            };

            try
            {
                if (expressList == null || !expressList.Any())
                {
                    result.ResultCode = 1;
                    result.Message    = "参数错误,参数不能为空!";
                    return(result);
                }

                List <KdSubscribeDTO> kdSubList = new List <KdSubscribeDTO>();
                var ecompany = (from exp in expressList select exp.ShipperCode).Distinct();
                foreach (string g in ecompany)
                {
                    KdSubscribeDTO kdSub = new KdSubscribeDTO();
                    kdSub.Code = g;
                    kdSub.Item = new List <SubItem>();

                    var expNos = from exp in expressList where exp.ShipperCode == g select exp;
                    foreach (var expNo in expNos)
                    {
                        //非法物流单号过滤掉。
                        if (string.IsNullOrWhiteSpace(expNo.ExpOrderNo) ||
                            expNo.ExpOrderNo.Length < 6 ||
                            expNo.ExpOrderNo.Length > 50)
                        {
                            expNo.State       = 3;
                            expNo.ModifiedOn  = DateTime.Now;
                            expNo.EntityState = System.Data.EntityState.Modified;
                            continue;
                        }
                        kdSub.Item.Add(new SubItem()
                        {
                            No = expNo.ExpOrderNo, Bk = ""
                        });
                    }
                    kdSubList.Add(kdSub);
                }

                //发布订阅。
                KdSubscribeResultDTO kdResult = KdApiSubscribeKit.Instance.orderTracesSubByJson(kdSubList);

                //发布订阅失败。
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                //发布订阅完成。
                if (!kdResult.Success)
                {
                    //发布订阅失败,记录下来,job重发。
                    result.ResultCode = 2;
                    result.Message    = "订阅物流信息失败!";

                    List <string> errorExpNos = new List <string>();
                    if (!string.IsNullOrWhiteSpace(kdResult.Reason))
                    {
                        string[] errorKD = kdResult.Reason.Split(";".ToCharArray());
                        foreach (string mi in errorKD)
                        {
                            int ind = mi.IndexOf("快递单号");
                            if (ind < 0)
                            {
                                continue;
                            }
                            string expNo = mi.Substring(0, ind).Trim();
                            errorExpNos.Add(expNo);
                        }
                    }
                    if (errorExpNos != null && errorExpNos.Count > 0)
                    {
                        foreach (string eNo in errorExpNos)
                        {
                            var expList = from exp in expressList
                                          where exp.ExpOrderNo == eNo
                                          select exp;
                            if (!expList.Any())
                            {
                                continue;
                            }
                            foreach (OrderExpressRoute oer in expList)
                            {
                                oer.State       = 3;
                                oer.ModifiedOn  = DateTime.Now;
                                oer.EntityState = System.Data.EntityState.Modified;
                            }
                        }
                    }
                }
                else
                {
                    foreach (OrderExpressRoute oer in expressList)
                    {
                        if (oer.State == 1)
                        {
                            oer.State = 2;
                        }
                        oer.ModifiedOn  = DateTime.Now;
                        oer.EntityState = System.Data.EntityState.Modified;
                    }
                }
                contextSession.SaveChanges();
            }
            catch (Exception ex)
            {
                result.ResultCode = -1;
                result.Message    = string.Format("向快递鸟订阅需要推送的快递单号异常,异常信息:{0}", ex);
                return(result);
            }

            return(result);
        }
        /// <summary>
        /// 领取红包
        /// </summary>
        /// <param name="userRedEnvelopeId"></param>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO DrawRedEnvelopeExt(Guid userRedEnvelopeId)
        {
            ContextSession contextSession = ContextFactory.CurrentThreadContext;

            Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO result = new ResultDTO();

            UserRedEnvelope query = null;

            lock (getRedLock)
            {
                //用户分红表
                query = UserRedEnvelope.ObjectSet().Where(q => q.Id == userRedEnvelopeId).FirstOrDefault();

                if (query == null)
                {
                    result.ResultCode = 1;
                    result.Message    = "没有红包可领";
                    return(result);
                }
                else if (query.State == 0 && DateTime.Now > query.DueDate)
                {
                    result.ResultCode = 1;
                    result.Message    = "红包已过期";
                    return(result);
                }
                else if (query.State == 1)
                {
                    result.ResultCode = 1;
                    result.Message    = "红包已领";
                    return(result);
                }
                int num = UpdateRedState(query, 1);
                if (num > 0)
                {
                    result.ResultCode = 0;
                    result.Message    = "领取红包成功";
                }
                else
                {
                    result.ResultCode = 1;
                    result.Message    = "领取红包失败";
                    return(result);
                }
            }

            MultiPayeeTradeByPasswordArg arg = new MultiPayeeTradeByPasswordArg();
            ReturnInfoDTO gReturnDTO         = new ReturnInfoDTO();

            arg.PayeeComments = new List <string>();
            arg.PayorComments = new List <string>();
            arg.AppId         = query.AppId;
            arg.Payees        = new List <Tuple <Guid, bool> >();
            arg.Payees.Add(new Tuple <Guid, bool>(query.UserId, true));
            arg.BizSystem = "BTP";
            arg.BizId     = query.Id;
            arg.Golds     = new List <long> {
                query.GoldCount
            };
            arg.PayorPassword = CustomConfig.ShareGoldAccout.BTPShareAccountPwd;
            //众销
            if (query.RedEnvelopeType == 0)
            {
                arg.PayorId = CustomConfig.ShareGoldAccout.BTPShareGoldAccount;
                arg.UsageId = CustomConfig.ShareGoldAccout.BTPGlodUsageId;
                arg.BizType = "BTP_ShareDividend_Auto";
                arg.PayorComments.Add("电商分享红包支出");
                arg.PayeeComments.Add("电商分享红包收益");
            }
            else
            {
                //众筹
                arg.PayorId = CustomConfig.CrowdfundingAccount.BTPCrowdfundingAcount;
                arg.UsageId = CustomConfig.CrowdfundingAccount.BTPCrowdfundingUsageId;
                arg.BizType = "BTP_CrowdfundingDividend";
                arg.PayorComments.Add("电商众筹分红支出");
                arg.PayeeComments.Add("电商众筹分红收益");

                //计算用户已得分红
                var uc = UserCrowdfunding.ObjectSet().Where(q => q.AppId == query.AppId && q.UserId == query.UserId).FirstOrDefault();

                uc.RealGetDividend += query.GoldCount;
                uc.EntityState      = EntityState.Modified;
                contextSession.SaveObject(uc);
            }
            try
            {
                gReturnDTO = Jinher.AMP.BTP.TPS.Finance.Instance.MultiPayeeTradeByPassword(arg);
            }
            catch (Exception ex)
            {
                int num = UpdateRedState(query, 0);
                LogHelper.Error(string.Format("获取我的红包UserRedEnvelopeSV-DrawRedEnvelopeExt-MultiPayeeTrade,参数redEnvelopeId:{0},红包状态恢复{1}", userRedEnvelopeId, (num > 0 ? "成功" : "失败")), ex);
                result.ResultCode = 1;
                result.Message    = "调用金币接口失败";
                return(result);
            }

            if (gReturnDTO == null || !gReturnDTO.IsSuccess)
            {
                int num = UpdateRedState(query, 0);
                result.ResultCode = 1;
                result.Message    = "分享红包支付失败";

                LogHelper.Error(string.Format("调用金币MultiPayeeTradeByPassword方法失败,code:{0},错误消息:{1},参数redEnvelopeId:{2},红包状态恢复{3}", gReturnDTO.Code, gReturnDTO.Info, userRedEnvelopeId, (num > 0 ? "成功" : "失败")));

                return(result);
            }
            return(result);
        }
Exemple #22
0
        /// <summary>
        /// 获取用户最新的订单物流信息
        /// 查询第一条数据
        /// </summary>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.CustomDTO.Commodity.ComOrderExpressNew> GetUserNewOrderExpressExt(System.Guid AppId, System.Guid Userid)
        {
            LogHelper.Info("【一条物流】====AppId-->[" + AppId + "]--->UserId=[" + Userid + "]");
            ComOrderExpressNew             ExpressNews = new ComOrderExpressNew();
            ResultDTO <ComOrderExpressNew> result      = new ResultDTO <ComOrderExpressNew>()
            {
                ResultCode = 1,
                isSuccess  = false,
                Data       = ExpressNews
            };
            string  json = null;
            JObject obj  = null;

            try
            {
                //获取已发货的订单信息
                var ComOrder = CommodityOrder.ObjectSet().Where(p => p.State == 2 && p.UserId == Userid && p.EsAppId == AppId).OrderByDescending(p => p.ModifiedOn).FirstOrDefault();

                if (ComOrder != null)
                {
                    List <ExpressTrace> ExpressList = new List <ExpressTrace>();
                    var OrderItemInfo = OrderItem.ObjectSet().Where(p => p.CommodityOrderId == ComOrder.Id).FirstOrDefault();
                    ExpressNews.CommodityOrderId = ComOrder.Id;   //订单id
                    ExpressNews.Pic = OrderItemInfo.PicturesPath; //首条订单图片
                    //京东信息
                    var commodityOrderId = ComOrder.Id;

                    /*
                     * var jdOrderitem = JdOrderItem.ObjectSet().FirstOrDefault(p => p.CommodityOrderId.Contains(commodityOrderId));
                     * LogHelper.Debug(string.Format("物流信息(订单信息),订单id{0}:", ComOrder.Id));
                     * //急速数据信息
                     * if (!string.IsNullOrWhiteSpace(ComOrder.ExpOrderNo) && jdOrderitem == null)
                     * {
                     *  //根据快递编号获取急速数据信息
                     *  json = GetWuliuJson(ComOrder.ExpOrderNo);
                     *  obj = JObject.Parse(json);
                     *  LogHelper.Info(string.Format("极速物流信息:订单Id:{0},物流信息:{1}", ComOrder.Id, obj));
                     *  if (Convert.ToInt32(obj["status"]) != 0)
                     *  {
                     *      return result;
                     *  }
                     *  JArray arr = (JArray)JsonConvert.DeserializeObject(obj["result"]["list"].ToString());
                     *  foreach (var item in arr)
                     *  {
                     *      ExpressTrace Express = new ExpressTrace();
                     *      Express.AcceptTime = Convert.ToDateTime(item["time"].ToString());
                     *      Express.AcceptStation = item["status"].ToString().Trim();
                     *      ExpressList.Add(Express);
                     *  }
                     *
                     *  if (Convert.ToInt32(obj["result"]["deliverystatus"]) == 1)
                     *  {
                     *      ExpressNews.shipmentsTime = ExpressList.Min(p => p.AcceptTime);
                     *      ExpressNews.state = "已发货";
                     *      ExpressNews.Remarked = "您的订单已发货,由" + ComOrder.ShipExpCo + "快递配送,请注意物流信息~";
                     *      result.ResultCode = 0;
                     *      result.isSuccess = true;
                     *  }
                     *  else if (Convert.ToInt32(obj["result"]["deliverystatus"]) == 2)
                     *  {
                     *      ExpressNews.shipmentsTime = ExpressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault().AcceptTime;
                     *      ExpressNews.state = "派件中";
                     *      ExpressNews.Remarked = "您的订单已开始派送,请保持电话畅通,确认商品外包装完好后签收~";
                     *      result.ResultCode = 0;
                     *      result.isSuccess = true;
                     *  }
                     *  else
                     *  {
                     *      result.ResultCode = 1;
                     *      result.isSuccess = false;
                     *  }
                     * }
                     * else
                     * {
                     *  if (jdOrderitem != null)
                     *  {
                     *      var jdwuliu = JdHelper.orderTrack(jdOrderitem.JdOrderId);
                     *      if (jdwuliu != null)
                     *      {
                     *          JArray objson = JArray.Parse(jdwuliu);
                     *          foreach (var item in objson)
                     *          {
                     *              ExpressTrace Express = new ExpressTrace();
                     *              Express.AcceptTime = DateTime.Parse(item["msgTime"].ToString());
                     *              Express.AcceptStation = item["content"].ToString().Trim();
                     *              ExpressList.Add(Express);
                     *          }
                     *          var NewExpress = ExpressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault();
                     *          if (NewExpress.AcceptStation.Contains("正在配送") || NewExpress.AcceptStation.Contains("自提"))
                     *          {
                     *              ExpressNews.shipmentsTime = NewExpress.AcceptTime;
                     *              ExpressNews.state = "派件中";
                     *              ExpressNews.Remarked = "您的订单已开始派送,请保持电话畅通,确认商品外包装完好后签收~";
                     *              result.ResultCode = 0;
                     *              result.isSuccess = true;
                     *          }
                     *          else if (NewExpress.AcceptStation.Contains("已签收"))
                     *          {
                     *              result.ResultCode = 1;
                     *              result.isSuccess = false;
                     *          }
                     *          else if (NewExpress.AcceptStation.Contains("出库") || NewExpress != null)
                     *          {
                     *              ExpressNews.shipmentsTime = ExpressList.Min(p => p.AcceptTime);
                     *              ExpressNews.state = "已发货";
                     *              ExpressNews.Remarked = "您的订单已发货,由京东快递配送,请注意物流信息~";
                     *              result.ResultCode = 0;
                     *              result.isSuccess = true;
                     *          }
                     *      }
                     *  }
                     * }*/



                    if (ThirdECommerceHelper.IsJingDongDaKeHu(ComOrder.AppId))
                    {
                        string orderId = commodityOrderId.ToString().ToLower();
                        LogHelper.Info("IsJingDongDaKeHu1--->" + orderId);



                        var jdOrderitem = JdOrderItem.ObjectSet().Where(p => p.CommodityOrderId.ToLower() == orderId).FirstOrDefault();
                        LogHelper.Info("IsJingDongDaKeHu2--->" + orderId);
                        if (jdOrderitem != null)
                        {
                            LogHelper.Info("IsJingDongDaKeHu3--->" + orderId);
                            var jdwuliu = JdHelper.orderTrack(jdOrderitem.JdOrderId);

                            LogHelper.Info("【一条---京东】京东物流[" + JsonHelper.JsonSerializer(jdOrderitem) + "]====返回-->[" + jdwuliu + "]");
                            if (jdwuliu != null)
                            {
                                JArray objson = JArray.Parse(jdwuliu);
                                foreach (var item in objson)
                                {
                                    ExpressTrace Express = new ExpressTrace();
                                    Express.AcceptTime    = DateTime.Parse(item["msgTime"].ToString());
                                    Express.AcceptStation = item["content"].ToString().Trim();
                                    ExpressList.Add(Express);
                                }
                                AddExpressNew(ExpressList, ExpressNews, result);
                            }
                        }
                    }
                    else if (ThirdECommerceHelper.IsWangYiYanXuan(ComOrder.AppId))//网易严选或第三方电商
                    {
                        var yxOrder = YXOrder.ObjectSet().FirstOrDefault(p => p.OrderId == commodityOrderId);
                        if (yxOrder != null)
                        {
                            var express = ThirdECommerceHelper.GetOrderItemExpressTrace(AppId, yxOrder.Id);

                            LogHelper.Info("【一条---严选】网易严选物流[" + JsonHelper.JsonSerializer(yxOrder) + "]===返回-->[" + JsonHelper.JsonSerializer(express) + "]");
                            if (express != null)
                            {
                                if (express.ExpressTraceList != null && express.ExpressTraceList.Count > 0)
                                {
                                    express.ExpressTraceList.ForEach(p =>
                                    {
                                        ExpressTrace Express  = new ExpressTrace();
                                        Express.AcceptTime    = p.Time == null ? DateTime.Now : DateTime.Parse(p.Time);
                                        Express.AcceptStation = p.Desc;
                                        ExpressList.Add(Express);
                                    });
                                    AddExpressNew(ExpressList, ExpressNews, result);
                                }
                            }
                        }
                    }
                    else if (ThirdECommerceHelper.IsSuNingYiGou(ComOrder.AppId))//苏宁店铺
                    {
                        var snOrderitem = SNOrderItem.ObjectSet().FirstOrDefault(p => p.OrderId == commodityOrderId);
                        if (snOrderitem != null)
                        {
                            SNExpressTraceFacade snExpress = new SNExpressTraceFacade();
                            var SuningWuliu = snExpress.GetExpressTrace(commodityOrderId.ToString(), snOrderitem.Id.ToString());

                            LogHelper.Info("【一条---苏宁】苏宁物流[" + JsonHelper.JsonSerializer(snOrderitem) + "]===返回-->[" + JsonHelper.JsonSerializer(SuningWuliu) + "]");
                            if (SuningWuliu != null)
                            {
                                SuningWuliu.ForEach(p =>
                                {
                                    ExpressTrace Express  = new ExpressTrace();
                                    Express.AcceptTime    = p.OperateTime == null ? DateTime.Now : p.OperateTime.Value;
                                    Express.AcceptStation = p.OperateState;
                                    ExpressList.Add(Express);
                                });
                                AddExpressNew(ExpressList, ExpressNews, result);
                            }
                        }
                    }
                    else if (ThirdECommerceHelper.IsFangZheng(ComOrder.AppId))//方正店铺
                    {
                        var FangZhengWuliu = FangZhengSV.FangZheng_Logistics_InfoList(commodityOrderId);
                        LogHelper.Info("【一条---方正】方正物流[" + commodityOrderId + "]===返回-->[" + JsonHelper.JsonSerializer(FangZhengWuliu) + "]");
                        if (FangZhengWuliu != null)
                        {
                            FangZhengWuliu.ExpressTraceList.ForEach(p =>
                            {
                                ExpressTrace Express  = new ExpressTrace();
                                Express.AcceptTime    = DateTime.Parse(p.Time);
                                Express.AcceptStation = p.Desc;
                                ExpressList.Add(Express);
                            });
                            AddExpressNew(ExpressList, ExpressNews, result);
                        }
                    }
                    else
                    {
                        json = Express100SV.GetExpressFromKD100(ComOrder.ExpOrderNo, ComOrder.ShipExpCo);
                        obj  = JObject.Parse(json);
                        LogHelper.Info(string.Format("【一条---快递100】快递100:订单Id:{0},物流信息:{1}", commodityOrderId, obj));
                        if (obj["message"].ToString().ToLower().Equals("ok"))
                        {
                            JArray arr = (JArray)JsonConvert.DeserializeObject(obj["data"].ToString());
                            foreach (var item in arr)
                            {
                                ExpressTrace Express = new ExpressTrace();
                                Express.AcceptTime    = Convert.ToDateTime(item["ftime"].ToString());
                                Express.AcceptStation = item["context"].ToString().Trim();

                                ExpressList.Add(Express);
                            }
                            //快递单当前签收状态,包括0在途中、1已揽收、2疑难、3已签收、4退签、5同城派送中、6退回、7转单等7个状态,其中4-7需要另外开通才有效
                            int deliverystatus = Convert.ToInt32(obj["state"].ToString());
                            if (deliverystatus == 0)
                            {
                                ExpressNews.shipmentsTime = ExpressList.Min(p => p.AcceptTime);
                                ExpressNews.state         = "已发货";
                                ExpressNews.Remarked      = "您的订单已发货,由" + ComOrder.ShipExpCo + "快递配送,请注意物流信息~";
                                result.ResultCode         = 0;
                                result.isSuccess          = true;
                            }
                            else if (deliverystatus == 5)
                            {
                                ExpressNews.shipmentsTime = ExpressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault().AcceptTime;
                                ExpressNews.state         = "派件中";
                                ExpressNews.Remarked      = "您的订单已开始派送,请保持电话畅通,确认商品外包装完好后签收~";
                                result.ResultCode         = 0;
                                result.isSuccess          = true;
                            }
                            else if (deliverystatus == 3)
                            {
                                ExpressNews.shipmentsTime = ExpressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault().AcceptTime;
                                ExpressNews.state         = "已签收";
                                ExpressNews.Remarked      = "您的订单已签收";
                                result.ResultCode         = 0;
                                result.isSuccess          = true;
                            }
                        }
                    }



                    result.Data = ExpressNews;
                    LogHelper.Info("Express100--->result[" + JsonHelper.JsonSerializer(result) + "]");
                    return(result);
                }
                else
                {
                    return(result);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("获取用户最新的订单物流信息信息异常,异常信息:{0}", ex));
                return(result);
            }
        }
Exemple #23
0
        /// <summary>
        /// 修改商城信息状态
        /// </summary>
        /// <returns></returns>
        public ResultDTO UpdateMallApplyExt(Jinher.AMP.BTP.Deploy.CustomDTO.MallApply.MallApplyDTO model)
        {
            ResultDTO dto = null;

            try
            {
                ContextSession contextSession = ContextFactory.CurrentThreadContext;
                var            mallapply      = MallApply.ObjectSet().FirstOrDefault(p => p.Id == model.Id);
                if (mallapply != null)
                {
                    if (!string.IsNullOrWhiteSpace(model.AppId.ToString()) && (!model.AppId.ToString().Contains("00000000-0000-0000-0000-000000000000")))
                    {
                        mallapply.AppId = model.AppId;
                    }
                    if (!string.IsNullOrWhiteSpace(model.EsAppId.ToString()) && (!model.EsAppId.ToString().Contains("00000000-0000-0000-0000-000000000000")))
                    {
                        mallapply.EsAppId = model.EsAppId;
                    }
                    if (!string.IsNullOrWhiteSpace(model.UserId.ToString()) && (!model.UserId.ToString().Contains("00000000-0000-0000-0000-000000000000")))
                    {
                        mallapply.UserId = model.UserId;
                    }
                    if (!string.IsNullOrWhiteSpace(model.AppName))
                    {
                        mallapply.AppName = model.AppName;
                    }
                    if (!string.IsNullOrWhiteSpace(model.EsAppName))
                    {
                        mallapply.EsAppName = model.EsAppName;
                    }
                    mallapply.ModifiedOn = DateTime.Now;
                    if (!string.IsNullOrWhiteSpace(model.State.ToString()))
                    {
                        mallapply.State = new ApplyStateVO {
                            Value = model.State
                        };
                    }
                    if (!string.IsNullOrWhiteSpace(model.ApplyContent))
                    {
                        mallapply.ApplyContent = model.ApplyContent;
                    }
                    if (Convert.ToBoolean(model.CrcAppId))
                    {
                        mallapply.CrcAppId = model.CrcAppId;
                    }
                    if (model.Type.HasValue)
                    {
                        mallapply.Type = model.Type.Value;
                    }
                    mallapply.EntityState = EntityState.Modified;



                    // 同步Supplier表
                    if (model.Type.HasValue)
                    {
                        var supplier = Supplier.ObjectSet().Where(_ => _.EsAppId == mallapply.EsAppId && _.AppId == mallapply.AppId && !_.IsDel).FirstOrDefault();
                        if (supplier != null)
                        {
                            if (supplier.SupplierType != mallapply.Type)
                            {
                                supplier.SupplierType = mallapply.Type;
                                supplier.EntityState  = System.Data.EntityState.Modified;
                                contextSession.SaveObject(supplier);
                            }
                        }
                    }

                    contextSession.SaveChanges();
                    dto = new ResultDTO()
                    {
                        ResultCode = 0, Message = "修改成功", isSuccess = true
                    };
                }
                else
                {
                    dto = new ResultDTO()
                    {
                        ResultCode = 1, Message = "该信息不存在", isSuccess = false
                    };
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("商家信息保存异常。MallApply:{0}", ex.Message));
                dto = new ResultDTO()
                {
                    ResultCode = 1, Message = ex.Message, isSuccess = false
                };
            }
            return(dto);
        }
Exemple #24
0
        /// <summary>
        /// 获取用户最新的所有订单的物流信息
        /// 查询前三条数据
        /// </summary>
        /// <param name="AppId"></param>
        /// <param name="Userid"></param>
        /// <returns></returns>
        public ResultDTO <ListResult <ComOrderExpressNew> > GetUserAllNewOrderExpressExt(Guid AppId, Guid Userid)
        {
            ListResult <ComOrderExpressNew> expressNews = new ListResult <ComOrderExpressNew>();

            expressNews.List = new List <ComOrderExpressNew>();
            ResultDTO <ListResult <ComOrderExpressNew> > result = new ResultDTO <ListResult <ComOrderExpressNew> >()
            {
                isSuccess  = false,
                ResultCode = 1,
                Data       = expressNews
            };
            string  json = string.Empty;
            JObject obj  = null;

            try
            {
                LogHelper.Info("【三条---京东】京东物流[开始调用]AppId=" + AppId + "  Userid=" + Userid + "");
                //获取已发货的订单信息
                //var comOrders = CommodityOrder.ObjectSet().Where(p => p.State == 2 && p.UserId == Userid && p.EsAppId == AppId).OrderByDescending(p => p.ModifiedOn).ToList();
                var comOrders = CommodityOrder.ObjectSet().Where(p => p.State != 0 && p.UserId == Userid && p.EsAppId == AppId).OrderByDescending(p => p.ModifiedOn).Take(3).ToList();
                LogHelper.Info("【三条---京东】京东物流comOrders-->[" + comOrders.Count() + "]");
                if (comOrders != null)
                {
                    List <ExpressTrace> expressList = null;
                    ComOrderExpressNew  expressNew  = null;
                    foreach (var order in comOrders.ToList())
                    {
                        expressList = new List <ExpressTrace>();
                        expressNew  = new ComOrderExpressNew();
                        var OrderItemInfo = OrderItem.ObjectSet().Where(p => p.CommodityOrderId == order.Id).FirstOrDefault();
                        expressNew.CommodityOrderId = order.Id;      //订单id
                        expressNew.Pic = OrderItemInfo.PicturesPath; //首条订单图片
                        //京东信息
                        var commodityOrderId = order.Id.ToString();
                        if (ThirdECommerceHelper.IsJingDongDaKeHu(order.AppId))
                        {
                            //var jdOrderitem = JdOrderItem.ObjectSet().FirstOrDefault(p => p.CommodityOrderId.Contains(commodityOrderId));
                            var query = JdOrderItem.ObjectSet().Where(p => p.CommodityOrderId.Contains(commodityOrderId));

                            //去重后的父单集合
                            var jdOrderList = query.Select(p => new { p.JdOrderId }).GroupBy(p => p.JdOrderId).ToList();

                            if (jdOrderList.Any())
                            {
                                jdOrderList.ForEach(p =>
                                {
                                    var jdwuliu = JdHelper.orderTrack(p.Key);

                                    LogHelper.Info("【三条---京东】京东物流====返回-->[" + jdwuliu + "]");
                                    if (jdwuliu != null)
                                    {
                                        JArray objson = JArray.Parse(jdwuliu);
                                        foreach (var item in objson)
                                        {
                                            ExpressTrace Express  = new ExpressTrace();
                                            Express.AcceptTime    = DateTime.Parse(item["msgTime"].ToString());
                                            Express.AcceptStation = item["content"].ToString().Trim();
                                            expressList.Add(Express);
                                        }
                                        AddExpressNewAll(expressNews, expressList, expressNew, "京东");
                                    }
                                });
                            }
                        }
                        else if (ThirdECommerceHelper.IsWangYiYanXuan(order.AppId))//网易严选或第三方电商
                        {
                            var orderItem = OrderItem.ObjectSet().FirstOrDefault(p => p.CommodityOrderId == order.Id);
                            var express   = ThirdECommerceHelper.GetOrderItemExpressTrace(order.AppId, orderItem.Id);
                            LogHelper.Info("【三条---严选】网易严选物流-->[" + JsonHelper.JsonSerializer(express) + "]");
                            if (express != null)
                            {
                                if (express.ExpressTraceList != null && express.ExpressTraceList.Count > 0)
                                {
                                    express.ExpressTraceList.ForEach(p =>
                                    {
                                        ExpressTrace Express  = new ExpressTrace();
                                        Express.AcceptTime    = p.Time == null ? DateTime.Now : DateTime.Parse(p.Time);
                                        Express.AcceptStation = p.Desc;
                                        expressList.Add(Express);
                                    });

                                    string name      = "严选";
                                    var    yxExpress = YXExpressTrace.ObjectSet().Where(p => p.OrderId == order.Id).FirstOrDefault();
                                    if (yxExpress != null)
                                    {
                                        name = yxExpress.ExpressCompany;
                                    }
                                    AddExpressNewAll(expressNews, expressList, expressNew, name);
                                }
                            }
                        }
                        else if (ThirdECommerceHelper.IsSuNingYiGou(order.AppId))//苏宁店铺
                        {
                            var snOrderitem = SNOrderItem.ObjectSet().FirstOrDefault(p => p.OrderId == order.Id);

                            SNExpressTraceFacade snExpress = new SNExpressTraceFacade();
                            var SuningWuliu = snExpress.GetExpressTrace(order.Id.ToString(), snOrderitem.OrderItemId.ToString());
                            LogHelper.Info("【三条---苏宁】苏宁物流[" + order.Id.ToString() + "," + snOrderitem.OrderItemId.ToString() + "]===返回-->[" + JsonHelper.JsonSerializer(SuningWuliu) + "]");
                            if (SuningWuliu != null)
                            {
                                SuningWuliu.ForEach(p =>
                                {
                                    ExpressTrace Express  = new ExpressTrace();
                                    Express.AcceptTime    = p.OperateTime == null ? DateTime.Now : p.OperateTime.Value;
                                    Express.AcceptStation = p.OperateState;
                                    expressList.Add(Express);
                                });
                                AddExpressNewAll(expressNews, expressList, expressNew, "苏宁");
                            }
                        }
                        else if (ThirdECommerceHelper.IsFangZheng(order.AppId))//方正店铺
                        {
                            var FangZhengWuliu = FangZhengSV.FangZheng_Logistics_InfoList(order.Id);
                            LogHelper.Info("【三条---方正】方正物流[" + commodityOrderId + "]===返回-->[" + JsonHelper.JsonSerializer(FangZhengWuliu) + "]");
                            if (FangZhengWuliu != null)
                            {
                                FangZhengWuliu.ExpressTraceList.ForEach(p =>
                                {
                                    ExpressTrace Express  = new ExpressTrace();
                                    Express.AcceptTime    = DateTime.Parse(p.Time);
                                    Express.AcceptStation = p.Desc;
                                    expressList.Add(Express);
                                });
                                AddExpressNewAll(expressNews, expressList, expressNew, "方正");
                            }
                        }
                        else
                        {
                            if (order.ExpOrderNo != null)
                            {
                                json = Express100SV.GetExpressFromKD100(order.ExpOrderNo, order.ShipExpCo);
                                obj  = JObject.Parse(json);
                                LogHelper.Info(string.Format("【三条---快递100】快递100:订单Id:{0},物流信息:{1}", order.Id, obj));
                                if (obj["message"].ToString().ToLower().Equals("ok"))
                                {
                                    JToken arr = obj["data"];
                                    foreach (var item in arr)
                                    {
                                        ExpressTrace Express = new ExpressTrace();
                                        Express.AcceptTime    = Convert.ToDateTime(item["ftime"].ToString());
                                        Express.AcceptStation = item["context"].ToString().Trim();
                                        expressList.Add(Express);
                                    }
                                    LogHelper.Info(string.Format("【三条---快递100】arr[{0}]--->expressList[{1}]", arr.Count(), expressList.Count));



                                    //快递单当前签收状态,包括0在途中、1已揽收、2疑难、3已签收、4退签、5同城派送中、6退回、7转单等7个状态,其中4-7需要另外开通才有效
                                    int deliverystatus = Convert.ToInt32(obj["state"].ToString());
                                    LogHelper.Info("【三条---快递100】deliverystatus-->[" + deliverystatus + "]");
                                    if (deliverystatus == 0)
                                    {
                                        expressNew.shipmentsTime = expressList.Min(p => p.AcceptTime);
                                        expressNew.state         = "已发货";
                                        expressNew.Remarked      = "您的订单已发货,由" + order.ShipExpCo + "快递配送,请注意物流信息~";
                                        expressNews.List.Add(expressNew);
                                    }
                                    else if (deliverystatus == 5)
                                    {
                                        expressNew.shipmentsTime = expressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault().AcceptTime;
                                        expressNew.state         = "派件中";
                                        expressNew.Remarked      = "您的订单已开始派送,请保持电话畅通,确认商品外包装完好后签收~";
                                        expressNews.List.Add(expressNew);
                                    }
                                    else if (deliverystatus == 3)
                                    {
                                        expressNew.shipmentsTime = expressList.OrderByDescending(p => p.AcceptTime).FirstOrDefault().AcceptTime;
                                        expressNew.state         = "已签收";
                                        expressNew.Remarked      = "您的订单已签收";
                                        expressNews.List.Add(expressNew);
                                    }
                                    else
                                    {
                                        continue;
                                    }
                                }
                            }
                        }
                    }
                    expressNews.Count = expressNews.List == null ? 0 : expressNews.List.Count();
                    if (expressNews.List.Any())
                    {
                        ListResult <ComOrderExpressNew> express = new ListResult <ComOrderExpressNew>();
                        express.List = new List <ComOrderExpressNew>();
                        express.List = expressNews.List.Take(3).ToList();
                        //取前三条
                        result.Data       = express;
                        result.isSuccess  = true;
                        result.ResultCode = 0;
                    }
                    else
                    {
                        result.Data       = expressNews;
                        result.isSuccess  = false;
                        result.ResultCode = 1;
                    }
                    LogHelper.Info(string.Format("获取用户最新的所有订单物流信息返回数据:{0}", JsonHelper.JsonSerializer(result)));
                    return(result);
                }
                else
                {
                    return(result);
                }
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("获取用户最新的所有订单物流信息信息异常,异常信息:{0}", ex));
                return(result);
            }
        }
Exemple #25
0
 public void DeleteResult(ResultDTO resultDTO)
 {
     Database.Result.Delete(resultDTO.Id);
     Database.Save();
 }
Exemple #26
0
        public ResultDTO <List <Jinher.AMP.YJB.Deploy.CustomDTO.YJCBalanceResponseDTO> > YJCBalanceBatch(List <PayItem> yjcList)
        {
            ResultDTO <List <Jinher.AMP.YJB.Deploy.CustomDTO.YJCBalanceResponseDTO> > result = null;

            try
            {
                var facade = new Jinher.AMP.YJB.ISV.Facade.YJCardFacade();
                result = facade.YJCBalanceBatch(yjcList);
            }
            catch (Exception ex)
            {
                LogHelper.Error("YJBSV.GetUserYJCouponItemByOrderId,获取用户已领取易捷抵用券(单品)失败。 输入:" + JsonHelper.JsonSerializer(yjcList), ex);
            }
            if (result != null)
            {
                return(result);
            }
            else
            {
                LogHelper.Error("YJBSV.GetUserYJCouponItemByOrderId服务失败,获取用户已领取易捷抵用券(单品)失败。 输入:" + JsonHelper.JsonSerializer(yjcList) + ",返回:" + JsonHelper.JsonSerializer(result));
                return(null);
            }
        }
Exemple #27
0
        public void TestMethod1()
        {
            //查询
            DistributorSearchDTO dto = new DistributorSearchDTO();

            dto.page = 1;
            dto.rows = 1;
            string dtostr = Common.TransformHelper.ConvertDTOTOBase64JsonString(dto);
            var    pp     = DistributorManagermentController.GetDistributorList(dtostr);

            //新增
            DistributorOperateDTO dto1 = new DistributorOperateDTO();

            dto1.DistributorID   = Guid.NewGuid();
            dto1.DistributorCode = "csjxsTest";
            dto1.DistributorName = "测试经销商Test";
            dto1.InvoiceCode     = "测试发票编号地址Test";
            dto1.DeliverCode     = "测试送货编号地址Test";
            dto1.Office          = "办事处";
            dto1.CSRNameReagent  = "CRS用户名SJ";
            dto1.CSRNameD        = "CRS用户名B";
            dto1.CSRNameB        = "CRS用户名D";
            dto1.IsActive        = true;
            dto1.CreateUser      = "******";
            dto1.CreateTime      = DateTime.Now;
            var                pp1        = DistributorManagermentController.AddDistributor(dto1);
            string             strResult1 = pp1.Content.ReadAsStringAsync().Result;
            ResultDTO <object> bl         = JsonConvert.DeserializeObject <ResultDTO <object> >(strResult1);

            Assert.IsTrue(bl.SubmitResult);

            //查询
            DistributorSearchDTO dto2 = new DistributorSearchDTO();

            dto2.SearchText = "测试经销商Test";
            dto2.page       = 1;
            dto2.rows       = 1;
            string dto2str    = Common.TransformHelper.ConvertDTOTOBase64JsonString(dto2);
            var    pp2        = DistributorManagermentController.GetDistributorList(dto2str);
            string strResult2 = pp2.Content.ReadAsStringAsync().Result;
            ResultDTO <List <DistributorResultDTO> > result = JsonConvert.DeserializeObject <ResultDTO <List <DistributorResultDTO> > >(strResult2);
            List <DistributorResultDTO> list1 = result.Object;

            //修改
            DistributorOperateDTO dto3 = new DistributorOperateDTO();

            dto3.UpType          = 1;
            dto3.DistributorID   = list1.Select(s => s.DistributorID).FirstOrDefault();
            dto3.DistributorCode = "csjxsTest";
            dto3.DistributorName = "修改测试经销商Test";
            dto3.InvoiceCode     = "修改测试发票编号地址Test";
            dto3.DeliverCode     = "修改测试送货编号地址Test";
            dto3.Office          = "修改办事处";
            dto3.CSRNameReagent  = "修改CRS用户名SJ";
            dto3.CSRNameD        = "修改CRS用户名B";
            dto3.CSRNameB        = "修改CRS用户名D";
            dto3.IsActive        = true;
            dto3.ModifyUser      = "******";
            dto3.ModifyTime      = DateTime.Now;
            var                pp3        = DistributorManagermentController.UpdateDistributor(dto3);
            string             strResult3 = pp3.Content.ReadAsStringAsync().Result;
            ResultDTO <object> bl1        = JsonConvert.DeserializeObject <ResultDTO <object> >(strResult3);

            Assert.IsTrue(bl1.SubmitResult);

            //停启用经销商
            DistributorOperateDTO dto4 = new DistributorOperateDTO();

            dto4.UpType        = 2;
            dto4.DistributorID = list1.Select(s => s.DistributorID).FirstOrDefault();
            dto4.IsActive      = true;
            dto4.ModifyUser    = "******";
            dto4.ModifyTime    = DateTime.Now;
            var                pp4        = DistributorManagermentController.UpdateDistributor(dto4);
            string             strResult4 = pp4.Content.ReadAsStringAsync().Result;
            ResultDTO <object> bl2        = JsonConvert.DeserializeObject <ResultDTO <object> >(strResult4);

            Assert.IsTrue(bl2.SubmitResult);

            //删除
            DistributorOperateDTO dto5 = new DistributorOperateDTO();

            dto5.DistributorID = list1.Select(s => s.DistributorID).FirstOrDefault();
            string             dto4str    = Common.TransformHelper.ConvertDTOTOBase64JsonString(dto5);
            var                pp5        = DistributorManagermentController.DeleteDistributor(dto4str);
            string             strResult5 = pp5.Content.ReadAsStringAsync().Result;
            ResultDTO <object> bl3        = JsonConvert.DeserializeObject <ResultDTO <object> >(strResult5);

            Assert.IsTrue(bl3.SubmitResult);
        }
Exemple #28
0
        public HttpResponseMessage UpdateAvatar(HttpRequestMessage request)
        {
            ResultDTO result = new ResultDTO();

            try
            {
                var    requestContext = HttpContext.Current.Request;
                var    pathFolder     = System.Web.Hosting.HostingEnvironment.MapPath(Common.GetConfigValue("PathAvatarFolder"));
                string sessionKey     = requestContext.Form.Get("SessionKey");
                result = Common.CheckLogin(sessionKey);
                if (result.StatusCode != 0)
                {
                    return(CreateHttpResponse(request, () =>
                    {
                        var response = request.CreateResponse(HttpStatusCode.OK, result);
                        return response;
                    }));
                }


                if (requestContext.Files.Count < 1)
                {
                    result.StatusCode = int.Parse(RetCodeMsg.ECS0028, 0);
                    result.SetContentMsg();
                }
                else
                {
                    string fileName         = requestContext.Files[0].FileName;
                    string ext              = System.IO.Path.GetExtension(fileName);
                    string originalFileName = System.IO.Path.GetFileName(fileName);

                    // Save to file temp
                    var tempFileName = Guid.NewGuid() + ext;

                    //To save file, use SaveAs method
                    if (System.IO.File.Exists(pathFolder + tempFileName))
                    {
                        System.IO.File.Delete(pathFolder + tempFileName);
                    }

                    //File will be saved in application root
                    requestContext.Files[0].SaveAs(pathFolder + tempFileName);
                    RequestUpdateAvatarDTO olalaObj = new RequestUpdateAvatarDTO();
                    olalaObj.SessionKey     = sessionKey;
                    olalaObj.AvatarFileName = tempFileName;
                    return(CreateHttpResponse(request, () =>
                    {
                        HttpResponseMessage response;
                        response = request.CreateResponse(HttpStatusCode.OK, _service.UpdateAvatar(olalaObj));
                        return response;
                    }));

                    //result.StatusCode = 0;
                    //result.SetContentMsg();
                    //result.Details = tempFileName;
                }
            }
            catch (Exception ex)
            {
                result.StatusCode = 9999;
                result.Details    = ex.Message;

                return(CreateHttpResponse(request, () =>
                {
                    var response = request.CreateResponse(HttpStatusCode.OK, result);
                    return response;
                }));
            }

            return(CreateHttpResponse(request, () =>
            {
                var response = request.CreateResponse(HttpStatusCode.OK, result);
                return response;
            }));
        }
Exemple #29
0
        public ResultDTO CreateInvoic(ContextSession contextSession, CommodityOrder commodityOrder, int isRefund)
        {
            LogHelper.Info(string.Format("开始进入开票接口。订单ID(commodityOrder.id:{0}), 是否是开正票(isRefund:{1})", commodityOrder.Id, isRefund));
            ResultDTO resultDto = new ResultDTO()
            {
                ResultCode = 1
            };

            try
            {
                string fMsgCode = "";
                string fMsg     = "";

                string strXml = CreateXmlFile(commodityOrder, isRefund);
                if (strXml == "")
                {
                    resultDto.Message = "保存失败";
                    return(resultDto);
                }
                //EInvoiceServiceClient eInvoice = new EInvoiceServiceClient("EInvoiceServicePort");
                //var returnInfo = eInvoice.submitEInvoiceInfo(strXml);
                //LogHelper.Info(string.Format("开票接口返回xml结果。XML:{0}", returnInfo));
                //<ReturnMsg> <msgCode>0000</msgCode> <msg>发票开具数据保存成功</msg> </ReturnMsg>
                Jinher.AMP.YJBJMQ.Deploy.CustomDTO.ResultDTO returnInfo = YJBJMQSV.CreateInvoic(strXml);

                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(returnInfo.Message);
                XmlNode rootNode = xmlDoc.SelectSingleNode("ReturnMsg");
                if (rootNode != null)
                {
                    foreach (XmlNode xxNode in rootNode.ChildNodes)
                    {
                        if ("msgCode".Equals(xxNode.Name))
                        {
                            fMsgCode = xxNode.InnerText;
                        }
                        else if ("msg".Equals(xxNode.Name))
                        {
                            fMsg = xxNode.InnerText;
                        }
                    }
                }

                LogHelper.Info(string.Format("开票接口返回xml结果。fMsgCode:{0},fMsg:{1}", fMsgCode, fMsg));

                HTJSInvoice htjsInvoice = HTJSInvoice.FindByID(commodityOrder.Id);
                //新增
                if (htjsInvoice == null)
                {
                    htjsInvoice = new HTJSInvoice
                    {
                        Id          = commodityOrder.Id,
                        SubId       = commodityOrder.SubId,
                        SubTime     = DateTime.Now,
                        SwNo        = "jh" + commodityOrder.Code,
                        RefundType  = 0,
                        ModifiedOn  = DateTime.Now,
                        FMsgCode    = fMsgCode,
                        FMsg        = fMsg,
                        SMsgCode    = "1111",//给下载发票一个默认错误码
                        EntityState = EntityState.Added
                    };
                }
                //补发 处理返回错误码的情况
                else
                {
                    if (isRefund == 0)
                    {
                        htjsInvoice.SwNo = "jh" + commodityOrder.Code;
                    }
                    else if (isRefund == 1)
                    {
                        htjsInvoice.SwNo     = "tk" + commodityOrder.Code;
                        htjsInvoice.SMsgCode = "1111"; //给下载发票一个默认错误码
                    }
                    else if (isRefund == 2)
                    {
                        htjsInvoice.SwNo     = "pr" + commodityOrder.Code;
                        htjsInvoice.SMsgCode = "1111"; //给下载发票一个默认错误码
                    }
                    htjsInvoice.RefundType  = isRefund;
                    htjsInvoice.ModifiedOn  = DateTime.Now;
                    htjsInvoice.FMsgCode    = fMsgCode;
                    htjsInvoice.FMsg        = fMsg;
                    htjsInvoice.EntityState = EntityState.Modified;
                }
                contextSession.SaveObject(htjsInvoice);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("调用开票接口保存相关的返回信息异常。订单id:{0}", commodityOrder.Id), ex);
                resultDto.Message = "处理异常";
            }
            return(resultDto);
        }
Exemple #30
0
        public ActionResult PetCreate([FromForm] PetCO request)
        {
            var sonuc = new ResultDTO();

            if (request == null)
            {
                throw new PetClinicAppointmentBadRequestException("You have not sent any data!");
            }

            if (string.IsNullOrEmpty(request.Name))
            {
                throw new PetClinicAppointmentBadRequestException("Pet name cannot be empty!");
            }

            if (string.IsNullOrEmpty(request.PlaceOfBirth))
            {
                throw new PetClinicAppointmentBadRequestException("Pet place of birth cannot be empty!");
            }

            if (string.IsNullOrEmpty(request.Birthdate.ToLongDateString()))
            {
                throw new PetClinicAppointmentBadRequestException("Pet birthdate cannot be empty!");
            }

            if (request.UserGuid == null)
            {
                throw new PetClinicAppointmentBadRequestException("User guid cannot be empty!");
            }

            var user = _userService.GetByGuid(request.UserGuid);

            if (user == null)
            {
                throw new PetClinicAppointmentNotFoundException("User not found!");
            }

            var picturePath = Path.Combine("Assets", "defaultPet.jpeg");

            var dto = new PetDTO()
            {
                Guid        = Guid.NewGuid(),
                Deleted     = false,
                Actived     = true,
                CreatedDate = DateTime.Now,
                DogumTarihi = request.Birthdate,
                DogumYeri   = request.PlaceOfBirth,
                Name        = request.Name,
                User        = null,
                UserId      = user.Id,
                Resim       = picturePath
            };

            var durum = _petService.Create(dto);

            if (durum > 0)
            {
                sonuc.Status = EDurum.SUCCESS;
                sonuc.Message.Add(new MessageDTO()
                {
                    Code        = HttpStatusCode.OK,
                    Status      = EDurum.SUCCESS,
                    Description = "Pet was created successfully."
                });
                sonuc.Data = new { pet = new { dto.Guid } };
            }
            else
            {
                throw new PetClinicAppointmentBadRequestException("Error adding pet!");
            }

            return(Ok(sonuc));
        }
Exemple #31
0
        public ResultDTO DownloadInvoic(CommodityOrder commodityOrder, int isRefund, ContextSession contextSession)
        {
            ResultDTO resultDto = new ResultDTO()
            {
                ResultCode = 1
            };

            try
            {
                string fpdm       = "";
                string fphm       = "";
                string kprq       = "";
                string pdfContent = "";
                string pdfMd5     = "";
                string msgCode    = "";
                string msg        = "";

                XmlDocument xmlDoc = new XmlDocument();
                //创建类型声明节点
                XmlNode node = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "");
                xmlDoc.AppendChild(node);
                //创建根节点
                XmlNode root = xmlDoc.CreateElement("InvoInfo");
                xmlDoc.AppendChild(root);
                if (isRefund == 0)
                {
                    CreateNode(xmlDoc, root, "swno", "jh" + commodityOrder.Code); //流水号
                }
                else if (isRefund == 1)
                {
                    CreateNode(xmlDoc, root, "swno", "tk" + commodityOrder.Code); //流水号
                }
                else if (isRefund == 2)
                {
                    CreateNode(xmlDoc, root, "swno", "pr" + commodityOrder.Code); //流水号
                }
                CreateNode(xmlDoc, root, "saleTax", CustomConfig.saleTax);        //销方税号    测试税号:110101TRDX8RQU1
                LogHelper.Info(string.Format("下载电子发票接口所需xml节点。电子发票订单号:{0},xmlContent:{1}", commodityOrder.Id, xmlDoc.InnerXml));

                string strXml = xmlDoc.InnerXml;
                //EInvoiceServiceClient eInvoice = new EInvoiceServiceClient("EInvoiceServicePort");
                //var returnInfo = eInvoice.downloadEInvoiceInfo(strXml);
                //LogHelper.Info(string.Format("下载电子发票接口返回xml结果。XML:{0}", returnInfo));
                Jinher.AMP.YJBJMQ.Deploy.CustomDTO.ResultDTO returnInfo = YJBJMQSV.DownloadInvoic(strXml);

                xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(returnInfo.Message);
                XmlNode rootNode = xmlDoc.SelectSingleNode("DownloadInfo");
                if (rootNode != null)
                {
                    foreach (XmlNode xxNode in rootNode.ChildNodes)
                    {
                        if ("fpdm".Equals(xxNode.Name))
                        {
                            fpdm = xxNode.InnerText;
                        }
                        else if ("fphm".Equals(xxNode.Name))
                        {
                            fphm = xxNode.InnerText;
                        }
                        else if ("kprq".Equals(xxNode.Name))
                        {
                            kprq = xxNode.InnerText;
                        }
                        else if ("pdfContent".Equals(xxNode.Name))
                        {
                            pdfContent = xxNode.InnerText;
                        }
                        else if ("pdfMd5".Equals(xxNode.Name))
                        {
                            pdfMd5 = xxNode.InnerText;
                        }
                    }
                }

                XmlNode returnMsgnode = xmlDoc.SelectSingleNode("DownloadInfo/returnMsg");
                if (returnMsgnode != null)
                {
                    foreach (XmlNode xxNode in returnMsgnode.ChildNodes)
                    {
                        if ("msgCode".Equals(xxNode.Name))
                        {
                            msgCode = xxNode.InnerText;
                        }
                        else if ("msg".Equals(xxNode.Name))
                        {
                            msg = xxNode.InnerText;
                        }
                    }
                }

                LogHelper.Info(string.Format(
                                   "下载电子发票接口返回xml结果。fpdm:{0},fphm:{1},kprq:{2},pdfContent:{3},pdfMd5:{4},msgCode:{5},msg:{6},电子发票订单号:{7}",
                                   fpdm, fphm, kprq, pdfContent, pdfMd5, msgCode, msg, commodityOrder.Id));

                HTJSInvoice htjsInvoice = HTJSInvoice.FindByID(commodityOrder.Id);
                htjsInvoice.Fpdm        = fpdm;
                htjsInvoice.Fphm        = fphm;
                htjsInvoice.Kprq        = Convert.ToDateTime(kprq);
                htjsInvoice.PdfContent  = pdfContent;
                htjsInvoice.PdfMd5      = pdfMd5;
                htjsInvoice.SMsgCode    = msgCode;
                htjsInvoice.SMsg        = msg;
                htjsInvoice.EntityState = EntityState.Modified;
                contextSession.SaveObject(htjsInvoice);
            }
            catch (Exception ex)
            {
                LogHelper.Error(string.Format("调用下载电子发票接口保存相关的返回信息异常。订单id:{0}", commodityOrder.Id), ex);
                resultDto.Message = "处理异常";
            }
            return(resultDto);
        }
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <Jinher.AMP.BTP.Deploy.ExpressOrderTemplateDTO> SaveExt(Jinher.AMP.BTP.Deploy.ExpressOrderTemplateDTO dto)
        {
            ResultDTO <ExpressOrderTemplateDTO> result = new ResultDTO <ExpressOrderTemplateDTO>()
            {
                isSuccess = true
            };

            if (dto == null || dto.AppId == Guid.Empty || string.IsNullOrEmpty(dto.TemplateName) || string.IsNullOrEmpty(dto.ExpressCode) || (string.IsNullOrEmpty(dto.ExpressImage) && dto.Id == Guid.Empty) || dto.Width < 0 || dto.Height < 0)
            {
                result.isSuccess = false;
                result.Message   = "参数错误";
                return(result);
            }

            try
            {
                dto.TemplateName = dto.TemplateName.Replace(" ", "");

                var model = ExpressOrderTemplate.ObjectSet().Where(d => d.TemplateName == dto.TemplateName && d.AppId == dto.AppId && d.Status == 0 && d.TemplateType == 1 && d.Id != dto.Id).FirstOrDefault();
                if (model != null)
                {
                    result.isSuccess = false;
                    result.Message   = "重复名称";
                }
                else
                {
                    if (dto.Id != Guid.Empty)
                    {
                        model = ExpressOrderTemplate.ObjectSet().Where(d => d.Id == dto.Id).FirstOrDefault();
                        if (model != null)
                        {
                            model.TemplateName = dto.TemplateName;
                            model.ExpressCode  = dto.ExpressCode;
                            model.Width        = dto.Width;
                            model.Height       = dto.Height;
                            if (!string.IsNullOrEmpty(dto.ExpressImage))
                            {
                                model.ExpressImage = dto.ExpressImage;
                            }
                            model.ModifiedOn  = DateTime.Now;
                            model.EntityState = EntityState.Modified;
                            ContextFactory.CurrentThreadContext.SaveChanges();
                        }
                        else
                        {
                            result.isSuccess = false;
                            result.Message   = "数据不存在";
                        }
                    }
                    else
                    {
                        dto.Id            = Guid.NewGuid();
                        dto.Status        = 0;
                        dto.TemplateType  = 1;
                        dto.CreateTime    = DateTime.Now;
                        dto.ModifiedOn    = dto.CreateTime;
                        model             = ExpressOrderTemplate.FromDTO(dto);
                        model.EntityState = EntityState.Added;
                        ContextFactory.CurrentThreadContext.SaveObject(model);
                        ContextFactory.CurrentThreadContext.SaveChanges();
                    }
                }
                if (model != null)
                {
                    result.Data = model.ToEntityData();
                }
                else
                {
                    result.Data = dto;
                }
            }
            catch (Exception ex)
            {
                result.isSuccess = false;
                result.Message   = "保存异常";
                LogHelper.Error("保存模板异常", ex);
            }

            return(result);
        }
Exemple #33
0
        /// <summary>
        /// 获取易捷北京下所有店铺信息
        ///  </summary>
        /// <returns></returns>
        public Jinher.AMP.BTP.Deploy.CustomDTO.ResultDTO <System.Collections.Generic.List <Jinher.AMP.BTP.Deploy.CustomDTO.YJBJAppInfo> > GetYJAppInfoExt(int pageIndex)
        {
            LogHelper.Debug("进入客服服务,获取易捷北京下所有店铺信息:请求时间:" + DateTime.Now);
            ResultDTO <List <YJBJAppInfo> > Result = new ResultDTO <List <YJBJAppInfo> > {
                isSuccess = false, Message = "获取失败"
            };

            try
            {
                int pageSize  = 100;
                var YJAppInfo = MallApply.ObjectSet().Where(p => p.EsAppId == Jinher.AMP.YJB.Deploy.CustomDTO.YJBConsts.YJAppId).OrderBy(o => o.SubTime).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
                if (!YJAppInfo.Any())
                {
                    Result.Message = "未获取到任何数据";
                    return(Result);
                }
                List <YJBJAppInfo> YJAppList = new List <YJBJAppInfo>();
                foreach (var item in YJAppInfo)
                {
                    YJBJAppInfo AppInfo = new YJBJAppInfo();
                    AppInfo.appId   = item.AppId;
                    AppInfo.AppName = item.AppName;
                    if (item.State.Value == 2)
                    {
                        AppInfo.state = 0;
                    }
                    else
                    {
                        AppInfo.state = 1;
                    }
                    if (item.Type == 0)
                    {
                        AppInfo.type = "自营他配";
                    }
                    else if (item.Type == 1)
                    {
                        AppInfo.type = "第三方";
                    }
                    else if (item.Type == 2)
                    {
                        AppInfo.type = "自营自配自采";
                    }
                    else if (item.Type == 3)
                    {
                        AppInfo.type = "自营自配统采";
                    }
                    else
                    {
                        AppInfo.type = "未知类型";
                    }
                    YJAppList.Add(AppInfo);
                }
                Result.Data      = YJAppList;
                Result.isSuccess = true;
                Result.Message   = "获取成功";
            }
            catch (Exception ex)
            {
                Result.Message = "获取异常";
                LogHelper.Error("CustomSV.GetAppSceneContentExt。根据appId获取商家的移动坐席数据:", ex);
            }
            return(Result);
        }