| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- 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;
- using System.Text;
- using Aliyun.OSS;
- using System.Security.Cryptography;
- 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().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;
- Utils.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;
- Utils.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" + month) == "1")
- {
- return "请勿频繁操作";
- }
- RedisDbconn.Instance.Set("LeaderTxjPrizeFlag" + month, "1");
- RedisDbconn.Instance.SetExpire("LeaderTxjPrizeFlag" + month, 60);
- RedisDbconn.Instance.AddList("TxjQueue", month);
- return "ok";
- }
- #endregion
- #region 获取更新过期身份证链接
- [Route("/api/v1/ls/idcardurl")]
- public JsonResult LsIdCardUrl()
- {
- StreamReader sr = new StreamReader(Request.Body);
- string requestMes = sr.ReadToEnd();
- requestMes = requestMes.Replace("\"", "");
- Utils.WriteLog(requestMes, "获取更新过期身份证链接");
- requestMes = PublicImportDataService.Instance.AesDecryptForIv(requestMes);
- Utils.WriteLog(requestMes + "\n\n", "获取更新过期身份证链接");
- JsonData data = JsonMapper.ToObject(requestMes);
- string merNo = data["merNo"].ToString();
- string content = PublicImportDataService.Instance.LePassGetExpiredIdCardUrl(merNo);
- JsonData jsonObj = JsonMapper.ToObject(content);
- if(jsonObj["error_code"].ToString() == "0")
- {
- return Json(new AppResultJson() { Status = "1", Info = jsonObj["error_msg"].ToString(), Data = jsonObj["data"].ToString() });
- }
- return Json(new AppResultJson() { Status = "-1", Info = jsonObj["error_msg"].ToString() });
- }
- #endregion
- #region 更新小程序版本
- [Route("/api/v1/mini/addver")]
- public string MiniAddVesion(string id)
- {
- RedisDbconn.Instance.AddList("MiniSetVersionQueue", id);
- return "ok";
- }
- #endregion
- #region 前端上传oss返回参数
- [Route("/api/oss/uploadinfo")]
- public JsonResult OssInfo(string value)
- {
- value = AesDecrypt(value);
- JsonData data = JsonMapper.ToObject(value);
- string dir = data["dir"].ToString(); //文件上传路径
- if (string.IsNullOrEmpty(data["dir"].ToString()))
- {
- return Json(new AppResultJson() { Status = "1", Info = "文件上传路径不能为空" });
- }
- Dictionary<string, object> Obj = new Dictionary<string, object>();
- var OssUrl = "https://laikeba.oss-cn-chengdu.aliyuncs.com";
- var AccessKeyId = "LTAI5tJsPaNzqCSMCPwb8zfz";
- var AccessKeySecret = "efM31Up75fQcgZ32U6xvAciagceQae";
- var endpoint = "https://oss-cn-chengdu.aliyuncs.com";
- // "OSSKey": "LTAI5tJsPaNzqCSMCPwb8zfz",
- // "OSSSecret": "efM31Up75fQcgZ32U6xvAciagceQae",
- // "OSSEndpoint": "oss-cn-chengdu.aliyuncs.com",
- // "OSSBucketName": "laikeba",
- // 构造OssClient实例。 endpoint 格式:https://oss-cn-beijing.aliyuncs.com
- var ossClient = new OssClient(endpoint, AccessKeyId, AccessKeySecret);
- var config = new PolicyConditions();
- config.AddConditionItem(PolicyConditions.CondContentLengthRange, 1, 1024L * 1024 * 1024 * 5);// 文件大小范围:单位byte
- config.AddConditionItem(MatchMode.StartWith, PolicyConditions.CondKey, dir);
- var expire = DateTimeOffset.Now.AddMinutes(30);// 过期时间
- // 生成 Policy,并进行 Base64 编码
- var policy = ossClient.GeneratePostPolicy(expire.LocalDateTime, config);
- var policyBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(policy));
- // 计算签名
- var hmac = new HMACSHA1(Encoding.UTF8.GetBytes(AccessKeySecret));
- var bytes = hmac.ComputeHash(Encoding.UTF8.GetBytes(policyBase64));
- var Signature = Convert.ToBase64String(bytes);
- Obj.Add("OssUrl", OssUrl);
- Obj.Add("AccessKeyId", AccessKeyId);
- // Obj.Add("AccessKeySecret", AccessKeySecret);
- Obj.Add("Policy", policyBase64);
- Obj.Add("Expiration", expire);
- Obj.Add("Signature", Signature);
- Obj.Add("dir", dir);
- return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
- }
- #endregion
- // [Route("/api/v1/{c1}/{c2}")]
- // public JsonResult ToApServer(string c1, string c2, string value)
- // {
- // string apis = function.CheckNull(RedisDbconn.Instance.Get<string>("ToApServer"));
- // Utils.WriteLog(DateTime.Now.ToString() + "\n" + value, "接口转发日志");
- // string hasDo = "";
- // if (apis.Contains(c1 + "/" + c2))
- // {
- // value = dbconn.DesEncrypt(value, "*ga34|^7");
- // }
- // else
- // {
- // hasDo = "do";
- // }
- // Utils.WriteLog(value, "接口转发日志");
- // string url = AppConfig.Base.ApHost + "api/v1/" + c1 + "/" + c2 + hasDo;
- // Utils.WriteLog(url, "接口转发日志");
- // string result = function.PostWebRequest(url, "value=" + value);
- // Utils.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 = "" });
- // }
- }
- }
|