364 lines
12 KiB
C#
364 lines
12 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Text;
|
||
using System.Data;
|
||
|
||
using WeiSha.Common;
|
||
using Song.Entities;
|
||
|
||
using WeiSha.Data;
|
||
using Song.ServiceInterfaces;
|
||
using System.Data.Common;
|
||
|
||
|
||
|
||
namespace Song.ServiceImpls
|
||
{
|
||
public class UserCom : IUser
|
||
{
|
||
|
||
|
||
#region 用户组部分
|
||
|
||
public void AddGroup(UserGroup entity)
|
||
{
|
||
object obj = Gateway.Default.Max<UserGroup>(UserGroup._.UGrp_Tax, UserGroup._.UGrp_Id > -1);
|
||
if (obj != DBNull.Value)
|
||
{
|
||
entity.UGrp_Tax = Convert.ToInt32(obj)+1;
|
||
}
|
||
else
|
||
{
|
||
entity.UGrp_Tax = 1;
|
||
}
|
||
Song.Entities.Organization org = Business.Do<IOrganization>().OrganCurrent();
|
||
if (org != null)
|
||
{
|
||
entity.Org_ID = org.Org_ID;
|
||
entity.Org_Name = org.Org_Name;
|
||
}
|
||
Gateway.Default.Save<UserGroup>(entity);
|
||
}
|
||
|
||
public void SaveGroup(UserGroup entity)
|
||
{
|
||
using (DbTrans tran = Gateway.Default.BeginTrans())
|
||
{
|
||
try
|
||
{
|
||
tran.Save<UserGroup>(entity);
|
||
//修改用户信息中的组名称
|
||
tran.Update<User>(new Field[] { User._.UGrp_Name }, new object[] { entity.UGrp_Name }, User._.UGrp_Id == entity.UGrp_Id);
|
||
tran.Commit();
|
||
}
|
||
catch
|
||
{
|
||
tran.Rollback();
|
||
throw;
|
||
}
|
||
finally
|
||
{
|
||
tran.Close();
|
||
}
|
||
}
|
||
}
|
||
|
||
public int DeleteGroup(UserGroup entity)
|
||
{
|
||
object num = Gateway.Default.Count<User>(User._.UGrp_Id == entity.UGrp_Id);
|
||
if (num != null && Convert.ToInt32(num) > 0)
|
||
{
|
||
return -1;
|
||
}
|
||
if (entity.UGrp_IsDefault)
|
||
{
|
||
return -2;
|
||
}
|
||
Gateway.Default.Delete<UserGroup>(UserGroup._.UGrp_Id == entity.UGrp_Id);
|
||
return 0;
|
||
}
|
||
|
||
public int DeleteGroup(int identify)
|
||
{
|
||
UserGroup ug = this.GetGroupSingle(identify);
|
||
return DeleteGroup(ug);
|
||
}
|
||
|
||
public UserGroup GetGroupSingle(int identify)
|
||
{
|
||
return Gateway.Default.From<UserGroup>().Where(UserGroup._.UGrp_Id == identify).ToFirst<UserGroup>();
|
||
}
|
||
public UserGroup GetGroupDefault()
|
||
{
|
||
return Gateway.Default.From<UserGroup>().Where(UserGroup._.UGrp_IsDefault == true).ToFirst<UserGroup>();
|
||
}
|
||
public UserGroup GetGroupSingle(string name)
|
||
{
|
||
return Gateway.Default.From<UserGroup>().Where(UserGroup._.UGrp_Name == name).ToFirst<UserGroup>();
|
||
}
|
||
|
||
public UserGroup[] GetGroupAll()
|
||
{
|
||
return Gateway.Default.From<UserGroup>().OrderBy(UserGroup._.UGrp_Tax.Desc).ToArray<UserGroup>();
|
||
}
|
||
|
||
public UserGroup[] GetGroupAll(bool? isUse)
|
||
{
|
||
if (isUse == null)
|
||
{
|
||
return this.GetGroupAll();
|
||
}
|
||
return Gateway.Default.From<UserGroup>().Where(UserGroup._.UGrp_IsUse == (bool)isUse).OrderBy(UserGroup._.UGrp_Tax.Desc).ToArray<UserGroup>();
|
||
}
|
||
|
||
public UserGroup GetGroup4User(int UserId)
|
||
{
|
||
return Gateway.Default.From<UserGroup>().InnerJoin<User>(UserGroup._.UGrp_Id == User._.UGrp_Id).Where(User._.User_Id == UserId).ToFirst<UserGroup>();
|
||
}
|
||
|
||
public User[] GetUser4Group(int grpId)
|
||
{
|
||
return Gateway.Default.From<User>().Where(User._.UGrp_Id==grpId).ToArray<User>();
|
||
}
|
||
|
||
public User[] GetUser4Group(int grpId, bool use)
|
||
{
|
||
return Gateway.Default.From<User>().Where(User._.UGrp_Id == grpId && User._.User_IsUse == use).ToArray<User>();
|
||
}
|
||
|
||
public bool IsGroupExist(string name)
|
||
{
|
||
object num = Gateway.Default.Count<UserGroup>(UserGroup._.UGrp_Name == name);
|
||
if (num != null && Convert.ToInt32(num) > 0)
|
||
{
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
public bool GroupRemoveUp(int id)
|
||
{
|
||
Song.Entities.UserGroup current = this.GetGroupSingle(id);
|
||
//当前对象排序号
|
||
int orderValue = (int)current.UGrp_Tax;
|
||
//上一个对象,即兄长对象;存在当前优先级
|
||
Song.Entities.UserGroup up = Gateway.Default.From<UserGroup>().Where(UserGroup._.UGrp_Tax > orderValue).OrderBy(UserGroup._.UGrp_Tax.Asc).ToFirst<UserGroup>();
|
||
if (up == null)
|
||
{
|
||
//如果兄长对象不存在,则表示当前节点在兄弟中是老大;即是最顶点;
|
||
return false;
|
||
}
|
||
//交换排序号
|
||
current.UGrp_Tax = up.UGrp_Tax;
|
||
up.UGrp_Tax = orderValue;
|
||
using (DbTrans tran = Gateway.Default.BeginTrans())
|
||
{
|
||
try
|
||
{
|
||
tran.Save<UserGroup>(current);
|
||
tran.Save<UserGroup>(up);
|
||
tran.Commit();
|
||
}
|
||
catch
|
||
{
|
||
tran.Rollback();
|
||
throw;
|
||
}
|
||
finally
|
||
{
|
||
tran.Close();
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
public bool GroupRemoveDown(int id)
|
||
{
|
||
//当前对象
|
||
Song.Entities.UserGroup current = this.GetGroupSingle(id);
|
||
//当前对象排序号
|
||
int orderValue = (int)current.UGrp_Tax;
|
||
//下一个对象,即弟弟对象;
|
||
Song.Entities.UserGroup down = Gateway.Default.From<UserGroup>().Where(UserGroup._.UGrp_Tax < orderValue).OrderBy(UserGroup._.UGrp_Tax.Desc).ToFirst<UserGroup>();
|
||
if (down == null)
|
||
{
|
||
//如果弟对象不存在,则表示当前节点在兄弟中是老幺;即是最底端;
|
||
return false;
|
||
}
|
||
//交换排序号
|
||
current.UGrp_Tax = down.UGrp_Tax;
|
||
down.UGrp_Tax = orderValue;
|
||
using (DbTrans tran = Gateway.Default.BeginTrans())
|
||
{
|
||
try
|
||
{
|
||
tran.Save<UserGroup>(current);
|
||
tran.Save<UserGroup>(down);
|
||
tran.Commit();
|
||
}
|
||
catch
|
||
{
|
||
tran.Rollback();
|
||
throw;
|
||
}
|
||
finally
|
||
{
|
||
tran.Close();
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
#endregion
|
||
|
||
#region 网站用户信息
|
||
public int AddUser(User entity)
|
||
{
|
||
//判断是否帐号重复
|
||
object num = Gateway.Default.Count<User>(User._.User_AccName == entity.User_AccName);
|
||
if (num != null && Convert.ToInt32(num) > 0)
|
||
{
|
||
return -1;
|
||
}
|
||
//设置默认组
|
||
UserGroup group = this.GetGroupDefault();
|
||
entity.UGrp_Id = group.UGrp_Id;
|
||
entity.UGrp_Name = group.UGrp_Name;
|
||
//
|
||
return Gateway.Default.Save<User>(entity);
|
||
}
|
||
|
||
public void SaveUser(User entity)
|
||
{
|
||
Gateway.Default.Save<User>(entity);
|
||
}
|
||
|
||
public void DeleteUser(User entity)
|
||
{
|
||
Gateway.Default.Delete<User>(entity);
|
||
}
|
||
|
||
public void DeleteUser(int identify)
|
||
{
|
||
Gateway.Default.Delete<User>(User._.User_Id == identify);
|
||
}
|
||
|
||
public void DeleteUser(string accname)
|
||
{
|
||
Gateway.Default.Delete<User>(User._.User_AccName == accname);
|
||
}
|
||
|
||
public User GetUserSingle(int identify)
|
||
{
|
||
return Gateway.Default.From<User>().Where(User._.User_Id == identify).ToFirst<User>();
|
||
}
|
||
|
||
public User GetUserSingle(string accname)
|
||
{
|
||
return Gateway.Default.From<User>().Where(User._.User_AccName == accname).ToFirst<User>();
|
||
}
|
||
|
||
public User GetUserSingle(string accname, string pw)
|
||
{
|
||
return Gateway.Default.From<User>().Where(User._.User_AccName == accname && User._.User_Pw == pw).ToFirst<User>();
|
||
}
|
||
|
||
public bool LoginCheck(string accname, string pw)
|
||
{
|
||
//验证员工帐号与密码
|
||
WhereClip wc = User._.User_AccName == accname && User._.User_Pw == pw;
|
||
//员工必须在职
|
||
wc.And(User._.User_IsUse == true);
|
||
User ac = Gateway.Default.From<User>().Where(wc).ToFirst<User>();
|
||
if (ac == null) return false;
|
||
//判断用户组是否被禁用,如果禁用,同样返回false
|
||
UserGroup grp = this.GetGroupSingle((int)ac.UGrp_Id);
|
||
if (grp == null && grp.UGrp_IsUse == false) return false;
|
||
return true;
|
||
}
|
||
|
||
public bool IsUserExist(string accname)
|
||
{
|
||
object num = Gateway.Default.Count<User>(User._.User_AccName == accname);
|
||
if (num != null && Convert.ToInt32(num) > 0)
|
||
{
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
public User[] GetUserAll()
|
||
{
|
||
return Gateway.Default.From<User>().OrderBy(User._.User_RegTime.Desc).ToArray<User>();
|
||
}
|
||
|
||
public User[] GetUserAll(bool? isUse, string searName)
|
||
{
|
||
WhereClip wc = User._.User_Id != -1;
|
||
if (isUse != null)
|
||
{
|
||
wc.And(User._.User_IsUse == isUse);
|
||
}
|
||
if (searName != "" && searName != String.Empty)
|
||
{
|
||
wc.And(User._.User_Name.Like("%" + searName + "%"));
|
||
}
|
||
return Gateway.Default.From<User>().Where(wc).OrderBy(User._.User_RegTime.Desc).ToArray<User>();
|
||
}
|
||
|
||
public User[] GetUserAll(int grpid, bool? isUse, string searName)
|
||
{
|
||
WhereClip wc = User._.UGrp_Id == grpid;
|
||
if (isUse != null)
|
||
{
|
||
wc.And(User._.User_IsUse == isUse);
|
||
}
|
||
if (searName != "" && searName != String.Empty)
|
||
{
|
||
wc.And(User._.User_Name.Like("%" + searName + "%"));
|
||
}
|
||
return Gateway.Default.From<User>().Where(wc).OrderBy(User._.User_RegTime.Desc).ToArray<User>();
|
||
}
|
||
|
||
public User[] GetUserAll(int grpid, bool isUse)
|
||
{
|
||
WhereClip wc = User._.UGrp_Id == grpid;
|
||
wc.And(User._.User_IsUse == isUse);
|
||
return Gateway.Default.From<User>().Where(wc).OrderBy(User._.User_RegTime.Desc).ToArray<User>();
|
||
}
|
||
|
||
public User[] GetUserPager(int size, int index, out int countSum)
|
||
{
|
||
countSum = Gateway.Default.Count<User>(User._.User_Id != -1);
|
||
return Gateway.Default.From<User>().OrderBy(User._.User_RegTime.Desc).ToArray<User>(size, (index - 1) * size);
|
||
}
|
||
|
||
public User[] GetUserPager(int grpid, int size, int index, out int countSum)
|
||
{
|
||
WhereClip wc = User._.UGrp_Id == grpid;
|
||
countSum = Gateway.Default.Count<User>(wc);
|
||
Song.Entities.User[] ac = Gateway.Default.From<User>().Where(wc).OrderBy(User._.User_RegTime.Desc).ToArray<User>(size, (index - 1) * size);
|
||
return ac;
|
||
}
|
||
|
||
public User[] GetUserPager(int? grpid, bool? isUse, string searName, int size, int index, out int countSum)
|
||
{
|
||
WhereClip wc = User._.User_Id != -1;
|
||
if (grpid != null && grpid >-1)
|
||
{
|
||
wc.And(User._.UGrp_Id == grpid);
|
||
}
|
||
if (isUse != null)
|
||
{
|
||
wc.And(User._.User_IsUse == isUse);
|
||
}
|
||
if (searName != "" && searName != String.Empty)
|
||
{
|
||
wc.And(User._.User_Name.Like("%" + searName + "%"));
|
||
}
|
||
countSum = Gateway.Default.Count<User>(wc);
|
||
Song.Entities.User[] ac = Gateway.Default.From<User>().Where(wc).OrderBy(User._.User_RegTime.Desc).ToArray<User>(size, (index - 1) * size);
|
||
return ac;
|
||
}
|
||
#endregion
|
||
}
|
||
}
|