예제 #1
0
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="userModel"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 public virtual bool AddCurrency(UserModel userModel, Currency model)
 {
     model.CurrencyId = SeqGuid.NewGuid();
     model.CreateDate = DateTime.Now;
     Da.Add <Guid, Currency>(model);
     return(true);
 }
예제 #2
0
 public DeviceTappedCommand(Guid accountId, string location, string mode)
 {
     AccountId     = accountId;
     Location      = location;
     Mode          = mode;
     CorrelationId = SeqGuid.NewGuid();
 }
예제 #3
0
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="userModel"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 public virtual bool AddUserRole(UserModel userModel, UserRole model)
 {
     model.UserRoleId = SeqGuid.NewGuid();
     model.CreateDate = DateTime.Now;
     Da.Add <Guid, UserRole>(model);
     return(true);
 }
예제 #4
0
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="userModel"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 public virtual bool AddAccount(UserModel userModel, Account model)
 {
     model.AccountId  = SeqGuid.NewGuid();
     model.CreateDate = DateTime.Now;
     Da.Add <Guid, Account>(model);
     return(true);
 }
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="userModel"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 public virtual bool AddSaleOrderProduct(UserModel userModel, SaleOrderProduct model)
 {
     model.UserId             = userModel.UserId;
     model.SaleOrderProductId = SeqGuid.NewGuid();
     model.CreateDate         = DateTime.Now;
     Da.Add <Guid, SaleOrderProduct>(model);
     return(true);
 }
예제 #6
0
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="userModel"></param>
 /// <param name="model"></param>
 /// <returns></returns>
 public virtual bool AddBuySupplier(UserModel userModel, BuySupplier model)
 {
     model.UserId        = userModel.UserId;
     model.BuySupplierId = SeqGuid.NewGuid();
     model.CreateDate    = DateTime.Now;
     Da.Add <Guid, BuySupplier>(model);
     return(true);
 }
예제 #7
0
 /// <summary>
 /// 添加
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public virtual bool AddFriendLink(FriendLink model)
 {
     model.FriendLinkId = SeqGuid.NewGuid();
     model.IsEnabled    = true;
     model.CreateDate   = DateTime.Now;
     Da.Add <Guid, FriendLink>(model);
     return(true);
 }
예제 #8
0
        public Guid?AddUser(User model)
        {
            model.UserId     = SeqGuid.NewGuid();
            model.UserPwd    = model.UserPwd.ToMd5();
            model.Status     = (int)UserStatusEnum.Ok;
            model.IsAdmin    = false;
            model.CreateDate = DateTime.Now;

            return(Da.AddUser(model));
        }
예제 #9
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="model"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual bool AddBuyPay(UserModel userModel, BuyPay model, out string msg)
        {
            var order = Da.Get <BuyOrder>(model.BuyOrderId);
            var b1    = CheckAuthOrder(userModel, order, out msg);

            if (!b1)
            {
                return(false);
            }

            var b2 = CheckAuthFinanceOrder(userModel, order, out msg);

            if (!b2)
            {
                return(false);
            }

            var account = Da.Get <Account>(model.AccountId);
            var b3      = CheckAuthAccount(userModel, account, out msg);

            if (!b3)
            {
                return(false);
            }

            var currency = Da.Get <Currency>(model.CurrencyId);
            var b4       = CheckAuthCurrency(userModel, currency, out msg);

            if (!b4)
            {
                return(false);
            }

            var m = new BuyPay()
            {
                BuyPayId          = SeqGuid.NewGuid(),
                BuyOrderId        = model.BuyOrderId,
                AccountInfo       = $"{account.AccountBank}({account.AccountNumber})",
                Amount            = model.Amount,
                CurrencySymbol    = currency.CurrencySymbol,
                CurrencyRate      = currency.CurrencyRate,
                TransactionNumber = model.TransactionNumber,
                Remark            = model.Remark,
                CreateName        = userModel.UserNickName,
                CreateDate        = DateTime.Now,
                AccountId         = account.AccountId,
                CurrencyId        = currency.CurrencyId,
            };

            Da.Add <Guid, BuyPay>(m);
            return(true);
        }
예제 #10
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="model"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual bool AddSaleTrack(UserModel userModel, SaleTrack model, out string msg)
        {
            var order = Da.Get <SaleOrder>(model.SaleOrderId);
            var b1    = CheckAuthOrder(userModel, order, out msg);

            if (!b1)
            {
                return(false);
            }

            var status = new List <int>()
            {
                (int)SaleOrderStatusEnum.StockedAfterPay,
                (int)SaleOrderStatusEnum.StockedPay,
                (int)SaleOrderStatusEnum.ShipedAfterPay,
                (int)SaleOrderStatusEnum.ShipedPay,
            };

            if (!status.Contains(order.Status))
            {
                msg = "状态已改变,操作失败";
                return(false);
            }

            var currency = Da.Get <Currency>(model.CurrencyId);
            var b2       = CheckAuthCurrency(userModel, currency, out msg);

            if (!b2)
            {
                return(false);
            }

            var m = new SaleTrack()
            {
                SaleTrackId    = SeqGuid.NewGuid(),
                SaleOrderId    = model.SaleOrderId,
                TrackName      = model.TrackName,
                TrackNumber    = model.TrackNumber,
                TrackRemark    = model.TrackRemark,
                Feight         = model.Feight,
                CurrencyId     = currency.CurrencyId,
                CurrencyName   = currency.CurrencyName,
                CurrencyText   = currency.CurrencyText,
                CurrencySymbol = currency.CurrencySymbol,
                CurrencyRate   = currency.CurrencyRate,
                CreateName     = userModel.UserNickName,
                CreateDate     = DateTime.Now,
            };

            Da.Add <Guid, SaleTrack>(m);
            return(true);
        }
예제 #11
0
        public void CreateGenerateHtml()
        {
            //生成首页
            Da.Add <Guid, GenerateHtml>(new GenerateHtml()
            {
                GenerateHtmlId   = SeqGuid.NewGuid(),
                GenerateHtmlUrl  = $"{Config.Domain}/Home/Index?ver={DateTime.Now.Ticks}&allow=true",
                GenerateHtmlPath = $"{AppDomain.CurrentDomain.BaseDirectory}index.html",
                IsGenerate       = false,
                IsSuccess        = false
            });

            Task.Run(() => GenerateHtml());
        }
예제 #12
0
        /// <summary>
        /// 添加款项
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="request"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool AddSaleOrderReceive(UserModel userModel, SaleReceive request, out string msg)
        {
            var order = Da.Get <SaleOrder>(request.SaleOrderId);
            var b1    = CheckAuthOrder(userModel, order, out msg);

            if (!b1)
            {
                return(false);
            }

            if (order.Status == (int)SaleOrderStatusEnum.Draft || order.Status == (int)SaleOrderStatusEnum.ShipedPay)
            {
                msg = "添加失败";
                return(false);
            }

            var currency = Da.Get <Currency>(request.CurrencyId);
            var b2       = CheckAuthCurrency(userModel, currency, out msg);

            if (!b2)
            {
                return(false);
            }

            var accout = Da.Get <Account>(request.AccountId);
            var b3     = CheckAuthAccount(userModel, accout, out msg);

            if (!b3)
            {
                return(false);
            }

            var m = new SaleReceive()
            {
                SaleReceiveId  = SeqGuid.NewGuid(),
                SaleOrderId    = order.SaleOrderId,
                AccountInfo    = $"{accout.AccountBank}[{accout.AccountNumber}]",
                Amount         = request.Amount,
                CurrencySymbol = currency.CurrencySymbol,
                CurrencyRate   = currency.CurrencyRate,
                Remark         = null,
                CreateName     = userModel.UserNickName,
                CreateDate     = DateTime.Now,
            };

            Da.Add <Guid, SaleReceive>(m);
            return(true);
        }
예제 #13
0
 /// <summary>
 ///
 /// </summary>
 public void UpsertUserRoleMenu(UserRoleSettingModel model)
 {
     Db((db, tran) =>
     {
         db.DeleteList <UserRoleMenu>(new { model.UserRoleId }, tran);
         model.UserMenuIds?.ForEach(id =>
         {
             db.Insert <Guid, UserRoleMenu>(new UserRoleMenu()
             {
                 UserRoleMenuId = SeqGuid.NewGuid(),
                 UserRoleId     = model.UserRoleId,
                 UserMenuId     = id
             }, tran);
         });
     });
 }
예제 #14
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="model"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual bool AddUser(UserModel userModel, User model, out string msg)
        {
            if (model.UserEmail.IsWhiteSpace() || !model.UserEmail.IsEmail())
            {
                msg = "邮箱不正确";
                return(false);
            }

            if (model.UserPwd.IsWhiteSpace())
            {
                msg = "请输入密码";
                return(false);
            }
            //密码加密
            model.UserPwd = model.UserPwd.ToMd5();

            if (model.UserNickName.IsWhiteSpace())
            {
                msg = "请输入英文名";
                return(false);
            }

            if (model.UserChnName.IsWhiteSpace())
            {
                msg = "请输入中文名";
                return(false);
            }

            //验证角色
            var roles = Da.GetList <UserRole>();

            if (!roles.Exists(p => p.UserRoleId == model.UserRoleId))
            {
                msg = "角色不正确";
                return(false);
            }

            model.UserId     = SeqGuid.NewGuid();
            model.Status     = (int)UserStatusEnum.Ok;
            model.CreateDate = DateTime.Now;
            Da.Add <Guid, User>(model);

            msg = null;
            return(true);
        }
예제 #15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userModel"></param>
        /// <returns></returns>
        protected static FileUploadResult UploadFile(UserModel userModel)
        {
            var files = HttpContext.Current.Request.Files;

            if (files.Count == 0)
            {
                return(null);
            }

            var item     = files[0];
            var tempPath = $"/Files/Temp/{SeqGuid.NewGuid()}";

            item.SaveAs(tempPath);

            //判断是否是图片

            return(null);
        }
예제 #16
0
 public void AddUserMenu(UserMenu model)
 {
     Db((db, tran) =>
     {
         var userMenuId = db.Insert(model, tran);
         if (!userMenuId.HasValue)
         {
             return;
         }
         var user = db.GetList <User>(new { UserEmail = "User" }, tran).FirstOrDefault();
         if (user != null)
         {
             db.Insert <Guid, UserRoleMenu>(new UserRoleMenu()
             {
                 UserRoleMenuId = SeqGuid.NewGuid(),
                 UserMenuId     = userMenuId.Value,
                 UserRoleId     = user.UserRoleId
             }, tran);
         }
     });
 }
예제 #17
0
        /// <summary>
        /// ����
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool UpdateUserRoleSet(UserModel userModel, UserRoleMenuRequest model)
        {
            Db((db, tran) =>
            {
                db.DeleteList <UserRoleMenu>(new
                {
                    model.UserRoleId,
                }, tran);

                foreach (var id in model.UserMenuIds)
                {
                    db.Insert <Guid, UserRoleMenu>(new UserRoleMenu()
                    {
                        UserRoleMenuId = SeqGuid.NewGuid(),
                        UserRoleId     = model.UserRoleId,
                        UserMenuId     = id
                    }, tran);
                }
            });

            return(true);
        }
예제 #18
0
        /// <summary>
        /// 添加订单产品
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="request"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool AddOrderProduct(UserModel userModel, BuyOrderProduct request, out string msg)
        {
            var order = Da.Get <BuyOrder>(request.BuyOrderId);
            var b1    = CheckAuthOrderByStatusStockIn(userModel, order, out msg);

            if (!b1)
            {
                return(false);
            }

            var product = Da.Get <Product>(request.ProductId);
            var b2      = CheckAuthProduct(userModel, product, out msg);

            if (!b2)
            {
                return(false);
            }

            var m = new BuyOrderProduct()
            {
                BuyOrderProductId = SeqGuid.NewGuid(),
                UserId            = order.UserId,
                BuyOrderId        = order.BuyOrderId,
                ProductId         = product.ProductId,
                Price             = 0,
                Qty           = 0,
                InQty         = request.InQty,
                Remark        = null,
                CreateDate    = DateTime.Now,
                IsStockIn     = false,
                InStockRemark = request.InStockRemark,
                IsNewAdd      = true,
            };

            Da.Add <Guid, BuyOrderProduct>(m);
            msg = null;
            return(true);
        }
예제 #19
0
        /// <summary>
        /// 导入产品
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="categoryId"></param>
        /// <param name="fullPath"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool ImportProduct(UserModel userModel, int categoryId, string fullPath, out string msg)
        {
            if (categoryId == 0)
            {
                msg = "分类错误";
                return(false);
            }

            if (!File.Exists(fullPath))
            {
                msg = "上传失败";
                return(false);
            }

            var cates = Da.Get <Category>(categoryId);

            if (cates == null)
            {
                msg = "分类错误";
                return(false);
            }

            var rows = ExcelHelper.ReadSheetColumn26(fullPath);

            var list   = new List <Product>();
            var errors = new List <string>();

            for (var i = 0; i < rows.Count; i++)
            {
                if (i == 0)
                {
                    //首行标题
                    continue;
                }

                var model = rows[i];
                var sku   = (model.A ?? "").ToString();
                var name  = (model.B ?? "").ToString();
                if (sku.IsWhiteSpace())
                {
                    errors.Add($"第{i + 1}行的编码为空");
                }
                if (name.IsWhiteSpace())
                {
                    errors.Add($"第{i + 1}行的名称为空");
                }

                //允许空
                var specification = model.C?.ToString();
                var remark        = model.D?.ToString();

                //重量
                if (!int.TryParse(model.H?.ToString() ?? "", out var weight))
                {
                    errors.Add($"第{i + 1}行的重量数据类型错误");
                }
                //起订量
                if (!int.TryParse(model.I?.ToString() ?? "", out var orderQty))
                {
                    errors.Add($"第{i + 1}行的起订量数据类型错误");
                }
                //价格
                if (!decimal.TryParse(model.E?.ToString() ?? "", out var p1))
                {
                    errors.Add($"第{i + 1}行的价格1数据类型错误");
                }
                if (!decimal.TryParse(model.F?.ToString() ?? "", out var p10))
                {
                    errors.Add($"第{i + 1}行的价格10数据类型错误");
                }
                if (!decimal.TryParse(model.G?.ToString() ?? "", out var p100))
                {
                    errors.Add($"第{i + 1}行的价格100数据类型错误");
                }

                //允许空
                var areaPosition = model.J?.ToString();

                var m = new Product()
                {
                    ProductId            = SeqGuid.NewGuid(),
                    CategoryId           = categoryId,
                    ProductSku           = sku,
                    ProductName          = name,
                    ProductSpecification = specification,
                    ProductRemark        = remark,
                    ProductWeight        = weight,
                    InTransitQty         = 0,
                    SaleQty      = 0,
                    HoldQty      = 0,
                    OrderQty     = orderQty,
                    Price1       = p1,
                    Price10      = p10,
                    Price100     = p100,
                    ImageQty     = 0,
                    AreaPosition = areaPosition,
                    Status       = (int)ProductStatusEnum.Ok,
                    CreateName   = userModel.UserNickName,
                    CreateDate   = DateTime.Now,
                    StockInDate  = DateTime.Now,
                };

                list.Add(m);
            }

            if (errors.Count > 0)
            {
                msg = string.Join(";", errors);
                return(false);
            }

            //检查列表编码重复
            var repeats = list.GroupBy(p => p.ProductSku, (m, items) => new { m, items })
                          .Where(p => p.items.Count() > 1)
                          .Select(p => p.m)
                          .ToList();

            if (repeats.Count > 0)
            {
                msg = $"编码重复:{string.Join(";", repeats)}";
                return(false);
            }

            //检查编码是否相同
            var rs = Da.GetList <Product>(new
            {
                Status = (int)ProductStatusEnum.Ok
            }).ToList();

            var skus = new List <string>();

            foreach (var item in list)
            {
                if (rs.Exists(p => p.ProductSku.IsEquals(item.ProductSku)))
                {
                    skus.Add(item.ProductSku);
                }
            }
            if (skus.Count > 0)
            {
                msg = $"编码已存在: {string.Join(";", skus)}";
                return(false);
            }

            msg = null;
            return(Da.ImportProduct(list));
        }
예제 #20
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="model"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual bool AddSaleReceive(UserModel userModel, SaleReceive model, out string msg)
        {
            var order = Da.Get <SaleOrder>(model.SaleOrderId);
            var b1    = CheckAuthOrder(userModel, order, out msg);

            if (!b1)
            {
                return(false);
            }

            var status = new List <int>()
            {
                (int)SaleOrderStatusEnum.SubmitUnpay,
                (int)SaleOrderStatusEnum.SubmitAfterPay,
                (int)SaleOrderStatusEnum.StockedUnpay,
                (int)SaleOrderStatusEnum.StockedAfterPay,
                (int)SaleOrderStatusEnum.ShipedAfterPay,
            };

            if (!status.Exists(p => p == order.Status))
            {
                msg = "订单已锁定,操作失败";
                return(false);
            }

            var account = Da.Get <Account>(model.AccountId);
            var b2      = CheckAuthAccount(userModel, account, out msg);

            if (!b2)
            {
                return(false);
            }

            var currency = Da.Get <Currency>(model.CurrencyId);
            var b3       = CheckAuthCurrency(userModel, currency, out msg);

            if (!b3)
            {
                return(false);
            }

            var m = new SaleReceive()
            {
                SaleReceiveId     = SeqGuid.NewGuid(),
                SaleOrderId       = model.SaleOrderId,
                AccountInfo       = $"{account.AccountBank}({account.AccountNumber})",
                Amount            = model.Amount,
                TranFee           = model.TranFee,
                CurrencySymbol    = currency.CurrencySymbol,
                CurrencyRate      = currency.CurrencyRate,
                TransactionNumber = model.TransactionNumber,
                Remark            = model.Remark,
                CreateName        = userModel.UserNickName,
                CreateDate        = DateTime.Now,
                AccountId         = account.AccountId,
                CurrencyId        = currency.CurrencyId,
            };

            Da.Add <Guid, SaleReceive>(m);
            return(true);
        }
예제 #21
0
 public static AccountId NewAccount()
 {
     return(new AccountId(SeqGuid.NewGuid()));
 }
예제 #22
0
        /// <summary>
        /// 上传图片
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="productId"></param>
        /// <param name="fullPath"></param>
        /// <param name="path"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public bool UpdateImage(UserModel userModel, Guid productId, string fullPath, out string path, out string msg)
        {
            path = null;

            if (!File.Exists(fullPath))
            {
                msg = "上传文件不存在";
                return(false);
            }

            var product = Da.Get <Product>(productId);

            if (product == null)
            {
                msg = "产品不存在";
                return(false);
            }

            //给图片添加编码
            var pathText     = $"/Files/{DateTime.Today:yyMMdd}/{Guid.NewGuid()}.jpg";
            var pathLogo     = $"/Files/{DateTime.Today:yyMMdd}/{Guid.NewGuid()}.jpg";
            var fullPathText = $"{Config.Root}{pathText}";
            var fullPathLogo = $"{Config.Root}{pathLogo}";

            fullPathText.CreateDirByFilePath();

            var b1 = ImageHelper.AddImageText(fullPath, fullPathText, product.ProductSku, ImagePosition.BottomRigth, 0.5);

            if (!b1)
            {
                msg = "给图片打编码失败";
                return(false);
            }

            if (!File.Exists(fullPathText))
            {
                msg = "上传失败";
                return(false);
            }
            if (!File.Exists(fullPathLogo))
            {
                pathLogo = null;
            }

            var m = new ProductImage()
            {
                ProductImageId = SeqGuid.NewGuid(),
                ProductId      = productId,
                PathImage      = pathText,
                PathLogoImage  = pathLogo,
                Sort           = 999,
                CreateDate     = DateTime.Now,
            };

            //添加并更新数量
            var b3 = Da.AddProductImage(m);

            if (!b3)
            {
                msg = "更新失败";
                return(false);
            }

            //排序
            var list = Da.GetList <ProductImage>(new
            {
                ProductId = productId,
            }).OrderBy(p => p.Sort).ThenBy(p => p.CreateDate).ToList();

            for (var i = 0; i < list.Count; i++)
            {
                list[i].Sort = i;
            }
            Da.BulkUpdate(list, p => p.Sort, p => p.ProductImageId);

            msg  = null;
            path = pathText;
            return(true);
        }
예제 #23
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="model"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public virtual bool AddProduct(UserModel userModel, Product model, out string msg)
        {
            if (model == null)
            {
                msg = "参数错误";
                return(false);
            }

            if (model.ProductSku.IsWhiteSpace())
            {
                msg = "编码不能为空";
                return(false);
            }

            if (model.ProductName.IsWhiteSpace())
            {
                msg = "产品名称不能为空";
                return(false);
            }

            if (model.Price1 < 0 || model.Price10 < 0 || model.Price100 < 0)
            {
                msg = "价格不能小于0";
                return(false);
            }

            var cates = Da.Get <Category>(model.CategoryId);

            if (cates == null)
            {
                msg = "分类错误";
                return(false);
            }

            //验证编码唯一性
            var list = Da.GetList <Product>(new
            {
                model.ProductSku,
                Status = (int)ProductStatusEnum.Ok,
            });

            if (list.Count > 0)
            {
                msg = "编码已存在";
                return(false);
            }

            var m = new Product()
            {
                ProductId            = SeqGuid.NewGuid(),
                CategoryId           = model.CategoryId,
                ProductSku           = model.ProductSku,
                ProductName          = model.ProductName,
                ProductSpecification = model.ProductSpecification,
                ProductRemark        = model.ProductRemark,
                ProductWeight        = model.ProductWeight,
                InTransitQty         = 0,
                SaleQty      = 0,
                HoldQty      = 0,
                OrderQty     = model.OrderQty,
                Price1       = model.Price1,
                Price10      = model.Price10,
                Price100     = model.Price100,
                ImageQty     = 0,
                AreaPosition = model.AreaPosition,
                Status       = (int)ProductStatusEnum.Ok,
                CreateName   = userModel.UserNickName,
                CreateDate   = DateTime.Now,
                StockInDate  = DateTime.Now,
            };

            Da.Add <Guid, Product>(m);
            msg = null;
            return(true);
        }