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; using System.Data; 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); decimal SimTradeAmountResult = SimTradeAmount * 100; data.Add("paymentPerformance",SimTradeAmountResult.ToString("f0")); //用户上月业绩,单位:分 int Percent = function.get_Random(1, 35); decimal SimProfit = SimTradeAmount * Percent; data.Add("paymentIncome",SimProfit.ToString("f0")); //用户上月分润收入,单位:分 obj.Add("data", data); return obj; } #endregion #region 预扣款-添加预扣款 [Route("/v1/kxsmain/tochargebackrecord/addtochargebackrecord")] 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) { bool check = maindb.ToChargeBackRecord.Any(m => m.Field1 == PosSn && m.ChargeType == 124); if(!check) { 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; UserAccount account = maindb.UserAccount.FirstOrDefault(m => m.Id == pos.BuyUserId); if(account != null) { account.ToChargeAmount += amount; } maindb.SaveChanges(); } return new AppResultJson() { Status = "1", Info = "成功", Data = Obj }; } else { return new AppResultJson() { Status = "-1", Info = "机具不存在", Data = Obj }; } } #endregion #region 团队开机统计 [Route("/v1/kxsmain/users/getteamopenposinfo")] // 团队开机统计 public JsonResult GetTeamOpenPosInfo(string value) { JsonData data = JsonMapper.ToObject(value); int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); string StartTime = data["StartTime"].ToString(); //开始时间 string EndTime = data["EndTime"].ToString(); //结束时间 var SelfPosMerchantCount = 0; // 个人POS机激活商户 var TeamPosMerchantCount = 0; // 团队POS机激活商户 var SelfSimMerchantCount = 0; // 个人广电卡激活商户 var TeamSimMerchantCount = 0; // 团队广电卡激活商户 var SelfMpMerchantCount = 0; // 个人来客吧激活商户 var TeamMpMerchantCount = 0; // 团队来客吧激活商户 var SelfMpMerchantCount1 = 0; // 个人来客吧激活商户(直连) var TeamMpMerchantCount1 = 0; // 团队来客吧激活商户(直连) var SelfMpMerchantCount2 = 0; // 个人来客吧激活商户(银联) var TeamMpMerchantCount2 = 0; // 团队来客吧激活商户(银联) Dictionary Obj = new Dictionary(); DataTable dt = CustomerSqlConn.dtable("SELECT a.teamPosAct,a.selfPosAct,b.teamSimAct,b.selfSimAct FROM(SELECT UserId,SUM(IF(SeoTitle='team',ActiveBuddyMerStatus,0)) teamPosAct,SUM(IF(SeoTitle='self',ActiveBuddyMerStatus,0)) selfPosAct from UserTradeMonthSummary WHERE BrandId!=14 AND UserId=" + UserId + " AND SeoKeyword>=" + StartTime + " AND SeoKeyword<=" + EndTime + ")a LEFT JOIN(SELECT UserId,SUM(IF(SeoTitle='team',ActiveBuddyMerStatus,0)) teamSimAct,SUM(IF(SeoTitle='self',ActiveBuddyMerStatus,0)) selfSimAct from UserTradeMonthSummary WHERE BrandId=14 AND UserId=" + UserId + " AND SeoKeyword>=" + StartTime + " AND SeoKeyword<=" + EndTime + ")b ON a.UserId=b.UserId;", AppConfig.Base.ReadSqlConn); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { SelfPosMerchantCount = int.Parse(function.CheckNum(dr["selfPosAct"].ToString())); TeamPosMerchantCount = int.Parse(function.CheckNum(dr["teamPosAct"].ToString())); SelfSimMerchantCount = int.Parse(function.CheckNum(dr["selfSimAct"].ToString())); TeamSimMerchantCount = int.Parse(function.CheckNum(dr["teamSimAct"].ToString())); } } dt = CustomerSqlConn.dtable("SELECT SUM(IF(SeoTitle='team',ActiveBuddyMerStatus,0)) teamAct,SUM(IF(SeoTitle='self',ActiveBuddyMerStatus,0)) selfAct from UserTradeMonthSummary WHERE UserId=" + UserId + " AND SeoKeyword>=" + StartTime + " AND SeoKeyword<=" + EndTime + ";", AppConfig.Base.MpSqlConn); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { SelfMpMerchantCount1 = int.Parse(function.CheckNum(dr["selfAct"].ToString())); TeamMpMerchantCount1 = int.Parse(function.CheckNum(dr["teamAct"].ToString())); } } dt = CustomerSqlConn.dtable("SELECT SUM(IF(SeoTitle='team',ActiveBuddyMerStatus,0)) teamAct,SUM(IF(SeoTitle='self',ActiveBuddyMerStatus,0)) selfAct from UserTradeMonthSummary WHERE UserId=" + UserId + " AND SeoKeyword>=" + StartTime + " AND SeoKeyword<=" + EndTime + ";", AppConfig.Base.MpSqlConn2); if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { SelfMpMerchantCount2 = int.Parse(function.CheckNum(dr["selfAct"].ToString())); TeamMpMerchantCount2 = int.Parse(function.CheckNum(dr["teamAct"].ToString())); } } SelfMpMerchantCount = SelfMpMerchantCount1 + SelfMpMerchantCount2; TeamMpMerchantCount = TeamMpMerchantCount1 + TeamMpMerchantCount; Obj.Add("SelfPosMerchantCount", SelfPosMerchantCount); // 个人POS机激活商户 Obj.Add("TeamPosMerchantCount", TeamPosMerchantCount); // 团队POS机激活商户 Obj.Add("SelfSimMerchantCount", SelfSimMerchantCount); // 个人广电卡激活商户 Obj.Add("TeamSimMerchantCount", TeamSimMerchantCount); // 团队广电卡激活商户 Obj.Add("SelfMpMerchantCount", SelfMpMerchantCount); // 个人来客吧激活商户 Obj.Add("TeamMpMerchantCount", TeamMpMerchantCount); // 团队来客吧激活商户 return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj }); } #endregion } }