using System; using System.Collections.Generic; using System.Linq; using System.Text; using IStation.Entity; using System.Data.SqlClient; using SqlSugar; using System.Threading.Tasks; using System.Data; namespace IStation.DAL { /// /// 用户关注 /// public partial class UserAttention : BaseDAL { /// /// /// public override ConnectionConfig ConnectionConfig { get { return ConfigHelper.DefaultConnectionConfig; } } /// /// 通过 UserID 获取 /// public List GetByUserID(long UserID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.UserID == UserID).ToList(); } } /// /// 通过 Object 获取 /// public List GetByObject(long CorpID, string ObjectType, long ObjectID) { using (var db = new SqlSugarClient(ConnectionConfig)) { return db.Queryable() .Where(x => x.CorpID == CorpID&&x.ObjectType==ObjectType&&x.ObjectID==ObjectID).ToList(); } } /// /// 设置 /// public bool Set(long UserID, List list) { if (list == null || list.Count() < 1) return default; using (var db = new SqlSugarClient(ConnectionConfig)) { try { db.BeginTran(); foreach (var item in list) { var bol = db.Queryable() .Where(x => x.UserID == UserID && x.CorpID==item.CorpID&& x.ObjectType == item.ObjectType && x.ObjectID == item.ObjectID) .Count() > 0; if (bol)//已存在 { if (!item.Selected)//未选择 { var result = db.Deleteable() .Where(x => x.UserID == UserID && x.CorpID==item.CorpID&& x.ObjectType == item.ObjectType && x.ObjectID == item.ObjectID) .ExecuteCommandHasChange(); if (!result) { db.RollbackTran(); return false; } } } else//不存在 { if (item.Selected)//选择 { var entity = new Entity.UserAttention(); entity.UserID = UserID; entity.CorpID = item.CorpID; entity.ObjectType = item.ObjectType; entity.ObjectID = item.ObjectID; entity.AttentionTime = DateTime.Now; var id = db.Insertable(entity).ExecuteReturnSnowflakeId(); if (id < 1) { db.RollbackTran(); return false; } } } } db.CommitTran(); return true; } catch { db.RollbackTran(); throw; } } } /// /// 通过 UserID 删除 /// public bool DeleteByUserID(long UserID) { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable() .Where(x => x.UserID == UserID) .ExecuteCommandHasChange(); } } /// /// 通过 ObjectType 和 ObjectID 删除 /// public bool DeleteByObject(long CorpID, string ObjectType, long ObjectID) { using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig)) { return db.Deleteable() .Where(x =>x.CorpID==CorpID&& x.ObjectType == ObjectType && x.ObjectID == ObjectID) .ExecuteCommandHasChange(); } } } }