VisaCommissionRepository.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. using AutoMapper;
  2. using OASystem.Domain.Dtos.Groups;
  3. using OASystem.Domain.Entities.Groups;
  4. using OASystem.Domain.ViewModels.Groups;
  5. using OASystem.Infrastructure.Tools;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Runtime;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace OASystem.Infrastructure.Repositories.Groups
  13. {
  14. /// <summary>
  15. /// 签证提成录入
  16. /// 仓储
  17. /// </summary>
  18. public class VisaCommissionRepository : BaseRepository<Grp_VisaCommission, VisaCommissionViewModel>
  19. {
  20. private readonly IMapper _mapper;
  21. private readonly DelegationInfoRepository _groupRep;
  22. public VisaCommissionRepository(SqlSugarClient sqlSugar, IMapper mapper, DelegationInfoRepository groupRep)
  23. : base(sqlSugar)
  24. {
  25. _mapper = mapper;
  26. _groupRep = groupRep;
  27. }
  28. /// <summary>
  29. /// Init
  30. /// </summary>
  31. /// <returns></returns>
  32. public async Task<JsonView> Init()
  33. {
  34. var groupInfo = await _groupRep.GetGroupNameList(new Domain.Dtos.Groups.GroupNameDto() { PortType = 1 });
  35. return new JsonView() { Code = StatusCodes.Status200OK, Msg = "操作成功!", Data = new { GroupData = groupInfo.Data } };
  36. }
  37. /// <summary>
  38. /// Item
  39. /// </summary>
  40. /// <returns></returns>
  41. public async Task<JsonView> Item(VisaCommissionItemDto _dto)
  42. {
  43. var data = await _sqlSugar.Queryable<Grp_VisaCommission>()
  44. .Where(x => x.IsDel == 0 && x.DiId == _dto.DiId && x.UId == _dto.CurrUserId)
  45. .Select(x => new
  46. {
  47. x.Id,
  48. x.Country,
  49. x.Quantity,
  50. x.Remark
  51. })
  52. .ToListAsync();
  53. var groupInfo = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(x => x.IsDel == 0 && x.Id == _dto.DiId).FirstAsync();
  54. if (groupInfo != null)
  55. {
  56. string[] countryArray = _groupRep.GroupSplitCountry(groupInfo.VisitCountry).ToArray();
  57. foreach (string country in countryArray)
  58. {
  59. if (data.Find(x => country.Equals(x.Country)) == null)
  60. {
  61. data.Add(new
  62. {
  63. Id = 0,
  64. Country = country,
  65. Quantity = 0,
  66. Remark = ""
  67. });
  68. }
  69. }
  70. }
  71. return new JsonView() { Code = StatusCodes.Status200OK, Msg = "操作成功!", Data = data };
  72. }
  73. /// <summary>
  74. /// Save
  75. /// </summary>
  76. /// <returns></returns>
  77. public async Task<JsonView> Save(VisaCommissionSaveDto _dto)
  78. {
  79. var data = _mapper.Map<List<Grp_VisaCommission>>(_dto.Items);
  80. for (int i = 0; i < data.Count; i++)
  81. {
  82. data[i].CreateUserId = _dto.Items.FirstOrDefault()?.CurrUserId ?? 0;
  83. data[i].UId = _dto.Items.FirstOrDefault()?.CurrUserId ?? 0;
  84. }
  85. //添加数据
  86. var addData = data.Where(x => x.Id < 1).ToList();
  87. //修改数据
  88. var updData = data.Where(x => x.Id > 0).ToList();
  89. _sqlSugar.BeginTran();
  90. bool status = false;
  91. if (addData.Count > 0) {
  92. var addCount = await _sqlSugar.Insertable<Grp_VisaCommission>(addData).ExecuteCommandAsync();
  93. if (addCount > 0) status=true;
  94. }
  95. if (updData.Count > 0)
  96. {
  97. var updCount = await _sqlSugar.Updateable<Grp_VisaCommission>(updData)
  98. .UpdateColumns(x => new
  99. {
  100. x.Country,
  101. x.Quantity,
  102. x.Remark
  103. })
  104. .WhereColumns(x => x.Id)
  105. .ExecuteCommandAsync();
  106. if (updCount > 0) status = true;
  107. }
  108. var jv = new JsonView() { Code = StatusCodes.Status200OK, Msg = "操作成功!" };
  109. if (status) _sqlSugar.CommitTran();
  110. else
  111. {
  112. _sqlSugar.RollbackTran();
  113. jv.Code = StatusCodes.Status400BadRequest;
  114. jv.Msg = "操作失败";
  115. }
  116. return jv;
  117. }
  118. /// <summary>
  119. /// Create
  120. /// </summary>
  121. /// <returns></returns>
  122. public async Task<JsonView> Create(VisaCommissionCreateDto _dto)
  123. {
  124. var _view = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = "操作失败!" };
  125. //添加查重
  126. var info = await _sqlSugar.Queryable<Grp_VisaCommission>()
  127. .Where(x => x.IsDel == 0 && x.DiId == _dto.DiId && x.Country.Equals(_dto.Country))
  128. .FirstAsync();
  129. //if (info != null)
  130. //{
  131. // _view.Code = StatusCodes.Status400BadRequest;
  132. // _view.Msg = "该数据已存在请勿重新添加!";
  133. // return _view;
  134. //}
  135. var createInfo = _mapper.Map<Grp_VisaCommission>(_dto);
  136. createInfo.CreateUserId = _dto.CurrUserId;
  137. createInfo.UId = _dto.CurrUserId;
  138. var createStatus = await _sqlSugar.Insertable<Grp_VisaCommission>(createInfo)
  139. .ExecuteCommandAsync();
  140. if (createStatus > 0)
  141. {
  142. _view.Code = StatusCodes.Status200OK;
  143. _view.Msg = "操作成功!";
  144. return _view;
  145. }
  146. return _view;
  147. }
  148. /// <summary>
  149. /// Edit
  150. /// </summary>
  151. /// <param name="id"></param>
  152. /// <param name="_dto"></param>
  153. /// <returns></returns>
  154. public async Task<JsonView> Edit(int id,VisaCommissionCreateDto _dto)
  155. {
  156. var _view = new JsonView() { Code = StatusCodes.Status204NoContent, Msg = "操作失败!" };
  157. var editInfo = _mapper.Map<Grp_VisaCommission>(_dto);
  158. editInfo.CreateUserId = _dto.CurrUserId;
  159. editInfo.UId = _dto.CurrUserId;
  160. var editStatus = await _sqlSugar.Updateable<Grp_VisaCommission>(editInfo)
  161. .UpdateColumns(x => new
  162. {
  163. x.Country,
  164. x.Quantity,
  165. x.Remark
  166. })
  167. .Where(x => x.Id == id)
  168. .ExecuteCommandAsync();
  169. if (editStatus > 0)
  170. {
  171. _view.Code = StatusCodes.Status200OK;
  172. _view.Msg = "操作成功!";
  173. return _view;
  174. }
  175. return _view;
  176. }
  177. /// <summary>
  178. /// Del
  179. /// </summary>
  180. /// <param name="id"></param>
  181. /// <param name="currUserId"></param>
  182. /// <returns></returns>
  183. public async Task<JsonView> Del(int id,int currUserId)
  184. {
  185. var _view = new JsonView() { Code = StatusCodes.Status204NoContent, Msg = "操作失败!" };
  186. var editStatus = await _sqlSugar.Updateable<Grp_VisaCommission>()
  187. .SetColumns(x => new Grp_VisaCommission
  188. {
  189. DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
  190. DeleteUserId = currUserId,
  191. })
  192. .Where(x => x.Id == id)
  193. .ExecuteCommandAsync();
  194. if (editStatus > 0)
  195. {
  196. _view.Code = StatusCodes.Status200OK;
  197. _view.Msg = "操作成功!";
  198. return _view;
  199. }
  200. return _view;
  201. }
  202. }
  203. }