优化 发放证书规则新增证书编号处理,依据设设定规则

master
xiaochanghai 3 weeks ago
parent e71f0db09b
commit a018095882
  1. 34
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs

@ -2,7 +2,9 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using MongoDB.Driver.Linq;
using MySqlX.XDevAPI.Common;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using static Tiobon.Core.Model.Consts;
@ -1682,6 +1684,18 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
return ServiceResult.OprateSuccess("发放成功!");
}
private static string CreateRandomNum(int num)
{
string str = "0123456789";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < num; i++)
{
sb.Append(str[new Random(Guid.NewGuid().GetHashCode()).Next(0, str.Length - 1)]);
}
return sb.ToString();
}
/// <summary>
/// 处理证书数据
/// </summary>
@ -1708,6 +1722,10 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
{
var rule = rules[j];
var certificateNoItems = await Db.Queryable<Ghre_CertificateDesignItem>()
.Where(x => x.CertificateRuleId == rule.Id && x.field == "CertificateNo")
.FirstAsync();
if (examRecordId != null)
{
if (rule.SendRule == "ExamPass" && !await Db.Queryable<Ghre_ExamRecord>()
@ -1759,6 +1777,22 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
Reverse1 = studyRecordId != null ? $"{studyRecordId}" : $"{examRecordId}"
};
certificate.CertificateNo = SnowFlakeSingle.Instance.NextId().ObjToString();
if (certificateNoItems != null)
{
if (certificateNoItems.certNoRule == "manual")
certificate.CertificateNo = rule.Id.ObjToString();
else if (certificateNoItems.certNoRule == "fixed")
{
var certNoFixed = certificateNoItems.certNoFixed;
int length = 22 - (certNoFixed.IsNotEmptyOrNull() ? certNoFixed.Length : 0);
certificate.CertificateNo = certNoFixed + CreateRandomNum(length);
}
}
await Db.Insertable(certificate).ExecuteReturnSnowflakeIdAsync();
}

Loading…
Cancel
Save