MerchantDepositOrderController.cs 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.AspNetCore.Http;
  6. using Microsoft.Extensions.Logging;
  7. using Microsoft.Extensions.Options;
  8. using Microsoft.AspNetCore.Authorization;
  9. using System.Web;
  10. using MySystem.Models.Main;
  11. using LitJson;
  12. using Library;
  13. using System.Data;
  14. using MySystem.Service.Main;
  15. namespace MySystem.Areas.Api.Controllers.v1
  16. {
  17. [Area("Api")]
  18. [Route("Api/v1/[controller]/[action]")]
  19. public class MerchantDepositOrderController : BaseController
  20. {
  21. public MerchantDepositOrderController(IHttpContextAccessor accessor) : base(accessor)
  22. {
  23. }
  24. #region 商户激活-确认支付
  25. // [Authorize]
  26. public JsonResult Pay(string value)
  27. {
  28. value = DesDecrypt(value);
  29. JsonData data = JsonMapper.ToObject(value);
  30. AppResultJson result = PayDo(value);
  31. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  32. }
  33. public AppResultJson PayDo(string value)
  34. {
  35. JsonData data = JsonMapper.ToObject(value);
  36. int PayMode = int.Parse(function.CheckInt(data["PayMode"].ToString())); //支付方式(1 支付宝)
  37. int MerchantId = int.Parse(function.CheckInt(data["MerchantId"].ToString())); //商户Id
  38. int Id = int.Parse(function.CheckInt(data["Id"].ToString())); //订单记录Id
  39. Dictionary<string, object> Obj = new Dictionary<string, object>();
  40. var query = MerchantDepositOrderService.Query(Id);
  41. if (query.Id > 0)
  42. {
  43. Dictionary<string, object> fields = new Dictionary<string, object>();
  44. fields.Add("Sort", PayMode); //订单号
  45. MerchantDepositOrderService.Edit(fields, Id, false);
  46. string PayData = "";
  47. Models.KxsMainModels.PublicAccountSet set = new AlipayFunctionForKxs(_accessor.HttpContext).SetData(MerchantId);
  48. if (PayMode == 1)
  49. {
  50. string TotalPrice = query.ActPayPrice.ToString();
  51. function.WriteLog(query.OrderNo, "支付宝支付日志");
  52. function.WriteLog(TotalPrice.ToString(), "支付宝支付日志");
  53. function.WriteLog("商户激活—确认订单", "支付宝支付日志");
  54. string ProductName = "商户激活—确认订单";
  55. PayData = new Alipay.AlipayPublicClass(_accessor.HttpContext).GetAlipayInfo(query.OrderNo, TotalPrice, ProductName, set.AlipayAppId, set.AlipayPrivateKey, SpHost + "/Api/Alipay/NoticePay");
  56. function.WriteLog(PayData, "支付宝支付日志");
  57. }
  58. Obj.Add("PayData", PayData); //支付宝微信SDK所需数据
  59. }
  60. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  61. }
  62. #endregion
  63. #region 商户激活—确认订单
  64. // [Authorize]
  65. public JsonResult ConfirmOrder(string value)
  66. {
  67. value = DesDecrypt(value);
  68. JsonData data = JsonMapper.ToObject(value);
  69. AppResultJson result = ConfirmOrderDo(value);
  70. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  71. }
  72. public AppResultJson ConfirmOrderDo(string value)
  73. {
  74. function.WriteLog(value, "商户激活—确认订单");
  75. JsonData data = JsonMapper.ToObject(value);
  76. int MerchantId = int.Parse(function.CheckInt(data["MerchantId"].ToString())); //商户Id
  77. Dictionary<string, object> Obj = new Dictionary<string, object>();
  78. MerchantInfo merchant = MerchantInfoService.Query(MerchantId);
  79. string OrderNo = "SHJH" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(8);
  80. string check = RedisDbconn.Instance.Get<string>("ConfirmOrder:" + MerchantId + "_" + OrderNo);
  81. if (!string.IsNullOrEmpty(check))
  82. {
  83. return new AppResultJson() { Status = "-1", Info = "请勿重复下单!" };
  84. }
  85. RedisDbconn.Instance.Set("ConfirmOrder:" + MerchantId + "_" + OrderNo, "1");
  86. RedisDbconn.Instance.SetExpire("ConfirmOrder:" + MerchantId + "_" + OrderNo, 10);
  87. decimal ActPayPrice = 365; //服务费总额
  88. var Id = MerchantDepositOrderUtil.AddMerchantDepositOrder(OrderNo, merchant.UserId, MerchantId, ActPayPrice);
  89. var query = MerchantDepositOrderService.Query(Id);
  90. Obj.Add("Id", Id); //Id
  91. Obj.Add("CreateDate", query.CreateDate); //创建时间
  92. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  93. }
  94. #endregion
  95. #region 已激活商户-活动时间
  96. // [Authorize]
  97. public JsonResult Info(string value)
  98. {
  99. value = PublicFunction.DesDecrypt(value); ;
  100. JsonData data = JsonMapper.ToObject(value);
  101. Dictionary<string, object> Obj = InfoDo(value);
  102. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  103. }
  104. private Dictionary<string, object> InfoDo(string value)
  105. {
  106. JsonData data = JsonMapper.ToObject(value);
  107. int MerchantId = int.Parse(function.CheckInt(data["MerchantId"].ToString())); //商户Id
  108. Dictionary<string, object> Obj = new Dictionary<string, object>();
  109. var query = MerchantDepositOrderService.Query(" and Status=1 and MerchantId=" + MerchantId + "");
  110. var CreateDate = DateTime.Parse(query.CreateDate.ToString()).Year + "年" + DateTime.Parse(query.CreateDate.ToString()).Month + "月" + DateTime.Parse(query.CreateDate.ToString()).Day + "日";
  111. var StartDate = DateTime.Parse(query.CreateDate.ToString()).AddMonths(1).Year + "年" + DateTime.Parse(query.CreateDate.ToString()).AddMonths(1).Month + "月";
  112. var EndDate = DateTime.Parse(query.CreateDate.ToString()).AddMonths(11).Year + "年" + DateTime.Parse(query.CreateDate.ToString()).AddMonths(11).Month + "月";
  113. Obj.Add("CreateDate", CreateDate); //参与时间
  114. Obj.Add("StartDate", StartDate); //考核开始时间
  115. Obj.Add("EndDate", EndDate); //考核结束时间
  116. return Obj;
  117. }
  118. #endregion
  119. }
  120. }