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); }
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; }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
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); }
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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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);//设为默认 }
/// <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);//设为默认 }
/// <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); }
/// <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("修改密码失败,账号不正确"); } }
/// <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)); }
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); }
/// <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); }
/// <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); } }
/// <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); }
/// <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); } }
/// <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); }
/// <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)); }
/// <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)); }
/// <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); }
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,""); }