Esempio n. 1
0
        public bool Update(CsUsers model)
        {
            var strSql = new StringBuilder();

            strSql.Append("UPDATE CrabShop.dbo.[CsUsers] SET ");
            strSql.Append("UserName = @UserName,UserPhone = @UserPhone,UserSex = @UserSex,UserState = @UserState,OpenId = @OpenId,Remarks = @Remarks,UserBalance = @UserBalance,TotalWight = @TotalWight");
            strSql.Append(" WHERE UserId = @UserId");
            return(DbClient.Excute(strSql.ToString(), model) > 0);
        }
Esempio n. 2
0
        public int Add(CsUsers model)
        {
            var strSql = new StringBuilder();

            strSql.Append("INSERT INTO CrabShop.dbo.[CsUsers] (");
            strSql.Append("UserName,UserPhone,UserSex,UserState,OpenId,Remarks,UserBalance,TotalWight");
            strSql.Append(") VALUES (");
            strSql.Append("@UserName,@UserPhone,@UserSex,@UserState,@OpenId,@Remarks,@UserBalance,@TotalWight);");
            strSql.Append("SELECT @@IDENTITY");
            return(DbClient.ExecuteScalar <int>(strSql.ToString(), model));
        }
Esempio n. 3
0
        public IHttpActionResult GetUserInfo(string openId)
        {
            CsUsers user = _csUsersBll.GetModel(openId);

            if (user != null)
            {
                return(Json(new
                {
                    status = true,
                    user
                }));
            }
            LogHelper.Log("public IHttpActionResult GetAddress", "openId 未能查询到用户信息");
            return(Json(new
            {
                status = false
            }));
        }
Esempio n. 4
0
        public IHttpActionResult GetAddress(string openId)
        {
            CsUsers user = _csUsersBll.GetModel(openId);

            if (user != null)
            {
                //根据userId查询出发件信息和收获地址信息
                List <CsSend>    sendList = _csSendBll.GetModelList(" and UserId=" + user.UserId).OrderBy(x => x.IsDefault).ThenBy(x => x.SendId).ToList();
                List <CsAddress> addressList = _csAddressBll.GetModelList(" and UserId=" + user.UserId + " and AddressState=1 ").OrderBy(x => x.IsDefault).ThenBy(x => x.AddressId).ToList();
                CsDistrictBll    disBLL = new CsDistrictBll();
                int firstPrice = 0, fllowPrice = 0;

                if (addressList.Count > 0)
                {
                    string     province = addressList[0].Details.Split('&')[0];
                    CsDistrict district = disBLL.GetModel(" Name ='" + province + "'");
                    if (district != null)
                    {
                        firstPrice = district.FirstPrice;
                        fllowPrice = district.FllowPrice;
                    }
                }

                return(Json(new
                {
                    status = true,
                    user,
                    sendList,
                    addressList,
                    firstPrice,
                    fllowPrice
                }));
            }
            LogHelper.Log("public IHttpActionResult GetAddress-------openId:" + openId, "openId 未能查询到用户信息");
            return(Json(new
            {
                status = false,
                user = "",
                sendList = "",
                addressList = "",
                firstPrice = 0,
                fllowPrice = 0
            }));
        }
Esempio n. 5
0
        public IHttpActionResult AddUser(CsUsers user)
        {
            user.UserBalance = 0;
            user.TotalWight  = 0;
            user.UserState   = 1;
            int number = 0;
            //根据手机号先关联
            CsUsers oldUser = _csUsersBll.GetModelByTelPhone(user.UserPhone);

            if (oldUser != null)
            {
                oldUser.OpenId = user.OpenId;
                bool bl = _csUsersBll.Update(oldUser);
                if (bl)
                {
                    number = oldUser.UserId;
                }
            }
            else
            {
                number = _csUsersBll.Add(user);
            }
            if (number > 0)
            {
                return(Json(new
                {
                    status = true,
                    userid = number
                }));
            }
            else
            {
                return(Json(new
                {
                    status = false,
                    userid = 0
                }));
            }
        }
Esempio n. 6
0
        public ActionResult ImportCsOrder(string path)
        {
            path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + path.Replace("..", "");
            var fileArr  = path.Split(new[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
            var fileName = fileArr[fileArr.Length - 1];
            IList <CsOrderView.CsOrderImport> orders;

            try
            {
                orders = NpoiHelper.ReadExcel(path.Replace("/" + fileName, ""), fileName).ToList <CsOrderView.CsOrderImport>();
            }
            catch (Exception ex)
            {
                LogHelper.Log(ex.ToJson(), "execl文件读取失败");
                return(Json(new ResModel
                {
                    ResStatus = ResStatue.No,
                    Data = "execl 文件读取失败,请确认文件数据正确, 请检查日志描述"
                }));
            }
            if (!orders.Any())
            {
                return(Json(new ResModel
                {
                    ResStatus = ResStatue.No,
                    Data = "当前Excel中没有数据,请确认文件是否包含规定完整的数据"
                }));
            }
            var users        = _csUsersBll.GetModelList($" AND (UserName IN ('{string.Join("','", orders.Select(x => x.收货人))}') OR UserPhone IN ('{string.Join("','", orders.Select(x => x.收货人电话))}'))");
            var products     = _csProductsBll.GetModelList("");
            var parts        = _csPartsBll.GetModelList("");
            var data         = new List <CsOrderView.CsOrderAndDetail>();
            var item         = new CsOrderView.CsOrderAndDetail();
            var lastType     = ExcelRow.Other;   // 记录上一行状态
            var endEmpty     = new List <int>(); // 记录尾部空行
            var overEndEmpty = false;            // 尾部空行是否结束

            for (var i = orders.Count - 1; i >= 0; i--)
            {
                var type = ExcelRowType(orders[i]);
                if (type == ExcelRow.Empty &&
                    !overEndEmpty)
                {
                    endEmpty.Add(i);
                }
                else
                {
                    overEndEmpty = true;
                }
                if (type == ExcelRow.Empty &&
                    lastType == ExcelRow.Empty &&
                    overEndEmpty)
                {
                    return(Json(new ResModel
                    {
                        ResStatus = ResStatue.No,
                        Data = "当前Excel中,两个订单信息中间,存在连续多空行.请仔细确认数据, 数据一旦上传将无法撤回"
                    }));
                }
                lastType = type;
            }

            // 将尾部空行删除只保留一个
            endEmpty.ForEach(x => orders.RemoveAt(x));
            orders.Add(new CsOrderView.CsOrderImport());

            foreach (var order in orders)
            {
                var type = ExcelRowType(order);
                if (type == ExcelRow.Other)
                {
                    return(Json(new ResModel
                    {
                        ResStatus = ResStatue.No,
                        Data = "当前Excel中不满足格式的单元格,请仔细确认数据, 数据一旦上传将无法撤回"
                    }));
                }
                if (type == ExcelRow.Empty)
                {
                    data.Add(item);
                    item = new CsOrderView.CsOrderAndDetail();
                    continue;
                }
                var product = products.FirstOrDefault(x => x.ProductNumber == order.商品编码);
                var part    = parts.FirstOrDefault(x => x.PartNumber == order.商品编码);
                var pId     = 0;            // 商品Id
                var cType   = ChoseType.螃蟹; // 蟹或配件
                if (product == null && part == null)
                {
                    return(Json(new ResModel
                    {
                        ResStatus = ResStatue.No,
                        Data = $"商品编码:{order.商品编码},不存在与数据库中,请仔细确认数据"
                    }));
                }
                if (product != null)
                {
                    pId   = product.ProductId;
                    cType = ChoseType.螃蟹;
                }
                if (part != null)
                {
                    pId   = part.PartId;
                    cType = ChoseType.配件;
                }
                if (type == ExcelRow.Order)
                {
                    var user = users.FirstOrDefault(x => x.UserPhone == order.收货人电话 && x.UserName == order.收货人);
                    int userId;
                    if (user == null)
                    {
                        user = new CsUsers
                        {
                            UserSex     = "先生",
                            UserName    = order.收货人,
                            UserPhone   = order.收货人电话,
                            OpenId      = "",
                            Remarks     = "",
                            TotalWight  = 0,
                            UserBalance = 0,
                            UserState   = 1
                        };
                        userId = _csUsersBll.Add(user);
                    }
                    else
                    {
                        userId = user.UserId;
                    }
                    Thread.Sleep(5);
                    item.CsOrder = new CsOrder
                    {
                        RowStatus      = RowStatus.效.GetHashCode(),
                        DeleteDescribe = "",
                        OrderState     = OrderState.已发货.GetHashCode(),
                        UserId         = userId,
                        ActualMoney    = order.实收金额.ToDecimal(),
                        OrderDelivery  = order.货运单号,
                        SendAddress    = $"{order.发货人}${order.发货人电话}",
                        OrderAddress   = $"${order.收货人}" + $"({user.UserSex})$${order.收货人电话}${order.收货地址})",
                        DeleteDate     = "1900-1-1".ToDate(),
                        DiscountMoney  = order.总金额.ToDecimal() - order.实收金额.ToDecimal(),
                        OrderDate      = DateTime.Now,
                        OrderNumber    = DateTime.Now.ToString(OrderNumberFormat),
                        TotalMoney     = order.总金额.ToDecimal()
                    };
                    item.CsOrderDetails.Add(new CsOrderDetail
                    {
                        ProductId     = pId,
                        ProductNumber = order.数量.ToInt(),
                        ChoseType     = cType.GetHashCode(),
                        TotalPrice    = order.单价.ToDecimal() * order.数量.ToInt(),
                        UnitPrice     = order.单价.ToDecimal()
                    });
                }
                if (type == ExcelRow.Detail)
                {
                    item.CsOrderDetails.Add(new CsOrderDetail
                    {
                        ProductId     = pId,
                        ProductNumber = order.数量.ToInt(),
                        ChoseType     = cType.GetHashCode(),
                        TotalPrice    = order.单价.ToDecimal() * order.数量.ToInt(),
                        UnitPrice     = order.单价.ToDecimal()
                    });
                }
            }
            var count       = 0;
            var countDetail = 0;

            foreach (var d in data)
            {
                if (d.CsOrder.RowStatus == RowStatus.无效.GetHashCode())
                {
                    return(Json(new ResModel
                    {
                        ResStatus = ResStatue.No,
                        Data = "存在无效订单,请检查表格总的数据是否满足要求"
                    }));
                }
                var orderId = _csOrderBll.Add(d.CsOrder);
                foreach (var detail in d.CsOrderDetails)
                {
                    detail.OrderId = orderId;
                    _csOrderDetailBll.Add(detail);
                    countDetail++;
                }
                count++;
            }

            return(Json(new ResModel
            {
                ResStatus = ResStatue.Yes,
                Data = $"导入{count}条订单记录,以及共计{countDetail}条商品记录"
            }));
        }