MerchantAddInfoController.cs 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710
  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.Main2;
  11. using MySystem.Service.Main2;
  12. using LitJson;
  13. using Library;
  14. using MySystem.Service.KxsMain;
  15. namespace MySystem.Areas.Api.Controllers.v1.Main2
  16. {
  17. [Area("Api")]
  18. [Route("/v1/QrCodePlateMain/[controller]/[action]")]
  19. public class MerchantAddInfoController : BaseController
  20. {
  21. public MerchantAddInfoController(IHttpContextAccessor accessor) : base(accessor)
  22. {
  23. }
  24. #region 进件管理-银联商户列表
  25. [Authorize]
  26. public JsonResult UnionPayList(string value)
  27. {
  28. value = PublicFunction.DesDecrypt(value);
  29. JsonData data = JsonMapper.ToObject(value);
  30. Dictionary<string, object> Other = new Dictionary<string, object>();
  31. List<Dictionary<string, object>> dataList = UnionPayListDo(value, out Other);
  32. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  33. }
  34. private List<Dictionary<string, object>> UnionPayListDo(string value, out Dictionary<string, object> Other)
  35. {
  36. JsonData data = JsonMapper.ToObject(value);
  37. string SubjectType = data["SubjectType"].ToString(); //主体类型(1 企业 2 个体)
  38. string CertMerchantName = data["CertMerchantName"].ToString(); //商户名称
  39. string ServicePhone = data["ServicePhone"].ToString(); //客服电话
  40. string MakerCode = data["MakerCode"].ToString(); //所属创客编号
  41. string HDStatus = data["HDStatus"].ToString(); //好哒状态(-1 审核失败 0 待审核 3 已通过)
  42. string WeChatStatus = data["WeChatStatus"].ToString(); //微信状态(-1 审核失败 0 待审核 1 待签约 2 已通过)
  43. string AliPayStatus = data["AliPayStatus"].ToString(); //支付宝状态(-1 审核失败 0 待审核 1 待签约 2 已通过)
  44. int pageSize = int.Parse(function.CheckInt(data["page_size"].ToString()));
  45. int pageNum = int.Parse(function.CheckInt(data["page_num"].ToString()));
  46. string condition = "";
  47. var merIds = MerchantInfoUtil.QuerySenedMerchantId();
  48. condition = " and Id in (" + merIds + ")";
  49. if (!string.IsNullOrEmpty(data["SubjectType"].ToString()))
  50. {
  51. if (data["SubjectType"].ToString() == "1") SubjectType = "SUBJECT_TYPE_ENTERPRISE"; //企业公司
  52. if (data["SubjectType"].ToString() == "2") SubjectType = "SUBJECT_TYPE_INDIVIDUAL"; //个体工商户
  53. if (data["SubjectType"].ToString() == "3") SubjectType = "SUBJECT_TYPE_SMALL"; //小微商户
  54. condition += " and SubjectType='" + SubjectType + "'";
  55. }
  56. if (!string.IsNullOrEmpty(data["CertMerchantName"].ToString()))
  57. {
  58. condition += " and CertMerchantName like '%" + CertMerchantName + "%'";
  59. }
  60. if (!string.IsNullOrEmpty(data["ServicePhone"].ToString()))
  61. {
  62. condition += " and ServicePhone='" + ServicePhone + "'";
  63. }
  64. if (!string.IsNullOrEmpty(data["MakerCode"].ToString()))
  65. {
  66. var Ids = MerchantInfoUtil.QueryMerchantIdByMakerCode(MakerCode);
  67. condition += " and Id in (" + Ids + ")";
  68. }
  69. if (!string.IsNullOrEmpty(data["HDStatus"].ToString()))
  70. {
  71. if (int.Parse(HDStatus) == 3)
  72. {
  73. condition += " and HdStatus in(1,2,3)";
  74. }
  75. else
  76. {
  77. condition += " and Status=" + HDStatus + "";
  78. }
  79. }
  80. if (!string.IsNullOrEmpty(data["WeChatStatus"].ToString()))
  81. {
  82. condition += " and Status=" + WeChatStatus + "";
  83. }
  84. if (!string.IsNullOrEmpty(data["AliPayStatus"].ToString()))
  85. {
  86. condition += " and QueryCount=" + AliPayStatus + "";
  87. }
  88. List<RelationData> relationData = new List<RelationData>();
  89. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  90. Other = new Dictionary<string, object>();
  91. int count = 0;
  92. List<Dictionary<string, object>> source = MerchantAddInfoService.List(relationData, condition, out count, pageNum, pageSize);
  93. foreach (Dictionary<string, object> subdata in source)
  94. {
  95. Dictionary<string, object> curData = new Dictionary<string, object>();
  96. var hdStatus = int.Parse(subdata["HdStatus"].ToString());
  97. var status = int.Parse(subdata["Status"].ToString());
  98. var queryCount = int.Parse(subdata["QueryCount"].ToString());
  99. if (hdStatus != 3)
  100. {
  101. hdStatus = status;
  102. }
  103. //商户Id
  104. var MerchantId = int.Parse(subdata["Id"].ToString());
  105. //主体类型
  106. var subjectType = 0;
  107. if (subdata["SubjectType"].ToString() == "SUBJECT_TYPE_ENTERPRISE") subjectType = 1; //企业公司
  108. if (subdata["SubjectType"].ToString() == "SUBJECT_TYPE_INDIVIDUAL") subjectType = 2; //个体工商户
  109. if (subdata["SubjectType"].ToString() == "SUBJECT_TYPE_SMALL") subjectType = 3; //小微商户
  110. curData.Add("Id", subdata["Id"].ToString()); //Id
  111. curData.Add("SubjectType", subjectType); //主体类型(1 企业 2 个体 3 小微)
  112. curData.Add("CertMerchantName", subdata["CertMerchantName"].ToString()); //商户名称
  113. curData.Add("ServicePhone", subdata["ServicePhone"].ToString()); //客服电话
  114. curData.Add("BizStoreAddress", subdata["BizStoreAddress"].ToString()); //门店地址
  115. curData.Add("CreateDate", subdata["CreateDate"].ToString() == "" ? "" : DateTime.Parse(subdata["CreateDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss")); //进件时间
  116. var userInfo = UsersService.Query(MerchantInfoService.Query(MerchantId).UserId);
  117. curData.Add("MakerCode", userInfo.MakerCode); //所属创客编号
  118. curData.Add("RealName", userInfo.RealName); //所属创客姓名
  119. curData.Add("HDStatus", hdStatus); //好哒状态(-1 审核失败 0 待审核 3 已通过)
  120. curData.Add("WeChatStatus", status); //微信状态(-1 审核失败 0 待审核 1 待签约 2 已通过)
  121. curData.Add("AliPayStatus", queryCount); //支付宝状态(-1 审核失败 0 待审核 1 待签约 2 已通过)
  122. dataList.Add(curData);
  123. }
  124. Other.Add("Count", count); //总数
  125. return dataList;
  126. }
  127. #endregion
  128. #region 进件管理-获取商户门店号
  129. [Authorize]
  130. public JsonResult UnionPayGetStoreNo(string value)
  131. {
  132. value = PublicFunction.DesDecrypt(value);
  133. JsonData data = JsonMapper.ToObject(value);
  134. AppResultJson result = UnionPayGetStoreNoDo(value);
  135. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  136. }
  137. private AppResultJson UnionPayGetStoreNoDo(string value)
  138. {
  139. JsonData data = JsonMapper.ToObject(value);
  140. int MerchantId = int.Parse(function.CheckInt(data["MerchantId"].ToString()));
  141. Dictionary<string, object> Obj = new Dictionary<string, object>();
  142. var merAddInfo = main2db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new MerchantAddInfo();
  143. var merInfo = main2db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new MerchantInfo();
  144. merAddInfo.Status = 0;
  145. merInfo.Status = 0;
  146. RedisDbconn.Instance.AddList("UnionPayGetStoreNoQueue", MerchantId.ToString());
  147. main2db.SaveChanges();
  148. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  149. }
  150. #endregion
  151. #region 进件管理-银联查看失败原因
  152. [Authorize]
  153. public JsonResult UnionPayQueryFailReason(string value)
  154. {
  155. value = PublicFunction.DesDecrypt(value);
  156. JsonData data = JsonMapper.ToObject(value);
  157. Dictionary<string, object> Obj = UnionPayQueryFailReasonDo(value);
  158. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  159. }
  160. private Dictionary<string, object> UnionPayQueryFailReasonDo(string value)
  161. {
  162. JsonData data = JsonMapper.ToObject(value);
  163. string MerchantId = data["MerchantId"].ToString(); //商户Id
  164. Dictionary<string, object> Obj = new Dictionary<string, object>();
  165. var query = MerchantAddInfoService.Query(int.Parse(MerchantId));
  166. Obj.Add("HdReason", query.WeChatRemark); //好哒原因
  167. Obj.Add("WeChatReason", query.WeChatRemark); //微信原因
  168. Obj.Add("AlipayReason", query.AlipayRemark); //支付宝原因
  169. return Obj;
  170. }
  171. #endregion
  172. #region 进件管理-银联进件详情
  173. [Authorize]
  174. public JsonResult UnionPayDetail(string value)
  175. {
  176. value = PublicFunction.DesDecrypt(value);
  177. JsonData data = JsonMapper.ToObject(value);
  178. Dictionary<string, object> Obj = UnionPayDetailDo(value);
  179. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  180. }
  181. private Dictionary<string, object> UnionPayDetailDo(string value)
  182. {
  183. JsonData data = JsonMapper.ToObject(value);
  184. string MerchantId = data["MerchantId"].ToString(); //商户Id
  185. Dictionary<string, object> Obj = new Dictionary<string, object>();
  186. Obj = MerchantAddInfoUtil.MerchantAddInfoDetail(int.Parse(MerchantId));
  187. return Obj;
  188. }
  189. #endregion
  190. #region 进件管理-银联提交进件
  191. [Authorize]
  192. public JsonResult UnionPaySubmit(string value)
  193. {
  194. value = PublicFunction.DesDecrypt(value);
  195. JsonData data = JsonMapper.ToObject(value);
  196. AppResultJson result = UnionPaySubmitDo(value);
  197. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  198. }
  199. private AppResultJson UnionPaySubmitDo(string value)
  200. {
  201. JsonData data = JsonMapper.ToObject(value);
  202. string MerchantId = data["MerchantId"].ToString(); //商户Id
  203. var info = MerchantAddInfoUtil.UnionPaySubmitDo(int.Parse(MerchantId));
  204. if (info == "success")
  205. {
  206. return new AppResultJson() { Status = "1", Info = "成功", Data = info };
  207. }
  208. else
  209. {
  210. return new AppResultJson() { Status = "-1", Info = "失败", Data = info };
  211. }
  212. }
  213. #endregion
  214. #region 商户管理-银联查询商户交易信息
  215. [Authorize]
  216. public JsonResult UnionPayQueryMerchantTradeInfo(string value)
  217. {
  218. value = PublicFunction.DesDecrypt(value);
  219. JsonData data = JsonMapper.ToObject(value);
  220. Dictionary<string, object> Other = new Dictionary<string, object>();
  221. List<Dictionary<string, object>> dataList = UnionPayQueryMerchantTradeInfoDo(value, out Other);
  222. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  223. }
  224. private List<Dictionary<string, object>> UnionPayQueryMerchantTradeInfoDo(string value, out Dictionary<string, object> Other)
  225. {
  226. JsonData data = JsonMapper.ToObject(value);
  227. string MerchantName = data["MerchantName"].ToString(); //商户名称
  228. string Mobile = data["Mobile"].ToString(); //手机号码
  229. string MakerCode = data["MakerCode"].ToString(); //所属创客
  230. string MatchNo = data["MatchNo"].ToString(); //商户号
  231. string SubjectType = data["SubjectType"].ToString(); //主体类型(1 企业 2 个体 3 小微)
  232. string IsAct = data["IsAct"].ToString(); //激活状态(0 未激活 1 已激活)
  233. string ActDate = data["ActDate"].ToString(); //激活时间
  234. int pageSize = int.Parse(function.CheckInt(data["page_size"].ToString()));
  235. int pageNum = int.Parse(function.CheckInt(data["page_num"].ToString()));
  236. string condition = "";
  237. var merIds = MerchantInfoUtil.QueryAnyIsOkMerchantId();
  238. condition = " and Id in (" + merIds + ")";
  239. if (!string.IsNullOrEmpty(MerchantName))
  240. {
  241. condition += " and CertMerchantName like '%" + MerchantName + "%'";
  242. }
  243. if (!string.IsNullOrEmpty(Mobile))
  244. {
  245. condition += " and MobilePhone='" + Mobile + "'";
  246. }
  247. if (!string.IsNullOrEmpty(MakerCode))
  248. {
  249. var Ids = MerchantInfoUtil.QueryMerchantIdByMakerCode(MakerCode);
  250. condition += " and Id in (" + Ids + ")";
  251. }
  252. if (!string.IsNullOrEmpty(MatchNo))
  253. {
  254. condition += " and MchtNo='" + MatchNo + "'";
  255. }
  256. if (!string.IsNullOrEmpty(SubjectType))
  257. {
  258. if (SubjectType == "1") SubjectType = "SUBJECT_TYPE_ENTERPRISE"; //企业公司
  259. if (SubjectType == "2") SubjectType = "SUBJECT_TYPE_INDIVIDUAL"; //个体工商户
  260. if (SubjectType == "3") SubjectType = "SUBJECT_TYPE_SMALL"; //小微
  261. condition += " and SubjectType='" + SubjectType + "'";
  262. }
  263. if (!string.IsNullOrEmpty(IsAct))
  264. {
  265. var Ids = MerchantInfoUtil.QueryIsActMerchantId(int.Parse(IsAct));
  266. condition += " and Id in (" + Ids + ")";
  267. }
  268. if (!string.IsNullOrEmpty(data["ActDate"].ToString()))
  269. {
  270. string[] datelist = ActDate.Split(new string[] { " - " }, StringSplitOptions.None);
  271. string start = datelist[0];
  272. string end = datelist[1];
  273. var Ids = MerchantInfoUtil.QueryActDateMerchantId(start, end);
  274. condition += " and Id in (" + Ids + ")";
  275. }
  276. List<RelationData> relationData = new List<RelationData>();
  277. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  278. Other = new Dictionary<string, object>();
  279. int count = 0;
  280. List<Dictionary<string, object>> source = MerchantAddInfoService.List(relationData, condition, out count, pageNum, pageSize);
  281. foreach (Dictionary<string, object> subdata in source)
  282. {
  283. Dictionary<string, object> curData = new Dictionary<string, object>();
  284. //商户Id
  285. var MerchantId = int.Parse(subdata["Id"].ToString());
  286. var merInfo = MerchantInfoService.Query(MerchantId);
  287. var userInfo = UsersService.Query(merInfo.UserId);
  288. curData.Add("MerchantId", subdata["Id"].ToString()); //商户Id
  289. curData.Add("IsAct", merInfo.IsAct); //激活状态(0 未激活 1 已激活)
  290. var actDate = "";
  291. var order = MerchantDepositOrderService.Query(" and Status>0 and MerchantId=" + MerchantId + "");
  292. if (order.Id > 0)
  293. {
  294. actDate = order.UpdateDate.Value.ToString("yyyy-MM-dd HH:mm:ss");
  295. }
  296. curData.Add("ActDate", actDate); //激活时间
  297. curData.Add("MerchantName", subdata["CertMerchantName"].ToString()); //商户名称
  298. curData.Add("Mobile", subdata["MobilePhone"].ToString()); //手机号码
  299. curData.Add("MakerCode", userInfo.MakerCode); //所属创客
  300. curData.Add("RealName", userInfo.RealName); //所属创客姓名
  301. var subjectType = 0;
  302. if (subdata["SubjectType"].ToString() == "SUBJECT_TYPE_ENTERPRISE") subjectType = 1; //企业公司
  303. if (subdata["SubjectType"].ToString() == "SUBJECT_TYPE_INDIVIDUAL") subjectType = 2; //个体工商户
  304. if (subdata["SubjectType"].ToString() == "SUBJECT_TYPE_SMALL") subjectType = 3; //小微
  305. curData.Add("SubjectType", subjectType); //主体类型(1 企业 2 个体 3 小微)
  306. curData.Add("MatchNo", subdata["MchtNo"].ToString()); //商户号
  307. var amountInfo = MerchantAmountSummayService.Sum("TradeCount,TotalActual,TradeAmount", " and MerchantId=" + MerchantId + "");
  308. curData.Add("OrderCount", decimal.Parse(amountInfo["TradeCount"].ToString())); //订单总数
  309. curData.Add("InComeAmount", decimal.Parse(amountInfo["TotalActual"].ToString()).ToString("f2")); //实收总金额
  310. curData.Add("TradeAmount", decimal.Parse(amountInfo["TradeAmount"].ToString()).ToString("f2")); //营业总金额
  311. dataList.Add(curData);
  312. }
  313. Other.Add("Count", count); //总数
  314. return dataList;
  315. }
  316. #endregion
  317. #region 节点操作-银联提交微信开户意愿
  318. [Authorize]
  319. public JsonResult UnionWeChatMerchantOpenAccount(string value)
  320. {
  321. value = PublicFunction.DesDecrypt(value);
  322. JsonData data = JsonMapper.ToObject(value);
  323. AppResultJson result = UnionWeChatMerchantOpenAccountDo(value);
  324. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  325. }
  326. private AppResultJson UnionWeChatMerchantOpenAccountDo(string value)
  327. {
  328. JsonData data = JsonMapper.ToObject(value);
  329. int id = int.Parse(function.CheckInt(data["id"].ToString()));
  330. Dictionary<string, object> Obj = new Dictionary<string, object>();
  331. var merAddInfo = main2db.MerchantAddInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantAddInfo();
  332. if (merAddInfo.HdStatus != 3)
  333. {
  334. return new AppResultJson() { Status = "-1", Info = "商户未添加分账接收方账户", Data = Obj };
  335. }
  336. var merInfo = main2db.MerchantInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantInfo();
  337. merAddInfo.Status = 0;
  338. merAddInfo.ApplymentId = null;
  339. merAddInfo.WeChatSignUrl = null;
  340. merInfo.Status = 0;
  341. main2db.SaveChanges();
  342. RedisDbconn.Instance.AddList("WeChatForHaoDaQueue", id.ToString());
  343. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  344. }
  345. #endregion
  346. #region 节点操作-银联提交支付宝开户意愿
  347. [Authorize]
  348. public JsonResult UnionAlipayMerchantOpenAccount(string value)
  349. {
  350. value = PublicFunction.DesDecrypt(value);
  351. JsonData data = JsonMapper.ToObject(value);
  352. AppResultJson result = UnionAlipayMerchantOpenAccountDo(value);
  353. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  354. }
  355. private AppResultJson UnionAlipayMerchantOpenAccountDo(string value)
  356. {
  357. JsonData data = JsonMapper.ToObject(value);
  358. int id = int.Parse(function.CheckInt(data["id"].ToString()));
  359. Dictionary<string, object> Obj = new Dictionary<string, object>();
  360. var merAddInfo = main2db.MerchantAddInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantAddInfo();
  361. if (merAddInfo.HdStatus != 3)
  362. {
  363. return new AppResultJson() { Status = "-1", Info = "商户未添加分账接收方账户", Data = Obj };
  364. }
  365. var merInfo = main2db.MerchantInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantInfo();
  366. merAddInfo.QueryCount = 0;
  367. merAddInfo.SeoTitle = null;
  368. merAddInfo.AlipaySignUrl = null;
  369. merInfo.QueryCount = 0;
  370. main2db.SaveChanges();
  371. RedisDbconn.Instance.AddList("AlipayForHaoDaQueue", id.ToString());
  372. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  373. }
  374. #endregion
  375. #region 节点操作-银联提交进件
  376. [Authorize]
  377. public JsonResult UnionMerchantAdd(string value)
  378. {
  379. value = PublicFunction.DesDecrypt(value);
  380. JsonData data = JsonMapper.ToObject(value);
  381. AppResultJson result = UnionMerchantAddDo(value);
  382. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  383. }
  384. private AppResultJson UnionMerchantAddDo(string value)
  385. {
  386. JsonData data = JsonMapper.ToObject(value);
  387. int id = int.Parse(function.CheckInt(data["id"].ToString()));
  388. Dictionary<string, object> Obj = new Dictionary<string, object>();
  389. var merAddInfo = main2db.MerchantAddInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantAddInfo();
  390. var merInfo = main2db.MerchantInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantInfo();
  391. merAddInfo.Status = 0;
  392. merAddInfo.QueryCount = 0;
  393. merInfo.Status = 0;
  394. merInfo.QueryCount = 0;
  395. RedisDbconn.Instance.AddList("MerchantConfirmHdQueue", "{\"MerchantId\":\"" + id + "\"}");
  396. main2db.SaveChanges();
  397. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  398. }
  399. #endregion
  400. #region 节点操作-银联绑定微信appid
  401. [Authorize]
  402. public JsonResult UnionMerchantBindWeChatAppId(string value)
  403. {
  404. value = PublicFunction.DesDecrypt(value);
  405. JsonData data = JsonMapper.ToObject(value);
  406. AppResultJson result = UnionMerchantBindWeChatAppIdDo(value);
  407. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  408. }
  409. private AppResultJson UnionMerchantBindWeChatAppIdDo(string value)
  410. {
  411. JsonData data = JsonMapper.ToObject(value);
  412. int id = int.Parse(function.CheckInt(data["id"].ToString()));
  413. var merAddInfo = main2db.MerchantAddInfo.FirstOrDefault(m => m.Id == id) ?? new MerchantAddInfo();
  414. merAddInfo.HdBindWeChat = 0;
  415. main2db.SaveChanges();
  416. return new AppResultJson() { Status = "1", Info = "" };
  417. }
  418. #endregion
  419. #region 节点操作-银联获取好哒认证结果
  420. [Authorize]
  421. public JsonResult UnionMerchantGetAuth(string value)
  422. {
  423. value = PublicFunction.DesDecrypt(value);
  424. JsonData data = JsonMapper.ToObject(value);
  425. Dictionary<string, object> Obj = UnionMerchantGetAuthDo(value);
  426. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  427. }
  428. private Dictionary<string, object> UnionMerchantGetAuthDo(string value)
  429. {
  430. JsonData data = JsonMapper.ToObject(value);
  431. Dictionary<string, object> Obj = new Dictionary<string, object>();
  432. MerchantAddInfo query = new MerchantAddInfo();
  433. int id = int.Parse(function.CheckInt(data["id"].ToString()));
  434. query = MerchantAddInfoService.Query(id);
  435. Obj.Add("WeChatMerchantId", query.WeChatMerchantId); //微信商户号
  436. Obj.Add("AliMerchantId", query.AliMerchantId); //支付宝商户号
  437. Obj.Add("WeChatStatus", ""); //微信认证状态
  438. Obj.Add("AlipayStatus", ""); //支付宝认证状态
  439. return Obj;
  440. }
  441. #endregion
  442. #region 节点操作-银联获取审核状态
  443. [Authorize]
  444. public JsonResult UnionMerchantQueryStatus(string value)
  445. {
  446. value = PublicFunction.DesDecrypt(value);
  447. JsonData data = JsonMapper.ToObject(value);
  448. Dictionary<string, object> Obj = UnionMerchantQueryStatusDo(value);
  449. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  450. }
  451. private Dictionary<string, object> UnionMerchantQueryStatusDo(string value)
  452. {
  453. JsonData data = JsonMapper.ToObject(value);
  454. Dictionary<string, object> Obj = new Dictionary<string, object>();
  455. MerchantAddInfo query = new MerchantAddInfo();
  456. int id = int.Parse(function.CheckInt(data["id"].ToString()));
  457. query = MerchantAddInfoService.Query(id);
  458. Obj.Add("AlipaySignUrl", query.AlipaySignUrl); //支付宝签约地址
  459. Obj.Add("WeChatSignUrl", query.WeChatSignUrl); //微信签约地址
  460. Obj.Add("MchtNo", query.MchtNo); //好哒商户号
  461. Obj.Add("OutMchtNo", query.OutMchtNo); //慧掌柜商户号
  462. Obj.Add("StoreNo", query.StoreNo); //门店号
  463. Obj.Add("ToAcctNo", query.ToAcctNo); //分账接收方
  464. Obj.Add("HdPassDate", query.HdPassDate == null ? "" : query.HdPassDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //好哒审核通过时间
  465. Obj.Add("HdBindWeChat", query.HdBindWeChat); //好哒绑定微信状态
  466. string HdRemark = "";
  467. string WeChatRemark = "";
  468. string AlipayRemark = "";
  469. int HdStatus = 0;
  470. int WeChatStatus = 0;
  471. int AlipayStatus = 0;
  472. if (query.HdStatus == 0 && query.Status == -1)
  473. {
  474. HdStatus = -1;
  475. HdRemark = query.WeChatRemark;
  476. }
  477. if (query.HdStatus == 3)
  478. {
  479. WeChatStatus = query.Status;
  480. AlipayStatus = query.QueryCount;
  481. WeChatRemark = query.WeChatRemark;
  482. AlipayRemark = query.AlipayRemark;
  483. }
  484. Obj.Add("HdStatus", HdStatus); //好哒进件状态
  485. Obj.Add("HdRemark", HdRemark); //好哒备注
  486. Obj.Add("WeChatRemark", WeChatRemark); //微信备注
  487. Obj.Add("AlipayRemark", AlipayRemark); //支付宝备注
  488. Obj.Add("WeChatStatus", WeChatStatus); //微信审核状态
  489. Obj.Add("AlipayStatus", AlipayStatus); //微信审核状态
  490. return Obj;
  491. }
  492. #endregion
  493. #region 进件管理-银联修改商户名称
  494. [Authorize]
  495. public JsonResult UnionPayEditMerchantName(string value)
  496. {
  497. value = PublicFunction.DesDecrypt(value);
  498. JsonData data = JsonMapper.ToObject(value);
  499. AppResultJson result = UnionPayEditMerchantNameDo(value);
  500. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  501. }
  502. private AppResultJson UnionPayEditMerchantNameDo(string value)
  503. {
  504. JsonData data = JsonMapper.ToObject(value);
  505. string MerchantId = data["MerchantId"].ToString(); //商户Id
  506. string MerchantName = data["MerchantName"].ToString(); //新商户名称
  507. string MerchantShortName = data["MerchantShortName"].ToString(); //新商户简称
  508. Dictionary<string, object> Obj = new Dictionary<string, object>();
  509. var Id = int.Parse(MerchantId);
  510. var query = main2db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
  511. var merInfo = main2db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
  512. if (query.Id > 0)
  513. {
  514. if (!string.IsNullOrEmpty(MerchantName))
  515. {
  516. query.CertMerchantName = MerchantName;
  517. merInfo.Name = MerchantName;
  518. }
  519. if (!string.IsNullOrEmpty(MerchantShortName))
  520. {
  521. query.MerchantShortname = MerchantShortName;
  522. }
  523. }
  524. main2db.SaveChanges();
  525. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  526. }
  527. #endregion
  528. #region 商户管理-银联查询商户交易信息导出
  529. [Authorize]
  530. public JsonResult ExportUnionPayQueryMerchantTradeInfo(string value)
  531. {
  532. value = PublicFunction.DesDecrypt(value);
  533. JsonData data = JsonMapper.ToObject(value);
  534. AppResultJson result = ExportUnionPayQueryMerchantTradeInfoDo(value);
  535. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  536. }
  537. private AppResultJson ExportUnionPayQueryMerchantTradeInfoDo(string value)
  538. {
  539. JsonData data = JsonMapper.ToObject(value);
  540. string MerchantName = data["MerchantName"].ToString(); //商户名称
  541. string Mobile = data["Mobile"].ToString(); //手机号码
  542. string MakerCode = data["MakerCode"].ToString(); //所属创客
  543. string MatchNo = data["MatchNo"].ToString(); //商户号
  544. string SubjectType = data["SubjectType"].ToString(); //主体类型(1 企业 2 个体 3 小微)
  545. string IsAct = data["IsAct"].ToString(); //激活状态(0 未激活 1 已激活)
  546. string ActDate = data["ActDate"].ToString(); //激活时间
  547. string condition = "";
  548. var merIds = MerchantInfoUtil.QueryAnyIsOkMerchantId();
  549. condition = " and Id in (" + merIds + ")";
  550. if (!string.IsNullOrEmpty(MerchantName))
  551. {
  552. condition += " and CertMerchantName like '%" + MerchantName + "%'";
  553. }
  554. if (!string.IsNullOrEmpty(Mobile))
  555. {
  556. condition += " and MobilePhone='" + Mobile + "'";
  557. }
  558. if (!string.IsNullOrEmpty(MakerCode))
  559. {
  560. var Ids = MerchantInfoUtil.QueryMerchantIdByMakerCode(MakerCode);
  561. condition += " and Id in (" + Ids + ")";
  562. }
  563. if (!string.IsNullOrEmpty(MatchNo))
  564. {
  565. condition += " and MchtNo='" + MatchNo + "'";
  566. }
  567. if (!string.IsNullOrEmpty(SubjectType))
  568. {
  569. if (SubjectType == "1") SubjectType = "SUBJECT_TYPE_ENTERPRISE"; //企业公司
  570. if (SubjectType == "2") SubjectType = "SUBJECT_TYPE_INDIVIDUAL"; //个体工商户
  571. if (SubjectType == "3") SubjectType = "SUBJECT_TYPE_SMALL"; //小微
  572. condition += " and SubjectType='" + SubjectType + "'";
  573. }
  574. if (!string.IsNullOrEmpty(IsAct))
  575. {
  576. var Ids = MerchantInfoUtil.QueryIsActMerchantId(int.Parse(IsAct));
  577. condition += " and Id in (" + Ids + ")";
  578. }
  579. if (!string.IsNullOrEmpty(data["ActDate"].ToString()))
  580. {
  581. string[] datelist = ActDate.Split(new string[] { " - " }, StringSplitOptions.None);
  582. string start = datelist[0];
  583. string end = datelist[1];
  584. var Ids = MerchantInfoUtil.QueryActDateMerchantId(start, end);
  585. condition += " and Id in (" + Ids + ")";
  586. }
  587. Dictionary<string, object> Obj = new Dictionary<string, object>();
  588. var Sql = "SELECT a.Id '商户Id',(CASE WHEN b.IsAct=0 THEN '未激活' WHEN b.IsAct=1 THEN '已激活' ELSE '' end) '激活状态',c.UpdateDate '激活时间',a.CertMerchantName '商户名称',a.MobilePhone '手机号码',b.UserId '所属创客Id',(CASE WHEN a.SubjectType='SUBJECT_TYPE_ENTERPRISE' THEN '企业公司' WHEN a.SubjectType='SUBJECT_TYPE_INDIVIDUAL' THEN '个体工商户' WHEN a.SubjectType='SUBJECT_TYPE_SMALL' THEN '小微' ELSE '' end) '主体类型',a.MchtNo '商户号',(SELECT SUM(TradeCount) TradeCount FROM QrCodePlateMainServer2.MerchantAmountSummay WHERE 1=1 AND MerchantId=a.Id) '订单总数',(SELECT SUM(TotalActual) TotalActual FROM QrCodePlateMainServer2.MerchantAmountSummay WHERE 1=1 AND MerchantId=a.Id)' 实收总金额',(SELECT SUM(TradeAmount) TradeAmount FROM QrCodePlateMainServer2.MerchantAmountSummay WHERE 1=1 AND MerchantId=a.Id) '营业总金额' FROM(SELECT Id,CertMerchantName,MobilePhone,MchtNo,SubjectType FROM QrCodePlateMainServer2.MerchantAddInfo WHERE 1=1 " + condition + " AND (Status=2 or QueryCount=2)) a LEFT JOIN (SELECT Id,IsAct,UserId FROM QrCodePlateMainServer2.MerchantInfo WHERE 1=1 AND Status=2 or QueryCount=2) b ON a.Id=b.Id LEFT JOIN (SELECT MerchantId,UpdateDate FROM QrCodePlateMainServer2.MerchantDepositOrder WHERE `Status`>0)c ON a.Id=c.MerchantId ORDER BY a.Id";
  589. var FileName = "商户管理-银联查询商户交易信息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  590. string SendData = "{\"Operater\":\"" + AppConfig.LoginSession.sysId + "\",\"SqlString\":\"" + Sql + "\",\"FileName\":\"" + FileName + "\",\"MaxCount\":\"0\"}";
  591. RedisDbconn.Instance.AddList("ExportQueue", SendData);
  592. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  593. }
  594. #endregion
  595. #region 银联结算管理-银联结算记录
  596. [Authorize]
  597. public JsonResult UnionPaySettlementRecordList(string value)
  598. {
  599. value = PublicFunction.DesDecrypt(value);
  600. JsonData data = JsonMapper.ToObject(value);
  601. Dictionary<string, object> Other = new Dictionary<string, object>();
  602. List<Dictionary<string, object>> dataList = UnionPaySettlementRecordListDo(value, out Other);
  603. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  604. }
  605. private List<Dictionary<string, object>> UnionPaySettlementRecordListDo(string value, out Dictionary<string, object> Other)
  606. {
  607. JsonData data = JsonMapper.ToObject(value);
  608. string MerchantName = data["MerchantName"].ToString(); //商户名称
  609. string MerchantNo = data["MerchantNo"].ToString(); //商户号
  610. string SettlementDate = data["SettlementDate"].ToString(); //结算时间(必填)
  611. string SettleStatus = data["SettleStatus"].ToString(); //出款状态(0 入账成功 1 入账失败 2 结算超时 3 入账受理成功 4 已提交结算请求)
  612. string pageSize = data["page_size"].ToString();
  613. string pageNum = data["page_num"].ToString();
  614. var MerchantId = 0;
  615. string StartDate = "";
  616. string EndDate = "";
  617. if (!string.IsNullOrEmpty(data["MerchantName"].ToString()))
  618. {
  619. var merAddInfo = MerchantAddInfoService.Query(" and CertMerchantName='" + MerchantName + "'");
  620. MerchantId = merAddInfo.Id;
  621. }
  622. if (!string.IsNullOrEmpty(data["MerchantNo"].ToString()))
  623. {
  624. var merAddInfo = MerchantAddInfoService.Query(" and MchtNo='" + MerchantNo + "'");
  625. MerchantId = merAddInfo.Id;
  626. }
  627. if (!string.IsNullOrEmpty(data["SettlementDate"].ToString()))
  628. {
  629. string[] datelist = SettlementDate.Split(new string[] { " - " }, StringSplitOptions.None);
  630. StartDate = datelist[0];
  631. EndDate = datelist[1];
  632. }
  633. Other = new Dictionary<string, object>();
  634. var dataList = MySelfUtil.CardInComeRecordList(MerchantId, StartDate, EndDate, SettleStatus, pageSize, pageNum, out Other);
  635. Other = Other;
  636. return dataList;
  637. }
  638. #endregion
  639. #region 重置交易额-银联重置商户交易额
  640. [Authorize]
  641. public JsonResult UnionPayResetMerchantAmount(string value)
  642. {
  643. value = PublicFunction.DesDecrypt(value);
  644. JsonData data = JsonMapper.ToObject(value);
  645. AppResultJson result = UnionPayResetMerchantAmountDo(value);
  646. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  647. }
  648. private AppResultJson UnionPayResetMerchantAmountDo(string value)
  649. {
  650. JsonData data = JsonMapper.ToObject(value);
  651. string MerchantId = data["MerchantId"].ToString(); //商户Id
  652. string TradeDate = data["TradeDate"].ToString(); //交易时间
  653. if (string.IsNullOrEmpty(data["MerchantId"].ToString()) || string.IsNullOrEmpty(data["TradeDate"].ToString()))
  654. {
  655. return new AppResultJson() { Status = "-1", Info = "商户Id和交易时间不能为空" };
  656. }
  657. string[] datelist = TradeDate.Split(new string[] { " - " }, StringSplitOptions.None);
  658. string start = DateTime.Parse(datelist[0]).ToString("yyyyMMdd");
  659. string end = DateTime.Parse(datelist[1]).ToString("yyyyMMdd");
  660. string info = "{\"MerchantId\":\"" + MerchantId + "\",\"StartDate\":\"" + start + "\",\"EndDate\": \"" + end + "\"}";
  661. RedisDbconn.Instance.AddList("ResetMerchantStatDataQueue2", info);
  662. Dictionary<string, object> Obj = new Dictionary<string, object>();
  663. return new AppResultJson() { Status = "1", Info = "成功", Data = Obj };
  664. }
  665. #endregion
  666. }
  667. }