RadioCardController.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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. using System.Data;
  13. namespace MySystem.Areas.Api.Controllers.v1
  14. {
  15. public class RadioCardController : BaseController
  16. {
  17. public RadioCardController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  18. {
  19. }
  20. //测试
  21. // string apiKey = "12345678";
  22. //生产
  23. string apiKey = "n^ZbEjK%";
  24. #region 广电卡获取机构用户信息
  25. [HttpPost]
  26. [Route("/kxs/gdk/getuserinfo")]
  27. public Dictionary<string, object> GetUserInfo()
  28. {
  29. StreamReader sr = new StreamReader(Request.Body);
  30. string requestMes = sr.ReadToEnd();
  31. function.WriteLog(DateTime.Now.ToString() + ":" + requestMes, "广电卡获取机构用户信息");
  32. JsonData req = JsonMapper.ToObject(requestMes);
  33. string sign = req["sign"].ToString(); //接口签名
  34. string brhUserId = req["brhUserId"].ToString(); //机构用户编码
  35. string month = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
  36. int UserId = int.Parse(function.CheckInt(dbconn.DesDecrypt(brhUserId, apiKey)));
  37. Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
  38. Dictionary<string, object> obj = new Dictionary<string, object>();
  39. Dictionary<string, object> data = new Dictionary<string, object>();
  40. if(user.AuthFlag == 0)
  41. {
  42. obj.Add("resultCode", 0);
  43. obj.Add("errorCode", 40000);
  44. obj.Add("errorDesc", "用户暂未认证");
  45. obj.Add("data", data);
  46. return obj;
  47. }
  48. string timestamp = req["timestamp"].ToString(); //时间戳,精确到秒。签名用参数
  49. obj.Add("resultCode", 1);
  50. data.Add("name",user.RealName); //用户姓名
  51. data.Add("brhMobile",user.Mobile); //机构用户手机号
  52. data.Add("gender",int.Parse(function.CheckInt(user.CertId.Substring(16, 1))) % 2 == 0 ? "1" : "0"); //性别:0 男,1 女
  53. data.Add("idcardNo",user.CertId); //用户身份证号
  54. data.Add("brhUserRegTime",user.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //机构用户注册时间
  55. decimal SimTradeAmount = maindb.SimCardDaySummary.Where(m => m.UserId == UserId && m.SeoTitle == "team" && m.TradeMonth == month).Sum(m => m.TradeAmount);
  56. decimal SimTradeAmountResult = SimTradeAmount * 100;
  57. data.Add("paymentPerformance",SimTradeAmountResult.ToString("f0")); //用户上月业绩,单位:分
  58. int Percent = function.get_Random(1, 35);
  59. decimal SimProfit = SimTradeAmount * Percent;
  60. data.Add("paymentIncome",SimProfit.ToString("f0")); //用户上月分润收入,单位:分
  61. obj.Add("data", data);
  62. return obj;
  63. }
  64. #endregion
  65. #region 预扣款-添加预扣款
  66. [Route("/v1/kxsmain/tochargebackrecord/addtochargebackrecord")]
  67. public JsonResult AddToChargeBackRecord(string value)
  68. {
  69. // value = DesDecrypt(value);
  70. function.WriteLog(DateTime.Now.ToString() + "\n" + value + "\n\n", "预扣款-添加预扣款");
  71. JsonData data = JsonMapper.ToObject(value);
  72. AppResultJson result = AddToChargeBackRecordDo(value);
  73. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  74. }
  75. private AppResultJson AddToChargeBackRecordDo(string value)
  76. {
  77. JsonData data = JsonMapper.ToObject(value);
  78. string PosSn = data["PosSn"].ToString(); //机具SN
  79. Dictionary<string, object> Obj = new Dictionary<string, object>();
  80. var pos = maindb.PosMachinesTwo.FirstOrDefault(m => m.PosSn == PosSn && m.Status > -1) ?? new PosMachinesTwo();
  81. if (pos.Id > 0)
  82. {
  83. bool check = maindb.ToChargeBackRecord.Any(m => m.Field1 == PosSn && m.ChargeType == 124);
  84. if(!check)
  85. {
  86. var brand = maindb.KqProducts.FirstOrDefault(m => m.Id == pos.BrandId) ?? new KqProducts();
  87. var amount = 0.00M;
  88. if (brand.Kind == 1) amount = 200;
  89. if (brand.Kind == 2) amount = 300;
  90. var ToChargeBackRecord = maindb.ToChargeBackRecord.Add(new ToChargeBackRecord
  91. {
  92. CreateDate = DateTime.Now,
  93. SeoTitle = SysUserName + "_" + SysRealName,
  94. SeoDescription = "循环过期(" + PosSn + ")",
  95. Remark = "循环过期(" + PosSn + ")",
  96. Field1 = PosSn,
  97. ChargeType = 124,
  98. Kind = 0,
  99. ChargeAmount = amount,
  100. UserId = pos.BuyUserId,
  101. }).Entity;
  102. UserAccount account = maindb.UserAccount.FirstOrDefault(m => m.Id == pos.BuyUserId);
  103. if(account != null)
  104. {
  105. account.ToChargeAmount += amount;
  106. }
  107. maindb.SaveChanges();
  108. }
  109. return new AppResultJson() { Status = "1", Info = "成功", Data = Obj };
  110. }
  111. else
  112. {
  113. return new AppResultJson() { Status = "-1", Info = "机具不存在", Data = Obj };
  114. }
  115. }
  116. #endregion
  117. #region 团队开机统计
  118. [Route("/v1/kxsmain/users/getteamopenposinfo")] // 团队开机统计
  119. public JsonResult GetTeamOpenPosInfo(string value)
  120. {
  121. JsonData data = JsonMapper.ToObject(value);
  122. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString()));
  123. string StartTime = data["StartTime"].ToString(); //开始时间
  124. string EndTime = data["EndTime"].ToString(); //结束时间
  125. var SelfPosMerchantCount = 0; // 个人POS机激活商户
  126. var TeamPosMerchantCount = 0; // 团队POS机激活商户
  127. var SelfSimMerchantCount = 0; // 个人广电卡激活商户
  128. var TeamSimMerchantCount = 0; // 团队广电卡激活商户
  129. var SelfMpMerchantCount = 0; // 个人来客吧激活商户
  130. var TeamMpMerchantCount = 0; // 团队来客吧激活商户
  131. var SelfMpMerchantCount1 = 0; // 个人来客吧激活商户(直连)
  132. var TeamMpMerchantCount1 = 0; // 团队来客吧激活商户(直连)
  133. var SelfMpMerchantCount2 = 0; // 个人来客吧激活商户(银联)
  134. var TeamMpMerchantCount2 = 0; // 团队来客吧激活商户(银联)
  135. Dictionary<string, object> Obj = new Dictionary<string, object>();
  136. 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);
  137. if (dt.Rows.Count > 0)
  138. {
  139. foreach (DataRow dr in dt.Rows)
  140. {
  141. SelfPosMerchantCount = int.Parse(function.CheckNum(dr["selfPosAct"].ToString()));
  142. TeamPosMerchantCount = int.Parse(function.CheckNum(dr["teamPosAct"].ToString()));
  143. SelfSimMerchantCount = int.Parse(function.CheckNum(dr["selfSimAct"].ToString()));
  144. TeamSimMerchantCount = int.Parse(function.CheckNum(dr["teamSimAct"].ToString()));
  145. }
  146. }
  147. 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);
  148. if (dt.Rows.Count > 0)
  149. {
  150. foreach (DataRow dr in dt.Rows)
  151. {
  152. SelfMpMerchantCount1 = int.Parse(function.CheckNum(dr["selfAct"].ToString()));
  153. TeamMpMerchantCount1 = int.Parse(function.CheckNum(dr["teamAct"].ToString()));
  154. }
  155. }
  156. 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);
  157. if (dt.Rows.Count > 0)
  158. {
  159. foreach (DataRow dr in dt.Rows)
  160. {
  161. SelfMpMerchantCount2 = int.Parse(function.CheckNum(dr["selfAct"].ToString()));
  162. TeamMpMerchantCount2 = int.Parse(function.CheckNum(dr["teamAct"].ToString()));
  163. }
  164. }
  165. SelfMpMerchantCount = SelfMpMerchantCount1 + SelfMpMerchantCount2;
  166. TeamMpMerchantCount = TeamMpMerchantCount1 + TeamMpMerchantCount;
  167. Obj.Add("SelfPosMerchantCount", SelfPosMerchantCount); // 个人POS机激活商户
  168. Obj.Add("TeamPosMerchantCount", TeamPosMerchantCount); // 团队POS机激活商户
  169. Obj.Add("SelfSimMerchantCount", SelfSimMerchantCount); // 个人广电卡激活商户
  170. Obj.Add("TeamSimMerchantCount", TeamSimMerchantCount); // 团队广电卡激活商户
  171. Obj.Add("SelfMpMerchantCount", SelfMpMerchantCount); // 个人来客吧激活商户
  172. Obj.Add("TeamMpMerchantCount", TeamMpMerchantCount); // 团队来客吧激活商户
  173. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  174. }
  175. #endregion
  176. }
  177. }