HotelPriceRepository.cs 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. using AutoMapper;
  2. using OASystem.Domain;
  3. using OASystem.Domain.Dtos.Groups;
  4. using OASystem.Domain.Dtos.Resource;
  5. using OASystem.Domain.Entities.Groups;
  6. using OASystem.Domain.ViewModels.Groups;
  7. using OASystem.Infrastructure.Repositories.Resource;
  8. using OASystem.Infrastructure.Tools;
  9. using Result = OASystem.Domain.Result;
  10. namespace OASystem.Infrastructure.Repositories.Groups
  11. {
  12. public class HotelPriceRepository : BaseRepository<Grp_HotelReservations, Grp_HotelReservations>
  13. {
  14. private readonly IMapper _mapper;
  15. private readonly Result _result;
  16. private readonly JsonView _view;
  17. private readonly TeamRateRepository _teamRateRep;
  18. private readonly TourClientListRepository _tourClientListRep;
  19. private readonly HotelDataRepository _hotelDataRep;
  20. public HotelPriceRepository(SqlSugarClient sqlSugar, IMapper mapper, TeamRateRepository teamRateRep, TourClientListRepository tourClientListRep, HotelDataRepository hotelDataRep)
  21. : base(sqlSugar)
  22. {
  23. this._mapper = mapper;
  24. _result = new Result() { Code = -1, Msg = MsgTips.Fail };
  25. _view = new JsonView() { Code = 400, Msg = MsgTips.Fail };
  26. _teamRateRep = teamRateRep;
  27. _tourClientListRep = tourClientListRep;
  28. _hotelDataRep = hotelDataRep;
  29. }
  30. /// <summary>
  31. /// 酒店预定
  32. /// Items By DiId
  33. /// </summary>
  34. /// <param name="dto"></param>
  35. /// <returns></returns>
  36. public async Task<JsonView> ItemsByDiId(int portType, int diId)
  37. {
  38. string sql = string.Format(@"Select row_number() over(order by hr.CheckInDate asc) as Row_Number,
  39. hr.Id,hr.DiId,sd1.Name As GuestType,hr.ReservationsNo,hr.HotelName,hr.CheckInDate,hr.CheckOutDate,
  40. ccp.PayMoney, ccp.PaymentCurrency,sd2.Name PayCurrency,hr.CreateUserId,u.CnName As CreateUserName,
  41. hr.CreateTime,ccp.IsAuditGM,ccp.IsPay
  42. From Grp_HotelReservations hr
  43. Inner Join Grp_CreditCardPayment ccp On hr.DiId = ccp.DIId And hr.Id = ccp.CId
  44. And ccp.CTable = 76
  45. Left Join Sys_SetData sd1 On hr.GTId = sd1.Id
  46. Left Join Sys_SetData sd2 On ccp.PaymentCurrency = sd2.Id
  47. Left Join Sys_Users u On hr.CreateUserId = u.Id
  48. Where hr.IsDel = 0 And ccp.IsDel = 0 And hr.DiId = {0} ", diId);
  49. if (portType == 1 || portType == 2 || portType == 3)
  50. {
  51. var hotelFeeData = await _sqlSugar.SqlQueryable<HotelReservationsItemsView>(sql).ToListAsync();
  52. _view.Code = 200;
  53. _view.Data = hotelFeeData;
  54. _view.Msg = MsgTips.Succeed;
  55. }
  56. else
  57. {
  58. _view.Msg = MsgTips.Port;
  59. }
  60. return _view;
  61. }
  62. /// <summary>
  63. /// 酒店预定
  64. /// basicsData Init
  65. /// </summary>
  66. /// <param name="dto"></param>
  67. /// <returns></returns>
  68. public async Task<JsonView> BasicsDataInit(int portType, int diId)
  69. {
  70. List<Sys_SetData> _dataSouruce = await _sqlSugar.Queryable<Sys_SetData>().Where(a => a.IsDel == 0).ToListAsync();
  71. if (portType == 1 || portType == 2 || portType == 3)
  72. {
  73. //客人类型
  74. List<Sys_SetData> GuestType = _dataSouruce.Where(a => a.STid == 11).ToList();
  75. List<SetDataInfoView> _GuestType = _mapper.Map<List<SetDataInfoView>>(GuestType);
  76. //预订网站
  77. List<Sys_SetData> BookingWebsite = _dataSouruce.Where(a => a.STid == 12).ToList();
  78. List<SetDataInfoView> _BookingWebsite = _mapper.Map<List<SetDataInfoView>>(BookingWebsite);
  79. //支付方式
  80. List<Sys_SetData> Payment = _dataSouruce.Where(a => a.STid == 14).ToList();
  81. List<SetDataInfoView> _Payment = _mapper.Map<List<SetDataInfoView>>(Payment);
  82. //卡类型
  83. List<Sys_SetData> BankCard = _dataSouruce.Where(a => a.STid == 15).ToList();
  84. List<SetDataCurrencyInfoView> _BankCard = _mapper.Map<List<SetDataCurrencyInfoView>>(BankCard);
  85. //房间入住人类型
  86. List<Sys_SetData> CheckPerson = _dataSouruce.Where(a => a.STid == 71).ToList();
  87. List<SetDataInfoView> _CheckPerson = _mapper.Map<List<SetDataInfoView>>(CheckPerson);
  88. var _teamRateView = await _teamRateRep.PostGroupTeamRateItemByDiIdAndCTableId(portType, diId, 76);
  89. string _CheckVolumeNo = string.Empty;
  90. var checkVoumeNoData = CreateCheckVolumeNo(diId);
  91. if (checkVoumeNoData.Result.Code == 0)
  92. {
  93. _CheckVolumeNo = checkVoumeNoData.Result.Data;
  94. }
  95. //客户名单
  96. var guestNames = await _tourClientListRep._GuestNameItemByDiId(portType, diId);
  97. //三公国家费用标准
  98. var countrys = await _sqlSugar.Queryable<Grp_NationalTravelFee>()
  99. .Where(x => x.IsDel == 0)
  100. .Select(x => new
  101. {
  102. x.Id,
  103. x.Country,
  104. x.City
  105. })
  106. .ToListAsync();
  107. var data = new
  108. {
  109. GuestType = _GuestType, //客人分类
  110. Payment = _Payment,
  111. CurrencyList = _teamRateView,
  112. BankCard = _BankCard,
  113. BookingWebsite = _BookingWebsite,
  114. CheckPerson = _CheckPerson,
  115. CheckVolumeNo = _CheckVolumeNo,
  116. GuestName = guestNames,
  117. Countrys = countrys
  118. };
  119. _view.Code = 200;
  120. _view.Data = data;
  121. _view.Msg = MsgTips.Succeed;
  122. }
  123. else _view.Msg = MsgTips.Port;
  124. return _view;
  125. }
  126. /// <summary>
  127. /// 酒店预定
  128. /// 创建 入住卷号码
  129. /// </summary>
  130. /// <param name="DiId"></param>
  131. /// <returns></returns>
  132. public async Task<Result> CreateCheckVolumeNo(int DiId)
  133. {
  134. var groupInfo = await _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.Id == DiId && it.IsDel == 0).FirstAsync();
  135. if (groupInfo != null)
  136. {
  137. if (!string.IsNullOrEmpty(groupInfo.VisitCountry))
  138. {
  139. string no = string.Empty;
  140. string[] countrys = new string[] { };
  141. countrys = groupInfo.VisitCountry.Split('|');
  142. foreach (string country in countrys)
  143. {
  144. //国家城市三字码 未挪数据 暂时用随机数代替
  145. }
  146. no = CommonFun.GetRandomLetter(countrys.Length).ToUpper();
  147. no += CommonFun.GetRandomNumber(2);
  148. _result.Code = 0;
  149. _result.Data = no;
  150. _result.Msg = "入住卷号码 获取成功!";
  151. }
  152. }
  153. return _result;
  154. }
  155. /// <summary>
  156. /// 酒店预定-
  157. /// details
  158. /// </summary>
  159. /// <param name="dto"></param>
  160. /// <returns></returns>
  161. public async Task<JsonView> Details(int portType, int id)
  162. {
  163. if (id < 0)
  164. {
  165. _view.Msg = string.Format(@"请输入正确的Id!");
  166. return _view;
  167. }
  168. string sql = string.Format(@"Select hr.Id,hr.DiId,hr.GTId,hr.CheckNumber,hr.ReservationsWebsite,hr.ReservationsNo,
  169. hr.DetermineNo,hr.AreaId,hr.City,hr.HotelName,hr.HotelTel,hr.HotelAddress,hr.GuestName,hr.CheckInDate,hr.CheckOutDate,
  170. hr.CheckType,hr.RoomExplanation,hr.Remark As HotelRemark,hr.SingleRoomPrice,hr.SingleRoomCount,hr.DoubleRoomPrice,
  171. hr.DoubleRoomCount,hr.SuiteRoomPrice,hr.SuiteRoomCount,hr.OtherRoomPrice,hr.OtherRoomCount,hr.CardPrice,hr.CardPriceCurrency,
  172. hr.Isoppay,hr.BreakfastPrice,hr.BreakfastCurrency,hr.GovernmentRent,hr.GovernmentRentCurrency,hr.CityTax,
  173. hr.CityTaxCurrency,ccp.PayDId,ccp.ConsumptionPatterns,ccp.ConsumptionDate,ccp.PayMoney,ccp.PaymentCurrency,
  174. ccp.BankNo,ccp.CardholderName,ccp.CompanyBankNo,ccp.OtherBankName,ccp.OtherSideNo,ccp.OtherSideName,ccp.Payee,
  175. ccp.OrbitalPrivateTransfer,ccp.Remark As CcpRemark
  176. From Grp_HotelReservations hr
  177. Inner Join Grp_CreditCardPayment ccp On hr.DiId = ccp.DIId And hr.Id = ccp.CId
  178. And ccp.CTable = 76
  179. Where hr.IsDel = 0 And ccp.IsDel = 0 And hr.Id = {0}", id);
  180. if (portType == 1 || portType == 2 || portType == 3)
  181. {
  182. var info = await _sqlSugar.SqlQueryable<HotelReservationsDetailsView>(sql).FirstAsync();
  183. string contentSql = string.Format($@"Select
  184. Id,
  185. DiId,
  186. HrId,
  187. PriceType,
  188. Price,
  189. Currency,
  190. Rate,
  191. IsOppay,
  192. PayDId,
  193. ConsumptionPatterns,
  194. ConsumptionDate,
  195. CTDId,
  196. BankNo,
  197. CardholderName,
  198. CompanyBankNo,
  199. OtherBankName,
  200. OtherSideNo,
  201. OtherSideName,
  202. IsPay,
  203. Payee,
  204. OrbitalPrivateTransfer
  205. From Grp_HotelReservationsContent With(NoLock)
  206. Where IsDel = 0 And HrId = {info.Id}");
  207. info.Contents = await _sqlSugar.SqlQueryable<HotelReservationsContnetDetailsView>(contentSql).ToListAsync();
  208. _view.Code = 200;
  209. _view.Data = info;
  210. _view.Msg = MsgTips.Succeed;
  211. }
  212. else _view.Msg = MsgTips.Port;
  213. return _view;
  214. }
  215. /// <summary>
  216. /// 酒店预定
  217. /// Add Or Edit
  218. /// </summary>
  219. /// <returns></returns>
  220. public async Task<JsonView> AddOrEdit(HotelReservationsAddOrEditDto _dto)
  221. {
  222. var _view = new JsonView() { Code = 400, Msg = MsgTips.Fail };
  223. int portType = _dto.PortType;
  224. if (portType == 1 || portType == 2 || portType == 3)
  225. {
  226. var _HotelReservations = new Grp_HotelReservations();
  227. var _HotelReservationsContents = new List<Grp_HotelReservationsContent>();
  228. var _CreditCardPayment = new Grp_CreditCardPayment();
  229. #region 参数处理
  230. _HotelReservations = _mapper.Map<Grp_HotelReservations>(_dto);
  231. _HotelReservationsContents = _mapper.Map<List<Grp_HotelReservationsContent>>(_dto.Contents);
  232. _CreditCardPayment = _mapper.Map<Grp_CreditCardPayment>(_dto);
  233. _HotelReservations.DiId = _dto.DiId;
  234. _HotelReservations.CreateUserId = _dto.UserId;
  235. _HotelReservations.Remark = _dto.HotelRemark;
  236. #region 子表币种汇率处理
  237. //List<Sys_SetData> currData = await _sqlSugar.Queryable<Sys_SetData>().Where(a => a.IsDel == 0 && a.STid == 66).ToListAsync();
  238. //List<TeamRateModelView> teamRateModelViews = new List<TeamRateModelView>();
  239. //teamRateModelViews = await _teamRateRep.PostGroupRateInfoByDiId(_dto.DiId);
  240. //if (teamRateModelViews.Count < 0)
  241. //{
  242. // _view.Msg = "该团未设置酒店预订模块相关币种汇率!";
  243. // return _view;
  244. //}
  245. //TeamRateModelView teamRateModels_hotel = new TeamRateModelView();
  246. //teamRateModels_hotel = teamRateModelViews.Where(it => it.CTableId == 76).FirstOrDefault();
  247. //if (teamRateModels_hotel == null)
  248. //{
  249. // _view.Msg = "该团未设置酒店预订模块相关币种汇率!";
  250. // return _view;
  251. //}
  252. //List<TeamRateDescView> teamRateDescViews = new List<TeamRateDescView>();
  253. //teamRateDescViews = teamRateModels_hotel.TeamRates;
  254. //if (teamRateDescViews.Count < 0)
  255. //{
  256. // _view.Msg = "该团未设置酒店预订模块相关币种汇率!";
  257. // return _view;
  258. //}
  259. #endregion
  260. _HotelReservationsContents.ForEach(it =>
  261. {
  262. it.CreateUserId = _dto.UserId;
  263. it.DiId = _dto.DiId;
  264. it.HrId = _HotelReservations.Id;
  265. //2025-04-07 第四次更改 PayDId == 72(刷卡) IsPay == 1
  266. if (it.PayDId == 72 && it.IsOppay == 0) it.IsPay = 1;
  267. if (!string.IsNullOrEmpty(it.ConsumptionDate))
  268. {
  269. if (DateTime.TryParse(it.ConsumptionDate, out DateTime dt))
  270. {
  271. it.ConsumptionDate = dt.ToString("yyyy-MM-dd");
  272. }
  273. }
  274. //var currCode = currData.Find(x => x.Id == it.Currency)?.Name;
  275. //decimal? currRate = teamRateDescViews.Find(x => x.CurrencyCode == currCode)?.Rate;
  276. //it.Rate = currRate ?? 0.00M;
  277. });
  278. _HotelReservationsContents = _HotelReservationsContents.OrderBy(x => x.PriceType).ToList();
  279. if (portType == 2 || portType == 3)
  280. {
  281. string checkNo = string.Empty;
  282. Result checkNoRes = await CreateCheckVolumeNo(_dto.DiId);
  283. if (checkNoRes.Code == 0)
  284. {
  285. checkNo = checkNoRes.Data;
  286. _HotelReservations.CheckNumber = checkNo;
  287. }
  288. }
  289. #region CCP 表参数
  290. //2025-04-07 第四次更改 PayDId == 72(刷卡) IsPay == 1
  291. //费用详情子项 全部已付款更改 C表付款状态
  292. var hotelSubPayStatus = _HotelReservationsContents.Where(x => x.Price > 0).ToList();
  293. if (hotelSubPayStatus.Where(x => x.IsPay == 1).Count() == hotelSubPayStatus.Count)
  294. {
  295. _CreditCardPayment.IsPay = 1;
  296. }
  297. _CreditCardPayment.CreateUserId = _dto.UserId;
  298. _CreditCardPayment.DIId = _dto.DiId;
  299. _CreditCardPayment.CTable = 76;
  300. _CreditCardPayment.PayMoney = _dto.CardPrice;
  301. _CreditCardPayment.PaymentCurrency = _dto.CardPriceCurrency;
  302. decimal ccpRate = 1.0000M;
  303. if (_dto.CardPriceCurrency != 836) ccpRate = _dto.Contents.Find(x => x.Currency == _dto.CardPriceCurrency)?.Rate ?? 1.0000M;
  304. _CreditCardPayment.DayRate = ccpRate;
  305. _CreditCardPayment.PayPercentage = 100.00M;
  306. _CreditCardPayment.PayThenMoney = _CreditCardPayment.PayMoney;
  307. _CreditCardPayment.RMBPrice = (_CreditCardPayment.DayRate * _CreditCardPayment.PayMoney).DecimalsKeepTwo();
  308. //if (_CreditCardPayment.PayDId == 72) //刷卡
  309. //{
  310. // _CreditCardPayment.BankNo = "6222 **** **** 7990";
  311. // _CreditCardPayment.CardholderName = "Zhang Hailin";
  312. //}
  313. _CreditCardPayment.Remark = _dto.CcpRemark;
  314. #endregion
  315. #endregion
  316. if (_dto.Id == 0) // Add
  317. {
  318. _sqlSugar.BeginTran();
  319. int hotelId = await _sqlSugar.Insertable<Grp_HotelReservations>(_HotelReservations).ExecuteReturnIdentityAsync();
  320. if (hotelId < 0)
  321. {
  322. _sqlSugar.RollbackTran(); //回滚
  323. _view.Msg = $"酒店预定信息添加失败!";
  324. return _view;
  325. }
  326. _HotelReservationsContents.ForEach(it =>
  327. {
  328. it.HrId = hotelId;
  329. });
  330. int hotelSubId = await _sqlSugar.Insertable<Grp_HotelReservationsContent>(_HotelReservationsContents).ExecuteReturnIdentityAsync();
  331. if (hotelSubId < 0)
  332. {
  333. _sqlSugar.RollbackTran(); //回滚
  334. _view.Msg = "酒店预定详细信息添加失败";
  335. return _view;
  336. }
  337. _CreditCardPayment.CId = hotelId;
  338. _CreditCardPayment.CTable = 76; //酒店预定模块
  339. int ccpId = await _sqlSugar.Insertable<Grp_CreditCardPayment>(_CreditCardPayment).ExecuteReturnIdentityAsync();
  340. if (ccpId < 0)
  341. {
  342. _view.Msg = "付款信息添加失败!";
  343. _sqlSugar.RollbackTran(); //回滚
  344. return _view;
  345. }
  346. #region 酒店基础数据 添加
  347. //处理城市名称为 "所有城市"、"其他城市" 更改为国家名称
  348. var cityNameFilter = new string[] { "所有城市", "其他城市" };
  349. if (cityNameFilter.Contains(_dto.City))
  350. {
  351. var countryInfo = await _sqlSugar.Queryable<Grp_NationalTravelFee>()
  352. .Where(it => it.Id == _dto.AreaId && it.IsDel == 0)
  353. .FirstAsync();
  354. if (countryInfo != null) _dto.City = countryInfo.Country;
  355. }
  356. var hotelDataReq = new OperationHotelDto()
  357. {
  358. Status = 1,
  359. City = _dto.City,
  360. Name = _dto.HotelName,
  361. Tel = _dto.HotelTel,
  362. Address = _dto.HotelAddress
  363. };
  364. await _hotelDataRep.OperationHotelData(hotelDataReq);
  365. #endregion
  366. _view.Msg = "操作成功!";
  367. _view.Code = 200;
  368. _view.Data = new { ccpId, sign = 1, hotelId };
  369. _sqlSugar.CommitTran(); // 提交
  370. return _view;
  371. }
  372. else if (_dto.Id > 0) //Edit
  373. {
  374. _sqlSugar.BeginTran();
  375. int hotelStatus = await _sqlSugar.Updateable<Grp_HotelReservations>(_HotelReservations)
  376. .UpdateColumns(it => new
  377. {
  378. it.GTId,
  379. it.CheckNumber,
  380. it.ReservationsWebsite,
  381. it.ReservationsNo,
  382. it.DetermineNo,
  383. it.AreaId,
  384. it.City,
  385. it.HotelName,
  386. it.HotelTel,
  387. it.HotelAddress,
  388. it.GuestName,
  389. it.CheckInDate,
  390. it.CheckOutDate,
  391. it.CheckType,
  392. it.RoomExplanation,
  393. it.SingleRoomPrice,
  394. it.SingleRoomCount,
  395. it.DoubleRoomPrice,
  396. it.DoubleRoomCount,
  397. it.SuiteRoomPrice,
  398. it.SuiteRoomCount,
  399. it.OtherRoomPrice,
  400. it.OtherRoomCount,
  401. it.CardPrice,
  402. it.CardPriceCurrency,
  403. it.Remark,
  404. })
  405. .WhereColumns(it => it.Id)
  406. .ExecuteCommandAsync();
  407. if (hotelStatus < 0)
  408. {
  409. _view.Msg = "酒店预定信息修改失败!";
  410. _sqlSugar.RollbackTran(); //回滚
  411. return _view;
  412. }
  413. var hotelSubStatus = false;
  414. var addHotelSubData = _HotelReservationsContents.Where(it => it.Id == 0).ToList();
  415. var updateHotelSubData = _HotelReservationsContents.Where(it => it.Id != 0).ToList();
  416. if (addHotelSubData.Count > 0)
  417. {
  418. int hotelSubAdd = await _sqlSugar.Insertable<Grp_HotelReservationsContent>(addHotelSubData).ExecuteCommandAsync();
  419. if (hotelSubAdd > 0) hotelSubStatus = true;
  420. }
  421. if (updateHotelSubData.Count > 0)
  422. {
  423. int hotelSubUpdate = await _sqlSugar
  424. .Updateable<Grp_HotelReservationsContent>(updateHotelSubData)
  425. .IgnoreColumns(it => new
  426. {
  427. it.DiId,
  428. it.HrId,
  429. it.CreateUserId,
  430. it.CreateTime,
  431. it.DeleteUserId,
  432. it.DeleteTime
  433. })
  434. .WhereColumns(it => it.Id)
  435. .ExecuteCommandAsync();
  436. if (hotelSubUpdate > 0) hotelSubStatus = true;
  437. }
  438. if (!hotelSubStatus)
  439. {
  440. _view.Msg = "酒店预定子表信息修改失败!";
  441. _sqlSugar.RollbackTran(); //回滚
  442. return _view;
  443. }
  444. var hotelInfo = await _sqlSugar
  445. .Queryable<Grp_CreditCardPayment>()
  446. .Where(it => it.DIId == _dto.DiId &&
  447. it.CId == _dto.Id &&
  448. it.CTable == 76 &&
  449. it.IsDel == 0
  450. )
  451. .FirstAsync();
  452. if (hotelInfo != null) //ccp表 Edit
  453. {
  454. _CreditCardPayment.Id = hotelInfo.Id;
  455. int creditCardStatus = await _sqlSugar.Updateable(_CreditCardPayment)
  456. .UpdateColumns(it => new
  457. {
  458. it.CTDId,
  459. it.PayDId,
  460. it.IsPay,
  461. it.ConsumptionPatterns,
  462. it.ConsumptionDate,
  463. it.PayMoney,
  464. it.PaymentCurrency,
  465. it.PayThenMoney,
  466. it.DayRate,
  467. it.RMBPrice,
  468. it.BankNo,
  469. it.CardholderName,
  470. it.CompanyBankNo,
  471. it.OtherBankName,
  472. it.OtherSideNo,
  473. it.OtherSideName,
  474. it.Payee,
  475. it.OrbitalPrivateTransfer,
  476. it.Remark,
  477. })
  478. .WhereColumns(it => it.Id)
  479. .ExecuteCommandAsync();
  480. if (creditCardStatus < 0)
  481. {
  482. _view.Msg = "付款信息表修改失败!";
  483. _sqlSugar.RollbackTran(); //回滚
  484. return _view;
  485. }
  486. }
  487. _view.Msg = "操作成功!";
  488. _view.Code = 200;
  489. _view.Data = new { ccpId = _CreditCardPayment.Id, sign = 2, hotelId = _HotelReservations.Id };
  490. _sqlSugar.CommitTran(); // 提交
  491. return _view;
  492. }
  493. else if (_dto.Id < 0) _view.Msg = MsgTips.Id;
  494. }
  495. else _view.Msg = MsgTips.Port;
  496. return _view;
  497. }
  498. /// <summary>
  499. /// 酒店预定
  500. /// Del
  501. /// </summary>
  502. /// <returns></returns>
  503. public async Task<JsonView> Del(int id, int userId)
  504. {
  505. _sqlSugar.BeginTran();
  506. var _HotelReservations = new Grp_HotelReservations()
  507. {
  508. Id = id,
  509. IsDel = 1,
  510. DeleteUserId = userId,
  511. DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
  512. };
  513. int hrStatus = await _sqlSugar.Updateable<Grp_HotelReservations>(_HotelReservations)
  514. .UpdateColumns(it => new
  515. {
  516. it.IsDel,
  517. it.DeleteUserId,
  518. it.DeleteTime,
  519. })
  520. .WhereColumns(it => it.Id)
  521. .ExecuteCommandAsync();
  522. if (hrStatus < 0)
  523. {
  524. _sqlSugar.RollbackTran();
  525. return new JsonView() { Code = 400, Msg = MsgTips.Fail };
  526. }
  527. int hrSubStatus = await _sqlSugar.Updateable<Grp_HotelReservationsContent>()
  528. .SetColumns(it => it.IsDel == 1)
  529. .SetColumns(it => it.DeleteUserId == userId)
  530. .SetColumns(it => it.DeleteTime == DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
  531. .Where(it => it.HrId == id).ExecuteCommandAsync();
  532. var ccpInfp = new Grp_CreditCardPayment()
  533. {
  534. CId = id,
  535. CTable = 76,
  536. IsDel = 1,
  537. DeleteUserId = userId,
  538. DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
  539. };
  540. int hrCCPStatus = await _sqlSugar.Updateable<Grp_CreditCardPayment>(ccpInfp)
  541. .UpdateColumns(it => new
  542. {
  543. it.IsDel,
  544. it.DeleteUserId,
  545. it.DeleteTime,
  546. })
  547. .WhereColumns(it => new { it.CTable, it.CId })
  548. .ExecuteCommandAsync();
  549. _sqlSugar.CommitTran();
  550. return new JsonView() { Code = 200, Msg = MsgTips.Succeed };
  551. }
  552. }
  553. }