Example #1
0
        public User Add(User user, List <MoneyTypeConfig> moneyTypes)
        {
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            var sql =
                "INSERT INTO dbo.User_User ([Name], [Email], [Mobile], [UserName],[Status],[GradeId],[ParentId] ) VALUES  (@Name,@Email,@Mobile,@UserName ,@Status,@GradeId,@ParentId); select @@identity;";
            var parameters = new[]
            {
                RepositoryContext.CreateParameter("@Name", user.Name),
                RepositoryContext.CreateParameter("@Email", user.Email),
                RepositoryContext.CreateParameter("@Status", user.Status),
                RepositoryContext.CreateParameter("@GradeId", user.GradeId),
                RepositoryContext.CreateParameter("@Mobile", user.Mobile),
                RepositoryContext.CreateParameter("@ParentId", user.ParentId),
                RepositoryContext.CreateParameter("@UserName", user.UserName)
            };

            using (var transaction = RepositoryContext.BeginNativeDbTransaction())
            {
                try
                {
                    var result = Convert.ToInt64(RepositoryContext.ExecuteScalar(transaction, sql, parameters));
                    if (result != 0)
                    {
                        user.Id = Convert.ToInt64(result);
                    }

                    user.Map.UserId    = user.Id;
                    user.Map           = AddUserMap(transaction, user.Map);
                    user.Detail.UserId = user.Id;
                    //添加用户详情
                    user.Detail = AddUserDetail(transaction, user.Detail);
                    //添加用户资产
                    AddAccount(transaction, user.Id, moneyTypes);
                    //添加分润订单
                    AddShareOrder(transaction, user.Id);
                    transaction.Commit();
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    throw ex;
                }

                return(user);
            }
        }
Example #2
0
        /// <summary>
        ///     添加商品库存
        /// </summary>
        /// <param name="productId"></param>
        /// <param name="productSkuId"></param>
        /// <param name="count"></param>
        public bool AddStock(long productId, long productSkuId, int count)
        {
            var result = false;

            using (var transaction = RepositoryContext.BeginNativeDbTransaction())
            {
                try
                {
                    var sql = $"update Shop_Product set Stock=Stock+{count} where Id={productId}";
                    RepositoryContext.ExecuteNonQuery(transaction, sql);
                    sql = $"update Shop_ProductSku set Stock=Stock+{count} where Id='{productSkuId}'";
                    RepositoryContext.ExecuteNonQuery(transaction, sql);
                    transaction.Commit();
                    result = true;
                }
                catch
                {
                    transaction.Rollback();
                    throw;
                }
            }

            return(result);
        }