using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using NewLife;
using NewLife.Data;
using NewLife.Log;
using XCode;
using XCode.Cache;
using XCode.Membership;
namespace NewLife.WeChat.Entities;
/// <summary>微信é…置。å˜å‚¨å¾®ä¿¡åº”用的AppIdå’ŒAppSecretç‰é…置信æ¯</summary>
public partial class 微信é…ç½® : Entity<微信é…ç½®>
{
#region 对象æ“作
static 微信é…ç½®()
{
// 过滤器
Meta.Modules.Add<TimeModule>();
Meta.Modules.Add<IPModule>();
// å•对象缓å˜
var sc = Meta.SingleCache;
sc.FindSlaveKeyMethod = k => Find(_.AppId == k);
sc.GetSlaveKeyMethod = e => e.AppId;
}
/// <summary>éªŒè¯æ•°æ®ï¼Œé€šè¿‡æŠ›å‡ºå¼‚å¸¸çš„æ–¹å¼æç¤ºéªŒè¯å¤±è´¥ã€‚</summary>
/// <param name="isNew">æ˜¯å¦æ’å…¥</param>
public override void Valid(Boolean isNew)
{
// å¦‚æžœæ²¡æœ‰è„æ•°æ®ï¼Œåˆ™ä¸éœ€è¦è¿›è¡Œä»»ä½•处ç†
if (!HasDirty) return;
// 建议先调用基类方法,基类方法会åšä¸€äº›ç»Ÿä¸€å¤„ç†
base.Valid(isNew);
// 在新æ’å…¥æ•°æ®æˆ–è€…ä¿®æ”¹äº†æŒ‡å®šå—æ®µæ—¶è¿›è¡Œä¿®æ£
if (AppName.IsNullOrEmpty()) throw new ArgumentNullException(nameof(AppName), "应用åç§°ä¸èƒ½ä¸ºç©º");
if (AppId.IsNullOrEmpty()) throw new ArgumentNullException(nameof(AppId), "AppIdä¸èƒ½ä¸ºç©º");
if (AppSecret.IsNullOrEmpty()) throw new ArgumentNullException(nameof(AppSecret), "AppSecretä¸èƒ½ä¸ºç©º");
// 默认å¯ç”¨
if (isNew && !Dirtys[nameof(IsEnabled)]) IsEnabled = true;
}
/// <summary>å·²é‡è½½ã€‚显示å‹å¥½çš„åç§°</summary>
/// <returns></returns>
public override String ToString() => AppName;
#endregion
#region 扩展属性
/// <summary>应用分类文本</summary>
[XmlIgnore, IgnoreDataMember]
public String AppCategoryText => AppCategory switch
{
1 => "公众å·",
2 => "å°ç¨‹åº",
3 => "APP",
_ => "未知"
};
#endregion
#region 扩展查询
/// <summary>æ ¹æ®ç¼–å·æŸ¥æ‰¾</summary>
/// <param name="id">ç¼–å·</param>
/// <returns>实体对象</returns>
public static 微信é…ç½® FindById(Int32 id)
{
if (id <= 0) return null;
// å•对象缓å˜
return Meta.SingleCache[id];
}
/// <summary>æ ¹æ®AppId查找</summary>
/// <param name="appid">AppId</param>
/// <returns>实体对象</returns>
public static 微信é…ç½® FindByAppId(String appid)
{
if (appid.IsNullOrEmpty()) return null;
// å•对象缓å˜
return Meta.SingleCache.GetItemWithSlaveKey(appid) as 微信é…ç½®;
}
/// <summary>查询所有å¯ç”¨çš„é…ç½®</summary>
/// <returns>实体列表</returns>
public static IList<微信é…ç½®> FindAllEnabled()
{
return FindAll(_.IsEnabled == true);
}
/// <summary>æ ¹æ®ç§Ÿæˆ·æŸ¥è¯¢é…ç½®</summary>
/// <param name="tenantid">租户编å·</param>
/// <returns>实体列表</returns>
public static IList<微信é…ç½®> FindAllByTenant(Int32 tenantid)
{
return FindAll(_.TenantId == tenantid & _.IsEnabled == true);
}
/// <summary>æ ¹æ®åº”用分类查询é…ç½®</summary>
/// <param name="category">应用分类</param>
/// <returns>实体列表</returns>
public static IList<微信é…ç½®> FindAllByCategory(Int32 category)
{
return FindAll(_.AppCategory == category & _.IsEnabled == true);
}
#endregion
#region 高级查询
/// <summary>高级查询</summary>
/// <param name="appid">微信AppId</param>
/// <param name="appname">应用åç§°</param>
/// <param name="category">应用分类</param>
/// <param name="tenantid">租户编å·</param>
/// <param name="enabled">是å¦å¯ç”¨</param>
/// <param name="start">创建时间开始</param>
/// <param name="end">创建时间结æŸ</param>
/// <param name="key">关键å—</param>
/// <param name="page">åˆ†é¡µå‚æ•°ä¿¡æ¯ã€‚坿ºå¸¦ç»Ÿè®¡å’Œæ•°æ®æƒé™æ‰©å±•查询ç‰ä¿¡æ¯</param>
/// <returns>实体列表</returns>
public static IList<微信é…ç½®> Search(String appid, String appname, Int32? category, Int32? tenantid, Boolean? enabled, DateTime start, DateTime end, String key, PageParameter page)
{
var exp = new WhereExpression();
if (!appid.IsNullOrEmpty()) exp &= _.AppId == appid;
if (!appname.IsNullOrEmpty()) exp &= _.AppName.Contains(appname);
if (category != null) exp &= _.AppCategory == category;
if (tenantid != null) exp &= _.TenantId == tenantid;
if (enabled != null) exp &= _.IsEnabled == enabled;
exp &= _.CreateTime.Between(start, end);
if (!key.IsNullOrEmpty()) exp &= _.AppId.Contains(key) | _.AppName.Contains(key) | _.Remark.Contains(key);
return FindAll(exp, page);
}
#endregion
#region 业务æ“作
#endregion
}
/// <summary>微信é…置接å£</summary>
public partial interface I微信é…ç½®
{
#region 属性
/// <summary>ç¼–å·</summary>
Int32 Id { get; set; }
/// <summary>应用åç§°</summary>
String AppName { get; set; }
/// <summary>微信AppId</summary>
String AppId { get; set; }
/// <summary>微信AppSecret</summary>
String AppSecret { get; set; }
/// <summary>应用类型。公众å·/å°ç¨‹åº/ä¼ä¸šå¾®ä¿¡</summary>
String AppType { get; set; }
/// <summary>应用分类。1=公众å·ï¼Œ2=å°ç¨‹åºï¼Œ3=APP</summary>
Int32 AppCategory { get; set; }
/// <summary>租户编å·ã€‚用于多租户场景的数æ®éš”离</summary>
Int32 TenantId { get; set; }
/// <summary>是å¦å¯ç”¨</summary>
Boolean IsEnabled { get; set; }
/// <summary>æ¶ˆæ¯æ ¡éªŒToken</summary>
String Token { get; set; }
/// <summary>消æ¯åŠ è§£å¯†å¯†é’¥</summary>
String EncodingAESKey { get; set; }
/// <summary>创建时间</summary>
DateTime CreateTime { get; set; }
/// <summary>æ›´æ–°æ—¶é—´</summary>
DateTime UpdateTime { get; set; }
/// <summary>备注</summary>
String Remark { get; set; }
#endregion
}
|