NextValueDatabase.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using Long.Common.System;
  2. using Long.Dapper;
  3. namespace Long.DAO.System
  4. {
  5. /// <summary>
  6. /// 下一个值-数据库
  7. /// </summary>
  8. public class NextValueDatabase : Database<NextValue>, INextValueDatabase
  9. {
  10. #region 获取编码
  11. /// <summary>
  12. /// 获取编码
  13. /// </summary>
  14. /// <param name="prefix">前缀</param>
  15. /// <param name="tableName">表名</param>
  16. /// <param name="fieldName">字段名</param>
  17. /// <param name="defaultValue">默认值</param>
  18. /// <param name="length">编码长度</param>
  19. /// <returns></returns>
  20. public async Task<string> GetCodeAsync(string prefix, string tableName, string fieldName, int defaultValue = 1, int length = 5)
  21. {
  22. var value = await GetNextValueAsync(tableName, fieldName, defaultValue);
  23. string result = string.Format("{{0}}{{1:d" + length.ToString() + "}}", prefix, value);
  24. return result;
  25. }
  26. #endregion
  27. #region 获取日期编码
  28. /// <summary>
  29. /// 获取日期编码
  30. /// </summary>
  31. /// <param name="prefix">前缀</param>
  32. /// <param name="tableName">表名</param>
  33. /// <param name="fieldName">字段名</param>
  34. /// <param name="defaultValue">默认值</param>
  35. /// <param name="length">日期后编码长度</param>
  36. /// <returns></returns>
  37. public async Task<string> ExcuteGetCodeFromDateAsync(string prefix, string tableName, string fieldName, long defaultValue = 1, int length = 5)
  38. {
  39. var value = await GetNextValueAsync(tableName, fieldName, defaultValue);
  40. string result = string.Format("{{0}}{{1}}{{2:d" + length.ToString() + "}}", prefix, new DateTime().ToString("yyyyMMdd"), value);
  41. return result;
  42. }
  43. #endregion
  44. }
  45. }