| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Logging;
- using Microsoft.Extensions.Options;
- using System.Collections.Generic;
- using LitJson;
- using Library;
- using System.Linq;
- using System;
- using MySystem.MainModels;
- using System.IO;
- namespace MySystem.Areas.Api.Controllers.v1
- {
- public class OutApiController : BaseController
- {
- public OutApiController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
- {
- }
- #region 设置服务费
- [Route("/api/v1/deposit/set")]
- public JsonResult SetDeposit()
- {
- StreamReader sr = new StreamReader(Request.Body);
- string requestMes = sr.ReadToEnd();
- JsonData data = JsonMapper.ToObject(requestMes);
- Dictionary<string, object> req = new Dictionary<string, object>();
- string PosSn = data["posSn"].ToString();
- req.Add("PosSn", PosSn);
- req.Add("BrandId", data["brandId"].ToString());
- req.Add("Deposit", data["deposit"].ToString());
- string UserId = "0";
- if(requestMes.Contains("\"userId\""))
- {
- UserId = data["userId"].ToString();
- }
- req.Add("UserId", UserId);
- string CallBackUrl = "";
- if(requestMes.Contains("\"callBackUrl\""))
- {
- CallBackUrl = data["callBackUrl"].ToString();
- }
- req.Add("CallBackUrl", CallBackUrl);
- RedisDbconn.Instance.AddList("ChangePosFeeQueue", Newtonsoft.Json.JsonConvert.SerializeObject(req));
- return Json(new AppResultJson() { Status = "1", Info = "" });
- }
- #endregion
- #region 设置费率
- [Route("/api/v1/fee/set")]
- public JsonResult SetFee()
- {
- StreamReader sr = new StreamReader(Request.Body);
- string requestMes = sr.ReadToEnd();
- JsonData data = JsonMapper.ToObject(requestMes);
- string PosSn = data["posSn"].ToString();
- string MerNo = data["mchNo"].ToString();
- int BrandId = int.Parse(data["brandId"].ToString());
- decimal FeeRate = decimal.Parse(data["feeRate"].ToString());
- int FeeExtra = int.Parse(data["feeExtra"].ToString());
- string CallBackUrl = "";
- if(requestMes.Contains("\"callBackUrl\""))
- {
- CallBackUrl = data["callBackUrl"].ToString();
- }
- int ChangeKind = 0;
- if(FeeRate == 0.63M && FeeExtra == 3)
- {
- ChangeKind = 1;
- }
- else if(FeeRate == 0.63M && FeeExtra == 0)
- {
- ChangeKind = 2;
- }
- else if(FeeRate == 0.6M && FeeExtra == 0)
- {
- ChangeKind = 3;
- }
- // PosId:机具Id
- // Kind:1或2,1为费率0.63+3,2为费率0.63,3为费率0.6
- // OpMan:操作人,app传创客编号,后台传SysUserName
- string info = "{\"RecordId\":\"0\",\"PosSn\":\"" + PosSn + "\",\"MerNo\":\"" + MerNo + "\",\"BrandId\":\"" + BrandId + "\",\"Fee\": \"" + FeeRate.ToString("f0").TrimEnd('0') + "\",\"Kind\": \"" + ChangeKind + "\",\"OpMan\": \"接口\",\"CallBackUrl\":\"" + CallBackUrl + "\"}";
- RedisDbconn.Instance.AddList("SetDepositPostQueue", info);
- return Json(new AppResultJson() { Status = "1", Info = "" });
- }
- #endregion
- #region WIFI解绑
- [HttpPost]
- [Route("/kxs/unbind/wifi")]
- public Dictionary<string, object> UnBindWifi()
- {
- StreamReader sr = new StreamReader(Request.Body);
- string requestMes = sr.ReadToEnd();
- if (string.IsNullOrEmpty(requestMes))
- {
- return new Dictionary<string, object>();
- }
- string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
- function.WriteLog(content, "WIFI解绑推送消息");
- string fileName = function.MD5_16(Guid.NewGuid().ToString());
- RedisDbconn.Instance.AddList("kxs_unbindwifi_list", content + "#cut#" + fileName);
- Dictionary<string, object> obj = new Dictionary<string, object>();
- obj.Add("resCode", 200);
- obj.Add("resMsg", "success");
- return obj;
- }
- #endregion
- #region WIFI换绑
- [HttpPost]
- [Route("/kxs/changebind/wifi")]
- public Dictionary<string, object> ChangeBindWifi()
- {
- StreamReader sr = new StreamReader(Request.Body);
- string requestMes = sr.ReadToEnd();
- if (string.IsNullOrEmpty(requestMes))
- {
- return new Dictionary<string, object>();
- }
- string content = Newtonsoft.Json.JsonConvert.SerializeObject(Request.Headers) + "#cut#" + requestMes;
- function.WriteLog(content, "WIFI换绑推送消息");
- string fileName = function.MD5_16(Guid.NewGuid().ToString());
- RedisDbconn.Instance.AddList("kxs_changebindwifi_list", content + "#cut#" + fileName);
- Dictionary<string, object> obj = new Dictionary<string, object>();
- obj.Add("resCode", 200);
- obj.Add("resMsg", "success");
- return obj;
- }
- #endregion
- #region 同行奖同步
- [Route("/leader/prize/do/{month:minlength(6)}")]
- public string LeaderPrize(string month)
- {
- if(RedisDbconn.Instance.Get<string>("LeaderTxjPrizeFlag") == "1")
- {
- return "请勿频繁操作";
- }
- RedisDbconn.Instance.Set("LeaderTxjPrizeFlag", "1");
- RedisDbconn.Instance.SetExpire("LeaderTxjPrizeFlag", 600);
- DateTime start = DateTime.Parse(month + "-01 00:00:00");
- DateTime end = start.AddMonths(1);
- Dictionary<string, string> txjList = TxjList();
- JavaProductModels.WebCMSEntities dbpro = new JavaProductModels.WebCMSEntities();
- JavaUserModels.WebCMSEntities dbuser = new JavaUserModels.WebCMSEntities();
- IQueryable<JavaProductModels.KxsMachineAward> dellist = dbpro.KxsMachineAward.Where(m => m.VariationType == 30 && m.CreateTime >= start && m.CreateTime < end);
- foreach(JavaProductModels.KxsMachineAward sub in dellist)
- {
- dbpro.KxsMachineAward.Remove(sub);
- }
- dbpro.SaveChanges();
- List<JavaProductModels.KxsMachineAward> list = dbpro.KxsMachineAward.Where(m => m.VariationType == 118 && m.CreateTime >= start && m.CreateTime < end).ToList();
- foreach(JavaProductModels.KxsMachineAward sub in list)
- {
- JavaProductModels.KxsShopOrder order = dbpro.KxsShopOrder.FirstOrDefault(m => m.OrderSn == sub.PosSn);
- if(order != null)
- {
- int UserId = order.UserId;
- JavaUserModels.KxsUser user = dbuser.KxsUser.FirstOrDefault(m => m.Id == UserId);
- if(user != null)
- {
- string ParentNav = user.PidPath;
- string[] ParentList = ParentNav.TrimEnd(',').Split(',');
- Array.Reverse(ParentList);
- foreach(string ParentId in ParentList)
- {
- if(txjList.ContainsKey(ParentId))
- {
- string[] userData = txjList[ParentId].Split('|');
- dbpro.KxsMachineAward.Add(new JavaProductModels.KxsMachineAward()
- {
- Amount = 60,
- VariationType = 30,
- Username = userData[1],
- UserCode = userData[0],
- UserId = int.Parse(ParentId),
- MachineId = sub.MachineId,
- PosSn = sub.PosSn,
- CreateTime = DateTime.Now,
- AwardType = 1,
- });
- break;
- }
- }
- }
- }
- }
- dbpro.Dispose();
- dbuser.Dispose();
- return "ok";
- }
- private Dictionary<string, string> TxjList()
- {
- Dictionary<string, string> dic = new Dictionary<string, string>();
- string[] list = function.ReadInstance("/TxjList.txt").Split('\n');
- foreach(string sub in list)
- {
- string[] data = sub.Split('|');
- dic.Add(data[0], data[1] + "|" + data[2]);
- }
- return dic;
- }
- #endregion
- // [Route("/api/v1/{c1}/{c2}")]
- // public JsonResult ToApServer(string c1, string c2, string value)
- // {
- // string apis = function.CheckNull(RedisDbconn.Instance.Get<string>("ToApServer"));
- // function.WriteLog(DateTime.Now.ToString() + "\n" + value, "接口转发日志");
- // string hasDo = "";
- // if (apis.Contains(c1 + "/" + c2))
- // {
- // value = dbconn.DesEncrypt(value, "*ga34|^7");
- // }
- // else
- // {
- // hasDo = "do";
- // }
- // function.WriteLog(value, "接口转发日志");
- // string url = AppConfig.Base.ApHost + "api/v1/" + c1 + "/" + c2 + hasDo;
- // function.WriteLog(url, "接口转发日志");
- // string result = function.PostWebRequest(url, "value=" + value);
- // function.WriteLog(str: result, "接口转发日志");
- // JsonData data = JsonMapper.ToObject(result);
- // if(result.Contains("\"status\""))
- // {
- // return Json(new AppResultJson() { Status = data["status"].ToString(), Data = data["data"].ToJson(), Info = data["info"].ToString(), Other = data["other"] == null ? "" : data["other"].ToJson(), Timestamp = int.Parse(function.CheckInt(data["timestamp"].ToString())) });
- // }
- // return Json(new AppResultJson() { Status = "1", Data = result, Info = "" });
- // }
- }
- }
|