|
@@ -2,85 +2,102 @@
|
|
|
using SqlSugar;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
+using Utils;
|
|
|
public class usersManager : DbContext<users>
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
//当前类已经继承了 DbContext增、删、查、改的方法
|
|
|
|
|
|
//这里面写的代码不会给覆盖,如果要重新生成请删除 usersManager.cs
|
|
|
-
|
|
|
-
|
|
|
- #region 教学方法
|
|
|
/// <summary>
|
|
|
- /// 如果DbContext中的增删查改方法满足不了你,你可以看下具体用法
|
|
|
+ /// 根据条件查询用户信息列表
|
|
|
/// </summary>
|
|
|
- public void Study()
|
|
|
+ /// <param name="DeptCode">部门代码</param>
|
|
|
+ /// <param name="staffcode">用户唯一标识码</param>
|
|
|
+ /// <param name="username">用户名</param>
|
|
|
+ /// <param name="station">岗位代码</param>
|
|
|
+ /// <param name="issystem">是否系统管理员</param>
|
|
|
+ /// <param name="islock">用户是否锁定</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public List<dynamic> GetUsersList(string DeptCode, string staffcode, string username, string station, string issystem, string islock)
|
|
|
{
|
|
|
-
|
|
|
- /*********查询*********/
|
|
|
-
|
|
|
- var data1 = usersDb.GetById(1);//根据ID查询
|
|
|
- var data2 = usersDb.GetList();//查询所有
|
|
|
- var data3 = usersDb.GetList(it => 1 == 1); //根据条件查询
|
|
|
- //var data4 = usersDb.GetSingle(it => 1 == 1);//根据条件查询一条,如果超过一条会报错
|
|
|
-
|
|
|
- var p = new PageModel() { PageIndex = 1, PageSize = 2 };// 分页查询
|
|
|
- var data5 = usersDb.GetPageList(it => 1 == 1, p);
|
|
|
- Console.Write(p.PageCount);//返回总数
|
|
|
-
|
|
|
- var data6 = usersDb.GetPageList(it => 1 == 1, p, it => SqlFunc.GetRandom(), OrderByType.Asc);// 分页查询加排序
|
|
|
- Console.Write(p.PageCount);//返回总数
|
|
|
-
|
|
|
- List<IConditionalModel> conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 分页查询加排序
|
|
|
- conModels.Add(new ConditionalModel() { FieldName = typeof(users).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
|
|
|
- var data7 = usersDb.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
|
|
|
-
|
|
|
- usersDb.AsQueryable().Where(x => 1 == 1).ToList();//支持了转换成queryable,我们可以用queryable实现复杂功能
|
|
|
-
|
|
|
- //我要用事务
|
|
|
- var result = Db.Ado.UseTran(() =>
|
|
|
- {
|
|
|
- //写事务代码
|
|
|
- });
|
|
|
- if (result.IsSuccess)
|
|
|
+ String sqlCon = "";
|
|
|
+ if (!String.IsNullOrEmpty(DeptCode))
|
|
|
{
|
|
|
- //事务成功
|
|
|
+ sqlCon += " AND (a.DeptCode='" + DeptCode + "') ";
|
|
|
}
|
|
|
|
|
|
- //多表查询地址 http://www.codeisbug.com/Doc/8/1124
|
|
|
+ if (!String.IsNullOrEmpty(username))
|
|
|
+ {
|
|
|
|
|
|
+ sqlCon += " AND a.UserName LIKE '" + username + "%' ";
|
|
|
+ }
|
|
|
+ if (!String.IsNullOrEmpty(station))
|
|
|
+ {
|
|
|
|
|
|
+ sqlCon += " AND a.StationCode LIKE '" + station + "%' ";
|
|
|
+ }
|
|
|
|
|
|
- /*********插入*********/
|
|
|
- var insertData = new users() { };//测试参数
|
|
|
- var insertArray = new users[] { insertData };
|
|
|
- usersDb.Insert(insertData);//插入
|
|
|
- usersDb.InsertRange(insertArray);//批量插入
|
|
|
- var id = usersDb.InsertReturnIdentity(insertData);//插入返回自增列
|
|
|
- usersDb.AsInsertable(insertData).ExecuteCommand();//我们可以转成 Insertable实现复杂插入
|
|
|
+ if (!String.IsNullOrEmpty(islock))
|
|
|
+ {
|
|
|
|
|
|
+ sqlCon += " AND a.islock='" + islock + "' ";
|
|
|
+ }
|
|
|
+ var sql = " SELECT a.status,a.SysID, a.StaffCode, a.UserID, a.UserName, a.DeptCode,a.OrgCode, a.StationCode, a.Mobile, a.Tel, a.Fax, a.Education, a.PolityStatus," +
|
|
|
+ " a.IDCard, a.Homeplace, a.Nation, a.Email, a.SEX, a.Birthday, a.Addr, a.IsSystem, a.BeginDate, a.EndDate, a.IsLock, a.LastUpDate," +
|
|
|
+ " b.DeptName,case IsSystem when 1 then '是' else '否'end AS System, case IsLock when 1 then '停用' else '启用'end AS Lock,c.NationName," +
|
|
|
+ " d.EduName,e.StatusName,f.ItemName ,a.creline " +
|
|
|
+ " FROM Users a " +
|
|
|
+ " INNER JOIN Depts b on a.DeptCode=b.DeptCode " +
|
|
|
+ " LEFT JOIN NationInfo c on a.Nation=c.NationCode " +
|
|
|
+ " LEFT JOIN EducationInfo d on a.Education=d.EduCode " +
|
|
|
+ " LEFT JOIN PolityStatusInfo e on a.PolityStatus=e.StatusCode " +
|
|
|
+ " LEFT JOIN ItemDictionary f on a.StationCode=f.ItemID " +
|
|
|
+ " WHERE 1=1 "+sqlCon;
|
|
|
+ if (issystem != "1")
|
|
|
+ {
|
|
|
+ sql = " SELECT a.status,a.SysID, a.StaffCode, a.UserID, a.UserName, a.DeptCode,a.OrgCode, a.StationCode, a.Mobile, a.Tel, a.Fax, a.Education, a.PolityStatus," +
|
|
|
+ " a.IDCard, a.Homeplace, a.Nation, a.Email, a.SEX, a.Birthday, a.Addr, a.IsSystem, a.BeginDate, a.EndDate, a.IsLock, a.LastUpDate," +
|
|
|
+ " b.DeptName,case IsSystem when 1 then '是' else '否'end AS System, case IsLock when 1 then '停用' else '启用'end AS Lock,c.NationName," +
|
|
|
+ " d.EduName,e.StatusName,f.ItemName ,a.creline " +
|
|
|
+ " FROM Users a " +
|
|
|
+ " INNER JOIN Depts b on a.DeptCode=b.DeptCode " +
|
|
|
+ " INNER JOIN usersindepts b1 on b1.deptcode=b.deptcode " +
|
|
|
+ " LEFT JOIN NationInfo c on a.Nation=c.NationCode " +
|
|
|
+ " LEFT JOIN EducationInfo d on a.Education=d.EduCode " +
|
|
|
+ " LEFT JOIN PolityStatusInfo e on a.PolityStatus=e.StatusCode " +
|
|
|
+ " LEFT JOIN ItemDictionary f on a.StationCode=f.ItemID " +
|
|
|
+ " WHERE 1=1 and b1.staffcode='" + staffcode + "' " + sqlCon;
|
|
|
|
|
|
+ }
|
|
|
+ var list = Db.Ado.SqlQuery<dynamic>(sql);
|
|
|
+ return list;
|
|
|
+ }
|
|
|
|
|
|
- /*********更新*********/
|
|
|
- var updateData = new users() { };//测试参数
|
|
|
- var updateArray = new users[] { updateData };//测试参数
|
|
|
- usersDb.Update(updateData);//根据实体更新
|
|
|
- usersDb.UpdateRange(updateArray);//批量更新
|
|
|
- //usersDb.Update(it => new users() { Name = "a", CreateTime = DateTime.Now }, it => it.id==1);// 只更新Name列和CreateTime列,其它列不更新,条件id=1
|
|
|
- usersDb.AsUpdateable(updateData).ExecuteCommand();
|
|
|
+ /// <summary>
|
|
|
+ /// 获取员工工号最大值
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ public string GetMaxStaffCode()
|
|
|
+ {
|
|
|
+ var sql = $"SELECT Max( isnull(staffcode,1001)) as staffcode FROM Users";
|
|
|
+ var staffcode = Db.Ado.GetString(sql);
|
|
|
+ return staffcode.IsNullOrEmpty() ? "1001" : staffcode;
|
|
|
+ }
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 设置员工状态
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="staffcode">工号</param>
|
|
|
+ /// <param name="status">状态:在岗,待岗,休班</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public int SetStaffStatus(string staffcode, string status)
|
|
|
+ {
|
|
|
+ var sql = $"update users set status='{status}' where staffcode='{staffcode}'";
|
|
|
+ var rows = Db.Ado.ExecuteCommand(sql);
|
|
|
+ return rows;
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- /*********删除*********/
|
|
|
- var deldata = new users() { };//测试参数
|
|
|
- usersDb.Delete(deldata);//根据实体删除
|
|
|
- usersDb.DeleteById(1);//根据主键删除
|
|
|
- usersDb.DeleteById(new int[] { 1,2});//根据主键数组删除
|
|
|
- usersDb.Delete(it=>1==2);//根据条件删除
|
|
|
- usersDb.AsDeleteable().Where(it=>1==2).ExecuteCommand();//转成Deleteable实现复杂的操作
|
|
|
- }
|
|
|
- #endregion
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-}
|
|
|
+}
|