Files
SqlSugar/Src/Asp.NetCore2/MongoDbTest/UnitTest/QueryJson9.cs
sunkaixuan 01f84308b5 Add demo
2025-09-11 17:56:10 +08:00

235 lines
7.3 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson;
using SqlSugar.MongoDb;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SqlSugar;
using System.ComponentModel;
namespace MongoDbTest
{
public class QueryJson9
{
internal static void Init()
{
var db = DbHelper.GetNewDb();
db.CodeFirst.InitTables<SysUser>();
db.DbMaintenance.TruncateTable<SysUser>();
InsertSampleUser(db);
InsertSampleUser2(db);
var val0 = db.Queryable<SysUser>().ToList();
var val1 = db.Queryable<SysUser>().Where(it => it.Name.ToString().Contains("部")).ToList();
if (val1.Count != 1) Cases.ThrowUnitError();
var val2 = db.Queryable<SysUser>().Where(it => it.EntInfo.Any(x => x.DeptName.Any())).ToList();
if (val2.Count != 1) Cases.ThrowUnitError();
}
private static void InsertSampleUser(SqlSugarClient db)
{
var user = new SysUser()
{
Name = "部",
EntInfo = new List<SysEntDept>()
{
new SysEntDept()
{
DeptId = new List<string>() { ObjectId.GenerateNewId().ToString() },
EntId = ObjectId.GenerateNewId().ToString(),
DeptName = new List<string>() { "研发部" },
}
}
};
db.Insertable(user).ExecuteCommand();
}
private static void InsertSampleUser2(SqlSugarClient db)
{
var user = new SysUser()
{
Name = "xx",
EntInfo = new List<SysEntDept>()
{
new SysEntDept()
{
DeptId = new List<string>() { ObjectId.GenerateNewId().ToString() },
EntId = ObjectId.GenerateNewId().ToString(),
DeptName = null,
}
}
};
db.Insertable(user).ExecuteCommand();
}
private static void InsertSampleUser3(SqlSugarClient db)
{
var user = new SysUser()
{
Name = "xx",
EntInfo = new List<SysEntDept>()
{
new SysEntDept()
{
DeptId = new List<string>() { ObjectId.GenerateNewId().ToString() },
EntId = ObjectId.GenerateNewId().ToString(),
DeptName =new List<string>(){ },
}
}
};
db.Insertable(user).ExecuteCommand();
}
/// <summary>
/// 用户表
/// </summary>
[SugarTable("sys_user", "用户表")]
[Tenant("0")]
public class SysUser : MongoDbBase
{
/// <summary>
/// 用户类型00系统用户
/// </summary>
[SugarColumn(Length = 2, ColumnDescription = "用户类型00系统用户", DefaultValue = "00")]
public string UserType { get; set; } = "00";
public string Avatar { get; set; }
[SugarColumn(Length = 50, ColumnDescription = "用户邮箱")]
public string Email { get; set; }
/// <summary>
/// 手机号
/// </summary>
public string Phonenumber { get; set; }
/// <summary>
/// 用户性别0男 1女 2未知
/// </summary>
public int Sex { get; set; }
/// <summary>
/// 删除标志0代表存在 2代表删除
/// </summary>
[SugarColumn(DefaultValue = "0")]
public int DelFlag { get; set; }
/// <summary>
/// 最后登录IP
/// </summary>
[SugarColumn(IsOnlyIgnoreInsert = true)]
public string LoginIP { get; set; }
/// <summary>
/// 部门Id
/// </summary>
[SugarColumn(DefaultValue = default, ColumnDataType = nameof(ObjectId))]
public string DeptId { get; set; }
/// <summary>
/// 企业集合
/// </summary>
[SugarColumn(IsJson = true)]
public List<SysEntDept> EntInfo { get; set; } = new();
/// <summary>
/// 是否已删除
/// </summary>
public bool IsAvaliable { get; set; } = true;
#region
/// <summary>
/// 拥有角色个数
/// </summary>
//[SugarColumn(IsIgnore = true)]
//public int RoleNum { get; set; }
[SugarColumn(IsIgnore = true)]
public string DeptName { get; set; }
[SugarColumn(IsIgnore = true)]
public string WelcomeMessage
{
get
{
int now = DateTime.Now.Hour;
if (now > 0 && now <= 6)
{
return "午夜好";
}
else if (now > 6 && now <= 11)
{
return "早上好";
}
else if (now > 11 && now <= 14)
{
return "中午好";
}
else if (now > 14 && now <= 18)
{
return "下午好";
}
else
{
return "晚上好";
}
}
}
[SugarColumn(IsIgnore = true)] public string WelcomeContent { get; set; }
/// <summary>
/// 角色id集合
/// </summary>
[SugarColumn(IsIgnore = true)]
public List<string> RoleIds { get; set; }
public string Name { get; set; }
#endregion
}
/// <summary>
/// 用户表里企业与部门信息
/// </summary>
public class SysEntDept
{
/// <summary>
/// 企业Id
/// </summary>
[BsonRepresentation(BsonType.ObjectId)]
[SugarColumn(ColumnDataType = nameof(ObjectId))]
public string EntId { get; set; }
/// <summary>
/// 企业名称
/// </summary>
public string EntName { get; set; }
/// <summary>
/// 部门Id集合
/// </summary>
[BsonRepresentation(BsonType.ObjectId)]
[SugarColumn(IsJson = true, ColumnDataType = nameof(ObjectId))]
public List<string> DeptId { get; set; } = new();
/// <summary>
/// 部门名称集合
/// </summary>
[SugarColumn(IsJson = true)]
public List<string> DeptName { get; set; } = new();
/// <summary>
/// 部门备注集合
/// </summary>
[SugarColumn(IsJson = true)]
public List<string> DeptRmk { get; set; } = new();
}
}
}