Ejemplo n.º 1
0
        public override int Update <TModel>(LambdaQuery.LambdaQuery <TModel> query1, ParameCollection setValue)
        {
            if (query1.__GroupFields.Count > 0)
            {
                throw new CRLException("update不支持group查询");
            }
            if (query1.__Relations.Count > 1)
            {
                throw new CRLException("update关联不支持多次");
            }
            if (setValue.Count == 0)
            {
                throw new ArgumentNullException("更新时发生错误,参数值为空 ParameCollection setValue");
            }
            var query      = query1 as LambdaQuery.MongoDBLambdaQuery <TModel>;
            var collection = _MongoDB.GetCollection <TModel>(query.QueryTableName);
            var update     = Builders <TModel> .Update;
            var first      = setValue.First();
            var updateSet  = update.Set(first.Key, first.Value);

            setValue.Remove(first.Key);
            foreach (var item in setValue)
            {
                if (item.Key.StartsWith("$"))
                {
                    throw new CRLException("MongoDB不支持累加" + item.Key);
                }
                update.Set(item.Key, item.Value);
            }
            var result = collection.UpdateMany(query.__MongoDBFilter, updateSet);

            return((int)result.ModifiedCount);
        }
Ejemplo n.º 2
0
 public SelectFieldInfo(List <Attribute.FieldAttribute> _fields, ParameCollection _parame, string _queryFieldString)
 {
     fields           = _fields;
     parame           = _parame;
     mapping          = fields.Where(b => !b.FieldMapping.WithTablePrefix).Select(b => b.FieldMapping);
     queryFieldString = _queryFieldString;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// 更改密码
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="accountNo"></param>
        /// <param name="passWord"></param>
        public static void UpdatePass <T>(string accountNo, string passWord) where T : IPerson, new()
        {
            ParameCollection c2 = new ParameCollection();

            c2["PassWord"] = CoreHelper.StringHelper.EncryptMD5(passWord);
            Update <T>(b => b.AccountNo == accountNo, c2);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 更改状态
        /// </summary>
        /// <param name="product"></param>
        public static void UpdateStatus <T>(T product) where T : IProductBase, new()
        {
            ParameCollection c = new ParameCollection();

            c["ProductStatus"] = (int)product.ProductStatus;
            Update <T>(b => b.Id == product.Id, c);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 查询用户帐户历史
        /// </summary>
        /// <param name="account"></param>
        /// <param name="transactionType"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public List <ITransaction> QueryAccountHistory(string account, int accountType, int transactionType, int pageIndex, int pageSize, out int count, DateTime?startTime, DateTime?endTime)
        {
            count = 0;
            string condition = " 1 = 1 ";

            if (startTime != null)
            {
                condition += " and AddTime > '" + startTime + "' ";
            }

            if (endTime != null)
            {
                condition += " and AddTime < '" + endTime + "' ";
            }

            List <ITransaction> list = new List <ITransaction>();
            int accountId            = AccountBusiness <TType> .Instance.GetAccountId(account, accountType, transactionType);

            if (accountId == 0)
            {
                return(list);
            }
            DBExtend         helper = dbHelper;
            ParameCollection c      = new ParameCollection();

            c.SetQueryCondition(condition);
            c.SetQueryPageIndex(pageIndex);
            c.SetQueryPageSize(pageSize);
            c["AccountId"] = accountId;
            list           = helper.QueryListByPage <ITransaction>(c, out count);
            return(list);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 取消/退款
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="orderType"></param>
        /// <param name="remark"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public bool Cancel(string orderId, OrderType orderType, string remark, out string error)
        {
            var list            = QueryList(b => b.OutOrderId == orderId && b.Status == Status.已确认 && b.OrderType == orderType);
            var instance        = new Account.TransactionBusiness <PayTransManage>();
            var accountInstance = new Account.AccountBusiness <PayTransManage>();
            List <Account.Transaction> trans = new List <Account.Transaction>();

            foreach (var item in list)
            {
                if (!item.MakeTrans)
                {
                    continue;
                }
                var account            = accountInstance.GetAccountId(item.UserId, item.AccountType, item.TransactionType);
                var operateType        = item.OperateType == Account.OperateType.收入 ? Account.OperateType.支出 : Account.OperateType.收入;
                Account.Transaction ts = new Account.Transaction()
                {
                    AccountId = account, Amount = item.Amount, OperateType = operateType, TradeType = item.TradeTypeCancel, OutOrderId = item.OutOrderId, Remark = remark
                };
                trans.Add(ts);
            }
            bool a = instance.SubmitTransaction(out error, false, trans.ToArray());//提交流水

            if (!a)
            {
                error = "退款时发生错误:" + error;
                return(false);
            }
            ParameCollection c = new ParameCollection();

            c["Status"] = Status.已退款;
            Update(b => b.OutOrderId == orderId && b.OrderType == orderType && b.Status == Status.已提交, c);
            return(true);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 更改状态
        /// </summary>
        /// <param name="product"></param>
        public void UpdateStatus(TModel product)
        {
            ParameCollection c = new ParameCollection();

            c["ProductStatus"] = (int)product.ProductStatus;
            Update(b => b.Id == product.Id, c);
        }
Ejemplo n.º 8
0
        public static void UpdatePrice(string userId, int id, decimal price)
        {
            ParameCollection c = new ParameCollection();

            c["price)"] = price;
            Update <ICartItem>(b => b.UserId == userId && b.Id == id, c);
        }
Ejemplo n.º 9
0
        public void UpdatePrice(int userId, int id, decimal price)
        {
            ParameCollection c = new ParameCollection();

            c["price"] = price;
            Update(b => b.UserId == userId && b.Id == id, c);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 更改密码
        /// </summary>
        /// <param name="accountNo"></param>
        /// <param name="passWord"></param>
        public void UpdatePass(string accountNo, string passWord)
        {
            ParameCollection c2 = new ParameCollection();

            c2["PassWord"] = EncryptPass(passWord);
            Update(b => b.AccountNo == accountNo, c2);
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 更新值
        /// </summary>
        /// <param name="id"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static bool Update(int id, string name, string value, string remark = "")
        {
            IDicConfig dic = Get(id);

            if (dic == null)
            {
                return(false);
            }
            //if (!dic.CanChange)
            //{
            //    return false;
            //}
            CRL.ParameCollection c = new ParameCollection();
            c["name"]  = name;
            c["value"] = value;
            if (!string.IsNullOrEmpty(remark))
            {
                c["remark"] = remark;
                dic.Remark  = remark;
            }
            Update <IDicConfig>(b => b.Id == id, c);
            dic.Name  = name;
            dic.Value = value;
            return(true);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 更改数量
        /// </summary>
        /// <param name="item"></param>
        public void AddNum(TModel item)
        {
            ParameCollection c = new ParameCollection();

            c["$Num"] = "Num+" + item.Num;
            //int n = GetCartCount(item.CartType) + item.Num;
            //SetCartCount(item.CartType, n);
            Update(b => b.UserId == item.UserId && b.ProductId == item.ProductId && b.StyleId == item.StyleId && b.CartType == item.CartType, c);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 设置是否选中
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="id"></param>
        /// <param name="selected"></param>
        public void SetSelected(int userId, int id, bool selected)
        {
            ParameCollection c = new ParameCollection();

            c["Selected"] = selected;
            Update(b => b.UserId == userId && b.Id == id, c);
            //int n = GetCartCount(cartType);
            //SetCartCount(cartType, n);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 设置订单状态为已退款
        /// </summary>
        /// <param name="args"></param>
        void SetRefundStatus(params object[] args)
        {
            int id = Convert.ToInt32(args[0]);

            ParameCollection c = new ParameCollection();

            c["status"] = OrderStatus.已退款;
            Update(b => b.Id == id, c);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 设置订单为以支付状态
        /// </summary>
        /// <param name="args"></param>
        void SetConfirmStatus(params object[] args)
        {
            int              id        = Convert.ToInt32(args[0]);
            string           sp_billno = args[1].ToString();
            ParameCollection c         = new ParameCollection();

            c["spBillno"] = sp_billno;
            c["status"]   = OrderStatus.已确认;
            Update(b => b.Id == id, c);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 更改数量
        /// </summary>
        /// <param name="item"></param>
        public static void AddNum(ICartItem item)
        {
            DBExtend         helper = dbHelper;
            ParameCollection c      = new ParameCollection();

            c["$Num"] = "Num+" + item.Num;
            //int n = GetCartCount(item.CartType) + item.Num;
            //SetCartCount(item.CartType, n);
            helper.Update <ICartItem>(b => b.UserId == item.UserId && b.ProductId == item.ProductId && b.StyleId == item.StyleId && b.CartType == item.CartType, c);
        }
Ejemplo n.º 17
0
        /// <summary>
        /// 设为默认
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="id"></param>
        public void SetDefault(int userId, int id)
        {
            ParameCollection setValue = new ParameCollection();

            setValue["DefaultAddress"] = 0;
            Update((b => b.UserId == userId), setValue);//去掉默认

            setValue["DefaultAddress"] = 1;
            Update(b => b.Id == id, setValue);//设为默认
        }
Ejemplo n.º 18
0
        /// <summary>
        /// 设为默认
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="id"></param>
        public static void SetDefault <T>(string userId, int id) where T : IAddress, new()
        {
            ParameCollection setValue = new ParameCollection();

            setValue["DefaultAddress"] = 0;
            Update <T>((b => b.UserId == userId), setValue);//去掉默认

            setValue["DefaultAddress"] = 1;
            Update <T>(b => b.Id == id, setValue);//设为默认
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 更新缓存中的一项
        /// </summary>
        /// <param name="key"></param>
        /// <param name="obj"></param>
        /// <param name="c"></param>
        /// <param name="checkInsert"></param>
        internal static void UpdateCacheItem <TItem>(string key, TItem obj, ParameCollection c = null, bool checkInsert = false) where TItem : IModel
        {
            if (obj == null)
            {
                throw new Exception("obj is null");
            }
            if (!cacheDatas.ContainsKey(key))
            {
                return;
            }
            var data     = cacheDatas[key].Data as Dictionary <int, TItem>;
            int keyValue = obj.GetpPrimaryKeyValue();

            if (!data.ContainsKey(keyValue))
            {
                if (checkInsert)
                {
                    data.Add(keyValue, obj);
                }
                return;
            }
            TItem originObj = data[keyValue];

            if (c != null)//按更改的值
            {
                var fields = TypeCache.GetProperties(obj.GetType(), false);
                foreach (var f in c)
                {
                    //var field = fields.Find(b => b.Name.ToUpper() == f.Key.ToUpper());
                    var field = fields[f.Key];
                    if (field == null)//名称带$时不更新
                    {
                        continue;
                    }
                    field.SetValue(originObj, f.Value);
                }
            }
            else//整体更新
            {
                lock (lockObj)
                {
                    if (originObj != null)//删除原来的
                    {
                        data.Remove(keyValue);
                    }
                    data.Add(keyValue, obj);
                }
            }
            //CacheUpdated(data.Type.Name);
            string log = string.Format("更新缓存中的一项[{0}]", obj.GetModelKey());

            CoreHelper.EventLog.Log(log, "DataCache", false);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// 更改密码
        /// </summary>
        /// <param name="accountNo"></param>
        /// <param name="passWord"></param>
        public void UpdatePass(string accountNo, string passWord)
        {
            ParameCollection c2 = new ParameCollection();

            c2["PassWord"] = EncryptPass(passWord);
            int n = Update(b => b.AccountNo == accountNo, c2);

            if (n == 0)
            {
                throw new Exception("修改密码失败,账号不正确");
            }
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 按完整查询条件进行更新
        /// goup语法不支持,其它支持
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <param name="query"></param>
        /// <param name="updateValue"></param>
        /// <returns></returns>
        public override int Update <TModel>(LambdaQuery <TModel> query, ParameCollection updateValue)
        {
            var query1 = query as RelationLambdaQuery <TModel>;

            if (query1.__GroupFields != null)
            {
                throw new CRLException("update不支持group查询");
            }
            if (query1.__Relations != null && query1.__Relations.Count > 1)
            {
                throw new CRLException("update关联不支持多次");
            }
            if (updateValue.Count == 0)
            {
                throw new ArgumentNullException("更新时发生错误,参数值为空 ParameCollection setValue");
            }
            //query1._IsRelationUpdate = true;
            var sb = new StringBuilder();

            query1.GetQueryConditions(sb, false);
            var conditions = sb.ToString().Trim();
            //if (conditions.Length > 5)
            //{
            //    conditions = conditions.Substring(5);
            //}

            string table = query1.QueryTableName;

            table = query1.__DBAdapter.KeyWordFormat(table);
            query1.FillParames(this);
            //var properties = updateValue.GetType().GetProperties();

            if (query1.__Relations != null)
            {
                var    kv        = query1.__Relations.First();
                string setString = ForamtSetValue <TModel>(updateValue, kv.Key.OriginType);
                var    t1        = query1.QueryTableName;
                var    t2        = TypeCache.GetTableName(kv.Key.OriginType, query1.__DbContext);
                //var join = query1.__Relations[kv.Key];
                //join = join.Substring(join.IndexOf(" on ") + 3);
                //if (!string.IsNullOrEmpty(conditions))
                //{
                //    join += " and ";
                //}
                string sql = query1.__DBAdapter.GetRelationUpdateSql(t1, t2, conditions, setString);
                return(Execute(sql));
            }
            else
            {
                conditions = conditions.Replace("t1.", "");
            }
            return(Update <TModel>(updateValue, conditions));
        }
Ejemplo n.º 22
0
        public override int Update <TModel>(List <TModel> objs)
        {
            if (!objs.Any())
            {
                return(0);
            }
            var table      = TypeCache.GetTable(typeof(TModel));
            var primaryKey = table.PrimaryKey;
            int index      = 0;
            var db         = GetDBHelper();
            var sb         = new StringBuilder();

            foreach (var obj in objs)
            {
                var c = GetUpdateField(obj);
                if (c.Count == 0)
                {
                    continue;
                }
                var c2 = new ParameCollection();
                foreach (var kv in c)
                {
                    var a   = table.FieldsDic.TryGetValue(kv.Key, out var field);
                    var key = kv.Key;
                    var val = kv.Value;
                    if (a)
                    {
                        key = field.MapingName;
                    }
                    c2.Add(key, val);
                }
                index += 1;
                var keyValue = primaryKey.GetValue(obj);
                var keyParme = _DBAdapter.GetParamName(primaryKey.MapingName, index);
                var where = $" where {_DBAdapter.KeyWordFormat(primaryKey.MapingName)}={keyParme}";
                db.AddParam(keyParme, keyValue);
                var    setString = string.Join(",", c2.Select(b => string.Format("{0}='{1}'", _DBAdapter.KeyWordFormat(b.Key), b.Value)));
                string sql       = _DBAdapter.GetUpdateSql(table.TableName, setString, where);
                sb.AppendLine(sql + ";");

                if (sb.Length > MaxSqlLength)
                {
                    db.Execute(sb.ToString());
                    sb.Clear();
                }
            }
            if (sb.Length > 1)
            {
                db.Execute(sb.ToString());
            }
            return(objs.Count);
        }
Ejemplo n.º 23
0
 /// <summary>
 /// 更新值
 /// </summary>
 /// <param name="id"></param>
 /// <param name="value"></param>
 /// <returns></returns>
 public bool Update(int id, string name, string value, string remark = "")
 {
     CRL.ParameCollection c = new ParameCollection();
     c["name"]  = name;
     c["value"] = value;
     if (!string.IsNullOrEmpty(remark))
     {
         c["remark"] = remark;
     }
     Update(b => b.Id == id, c);
     //ClearCache();
     return(true);
 }
Ejemplo n.º 24
0
        /// <summary>
        /// 单个增加销量
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="productId"></param>
        /// <param name="num"></param>
        public static void SoldAdd <T>(int productId, int num) where T : IProductBase, new()
        {
            ParameCollection c2 = new ParameCollection();

            c2["$SoldCount"] = "SoldCount+" + num;
            try
            {
                Update <T>(b => b.Id == productId, c2);
            }
            catch (Exception ero)
            {
                Log("更新销量时发生错误:" + ero.Message);
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 更改数量
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="num"></param>
        /// <param name="id"></param>
        public void ChangeNum(int userId, int num, int id)
        {
            var cartItem = QueryItem(b => b.UserId == userId && b.Id == id);

            if (cartItem != null)
            {
                //int n = GetCartCount(cartItem.CartType) + num - cartItem.Num;
                //SetCartCount(cartItem.CartType, n);
            }
            ParameCollection c = new ParameCollection();

            c["Num"] = num;
            Update(b => b.UserId == userId && b.Id == id, c);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// 单个增加销量
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="productId"></param>
        /// <param name="num"></param>
        public void SoldAdd(int productId, int num)
        {
            ParameCollection c2 = new ParameCollection();

            c2["$SoldCount"] = "SoldCount+" + num;
            try
            {
                Update(b => b.Id == productId, c2);
            }
            catch (Exception ero)
            {
                Log("更新销量时发生错误:" + ero.Message);
            }
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 指定拼接条件更新
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <param name="setValue"></param>
        /// <param name="where"></param>
        /// <returns></returns>
        internal int Update <TModel>(ParameCollection setValue, string where) where TModel : IModel, new()
        {
            CheckTableCreated <TModel>();
            Type   type      = typeof(TModel);
            string table     = TypeCache.GetTableName(type, dbContext);
            string setString = ForamtSetValue <TModel>(setValue);
            string sql       = _DBAdapter.GetUpdateSql(table, setString, where);

            sql = _DBAdapter.SqlFormat(sql);
            int n = dbHelper.Execute(sql);

            ClearParame();
            return(n);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// 查询指定项目的评论
        /// </summary>
        /// <typeparam name="TItem"></typeparam>
        /// <param name="type"></param>
        /// <param name="_checked"></param>
        /// <param name="objId"></param>
        /// <param name="userId"></param>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public List <TModel> QueryObjComment(int type, bool _checked, int objId, string userId, int pageIndex, int pageSize, out int count)
        {
            ParameCollection c = new ParameCollection();

            c.SetQueryPageIndex(pageIndex);
            c.SetQueryPageSize(pageSize);
            string where = "type=" + type + " and objId=" + objId + " and checked=" + Convert.ToInt32(_checked);
            if (!string.IsNullOrEmpty(userId))
            {
                where += " and userId=" + userId;
            }
            c.SetQueryCondition(where);
            c.SetQuerySort("id desc");
            return(QueryListByPage(c, out count));
        }
Ejemplo n.º 29
0
        /// <summary>
        /// 总是返回简单结果
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="parame"></param>
        /// <param name="count"></param>
        /// <returns></returns>
        public List <IProductBase> QuerySimpleListByPage <T>(ParameCollection parame, out int count) where T : IProductBase, new()
        {
            parame.Remove("Fields");
            parame.SetQueryFields(@"[AddTime]
      ,[CategoryCode]
      ,[Id]
      ,[ProductImage]
      ,[ProductName]
      ,[SettlementPrice]
      ,[SoldPrice]
      ,[SupplierId],[ProductStatus]");
            List <T> list = QueryListByPage <T>(parame, out count);

            return(ObjectConvert.CloneToSimple <IProductBase, T>(list));
        }
Ejemplo n.º 30
0
        /// <summary>
        /// 指定拼接条件更新
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <param name="setValue"></param>
        /// <param name="where"></param>
        /// <returns></returns>
        internal int Update <TModel>(ParameCollection setValue, string where) where TModel : class
        {
            CheckTableCreated <TModel>();
            Type   type      = typeof(TModel);
            string table     = TypeCache.GetTableName(type, dbContext);
            string setString = ForamtSetValue <TModel>(setValue);
            string sql       = _DBAdapter.GetUpdateSql(table, setString, where);

            sql = _DBAdapter.SqlFormat(sql);
            var db = GetDBHelper();
            var n  = SqlStopWatch.Execute(db, sql);

            ClearParame();
            return(n);
        }
Ejemplo n.º 31
0
        public ActionResult SetItemAccess(string menuCode,bool acc, int roleId = 0, int userId = 0)
        {
            int systemId = currentSystemId;
            foreach (string str in menuCode.Split(','))
            {
                string s = str.Trim();
                CRL.Package.RoleAuthorize.AccessControl item = new CRL.Package.RoleAuthorize.AccessControl();
                item.SystemTypeId = systemId;
                if (userId == 0)
                {
                    item.Role = roleId;
                    item.RoleType = RoleType.角色;
                }
                else
                {
                    item.Role = userId;
                    item.RoleType = RoleType.用户;
                }
                item.Que = acc;
                item.MenuCode = s.Trim();

                AccessControl item2;
                if (userId == 0)
                {
                    item2 = AccessControlBusiness.Instance.QueryItem(b => b.Role == roleId && b.RoleType == RoleType.角色 && b.SystemTypeId == systemId && b.MenuCode == s);
                }
                else
                {
                    item2 = AccessControlBusiness.Instance.QueryItem(b => b.Role == userId && b.RoleType == RoleType.用户 && b.SystemTypeId == systemId && b.MenuCode == s);
                }
                if (item2 == null)
                {
                    AccessControlBusiness.Instance.Add(item);
                }
                else
                {
                    ParameCollection c = new ParameCollection();
                    c["Que"] = item.Que;
                    AccessControlBusiness.Instance.Update(b => b.Id == item2.Id, c);
                }
            }
            return JsonResult(true,"");
        }