using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using System.IO; using System.Collections.Generic; using LitJson; using Library; using System.Linq; using System; using MySystem.MainModels; namespace MySystem.Areas.Api.Controllers.v1 { public class RadioCardController : BaseController { public RadioCardController(IHttpContextAccessor accessor, ILogger logger, IOptions setting) : base(accessor, logger, setting) { } //测试 // string apiKey = "12345678"; //生产 string apiKey = "n^ZbEjK%"; #region 广电卡获取机构用户信息 [HttpPost] [Route("/kxs/gdk/getuserinfo")] public Dictionary GetUserInfo() { StreamReader sr = new StreamReader(Request.Body); string requestMes = sr.ReadToEnd(); function.WriteLog(DateTime.Now.ToString() + ":" + requestMes, "广电卡获取机构用户信息"); JsonData req = JsonMapper.ToObject(requestMes); string sign = req["sign"].ToString(); //接口签名 string brhUserId = req["brhUserId"].ToString(); //机构用户编码 string month = DateTime.Now.AddMonths(-1).ToString("yyyyMM"); int UserId = int.Parse(function.CheckInt(dbconn.DesDecrypt(brhUserId, apiKey))); Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users(); Dictionary obj = new Dictionary(); Dictionary data = new Dictionary(); if(user.AuthFlag == 0) { obj.Add("resultCode", 0); obj.Add("errorCode", 40000); obj.Add("errorDesc", "用户暂未认证"); obj.Add("data", data); return obj; } string timestamp = req["timestamp"].ToString(); //时间戳,精确到秒。签名用参数 obj.Add("resultCode", 1); data.Add("name",user.RealName); //用户姓名 data.Add("brhMobile",user.Mobile); //机构用户手机号 data.Add("gender",int.Parse(function.CheckInt(user.CertId.Substring(16, 1))) % 2 == 0 ? "1" : "0"); //性别:0 男,1 女 data.Add("idcardNo",user.CertId); //用户身份证号 data.Add("brhUserRegTime",user.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //机构用户注册时间 decimal SimTradeAmount = maindb.SimCardDaySummary.Where(m => m.UserId == UserId && m.SeoTitle == "team" && m.TradeMonth == month).Sum(m => m.TradeAmount); data.Add("paymentPerformance",SimTradeAmount); //用户上月业绩,单位:分 int Percent = function.get_Random(1, 35); decimal SimProfit = SimTradeAmount * Percent / 100; data.Add("paymentIncome",SimProfit.ToString()); //用户上月分润收入,单位:分 obj.Add("data", data); return obj; } #endregion #region 预扣款-添加预扣款 // [Authorize] public JsonResult AddToChargeBackRecord(string value) { // value = DesDecrypt(value); function.WriteLog(DateTime.Now.ToString() + "\n" + value + "\n\n", "预扣款-添加预扣款"); JsonData data = JsonMapper.ToObject(value); AppResultJson result = AddToChargeBackRecordDo(value); return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data }); } private AppResultJson AddToChargeBackRecordDo(string value) { JsonData data = JsonMapper.ToObject(value); string PosSn = data["PosSn"].ToString(); //机具SN Dictionary Obj = new Dictionary(); var pos = maindb.PosMachinesTwo.FirstOrDefault(m => m.PosSn == PosSn && m.Status > -1) ?? new PosMachinesTwo(); if (pos.Id > 0) { var brand = maindb.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId) ?? new KqProducts(); var amount = 0.00M; if (brand.Kind == 1) amount = 200; if (brand.Kind == 2) amount = 300; var ToChargeBackRecord = maindb.ToChargeBackRecord.Add(new ToChargeBackRecord { CreateDate = DateTime.Now, SeoTitle = SysUserName + "_" + SysRealName, SeoDescription = "循环过期(" + PosSn + ")", Remark = "循环过期(" + PosSn + ")", Field1 = PosSn, ChargeType = 124, Kind = 0, ChargeAmount = amount, UserId = pos.BuyUserId, }).Entity; maindb.SaveChanges(); return new AppResultJson() { Status = "1", Info = "成功", Data = Obj }; } else { return new AppResultJson() { Status = "-1", Info = "机具不存在", Data = Obj }; } } #endregion } }