MediaModel.cs 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. using AI.Platform.Core;
  2. using AI.Platform.Core.Entity.Media;
  3. using AI.Platform.Page.Pages.Site.Model;
  4. using Microsoft.AspNetCore.Components;
  5. using SqlSugar;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.ComponentModel.DataAnnotations;
  9. using System.Text;
  10. using System.Text.Json;
  11. namespace AI.Platform.Page.Pages.Media.Model
  12. {
  13. public class MediaModel
  14. {
  15. }
  16. /// <summary>
  17. /// 用于新增/修改广告时传递弹窗数据
  18. /// </summary>
  19. public class MediaDialogModel: IValidatableObject
  20. {
  21. /// <summary>
  22. /// 表id
  23. /// </summary>
  24. public long? Id { get; set; }
  25. /// <summary>
  26. /// 弹窗类型:1:新增;2:编辑;3:删除
  27. /// </summary>
  28. public int Type { get; set; }
  29. /// <summary>
  30. /// 集团ID
  31. /// </summary>
  32. public long GroupID { get; set; }
  33. /// <summary>
  34. /// 站点ID
  35. /// </summary>
  36. [Required(ErrorMessage = "请绑定油站")]
  37. public long BusinessUnitID { get; set; }
  38. /// <summary>
  39. /// 文件名
  40. /// </summary>
  41. [Required(ErrorMessage = "请上传广告以获取文件名")]
  42. public string FileName { set; get; }
  43. /// <summary>
  44. /// 文件后缀
  45. /// </summary>
  46. public string FileExtension { set; get; }
  47. /// <summary>
  48. /// guid文件名
  49. /// </summary>
  50. public string GuidFileName { set; get; }
  51. /// <summary>
  52. /// 保存到服务器的地址
  53. /// </summary>
  54. public string SavePath { set; get; }
  55. /// <summary>
  56. /// 文件开始播放时间
  57. /// </summary>
  58. [Required(ErrorMessage = "请设置广告播放时段")]
  59. public int? StartTime { set; get; }
  60. /// <summary>
  61. /// 文件结束播放时间
  62. /// </summary>
  63. [Required(ErrorMessage = "请设置广告播放时段")]
  64. public int? EndTime { set; get; }
  65. /// <summary>
  66. /// 文件生效时间
  67. /// </summary>
  68. [Required(ErrorMessage = "请设置广告策略有效时间段")]
  69. public DateTime? EffecitiveTime { set; get; }
  70. /// <summary>
  71. /// 文件失效时间
  72. /// </summary>
  73. public DateTime? FailureTime { set; get; }
  74. /// <summary>
  75. /// 文件油机状态
  76. /// </summary>
  77. [Required(ErrorMessage = "请选择播放该广告的油机状态")]
  78. public List<string> MachineStateList { set; get; } = new List<string>();
  79. /// <summary>
  80. /// 文件广告状态 0:禁用;1:可用
  81. /// </summary>
  82. [Required(ErrorMessage = "请设置广告状态")]
  83. public int MediaState { set; get; }
  84. /// <summary>
  85. /// 文件上传人
  86. /// </summary>
  87. public string MediaUploader { set; get; } = Global.CurrentUser.NickName;
  88. /// <summary>
  89. /// 备注
  90. /// </summary>
  91. public string Remark { set; get; }
  92. /// <summary>
  93. /// 可选择站点
  94. /// </summary>
  95. public List<SiteInfo> siteInfos { set; get; }
  96. public MediaEntity ToCompany()
  97. {
  98. var media = new MediaEntity()
  99. {
  100. LocalPath = SavePath,
  101. GroupId = this.GroupID,
  102. BusinessUnitId = this.BusinessUnitID,
  103. FileName = FileName,
  104. FileExtension = this.FileExtension,
  105. GuidFileName = this.GuidFileName,
  106. StartTime = this.StartTime ?? 0,
  107. EndTime = this.EndTime ?? 0,
  108. EffectiveTime = this.EffecitiveTime ?? DateTime.Now,
  109. FailureTime = this.FailureTime ?? DateTime.Now,
  110. MachineState = JsonSerializer.Serialize(getMachineStateList()),
  111. MediaState = this.MediaState,
  112. Uploader = this.MediaUploader ?? "",
  113. CreateTime = DateTime.Now,
  114. EditTime = DateTime.Now,
  115. Remark = this.Remark
  116. };
  117. if(this.Id != null) media.Id = (long)Id;
  118. return media;
  119. }
  120. /// <summary>
  121. /// 获取油机状态列表,为空则返回所有状态
  122. /// </summary>
  123. /// <returns></returns>
  124. public List<string> getMachineStateList()
  125. {
  126. if (MachineStateList.IsNullOrEmpty())
  127. {
  128. return getAllMachineStateList();
  129. }
  130. return MachineStateList;
  131. }
  132. /// <summary>
  133. /// 获取所有油枪状态
  134. /// </summary>
  135. /// <returns></returns>
  136. public List<string> getAllMachineStateList()
  137. {
  138. return new List<string>
  139. {
  140. "idle","lock","offline","lift","authorised","start","fueling"
  141. };
  142. }
  143. public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
  144. {
  145. if (MachineStateList.IsNullOrEmpty())
  146. {
  147. yield return new ValidationResult("请选择播放该广告的油机状态", new[] { nameof(MachineStateList) });
  148. }
  149. //if(MediaState == -1)
  150. //{
  151. // yield return new ValidationResult("请设置广告状态", new[] { nameof(MediaState) });
  152. //}
  153. if (BusinessUnitID <= 0)
  154. {
  155. yield return new ValidationResult("请选择下发油站", new[] { nameof(BusinessUnitID) });
  156. }
  157. }
  158. }
  159. /// <summary>
  160. /// 用于显示广告列表数据
  161. /// </summary>
  162. public class MediaInfoModel
  163. {
  164. /// <summary>
  165. /// 表id
  166. /// </summary>
  167. public long? Id { get; set; }
  168. /// <summary>
  169. /// 集团ID
  170. /// </summary>
  171. public long GroupID { get; set; }
  172. /// <summary>
  173. /// 站点ID
  174. /// </summary>
  175. public long BusinessUnitID { get; set; }
  176. /// <summary>
  177. /// 站名
  178. /// </summary>
  179. public string SiteName { set; get; }
  180. /// <summary>
  181. /// 文件名
  182. /// </summary>
  183. public string FileName { set; get; }
  184. /// <summary>
  185. /// 文件后缀
  186. /// </summary>
  187. public string FileExtension { set; get; }
  188. /// <summary>
  189. /// guid文件名
  190. /// </summary>
  191. public string GuidFileName { set; get; }
  192. /// <summary>
  193. /// 保存到服务器的地址
  194. /// </summary>
  195. public string SavePath { set; get; }
  196. /// <summary>
  197. /// 文件开始播放时间
  198. /// </summary>
  199. public int? StartTime { set; get; }
  200. /// <summary>
  201. /// 文件结束播放时间
  202. /// </summary>
  203. public int? EndTime { set; get; }
  204. /// <summary>
  205. /// 文件生效时间
  206. /// </summary>
  207. public DateTime EffecitiveTime { set; get; }
  208. /// <summary>
  209. /// 文件失效时间
  210. /// </summary>
  211. public DateTime FailureTime { set; get; }
  212. /// <summary>
  213. /// 修改时间
  214. /// </summary>
  215. public DateTime? EditTime { set; get; }
  216. /// <summary>
  217. /// 文件油机状态
  218. /// </summary>
  219. public string MachineStateList { set; get; }
  220. /// <summary>
  221. /// 文件广告状态 0:禁用;1:可用
  222. /// </summary>
  223. public int MediaState { set; get; }
  224. /// <summary>
  225. /// 文件上传人
  226. /// </summary>
  227. public string MediaUploader { set; get; } = Global.CurrentUser.NickName;
  228. /// <summary>
  229. /// 备注
  230. /// </summary>
  231. public string Remark { set; get; }
  232. }
  233. }