MapperConfigs.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. using Hotline.CallCenter.BlackLists;
  2. using Hotline.FlowEngine.Definitions;
  3. using Hotline.FlowEngine.Workflows;
  4. using Hotline.Identity.Roles;
  5. using Hotline.KnowledgeBase;
  6. using Hotline.Orders;
  7. using Hotline.Share.Dtos.CallCenter;
  8. using Hotline.Share.Dtos.FlowEngine;
  9. using Hotline.Share.Dtos.Knowledge;
  10. using Hotline.Share.Dtos.Order;
  11. using Hotline.Share.Dtos.Roles;
  12. using Hotline.Share.Dtos.Users;
  13. using Hotline.Users;
  14. using Mapster;
  15. namespace Hotline.Application.Mappers
  16. {
  17. public class MapperConfigs : IRegister
  18. {
  19. public void Register(TypeAdapterConfig config)
  20. {
  21. config.ForType<AddBlacklistDto, Blacklist>()
  22. .Ignore(d => d.Expired)
  23. .AfterMapping((s, t) => t.InitExpired());
  24. config.ForType<AddUserDto, User>()
  25. .Map(d => d.Name, x => x.Name ?? x.UserName);
  26. config.NewConfig<User, UserDto>()
  27. .IgnoreIf((s, d) => s.Account == null, d => d.UserName, d => d.Roles)
  28. .IgnoreIf((s, d) => s.Organization == null, d => d.OrgName)
  29. .Map(d => d.UserName, x => x.Account.UserName)
  30. .Map(d => d.OrgName, x => x.Organization.OrgName)
  31. .Map(d => d.Roles, x => string.Join(',', x.Account.Roles.Select(d => d.DisplayName)))
  32. .Map(d => d.State, x => x.IsDeleted ? "已删除" : "正常")
  33. .IgnoreNullValues(true);
  34. config.NewConfig<Role, RoleDto>()
  35. .Map(d => d.AccountIds, x => x.Accounts.Select(d => d.Id))
  36. .Map(d => d.State, x => x.IsDeleted ? "已删除" : "正常");
  37. #region workflow
  38. config.ForType<UpdateDefinitionDto, Definition>()
  39. .Ignore(d => d.Id);
  40. config.ForType<WorkflowStep, WorkflowStep>()
  41. .Ignore(d => d.Id)
  42. .Ignore(d => d.PreviousId)
  43. .Ignore(d => d.IsMain)
  44. .Ignore(d => d.Status)
  45. .Ignore(d => d.ParentId)
  46. .Ignore(d => d.HandlerIds)
  47. .Ignore(d => d.Steps)
  48. .Ignore(d => d.StartCountersignId)
  49. .Ignore(d => d.CountersignId)
  50. .Ignore(d => d.IsStartedCountersignComplete)
  51. ;
  52. config.ForType<WorkflowStep, WorkflowTrace>()
  53. .Ignore(d => d.Id)
  54. .Ignore(d => d.ParentId)
  55. .Ignore(d => d.Status)
  56. .Map(d => d.StepId, s => s.Id);
  57. config.ForType<WorkflowSupplement, WorkflowSupplementDto>()
  58. .IgnoreIf((s, d) => s.Creator == null, d => d.Creator);
  59. config.ForType<Workflow, WorkflowDto>()
  60. .IgnoreIf((s, d) => s.Assigns == null || !s.Assigns.Any(), d => d.AssignOrgs)
  61. .Map(d => d.AssignOrgs, s => string.Join(',', s.Assigns.Select(d => d.OrgName)))
  62. ;
  63. config.ForType<BasicWorkflowDto, WorkflowStep>()
  64. .Map(d => d.NextHandlers, s => s.NextHandlers)
  65. .Map(d => d.NextMainHandler, s => s.NextMainHandler)
  66. .Map(d => d.NextStepCode, s => s.NextStepCode)
  67. .Map(d => d.AcceptSms, s => s.AcceptSms)
  68. .Map(d => d.Opinion, s => s.Opinion)
  69. .Map(d => d.Additions, s => s.Additions)
  70. .IgnoreNonMapped(true)
  71. ;
  72. #endregion
  73. #region Knowledge
  74. config.NewConfig<KnowledgeApply, KnowledgeApplyHandlePageDto>()
  75. .Map(d => d.CreationName, x => x.User.Name)
  76. .Map(d => d.CreationOrgName, x => x.SystemOrganize.OrgName);
  77. config.NewConfig<Hotline.KnowledgeBase.Knowledge, KnowledgeDataDto>()
  78. .Map(d => d.CreationName, x => x.User.Name)
  79. .Map(d => d.KnowledgeTypeName, x => x.KnowledgeType.SpliceName)
  80. .Map(d => d.HotspotName, x => x.HotSpotType.HotSpotFullName);
  81. config.NewConfig<Hotline.KnowledgeBase.Knowledge, KnowledgeApprovalDataDto>()
  82. .Map(d => d.CreationName, x => x.User.Name)
  83. .Map(d => d.KnowledgeTypeName, x => x.KnowledgeType.SpliceName)
  84. .Map(d => d.CreateBMName, x => x.SystemOrganize.OrgName);
  85. config.NewConfig<KnowledgeWorkFlow, KnowledgeApprovalDataDto>()
  86. .Map(d => d.CreationName, x => x.Knowledge.User.Name)
  87. .Map(d => d.KnowledgeTypeName, x => x.Knowledge.KnowledgeType.SpliceName)
  88. .Map(d => d.CreateBMName, x => x.Knowledge.SystemOrganize.OrgName)
  89. .Map(d => d.Id, x => x.Knowledge.Id)
  90. .Map(d => d.Title, x => x.Knowledge.Title)
  91. .Map(d => d.PageView, x => x.Knowledge.PageView)
  92. .Map(d => d.Status, x => x.Knowledge.Status)
  93. .Map(d => d.WorkflowModuleStatus, x => x.WorkflowModuleStatus)
  94. .Map(d => d.Time, x => x.Workflow.CurrentStepTime);
  95. config.NewConfig<KnowledgeWorkFlow, KnowledgeDeleteApplyDataDto>()
  96. .Map(d => d.Id, x => x.Knowledge.Id)
  97. .Map(d => d.Title, x => x.Knowledge.Title)
  98. .Map(d => d.KnowledgeTypeName, x => x.Knowledge.KnowledgeType.SpliceName)
  99. .Map(d => d.HotspotName, x => x.Knowledge.HotSpotType.HotSpotFullName)
  100. .Map(d => d.CreationName, x => x.Knowledge.User.Name)
  101. .Map(d => d.CreationBMName, x => x.Knowledge.SystemOrganize.OrgName)
  102. .Map(d => d.PageView, x => x.Knowledge.PageView)
  103. .Map(d => d.Status, x => x.Knowledge.Status)
  104. .Map(d => d.WorkFlowApplyStatus, x => x.WorkflowModuleStatus);
  105. #endregion
  106. #region order
  107. config.ForType<Order, OrderDto>()
  108. .IgnoreIf((s, d) => s.OrderComplain == null, d => d.OrderComplain)
  109. .IgnoreIf((s, d) => s.OrderReport == null, d => d.OrderReport)
  110. .IgnoreIf((s, d) => s.Workflow == null, d => d.Workflow)
  111. .IgnoreIf((s, d) => s.Employee == null, d => d.EmployeeName, d => d.EmployeeStaffNo)
  112. .Ignore(d => d.Workflow.Definition)
  113. .Ignore(d => d.Workflow.StepBoxes)
  114. .Ignore(d => d.Workflow.Traces)
  115. ;
  116. config.ForType<AddOrderDto, Order>()
  117. .IgnoreIf((s, d) => s.OrderComplain == null, d => d.OrderComplain)
  118. .IgnoreIf((s, d) => s.OrderReport == null, d => d.OrderReport);
  119. config.ForType<UpdateOrderDto, Order>()
  120. .Inherits<AddOrderDto, Order>();
  121. #endregion
  122. }
  123. }
  124. }