RadioCardController.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using Microsoft.AspNetCore.Mvc;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.Extensions.Logging;
  4. using Microsoft.Extensions.Options;
  5. using System.IO;
  6. using System.Collections.Generic;
  7. using LitJson;
  8. using Library;
  9. using System.Linq;
  10. using System;
  11. using MySystem.MainModels;
  12. namespace MySystem.Areas.Api.Controllers.v1
  13. {
  14. public class RadioCardController : BaseController
  15. {
  16. public RadioCardController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  17. {
  18. }
  19. //测试
  20. // string apiKey = "12345678";
  21. //生产
  22. string apiKey = "n^ZbEjK%";
  23. #region 广电卡获取机构用户信息
  24. [HttpPost]
  25. [Route("/kxs/gdk/getuserinfo")]
  26. public Dictionary<string, object> GetUserInfo()
  27. {
  28. StreamReader sr = new StreamReader(Request.Body);
  29. string requestMes = sr.ReadToEnd();
  30. function.WriteLog(DateTime.Now.ToString() + ":" + requestMes, "广电卡获取机构用户信息");
  31. JsonData req = JsonMapper.ToObject(requestMes);
  32. string sign = req["sign"].ToString(); //接口签名
  33. string brhUserId = req["brhUserId"].ToString(); //机构用户编码
  34. string month = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
  35. int UserId = int.Parse(function.CheckInt(dbconn.DesDecrypt(brhUserId, apiKey)));
  36. Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
  37. Dictionary<string, object> obj = new Dictionary<string, object>();
  38. Dictionary<string, object> data = new Dictionary<string, object>();
  39. if(user.AuthFlag == 0)
  40. {
  41. obj.Add("resultCode", 0);
  42. obj.Add("errorCode", 40000);
  43. obj.Add("errorDesc", "用户暂未认证");
  44. obj.Add("data", data);
  45. return obj;
  46. }
  47. string timestamp = req["timestamp"].ToString(); //时间戳,精确到秒。签名用参数
  48. obj.Add("resultCode", 1);
  49. data.Add("name",user.RealName); //用户姓名
  50. data.Add("brhMobile",user.Mobile); //机构用户手机号
  51. data.Add("gender",int.Parse(function.CheckInt(user.CertId.Substring(16, 1))) % 2 == 0 ? "1" : "0"); //性别:0 男,1 女
  52. data.Add("idcardNo",user.CertId); //用户身份证号
  53. data.Add("brhUserRegTime",user.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //机构用户注册时间
  54. decimal SimTradeAmount = maindb.SimCardDaySummary.Where(m => m.UserId == UserId && m.SeoTitle == "team" && m.TradeMonth == month).Sum(m => m.TradeAmount);
  55. decimal SimTradeAmountResult = SimTradeAmount * 100;
  56. data.Add("paymentPerformance",SimTradeAmountResult.ToString("f0")); //用户上月业绩,单位:分
  57. int Percent = function.get_Random(1, 35);
  58. decimal SimProfit = SimTradeAmount * Percent;
  59. data.Add("paymentIncome",SimProfit.ToString("f0")); //用户上月分润收入,单位:分
  60. obj.Add("data", data);
  61. return obj;
  62. }
  63. #endregion
  64. #region 预扣款-添加预扣款
  65. [Route("/v1/kxsmain/tochargebackrecord/addtochargebackrecord")]
  66. public JsonResult AddToChargeBackRecord(string value)
  67. {
  68. // value = DesDecrypt(value);
  69. function.WriteLog(DateTime.Now.ToString() + "\n" + value + "\n\n", "预扣款-添加预扣款");
  70. JsonData data = JsonMapper.ToObject(value);
  71. AppResultJson result = AddToChargeBackRecordDo(value);
  72. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  73. }
  74. private AppResultJson AddToChargeBackRecordDo(string value)
  75. {
  76. JsonData data = JsonMapper.ToObject(value);
  77. string PosSn = data["PosSn"].ToString(); //机具SN
  78. Dictionary<string, object> Obj = new Dictionary<string, object>();
  79. var pos = maindb.PosMachinesTwo.FirstOrDefault(m => m.PosSn == PosSn && m.Status > -1) ?? new PosMachinesTwo();
  80. if (pos.Id > 0)
  81. {
  82. bool check = maindb.ToChargeBackRecord.Any(m => m.Field1 == PosSn && m.ChargeType == 124);
  83. if(!check)
  84. {
  85. var brand = maindb.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId) ?? new KqProducts();
  86. var amount = 0.00M;
  87. if (brand.Kind == 1) amount = 200;
  88. if (brand.Kind == 2) amount = 300;
  89. var ToChargeBackRecord = maindb.ToChargeBackRecord.Add(new ToChargeBackRecord
  90. {
  91. CreateDate = DateTime.Now,
  92. SeoTitle = SysUserName + "_" + SysRealName,
  93. SeoDescription = "循环过期(" + PosSn + ")",
  94. Remark = "循环过期(" + PosSn + ")",
  95. Field1 = PosSn,
  96. ChargeType = 124,
  97. Kind = 0,
  98. ChargeAmount = amount,
  99. UserId = pos.BuyUserId,
  100. }).Entity;
  101. UserAccount account = maindb.UserAccount.FirstOrDefault(m => m.Id == pos.BuyUserId);
  102. if(account != null)
  103. {
  104. account.ToChargeAmount += amount;
  105. }
  106. maindb.SaveChanges();
  107. }
  108. return new AppResultJson() { Status = "1", Info = "成功", Data = Obj };
  109. }
  110. else
  111. {
  112. return new AppResultJson() { Status = "-1", Info = "机具不存在", Data = Obj };
  113. }
  114. }
  115. #endregion
  116. }
  117. }