OutApiController.cs 3.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. using Microsoft.AspNetCore.Mvc;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.Extensions.Logging;
  4. using Microsoft.Extensions.Options;
  5. using System.Collections.Generic;
  6. using LitJson;
  7. using Library;
  8. using System.Linq;
  9. using System;
  10. using MySystem.MainModels;
  11. namespace MySystem.Areas.Api.Controllers.v1
  12. {
  13. public class OutApiController : BaseController
  14. {
  15. public OutApiController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  16. {
  17. }
  18. #region 设置服务费
  19. [Route("/api/v1/deposit/set")]
  20. public JsonResult SetDeposit(string value)
  21. {
  22. JsonData data = JsonMapper.ToObject(value);
  23. Dictionary<string, object> req = new Dictionary<string, object>();
  24. req.Add("PosSnId", data["posId"].ToString());
  25. req.Add("BrandId", data["brandId"].ToString());
  26. req.Add("Deposit", data["deposit"].ToString());
  27. req.Add("CallBackUrl", data["callBackUrl"].ToString());
  28. RedisDbconn.Instance.AddList("ChangePosFeeQueue", Newtonsoft.Json.JsonConvert.SerializeObject(req));
  29. return Json(new AppResultJson() { Status = "1", Info = "" });
  30. }
  31. #endregion
  32. #region 设置费率
  33. [Route("/api/v1/fee/set")]
  34. public JsonResult SetFee(string value)
  35. {
  36. JsonData data = JsonMapper.ToObject(value);
  37. int PosId = int.Parse(data["posId"].ToString());
  38. int BrandId = int.Parse(data["brandId"].ToString());
  39. decimal FeeRate = decimal.Parse(data["feeRate"].ToString());
  40. int FeeExtra = int.Parse(data["feeExtra"].ToString());
  41. string CallBackUrl = data["callBackUrl"].ToString();
  42. PosMachinesTwo pos = maindb.PosMachinesTwo.FirstOrDefault(m => m.Id == PosId) ?? new PosMachinesTwo();
  43. PosMerchantInfo mer = maindb.PosMerchantInfo.FirstOrDefault(m => m.Id == PosId) ?? new PosMerchantInfo();
  44. PosMachinesFeeChangeRecord query = maindb.PosMachinesFeeChangeRecord.FirstOrDefault(m => m.PosId == PosId && m.Status == 0);
  45. if(query == null)
  46. {
  47. query = maindb.PosMachinesFeeChangeRecord.Add(new PosMachinesFeeChangeRecord()
  48. {
  49. CreateDate = DateTime.Now, //创建时间
  50. PosId = PosId, //机具Id
  51. }).Entity;
  52. maindb.SaveChanges();
  53. }
  54. query.UpdateDate = DateTime.Now; //创建时间
  55. query.Sort = pos.BrandId; //品牌Id
  56. query.UserId = pos.BuyUserId; //创客
  57. query.PosId = PosId; //机具Id
  58. query.PosSn = pos.PosSn;
  59. query.MerNo = mer.MerchantNo;
  60. query.MerchantId = mer.Id;
  61. query.PosUserId = pos.BuyUserId; //机具所属人
  62. query.ChangeFee = FeeRate; //调整费率
  63. maindb.SaveChanges();
  64. int ChangeKind = 0;
  65. if(FeeRate == 0.63M && FeeExtra == 3)
  66. {
  67. ChangeKind = 1;
  68. }
  69. else if(FeeRate == 0.63M && FeeExtra == 0)
  70. {
  71. ChangeKind = 2;
  72. }
  73. else if(FeeRate == 0.6M && FeeExtra == 0)
  74. {
  75. ChangeKind = 3;
  76. }
  77. // PosId:机具Id
  78. // Kind:1或2,1为费率0.63+3,2为费率0.63,3为费率0.6
  79. // OpMan:操作人,app传创客编号,后台传SysUserName
  80. string info = "{\"RecordId\":\"" + query.Id + "\",\"PosId\":\"" + pos.Id + "\",\"Fee\": \"" + FeeRate.ToString("f0").TrimEnd('0') + "\",\"Kind\": \"" + ChangeKind + "\",\"OpMan\": \"接口\",\"CallBackUrl\":\"" + CallBackUrl + "\"}";
  81. RedisDbconn.Instance.AddList("SetDepositQueue", info);
  82. return Json(new AppResultJson() { Status = "1", Info = "" });
  83. }
  84. #endregion
  85. }
  86. }