TourClientListRepository.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. using AutoMapper;
  2. using OASystem.Domain;
  3. using OASystem.Domain.Dtos.Groups;
  4. using OASystem.Domain.Entities.Customer;
  5. using OASystem.Domain.Entities.Groups;
  6. using OASystem.Domain.ViewModels.Groups;
  7. using OASystem.Infrastructure.Tools;
  8. using Org.BouncyCastle.Utilities.Encoders;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. namespace OASystem.Infrastructure.Repositories.Groups
  15. {
  16. /// <summary>
  17. /// 接团客户名单
  18. /// 仓库
  19. /// </summary>
  20. public class TourClientListRepository :BaseRepository<Grp_TourClientList,TourClientListView>
  21. {
  22. private readonly Result _result;
  23. private readonly IMapper _mapper;
  24. public TourClientListRepository(SqlSugarClient sqlSugar, IMapper mapper)
  25. : base(sqlSugar)
  26. {
  27. _result = new Result() { Code = -1, Msg = "操作失败!" };
  28. _mapper = mapper;
  29. }
  30. /// <summary>
  31. /// 根据团组Id查询List
  32. /// </summary>
  33. /// <param name="portId"></param>
  34. /// <param name="diId"></param>
  35. /// <returns></returns>
  36. public async Task<Result> _ItemByDiId(int portId, int diId)
  37. {
  38. if (portId == 1 || portId == 2 || portId == 3 ) // 1 web 2 Android 3 ios
  39. {
  40. string sql = string.Format(@"Select tcl.Id,tcl.DiId,temp.* From Grp_TourClientList tcl
  41. Left Join
  42. (Select dc.Id As DcId,dc.LastName,dc.FirstName,ccom.CompanyFullName,dc.Job,cc.CertNo As IDCardNo,dc.Sex
  43. From Crm_DeleClient dc
  44. Left Join Crm_CustomerCompany ccom On dc.CrmCompanyId = ccom.Id And ccom.IsDel = 0
  45. Left Join Crm_CustomerCert cc On dc.Id = cc.DcId And cc.SdId = 773 And cc.IsDel = 0
  46. Where dc.IsDel = 0) temp
  47. On temp.DcId =tcl.ClientId
  48. Where tcl.IsDel = 0 And tcl.DiId = {0}", diId);
  49. var data = await _sqlSugar.SqlQueryable<TourClientListByDiIdView>(sql).ToListAsync();
  50. _result.Code = 0;
  51. _result.Data = data;
  52. }
  53. else
  54. {
  55. _result.Msg = "请传入有效的PortType参数,1 Web 2 Android 3 IOS!";
  56. }
  57. return _result;
  58. }
  59. /// <summary>
  60. /// 基础数据 Init
  61. /// </summary>
  62. /// <param name="portId"></param>
  63. /// <returns></returns>
  64. public async Task<Result> _BasicDataInit(int portId)
  65. {
  66. if (portId == 1 || portId == 2 || portId == 3) // 1 web 2 Android 3 ios
  67. {
  68. var setData = await _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0) .ToListAsync();
  69. var shippingSpaceTypeData = setData.Where(it => it.STid == 44).ToList(); //舱位类型
  70. List<SetDataInfoView> _ShippingSpaceTypeData = _mapper.Map<List<SetDataInfoView>>(shippingSpaceTypeData);
  71. var passportTypeData = setData.Where(it => it.STid == 74).ToList(); //护照类型
  72. List<SetDataInfoView> _PassportTypeData = _mapper.Map<List<SetDataInfoView>>(passportTypeData);
  73. var _view = new {
  74. ShippingSpaceTypeData = _ShippingSpaceTypeData,
  75. PassportTypeData = _PassportTypeData
  76. };
  77. _result.Code = 0;
  78. _result.Data = _view;
  79. }
  80. else
  81. {
  82. _result.Msg = "请传入有效的PortType参数,1 Web 2 Android 3 IOS!";
  83. }
  84. return _result;
  85. }
  86. /// <summary>
  87. /// 根据Id查询Details
  88. /// </summary>
  89. /// <param name="portId"></param>
  90. /// <param name="id"></param>
  91. /// <returns></returns>
  92. public async Task<Result> _Details(int portId, int id)
  93. {
  94. if (portId == 1 || portId == 2 || portId == 3) // 1 web 2 Android 3 ios
  95. {
  96. string sql = string.Format(@"Select tcl.Id,tcl.DiId,temp.*,tcl.ShippingSpaceTypeId,tcl.ShippingSpaceSpecialNeeds,
  97. tcl.HotelSpecialNeeds,tcl.MealSpecialNeeds,tcl.Remark
  98. From Grp_TourClientList tcl
  99. Left Join
  100. (Select dc.Id As DcId,dc.LastName,dc.FirstName,dc.Pinyin,dc.Sex,ccom.CompanyFullName,dc.Job,
  101. cc1.CertNo As IDCardNo,dc.Phone,dc.BirthDay,cc2.PassportType,cc2.CertNo As PassportNo,cc2.Country,
  102. cc2.Area,cc2.IssueDt,cc2.ExpiryDt
  103. From Crm_DeleClient dc
  104. Left Join Crm_CustomerCompany ccom On dc.CrmCompanyId = ccom.Id And ccom.IsDel = 0
  105. Left Join Crm_CustomerCert cc1 On dc.Id = cc1.DcId And cc1.SdId = 773 And cc1.IsDel = 0
  106. Left Join Crm_CustomerCert cc2 On dc.Id = cc2.DcId And cc2.SdId = 774 And cc2.IsDel = 0
  107. Where dc.IsDel = 0) temp
  108. On temp.DcId =tcl.ClientId
  109. Where tcl.IsDel = 0 And tcl.Id = {0}", id);
  110. var data = await _sqlSugar.SqlQueryable<TourClientListDetailsView>(sql).FirstAsync();
  111. if (data != null)
  112. {
  113. data.BirthDay = data.BirthDay.DateFormat("yyyy-MM-dd");
  114. data.IssueDt = data.IssueDt.DateFormat("yyyy-MM-dd");
  115. data.ExpiryDt = data.ExpiryDt.DateFormat("yyyy-MM-dd");
  116. _result.Code = 0;
  117. _result.Data = data;
  118. }
  119. }
  120. else
  121. {
  122. _result.Msg = "请传入有效的PortType参数,1 Web 2 Android 3 IOS!";
  123. }
  124. return _result;
  125. }
  126. /// <summary>
  127. /// Add Or Edit
  128. /// </summary>
  129. /// <param name="portId"></param>
  130. /// <param name="id"></param>
  131. /// <returns></returns>
  132. public async Task<Result> _AddOrEdit(TourClientListAddOrEditDto dto)
  133. {
  134. if (dto.Id < 0) // 1 web 2 Android 3 ios
  135. {
  136. if (dto.Id == 0) // 添加
  137. {
  138. #region 参数处理
  139. _sqlSugar.BeginTran();
  140. int clientId = -1;
  141. var clientInfo = await _sqlSugar.Queryable<Crm_DeleClient>().Where(it => it.IsDel == 0 &&
  142. it.LastName.Equals(dto.LastName) &&
  143. it.FirstName.Equals(dto.FirstName) &&
  144. it.Phone.Equals(dto.Phone)
  145. ).FirstAsync();
  146. if (clientInfo != null) //该客户存在 修改信息
  147. {
  148. Crm_DeleClient _DeleClient = new Crm_DeleClient()
  149. {
  150. LastName = dto.LastName,
  151. FirstName = dto.FirstName,
  152. Pinyin = dto.Pinyin,
  153. Sex = dto.Sex,
  154. Phone = dto.Phone,
  155. BirthDay = dto.BirthDay
  156. };
  157. clientId = clientInfo.Id;
  158. //1.修改基本信息
  159. var clientEdit = await _sqlSugar.Updateable(_DeleClient).UpdateColumns(it =>
  160. new
  161. {
  162. it.LastName,
  163. it.FirstName,
  164. it.Pinyin,
  165. it.Sex,
  166. it.Phone,
  167. it.BirthDay
  168. }
  169. )
  170. .Where(it => it.Id == clientId)
  171. .ExecuteCommandAsync();
  172. if (clientEdit < 0)
  173. {
  174. _sqlSugar.RollbackTran();
  175. _result.Msg = "客户基础信息修改失败!";
  176. }
  177. //2.修改卡类型信息
  178. //2.1 修改身份证信息
  179. }
  180. else //不存在添加 客户信息
  181. {
  182. //1.添加基本信息
  183. //2.添加卡类型信息
  184. //2.1 添加身份证信息
  185. //2.2 添加护照信息
  186. }
  187. Grp_TourClientList _TourClientList = new Grp_TourClientList() {
  188. DiId = dto.DiId,
  189. ClientId = clientId,
  190. ShippingSpaceTypeId = dto.ShippingSpaceTypeId,
  191. ShippingSpaceSpecialNeeds = dto.ShippingSpaceSpecialNeeds,
  192. HotelSpecialNeeds = dto.HotelSpecialNeeds,
  193. MealSpecialNeeds = dto.MealSpecialNeeds,
  194. CreateUserId = dto.UserId,
  195. IsDel = 0
  196. };
  197. _sqlSugar.CommitTran();
  198. #endregion
  199. }
  200. else if (dto.Id > 0) //修改
  201. {
  202. }
  203. }
  204. else
  205. {
  206. _result.Msg = "请传入有效的id参数!";
  207. }
  208. return _result;
  209. }
  210. }
  211. }