HomeController.cs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Data;
  6. using System.Threading.Tasks;
  7. using Microsoft.AspNetCore.Mvc;
  8. using Microsoft.Extensions.Logging;
  9. using MySystem.PxcModels;
  10. using System.Threading;
  11. using Library;
  12. using LitJson;
  13. using System.Security.Cryptography;
  14. namespace MySystem.Controllers
  15. {
  16. public class HomeController : Controller
  17. {
  18. private readonly ILogger<HomeController> _logger;
  19. public HomeController(ILogger<HomeController> logger)
  20. {
  21. _logger = logger;
  22. }
  23. public IActionResult Index()
  24. {
  25. return View();
  26. }
  27. public IActionResult Error()
  28. {
  29. string isapi = Request.Headers["Api"].ToString();
  30. if (isapi != "1")
  31. {
  32. if (Response.StatusCode == 500)
  33. {
  34. return Redirect("/public/errpage/pc/500.html");
  35. }
  36. else if (Response.StatusCode == 502)
  37. {
  38. return Redirect("/public/errpage/pc/502.html");
  39. }
  40. else if (Response.StatusCode == 404)
  41. {
  42. return Redirect("/public/errpage/pc/404.html");
  43. }
  44. }
  45. return View();
  46. }
  47. // 大盟主标记扫描
  48. public string leaderflag()
  49. {
  50. WebCMSEntities db = new WebCMSEntities();
  51. List<int> ids = new List<int>();
  52. // List<PosCouponRecord> records = db.PosCouponRecord.Where(m => m.FromUserId == 597).ToList();
  53. // foreach(PosCouponRecord record in records)
  54. // {
  55. // ids.Add(record.PosCouponId);
  56. // }
  57. ids.Add(6843);
  58. List<PosCoupons> coupons = db.PosCoupons.Where(m => ids.Contains(m.Id) && m.IsUse == 1).ToList();
  59. foreach (PosCoupons coupon in coupons)
  60. {
  61. PosSns.Add(coupon.ExchangeCode);
  62. }
  63. foreach (PosCoupons coupon in coupons)
  64. {
  65. ChildNo(db, coupon.ExchangeCode, coupon.ExchangeCode, coupon.LeaderUserId);
  66. }
  67. // db.SaveChanges();
  68. db.Dispose();
  69. return "ok";
  70. }
  71. List<string> nos = new List<string>();
  72. private void ChildNo(WebCMSEntities db, string RootCheckNo, string CheckNo, int LeaderUserId)
  73. {
  74. MachineApply apply = db.MachineApply.FirstOrDefault(m => m.SwapSnExpand.Contains(CheckNo));
  75. if(apply != null)
  76. {
  77. int len = 0;
  78. string[] SnList = apply.SwapSnExpand.TrimEnd('\n').Split('\n');
  79. foreach(string sn in SnList)
  80. {
  81. if(PosSns.Contains(sn.Split(':')[0]) || nos.Contains(sn.Split(':')[0]))
  82. {
  83. len += 1;
  84. }
  85. }
  86. Orders order = db.Orders.FirstOrDefault(m => m.Id == apply.QueryCount);
  87. if(order != null)
  88. {
  89. if(!string.IsNullOrEmpty(order.SnNos))
  90. {
  91. if(order.SnNos.Contains(","))
  92. {
  93. string[] SwapSnExpands = order.SnNos.TrimEnd(',').Split(',');
  94. int index = 0;
  95. foreach(string no in SwapSnExpands)
  96. {
  97. if(!nos.Contains(no) && index < len)
  98. {
  99. index += 1;
  100. nos.Add(no);
  101. ChildNo(db, RootCheckNo, no, LeaderUserId);
  102. }
  103. }
  104. }
  105. else
  106. {
  107. string[] SwapSnExpands = order.SnNos.TrimEnd('\n').Split('\n');
  108. int index = 0;
  109. foreach(string no in SwapSnExpands)
  110. {
  111. if(!nos.Contains(no) && index < len)
  112. {
  113. index += 1;
  114. nos.Add(no);
  115. ChildNo(db, RootCheckNo, no, LeaderUserId);
  116. }
  117. }
  118. }
  119. }
  120. else
  121. {
  122. MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == CheckNo) ?? new MachineForSnNo();
  123. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId);
  124. if(pos != null)
  125. {
  126. // pos.LeaderUserId = LeaderUserId;
  127. // Library.function.WriteLog(LeaderUserId + ":" + pos.PosSn + ":" + apply.SwapSnExpand.TrimEnd('\n').Split('\n').Length, "大盟主奖励标记机具");
  128. Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
  129. Library.function.WriteLog(pos.PosSn + ":" + RootCheckNo + ":" + user.MakerCode + ":" + user.RealName, "大盟主奖励标记机具");
  130. }
  131. }
  132. }
  133. }
  134. else
  135. {
  136. MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == CheckNo) ?? new MachineForSnNo();
  137. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m=>m.Id == forSnNo.SnId);
  138. if(pos != null)
  139. {
  140. // pos.LeaderUserId = LeaderUserId;
  141. // Library.function.WriteLog(LeaderUserId + ":" + pos.PosSn, "大盟主奖励标记机具");
  142. Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
  143. Library.function.WriteLog(pos.PosSn + ":" + RootCheckNo + ":" + user.MakerCode + ":" + user.RealName, "大盟主奖励标记机具");
  144. }
  145. }
  146. }
  147. List<string> PosSns = new List<string>();
  148. public string ScanNos()
  149. {
  150. PosSns = new List<string>();
  151. PosSns.Add("00005002681889125851");
  152. WebCMSEntities db = new WebCMSEntities();
  153. foreach(string PosSn in PosSns)
  154. {
  155. ChildNo(db, PosSn, PosSn, 0);
  156. }
  157. db.Dispose();
  158. return "ok";
  159. }
  160. public string test()
  161. {
  162. WebCMSEntities db = new WebCMSEntities();
  163. List<string> list = new List<string>();
  164. foreach(string sub in list)
  165. {
  166. string[] subData = sub.Split(';');
  167. string OrderNo = subData[0].Split(':')[1];
  168. int ToUserId = int.Parse(subData[1].Split(':')[1]);
  169. int UserId = int.Parse(subData[2].Split(':')[1]);
  170. decimal Amt = decimal.Parse(subData[3].Split(':')[1]);
  171. UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == UserId) ?? new UserAccount();
  172. if(account.BalanceAmount - account.FreezeAmount >= Amt)
  173. {
  174. account.BalanceAmount -= Amt;
  175. account.TotalAmount -= Amt;
  176. Orders order = db.Orders.FirstOrDefault(m => m.OrderNo == OrderNo) ?? new Orders();
  177. UserAccountRecord record = db.UserAccountRecord.FirstOrDefault(m => m.QueryCount == order.Id && m.ChangeType == 112 && m.ChangeAmount == Amt && m.UserId == UserId);
  178. if(record != null)
  179. {
  180. record.UserId = ToUserId;
  181. UserAccount toAccount = db.UserAccount.FirstOrDefault(m => m.Id == ToUserId);
  182. if(toAccount != null)
  183. {
  184. toAccount.BalanceAmount += Amt;
  185. toAccount.TotalAmount += Amt;
  186. db.SaveChanges();
  187. // //重置实发对象收支明细数据
  188. // var oldrecord = db.UserAccountRecord.Where(m => m.Id < record.Id && m.UserId == UserId).OrderByDescending(m => m.Id).FirstOrDefault();
  189. // if(oldrecord != null)
  190. // {
  191. // decimal AfterBalanceAmount = oldrecord.AfterBalanceAmount;
  192. // decimal AfterTotalAmount = oldrecord.AfterTotalAmount;
  193. // decimal AfterFreezeAmount = oldrecord.AfterFreezeAmount;
  194. // var records = db.UserAccountRecord.Where(m => m.Id > oldrecord.Id && m.UserId == UserId).OrderBy(m => m.Id).ToList();
  195. // foreach(var subrecord in records)
  196. // {
  197. // UserAccountRecord edit = db.UserAccountRecord.FirstOrDefault(m => m.Id == subrecord.Id);
  198. // if(edit != null)
  199. // {
  200. // if(edit.BeforeBalanceAmount < edit.AfterBalanceAmount)
  201. // {
  202. // edit.AfterBalanceAmount = AfterBalanceAmount + edit.ChangeAmount;
  203. // }
  204. // else
  205. // {
  206. // edit.AfterBalanceAmount = AfterBalanceAmount - edit.ChangeAmount;
  207. // }
  208. // if(edit.BeforeTotalAmount < edit.AfterTotalAmount)
  209. // {
  210. // edit.AfterTotalAmount = AfterTotalAmount + edit.ChangeAmount;
  211. // }
  212. // else
  213. // {
  214. // edit.AfterTotalAmount = AfterTotalAmount - edit.ChangeAmount;
  215. // }
  216. // if(edit.BeforeFreezeAmount < edit.AfterFreezeAmount)
  217. // {
  218. // edit.AfterFreezeAmount = AfterFreezeAmount + edit.ChangeAmount;
  219. // }
  220. // else
  221. // {
  222. // edit.AfterFreezeAmount = AfterFreezeAmount - edit.ChangeAmount;
  223. // }
  224. // edit.BeforeBalanceAmount = AfterBalanceAmount;
  225. // edit.BeforeTotalAmount = AfterTotalAmount;
  226. // edit.BeforeFreezeAmount = AfterFreezeAmount;
  227. // db.SaveChanges();
  228. // AfterBalanceAmount = edit.AfterBalanceAmount;
  229. // AfterTotalAmount = edit.AfterTotalAmount;
  230. // AfterFreezeAmount = edit.AfterFreezeAmount;
  231. // }
  232. // }
  233. // }
  234. // //重置实发对象收支明细数据
  235. // var torecord = db.UserAccountRecord.Where(m => m.Id < record.Id && m.UserId == ToUserId).OrderByDescending(m => m.Id).FirstOrDefault();
  236. // if(torecord != null)
  237. // {
  238. // record.BeforeBalanceAmount = torecord.AfterBalanceAmount;
  239. // record.BeforeTotalAmount = torecord.AfterTotalAmount;
  240. // record.BeforeFreezeAmount = torecord.AfterFreezeAmount;
  241. // record.AfterBalanceAmount = record.BeforeBalanceAmount + record.ChangeAmount;
  242. // record.AfterTotalAmount = record.BeforeTotalAmount + record.ChangeAmount;
  243. // record.AfterFreezeAmount = record.BeforeFreezeAmount + record.ChangeAmount;
  244. // decimal AfterBalanceAmount = record.AfterBalanceAmount;
  245. // decimal AfterTotalAmount = record.AfterTotalAmount;
  246. // decimal AfterFreezeAmount = record.AfterFreezeAmount;
  247. // var records = db.UserAccountRecord.Where(m => m.Id > torecord.Id && m.UserId == ToUserId).OrderBy(m => m.Id).ToList();
  248. // foreach(var subrecord in records)
  249. // {
  250. // UserAccountRecord edit = db.UserAccountRecord.FirstOrDefault(m => m.Id == subrecord.Id);
  251. // if(edit != null)
  252. // {
  253. // if(edit.BeforeBalanceAmount < edit.AfterBalanceAmount)
  254. // {
  255. // edit.AfterBalanceAmount = AfterBalanceAmount + edit.ChangeAmount;
  256. // }
  257. // else
  258. // {
  259. // edit.AfterBalanceAmount = AfterBalanceAmount - edit.ChangeAmount;
  260. // }
  261. // if(edit.BeforeTotalAmount < edit.AfterTotalAmount)
  262. // {
  263. // edit.AfterTotalAmount = AfterTotalAmount + edit.ChangeAmount;
  264. // }
  265. // else
  266. // {
  267. // edit.AfterTotalAmount = AfterTotalAmount - edit.ChangeAmount;
  268. // }
  269. // if(edit.BeforeFreezeAmount < edit.AfterFreezeAmount)
  270. // {
  271. // edit.AfterFreezeAmount = AfterFreezeAmount + edit.ChangeAmount;
  272. // }
  273. // else
  274. // {
  275. // edit.AfterFreezeAmount = AfterFreezeAmount - edit.ChangeAmount;
  276. // }
  277. // edit.BeforeBalanceAmount = AfterBalanceAmount;
  278. // edit.BeforeTotalAmount = AfterTotalAmount;
  279. // edit.BeforeFreezeAmount = AfterFreezeAmount;
  280. // db.SaveChanges();
  281. // AfterBalanceAmount = edit.AfterBalanceAmount;
  282. // AfterTotalAmount = edit.AfterTotalAmount;
  283. // AfterFreezeAmount = edit.AfterFreezeAmount;
  284. // }
  285. // }
  286. // }
  287. function.WriteLog(sub, "已执行日志");
  288. }
  289. }
  290. }
  291. }
  292. db.Dispose();
  293. return "ok";
  294. }
  295. public string setlee()
  296. {
  297. WebCMSEntities db = new WebCMSEntities();
  298. List<string> poslist = new List<string>();
  299. poslist.Add("00003102722201179816714");
  300. foreach(string PosSn in poslist)
  301. {
  302. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == PosSn);
  303. if(pos != null)
  304. {
  305. string info = "{\"RecordId\":\"\",\"PosId\":\"" + pos.Id + "\",\"Fee\": \"0.6\",\"Kind\": \"2\",\"OpMan\": \"系统\"}";
  306. RedisDbconn.Instance.AddList("SetDepositPostQueue", info);
  307. }
  308. }
  309. db.Dispose();
  310. return "ok";
  311. }
  312. public string add()
  313. {
  314. DateTime now = DateTime.Now;
  315. WebCMSEntities db = new WebCMSEntities();
  316. List<string> poslist = new List<string>();
  317. foreach(string PosSn in poslist)
  318. {
  319. PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.PosSn == PosSn);
  320. if(pos != null)
  321. {
  322. PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
  323. if (merchant != null)
  324. {
  325. DateTime TransferTime = pos.TransferTime == null ? DateTime.Now : pos.TransferTime.Value;
  326. //广电卡批量补盟主奖励和运营中心奖励
  327. if (pos.BrandId == 14 && pos.BuyUserId > 0 && pos.ActivationState == 1 && TransferTime < pos.BindingTime && pos.BindingTime > now.AddDays(-30) && pos.CardType > 0 && pos.CardType < 100)
  328. {
  329. if(pos.LeaderUserId > 0 && db.Leaders.Any(m => m.Id == pos.LeaderUserId && m.ExpiredDate > now))
  330. {
  331. RedisDbconn.Instance.AddList("LeaderPrizeQueue", pos.Id);
  332. }
  333. RedisDbconn.Instance.AddList("OperatePrizeQueue", pos.Id);
  334. }
  335. //0押金返30的奖励批量补录
  336. // if(pos.ActivationState == 1 && (string.IsNullOrEmpty(pos.SeoKeyword) || pos.SeoKeyword == "0") && pos.CreditTrade >= 5000 && pos.CardType < 100)
  337. // {
  338. // Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
  339. // if (user != null)
  340. // {
  341. // int GetUserId = user.Id;
  342. // string ParentNav = user.ParentNav;
  343. // int TopUserId = 0;
  344. // if (!string.IsNullOrEmpty(ParentNav))
  345. // {
  346. // TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
  347. // }
  348. // if(pos.BindingTime.Value.AddDays(30) >= pos.ActivationTime)
  349. // {
  350. // StatService.Instance.doActiveReward(db, merchant, pos, GetUserId, ParentNav, TopUserId, 30);
  351. // if(pos.LeaderUserId > 0 && db.Leaders.Any(m => m.Id == pos.LeaderUserId && m.ExpiredDate > now))
  352. // {
  353. // RedisDbconn.Instance.AddList("LeaderPrizeQueue", pos.Id);
  354. // }
  355. // RedisDbconn.Instance.AddList("OperatePrizeQueue", pos.Id);
  356. // }
  357. // }
  358. // }
  359. }
  360. //批量补服务费奖励
  361. // if(decimal.Parse(function.CheckNum(pos.SeoKeyword)) > 0 && pos.CardType < 100)
  362. // {
  363. // StatService.Instance.PreActPrize(db, pos, merchant, pos.SeoKeyword);
  364. // }
  365. }
  366. }
  367. db.Dispose();
  368. return "ok";
  369. }
  370. //金控自备机,补商户信息
  371. public string jkmerinfo(string sn)
  372. {
  373. SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
  374. PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
  375. var Bind = spdb.BindRecord.FirstOrDefault(m => m.MerSnNo == sn && m.Field1 == "解绑");
  376. if (Bind != null)
  377. {
  378. PxcModels.MachineForSnNo posFor = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == Bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
  379. PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
  380. if (pos != null)
  381. {
  382. pos.BindingState = 1;
  383. pos.BindingTime = Bind.CreateTime;
  384. pos.Status = 0;
  385. PxcModels.MachineForMerNo merFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == Bind.MerNo);
  386. if (merFor == null)
  387. {
  388. merFor = db.MachineForMerNo.Add(new PxcModels.MachineForMerNo()
  389. {
  390. MerNo = Bind.MerNo,
  391. SnId = pos.Id,
  392. }).Entity;
  393. }
  394. else
  395. {
  396. merFor.SnId = pos.Id;
  397. }
  398. db.SaveChanges();
  399. PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
  400. int TopUserId = 0;
  401. if (!string.IsNullOrEmpty(user.ParentNav))
  402. {
  403. TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
  404. }
  405. int BrandId = pos.BrandId;
  406. PxcModels.TradeRecord trade = db.TradeRecord.FirstOrDefault(m => m.SnNo == sn) ?? new PxcModels.TradeRecord();
  407. PxcModels.PosMerchantInfo add = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == Bind.MerNo);
  408. if (add == null)
  409. {
  410. if(trade.MerchantId > 0)
  411. {
  412. add = db.PosMerchantInfo.Add(new PxcModels.PosMerchantInfo()
  413. {
  414. CreateDate = Bind.CreateTime,
  415. KqMerNo = Bind.MerNo,
  416. MerchantNo = Bind.MerNo.Length > 16 ? Bind.MerNo.Substring(0, 16) : Bind.MerNo,
  417. Id = trade.MerchantId,
  418. }).Entity;
  419. db.SaveChanges();
  420. }
  421. else
  422. {
  423. add = db.PosMerchantInfo.Add(new PxcModels.PosMerchantInfo()
  424. {
  425. CreateDate = Bind.CreateTime,
  426. KqMerNo = Bind.MerNo,
  427. MerchantNo = Bind.MerNo.Length > 16 ? Bind.MerNo.Substring(0, 16) : Bind.MerNo,
  428. }).Entity;
  429. db.SaveChanges();
  430. }
  431. }
  432. add.UpdateDate = Bind.UpdateTime;
  433. add.TopUserId = TopUserId;
  434. add.BrandId = BrandId;
  435. add.SnStoreId = pos.StoreId;
  436. add.SnType = pos.PosSnType;
  437. add.UserId = pos.UserId;
  438. add.MerStatus = 1;
  439. add.KqSnNo = Bind.MerSnNo;
  440. add.MerIdcardNo = function.CheckNull(Bind.SeoKeyword).ToUpper();
  441. add.MerRealName = Bind.MerName;
  442. add.MerchantMobile = Bind.MerNewSnNo;
  443. add.MerchantName = Bind.MerName;
  444. pos.BindMerchantId = add.Id;
  445. pos.LastMerchantId = add.Id;
  446. db.SaveChanges();
  447. RedisDbconn.Instance.AddList("DepositReturnStatQueue", add.Id.ToString());
  448. PxcModels.Users buser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();
  449. if(buser.BusinessFlag == 1)
  450. {
  451. bool checkMer = db.BusinessPartnerMerchant.Any(m => m.MerchantId == add.Id);
  452. if(!checkMer)
  453. {
  454. PxcModels.BusinessPartnerPos bpos = db.BusinessPartnerPos.FirstOrDefault(m => m.PosId == pos.Id) ?? new PxcModels.BusinessPartnerPos();
  455. db.BusinessPartnerMerchant.Add(new PxcModels.BusinessPartnerMerchant()
  456. {
  457. CreateDate = DateTime.Now,
  458. MerNo = Bind.MerNo,
  459. MerchantId = add.Id,
  460. PartnerId = bpos.PartnerId,
  461. UserId = pos.BuyUserId,
  462. });
  463. db.SaveChanges();
  464. }
  465. }
  466. }
  467. }
  468. spdb.Dispose();
  469. db.Dispose();
  470. return "ok";
  471. }
  472. public string sycnTrade(int Id)
  473. {
  474. PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
  475. PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == Id);
  476. if(merchant != null)
  477. {
  478. DepositReturnStatService.Instance.DoSomething(db, merchant);
  479. }
  480. return "ok";
  481. }
  482. public string addprize()
  483. {
  484. List<int> ids = new List<int>();
  485. foreach(int id in ids)
  486. {
  487. RedisDbconn.Instance.AddList("LeaderPrizeQueue", id);
  488. }
  489. return "ok";
  490. }
  491. public string addprize2()
  492. {
  493. List<int> ids = new List<int>();
  494. foreach(int id in ids)
  495. {
  496. RedisDbconn.Instance.AddList("OperatePrizeQueue", id);
  497. }
  498. return "ok";
  499. }
  500. public string addprize3()
  501. {
  502. List<int> ids = new List<int>();
  503. foreach(int id in ids)
  504. {
  505. LeaderApplyCouponsHelper.Instance.addprize(id);
  506. }
  507. return "ok";
  508. }
  509. }
  510. }