PosMachinesController.cs 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  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.Main1;
  11. using LitJson;
  12. using Library;
  13. using MySystem.Service.Main;
  14. namespace MySystem.Areas.Api.Controllers.v1
  15. {
  16. [Area("Api")]
  17. [Route("Api/v1/[controller]/[action]")]
  18. public class PosMachinesController : BaseController
  19. {
  20. public PosMachinesController(IHttpContextAccessor accessor) : base(accessor)
  21. {
  22. }
  23. #region 商户-二维码关联音箱
  24. // [Authorize]
  25. public JsonResult List(string value)
  26. {
  27. value = DesDecrypt(value);
  28. value = value.Replace("null", "\"\"");
  29. JsonData data = JsonMapper.ToObject(value);
  30. List<Dictionary<string, object>> dataList = ListDo(value);
  31. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  32. }
  33. public List<Dictionary<string, object>> ListDo(string value)
  34. {
  35. JsonData data = JsonMapper.ToObject(value);
  36. int BindMerchantId = int.Parse(function.CheckInt(data["BindMerchantId"].ToString())); //绑定商户
  37. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  38. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  39. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  40. Models.Main.MerchantInfo merchant = MerchantInfoDbconn.Instance.Get(BindMerchantId) ?? new Models.Main.MerchantInfo();
  41. List<Dictionary<string, object>> query = PosMachinesService.List(new List<RelationData>(), " and BindMerchantId=" + BindMerchantId, PageNum, PageSize);
  42. foreach (var subdata in query)
  43. {
  44. Dictionary<string, object> curData = new Dictionary<string, object>();
  45. curData.Add("BindingTime", subdata["BindingTime"].ToString()); //绑定时间
  46. curData.Add("PosSn", subdata["PosSn"].ToString()); //SN编号
  47. curData.Add("Id", subdata["Id"].ToString()); //Id
  48. curData.Add("MerchantName", merchant.Name); //商户名称
  49. string CheckKey = "_" + subdata["Id"].ToString();
  50. int BindCount = MachineForQrCodeDbconn.Instance.GetList(BindMerchantId).Count(m => m.DataId.EndsWith(CheckKey));
  51. curData.Add("BindCount", BindCount); //关联数量
  52. dataList.Add(curData);
  53. }
  54. return dataList;
  55. }
  56. #endregion
  57. #region 商户-已绑音箱
  58. // [Authorize]
  59. public JsonResult BindedMachines(string value)
  60. {
  61. value = DesDecrypt(value);
  62. value = value.Replace("null", "\"\"");
  63. JsonData data = JsonMapper.ToObject(value);
  64. List<Dictionary<string, object>> dataList = BindedMachinesDo(value);
  65. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  66. }
  67. public List<Dictionary<string, object>> BindedMachinesDo(string value)
  68. {
  69. JsonData data = JsonMapper.ToObject(value);
  70. int BindMerchantId = int.Parse(function.CheckInt(data["BindMerchantId"].ToString())); //绑定商户
  71. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  72. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  73. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  74. Models.Main.MerchantInfo merchant = MerchantInfoDbconn.Instance.Get(BindMerchantId) ?? new Models.Main.MerchantInfo();
  75. List<int> query = PosMachinesDbconn.Instance.GetList(BindMerchantId, PageNum, PageSize);
  76. foreach (int MachineId in query)
  77. {
  78. PosMachines subdata = PosMachinesDbconn.Instance.Get(MachineId) ?? new PosMachines();
  79. Dictionary<string, object> curData = new Dictionary<string, object>();
  80. curData.Add("BindingTime", subdata.BindingTime == null ? "" : subdata.BindingTime.Value.ToString("yyyy-MM-dd")); //绑定时间
  81. curData.Add("PosSn", subdata.PosSn); //SN编号
  82. curData.Add("Id", subdata.Id); //Id
  83. curData.Add("MachineNo", subdata.Detail);
  84. curData.Add("MerchantName", merchant.Name); //商户名称
  85. string CheckKey = "_" + subdata.Id;
  86. List<MachineForQrCode> QrCodes = MachineForQrCodeDbconn.Instance.GetList(BindMerchantId);
  87. QrCodes = QrCodes.Where(m => m.DataId.EndsWith(CheckKey)).ToList();
  88. curData.Add("BindCount", QrCodes.Count); //关联数量
  89. List<Dictionary<string, object>> QrCodeList = new List<Dictionary<string, object>>();
  90. foreach (MachineForQrCode QrCode in QrCodes)
  91. {
  92. Dictionary<string, object> item = new Dictionary<string, object>();
  93. string DataId = QrCode.DataId;
  94. if (DataId.Contains("_"))
  95. {
  96. DataId = DataId.Split('_')[0];
  97. }
  98. item.Add("Id", DataId);
  99. item.Add("Type", 1);
  100. item.Add("BindDate", QrCode.BindDate == null ? "" : QrCode.BindDate.Value.ToString("yyyy-MM-dd"));
  101. item.Add("Sn", QrCode.SnNo);
  102. item.Add("MachineNo", QrCode.MachineSnNo);
  103. QrCodeList.Add(item);
  104. }
  105. curData.Add("QrCodeList", QrCodeList); //二维码列表
  106. dataList.Add(curData);
  107. }
  108. return dataList;
  109. }
  110. #endregion
  111. #region 商户-替换音箱码
  112. // [Authorize]
  113. public JsonResult ReplaceMachines(string value)
  114. {
  115. value = DesDecrypt(value);
  116. value = value.Replace("null", "\"\"");
  117. JsonData data = JsonMapper.ToObject(value);
  118. List<Dictionary<string, object>> dataList = ReplaceMachinesDo(value);
  119. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  120. }
  121. public List<Dictionary<string, object>> ReplaceMachinesDo(string value)
  122. {
  123. JsonData data = JsonMapper.ToObject(value);
  124. int BindMerchantId = int.Parse(function.CheckInt(data["BindMerchantId"].ToString())); //绑定商户
  125. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  126. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  127. string CheckKey = "_" + BindMerchantId;
  128. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  129. List<Dictionary<string, object>> query = MerchantQrCodeService.List(new List<RelationData>(), " and MerchantId=" + BindMerchantId, 1, 1000);
  130. foreach (Dictionary<string, object> subdata in query)
  131. {
  132. Dictionary<string, object> curData = new Dictionary<string, object>();
  133. curData.Add("BindingTime", subdata["UpdateDate"].ToString()); //绑定时间
  134. curData.Add("PosSn", subdata["SnNo"].ToString()); //SN编号
  135. curData.Add("Id", subdata["Id"].ToString()); //Id
  136. dataList.Add(curData);
  137. }
  138. return dataList;
  139. }
  140. #endregion
  141. #region 商户-确认关联音箱
  142. // [Authorize]
  143. public JsonResult Add(string value)
  144. {
  145. value = DesDecrypt(value);
  146. value = value.Replace("null", "\"\"");
  147. JsonData data = JsonMapper.ToObject(value);
  148. AppResultJson result = AddDo(value);
  149. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  150. }
  151. public AppResultJson AddDo(string value)
  152. {
  153. JsonData data = JsonMapper.ToObject(value);
  154. int BindMerchantId = int.Parse(function.CheckInt(data["BindMerchantId"].ToString())); //绑定商户
  155. // string QrCodeId = data["QrCodeId"].ToString(); //二维码Id
  156. int QrCodeId = int.Parse(function.CheckInt(data["QrCodeId"].ToString())); //二维码Id
  157. string MachineId = data["MachineId"].ToString(); //音箱Id
  158. Dictionary<string, object> Obj = new Dictionary<string, object>();
  159. MerchantQrCode qrcode = MerchantQrCodeService.Query(QrCodeId);
  160. PosMachines machine = PosMachinesDbconn.Instance.Get(MachineId) ?? new PosMachines();
  161. MachineForQrCode query = new MachineForQrCode()
  162. {
  163. DataId = QrCodeId + "_" + MachineId,
  164. MerchantId = BindMerchantId,
  165. BindDate = DateTime.Now,
  166. SnNo = qrcode.SnNo,
  167. MachineSnNo = machine.PosSn,
  168. };
  169. machine.BindingState = 1;
  170. qrcode.MachineId = int.Parse(MachineId);
  171. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  172. }
  173. #endregion
  174. #region 商户-绑定列表
  175. // [Authorize]
  176. public JsonResult BindList(string value)
  177. {
  178. value = DesDecrypt(value);
  179. value = value.Replace("null", "\"\"");
  180. JsonData data = JsonMapper.ToObject(value);
  181. List<Dictionary<string, object>> dataList = BindListDo(value);
  182. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  183. }
  184. public List<Dictionary<string, object>> BindListDo(string value)
  185. {
  186. JsonData data = JsonMapper.ToObject(value);
  187. int BindMerchantId = int.Parse(function.CheckInt(data["BindMerchantId"].ToString())); //绑定商户
  188. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  189. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  190. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  191. string condition = "";
  192. if (!string.IsNullOrEmpty(data["BindMerchantId"].ToString()))
  193. {
  194. condition += " and BindMerchantId=" + BindMerchantId;
  195. }
  196. List<Dictionary<string, object>> query = PosMachinesService.List(new List<RelationData>(), condition, PageNum, PageSize);
  197. foreach (var subdata in query)
  198. {
  199. Dictionary<string, object> curData = new Dictionary<string, object>();
  200. curData.Add("BindingTime", subdata["BindingTime"].ToString()); //绑定时间
  201. curData.Add("PosSn", subdata["PosSn"].ToString()); //SN编号
  202. curData.Add("MerchantName", ""); //商户名称
  203. curData.Add("MerchantLogo", ""); //商户Logo
  204. dataList.Add(curData);
  205. }
  206. return dataList;
  207. }
  208. #endregion
  209. #region 商户-绑定机具
  210. // [Authorize]
  211. public JsonResult Bind(string value)
  212. {
  213. value = DesDecrypt(value);
  214. value = value.Replace("null", "\"\"");
  215. JsonData data = JsonMapper.ToObject(value);
  216. AppResultJson result = BindDo(value);
  217. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  218. }
  219. public AppResultJson BindDo(string value)
  220. {
  221. JsonData data = JsonMapper.ToObject(value);
  222. string PosSn = data["PosSn"].ToString(); //SN编号
  223. int BindMerchantId = int.Parse(function.CheckInt(data["BindMerchantId"].ToString())); //绑定商户
  224. Dictionary<string, object> Obj = new Dictionary<string, object>();
  225. PosMachines query = new PosMachines();
  226. query = new PosMachines()
  227. {
  228. CreateDate = DateTime.Now, //创建时间
  229. UpdateDate = DateTime.Now, //修改时间
  230. PosSn = PosSn, //SN编号
  231. BindMerchantId = BindMerchantId, //绑定商户
  232. };
  233. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  234. }
  235. #endregion
  236. #region 商户-已绑音箱解除关联
  237. // [Authorize]
  238. public JsonResult Remove(string value)
  239. {
  240. value = DesDecrypt(value);
  241. value = value.Replace("null", "\"\"");
  242. JsonData data = JsonMapper.ToObject(value);
  243. AppResultJson result = RemoveDo(value);
  244. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  245. }
  246. public AppResultJson RemoveDo(string value)
  247. {
  248. JsonData data = JsonMapper.ToObject(value);
  249. int BindMerchantId = int.Parse(function.CheckInt(data["BindMerchantId"].ToString())); //绑定商户
  250. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  251. Dictionary<string, object> Obj = new Dictionary<string, object>();
  252. string CheckKey = "_" + Id;
  253. var list = main1db.MachineForQrCode.Select(m => new { m.MerchantId, m.DataId }).Where(m => m.MerchantId == BindMerchantId && m.DataId.EndsWith(CheckKey)).ToList();
  254. foreach (var sub in list)
  255. {
  256. MachineForQrCode edit = main1db.MachineForQrCode.FirstOrDefault(m => m.DataId == sub.DataId);
  257. if (edit != null)
  258. {
  259. main1db.MachineForQrCode.Remove(edit);
  260. int MachineId = int.Parse(function.CheckInt(edit.DataId.Split('_')[1]));
  261. PosMachines machine = main1db.PosMachines.FirstOrDefault(m => m.BindMerchantId == MachineId);
  262. if (machine != null)
  263. {
  264. machine.BindMerchantId = 0;
  265. }
  266. }
  267. }
  268. main1db.SaveChanges();
  269. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  270. }
  271. #endregion
  272. #region 首页-客小爽产品-机具管理-已绑定机具列表
  273. // [Authorize]
  274. public JsonResult MyMachinesForBind(string value)
  275. {
  276. value = DesDecrypt(value);
  277. value = value.Replace("null", "\"\"");
  278. JsonData data = JsonMapper.ToObject(value);
  279. Dictionary<string, object> Other = new Dictionary<string, object>();
  280. List<Dictionary<string, object>> dataList = MyMachinesForBindDo(value, out Other);
  281. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  282. }
  283. public List<Dictionary<string, object>> MyMachinesForBindDo(string value, out Dictionary<string, object> Other)
  284. {
  285. JsonData data = JsonMapper.ToObject(value);
  286. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //所属创客
  287. int BrandId = int.Parse(function.CheckInt(data["BrandId"].ToString())); //产品类型
  288. string SnNo = data["SnNo"].ToString(); //SN号
  289. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  290. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  291. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  292. if (!string.IsNullOrEmpty(SnNo))
  293. {
  294. PageSize = 100000;
  295. }
  296. IQueryable<PosMachinesTwo> query = main1db.PosMachinesTwo.Where(m => m.Status > -1 && m.BuyUserId == UserId && m.BindingState == 1 && m.OpId == 2);
  297. if (!string.IsNullOrEmpty(SnNo))
  298. {
  299. query = query.Where(m => m.PosSn == SnNo);
  300. }
  301. Other = new Dictionary<string, object>();
  302. if (PageNum == 1)
  303. {
  304. Other.Add("count", query.Count());
  305. query = query.Take(PageSize);
  306. }
  307. else
  308. {
  309. int skipNum = PageSize * (PageNum - 1);
  310. query = query.Skip(skipNum).Take(PageSize);
  311. }
  312. foreach (var subdata in query.ToList())
  313. {
  314. Dictionary<string, object> curData = new Dictionary<string, object>();
  315. int IsLeader = 0;//是否为大盟主机(0-否 1-是)
  316. if (subdata.LeaderUserId > 0)
  317. {
  318. IsLeader = 1;
  319. }
  320. else
  321. {
  322. IsLeader = 0;
  323. }
  324. curData.Add("ActivationState", subdata.ActivationState == 1 ? "已激活" : "未激活"); //激活状态
  325. curData.Add("PosSn", subdata.PosSn); //SN编号
  326. curData.Add("PosSnType", RelationClass.GetPosSnTypeInfo(subdata.PosSnType)); //机具类型
  327. curData.Add("Id", subdata.Id); //Id
  328. decimal Deposit = 299;
  329. if (BrandId == 6)
  330. {
  331. Deposit = 249;
  332. }
  333. if (!string.IsNullOrEmpty(subdata.PrizeParams))
  334. {
  335. Deposit = decimal.Parse(function.CheckNum(subdata.PrizeParams));
  336. }
  337. curData.Add("Deposit", Deposit);
  338. MerchantAddInfo merchant = main1db.MerchantAddInfo.FirstOrDefault(m => m.Id == subdata.BindMerchantId) ?? new MerchantAddInfo();
  339. curData.Add("BindedMerchant", merchant.CertMerchantName);
  340. curData.Add("IsLeader", IsLeader);
  341. dataList.Add(curData);
  342. }
  343. return dataList;
  344. }
  345. #endregion
  346. #region 首页-客小爽产品-机具管理-总机具列表
  347. // [Authorize]
  348. public JsonResult MyMachines(string value)
  349. {
  350. value = DesDecrypt(value);
  351. value = value.Replace("null", "\"\"");
  352. JsonData data = JsonMapper.ToObject(value);
  353. Dictionary<string, object> Other = new Dictionary<string, object>();
  354. List<Dictionary<string, object>> dataList = MyMachinesDo(value, out Other);
  355. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  356. }
  357. public List<Dictionary<string, object>> MyMachinesDo(string value, out Dictionary<string, object> Other)
  358. {
  359. JsonData data = JsonMapper.ToObject(value);
  360. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //所属创客
  361. int BrandId = int.Parse(function.CheckInt(data["BrandId"].ToString())); //产品类型
  362. string SnNo = data["SnNo"].ToString(); //SN号
  363. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  364. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  365. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  366. if (!string.IsNullOrEmpty(SnNo))
  367. {
  368. PageSize = 100000;
  369. }
  370. IQueryable<PosMachinesTwo> query = main1db.PosMachinesTwo.Where(m => m.Status > -1 && m.BuyUserId == UserId && m.BrandId == BrandId);
  371. if (!string.IsNullOrEmpty(SnNo))
  372. {
  373. query = query.Where(m => m.PosSn == SnNo);
  374. }
  375. Other = new Dictionary<string, object>();
  376. if (PageNum == 1)
  377. {
  378. Other.Add("count", query.Count());
  379. query = query.Take(PageSize);
  380. }
  381. else
  382. {
  383. int skipNum = PageSize * (PageNum - 1);
  384. query = query.Skip(skipNum).Take(PageSize);
  385. }
  386. foreach (var subdata in query.ToList())
  387. {
  388. Dictionary<string, object> curData = new Dictionary<string, object>();
  389. int IsLeader = 0;//是否为大盟主机(0-否 1-是)
  390. if (subdata.LeaderUserId > 0)
  391. {
  392. IsLeader = 1;
  393. }
  394. else
  395. {
  396. IsLeader = 0;
  397. }
  398. curData.Add("PosSn", subdata.PosSn); //SN编号
  399. curData.Add("PosSnType", RelationClass.GetPosSnTypeInfo(subdata.PosSnType)); //机具类型
  400. curData.Add("Id", subdata.Id); //Id
  401. curData.Add("CreateDate", subdata.TransferTime == null ? "" : subdata.TransferTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); //CreateDate
  402. StoreHouse store = StoreHouseDbconn.Instance.Get(subdata.StoreId) ?? new StoreHouse();
  403. curData.Add("FromStore", store.StoreName); //来自仓库
  404. decimal Deposit = 299;
  405. if (BrandId == 6)
  406. {
  407. Deposit = 249;
  408. }
  409. if (!string.IsNullOrEmpty(subdata.PrizeParams))
  410. {
  411. Deposit = decimal.Parse(function.CheckNum(subdata.PrizeParams));
  412. }
  413. curData.Add("Deposit", Deposit);
  414. curData.Add("IsLeader", IsLeader);
  415. dataList.Add(curData);
  416. }
  417. return dataList;
  418. }
  419. #endregion
  420. #region 首页-客小爽产品-机具管理-未绑定机具列表
  421. // [Authorize]
  422. public JsonResult MyMachinesForUnBind(string value)
  423. {
  424. value = DesDecrypt(value);
  425. value = value.Replace("null", "\"\"");
  426. JsonData data = JsonMapper.ToObject(value);
  427. Dictionary<string, object> Other = new Dictionary<string, object>();
  428. List<Dictionary<string, object>> dataList = MyMachinesForUnBindDo(value, out Other);
  429. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  430. }
  431. public List<Dictionary<string, object>> MyMachinesForUnBindDo(string value, out Dictionary<string, object> Other)
  432. {
  433. JsonData data = JsonMapper.ToObject(value);
  434. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //所属创客
  435. int BrandId = int.Parse(function.CheckInt(data["BrandId"].ToString())); //产品类型
  436. string SnNo = data["SnNo"].ToString(); //SN号
  437. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  438. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  439. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  440. if (!string.IsNullOrEmpty(SnNo))
  441. {
  442. PageSize = 100000;
  443. }
  444. IQueryable<PosMachinesTwo> query = main1db.PosMachinesTwo.Where(m => m.Status > -1 && m.BuyUserId == UserId && m.BindingState == 0);
  445. if (!string.IsNullOrEmpty(SnNo))
  446. {
  447. query = query.Where(m => m.PosSn == SnNo && m.PosSnType == 0);
  448. }
  449. Other = new Dictionary<string, object>();
  450. if (PageNum == 1)
  451. {
  452. Other.Add("count", query.Count());
  453. query = query.Take(PageSize);
  454. }
  455. else
  456. {
  457. int skipNum = PageSize * (PageNum - 1);
  458. query = query.Skip(skipNum).Take(PageSize);
  459. }
  460. foreach (var subdata in query.ToList())
  461. {
  462. Dictionary<string, object> curData = new Dictionary<string, object>();
  463. int IsLeader = 0;//是否为大盟主机(0-否 1-是)
  464. if (subdata.LeaderUserId > 0)
  465. {
  466. IsLeader = 1;
  467. }
  468. else
  469. {
  470. IsLeader = 0;
  471. }
  472. curData.Add("PosSn", subdata.PosSn); //SN编号
  473. curData.Add("PosSnType", RelationClass.GetPosSnTypeInfo(subdata.PosSnType)); //机具类型
  474. curData.Add("Id", subdata.Id); //Id
  475. if (subdata.RecycEndDate != null)
  476. {
  477. TimeSpan ts = subdata.RecycEndDate.Value - DateTime.Now;
  478. curData.Add("ActDays", ts.TotalDays.ToString("f0")); //活动剩余天数
  479. }
  480. else
  481. {
  482. curData.Add("ActDays", 0); //活动剩余天数
  483. }
  484. curData.Add("CreateDate", subdata.CreateDate.Value.ToString("yyyy-MM-dd")); //机具初始日期
  485. curData.Add("EndDate", subdata.RecycEndDate == null ? "" : subdata.RecycEndDate.Value.ToString("yyyy-MM-dd")); //截止日期
  486. decimal Deposit = 299;
  487. if (BrandId == 6)
  488. {
  489. Deposit = 249;
  490. }
  491. if (!string.IsNullOrEmpty(subdata.PrizeParams))
  492. {
  493. Deposit = decimal.Parse(function.CheckNum(subdata.PrizeParams));
  494. }
  495. curData.Add("Deposit", Deposit);
  496. curData.Add("IsLeader", IsLeader);
  497. dataList.Add(curData);
  498. }
  499. return dataList;
  500. }
  501. #endregion
  502. #region 首页-客小爽产品-机具管理-已绑定机具列表
  503. // [Authorize]
  504. public JsonResult MyMachinesForBind2(string value)
  505. {
  506. value = DesDecrypt(value);
  507. value = value.Replace("null", "\"\"");
  508. JsonData data = JsonMapper.ToObject(value);
  509. Dictionary<string, object> Other = new Dictionary<string, object>();
  510. List<Dictionary<string, object>> dataList = MyMachinesForBind2Do(value, out Other);
  511. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  512. }
  513. public List<Dictionary<string, object>> MyMachinesForBind2Do(string value, out Dictionary<string, object> Other)
  514. {
  515. JsonData data = JsonMapper.ToObject(value);
  516. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //所属创客
  517. int BrandId = int.Parse(function.CheckInt(data["BrandId"].ToString())); //产品类型
  518. string SnNo = data["SnNo"].ToString(); //SN号
  519. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  520. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  521. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  522. if (!string.IsNullOrEmpty(SnNo))
  523. {
  524. PageSize = 100000;
  525. }
  526. IQueryable<PosMachines> query = main1db.PosMachines.Where(m => m.Status > -1 && m.BuyUserId == UserId && m.BindingState == 1);
  527. if (!string.IsNullOrEmpty(SnNo))
  528. {
  529. query = query.Where(m => m.PosSn == SnNo);
  530. }
  531. Other = new Dictionary<string, object>();
  532. if (PageNum == 1)
  533. {
  534. Other.Add("count", query.Count());
  535. query = query.Take(PageSize);
  536. }
  537. else
  538. {
  539. int skipNum = PageSize * (PageNum - 1);
  540. query = query.Skip(skipNum).Take(PageSize);
  541. }
  542. foreach (var subdata in query.ToList())
  543. {
  544. Dictionary<string, object> curData = new Dictionary<string, object>();
  545. curData.Add("ActivationState", subdata.ActivationState == 1 ? "已激活" : "未激活"); //激活状态
  546. curData.Add("PosSn", subdata.PosSn); //SN编号
  547. curData.Add("PosSnType", RelationClass.GetPosSnTypeInfo(subdata.PosSnType)); //机具类型
  548. curData.Add("Id", subdata.Id); //Id
  549. decimal Deposit = 299;
  550. if (BrandId == 6)
  551. {
  552. Deposit = 249;
  553. }
  554. if (!string.IsNullOrEmpty(subdata.PrizeParams))
  555. {
  556. Deposit = decimal.Parse(function.CheckNum(subdata.PrizeParams));
  557. }
  558. curData.Add("Deposit", Deposit);
  559. MerchantAddInfo merchant = main1db.MerchantAddInfo.FirstOrDefault(m => m.Id == subdata.BindMerchantId) ?? new MerchantAddInfo();
  560. curData.Add("BindedMerchant", merchant.CertMerchantName);
  561. curData.Add("IsLeader", 0);
  562. dataList.Add(curData);
  563. }
  564. return dataList;
  565. }
  566. #endregion
  567. #region 首页-客小爽产品-机具管理-总机具列表
  568. // [Authorize]
  569. public JsonResult MyMachines2(string value)
  570. {
  571. value = DesDecrypt(value);
  572. value = value.Replace("null", "\"\"");
  573. JsonData data = JsonMapper.ToObject(value);
  574. Dictionary<string, object> Other = new Dictionary<string, object>();
  575. List<Dictionary<string, object>> dataList = MyMachines2Do(value, out Other);
  576. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  577. }
  578. public List<Dictionary<string, object>> MyMachines2Do(string value, out Dictionary<string, object> Other)
  579. {
  580. JsonData data = JsonMapper.ToObject(value);
  581. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //所属创客
  582. int BrandId = int.Parse(function.CheckInt(data["BrandId"].ToString())); //产品类型
  583. string SnNo = data["SnNo"].ToString(); //SN号
  584. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  585. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  586. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  587. if (!string.IsNullOrEmpty(SnNo))
  588. {
  589. PageSize = 100000;
  590. }
  591. IQueryable<PosMachines> query = main1db.PosMachines.Where(m => m.Status > -1 && m.BuyUserId == UserId && m.BrandId == BrandId);
  592. if (!string.IsNullOrEmpty(SnNo))
  593. {
  594. query = query.Where(m => m.PosSn == SnNo);
  595. }
  596. Other = new Dictionary<string, object>();
  597. if (PageNum == 1)
  598. {
  599. Other.Add("count", query.Count());
  600. query = query.Take(PageSize);
  601. }
  602. else
  603. {
  604. int skipNum = PageSize * (PageNum - 1);
  605. query = query.Skip(skipNum).Take(PageSize);
  606. }
  607. foreach (var subdata in query.ToList())
  608. {
  609. Dictionary<string, object> curData = new Dictionary<string, object>();
  610. int IsLeader = 0;//是否为大盟主机(0-否 1-是)
  611. curData.Add("PosSn", subdata.PosSn); //SN编号
  612. curData.Add("PosSnType", RelationClass.GetPosSnTypeInfo(subdata.PosSnType)); //机具类型
  613. curData.Add("Id", subdata.Id); //Id
  614. curData.Add("CreateDate", subdata.TransferTime == null ? "" : subdata.TransferTime.Value.ToString("yyyy-MM-dd HH:mm:ss")); //CreateDate
  615. StoreHouse store = StoreHouseDbconn.Instance.Get(subdata.StoreId) ?? new StoreHouse();
  616. curData.Add("FromStore", store.StoreName); //来自仓库
  617. decimal Deposit = 299;
  618. if (BrandId == 6)
  619. {
  620. Deposit = 249;
  621. }
  622. if (!string.IsNullOrEmpty(subdata.PrizeParams))
  623. {
  624. Deposit = decimal.Parse(function.CheckNum(subdata.PrizeParams));
  625. }
  626. curData.Add("Deposit", Deposit);
  627. curData.Add("IsLeader", IsLeader);
  628. dataList.Add(curData);
  629. }
  630. return dataList;
  631. }
  632. #endregion
  633. #region 首页-客小爽产品-机具管理-未绑定机具列表
  634. // [Authorize]
  635. public JsonResult MyMachinesForUnBind2(string value)
  636. {
  637. value = DesDecrypt(value);
  638. value = value.Replace("null", "\"\"");
  639. JsonData data = JsonMapper.ToObject(value);
  640. Dictionary<string, object> Other = new Dictionary<string, object>();
  641. List<Dictionary<string, object>> dataList = MyMachinesForUnBind2Do(value, out Other);
  642. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  643. }
  644. public List<Dictionary<string, object>> MyMachinesForUnBind2Do(string value, out Dictionary<string, object> Other)
  645. {
  646. JsonData data = JsonMapper.ToObject(value);
  647. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //所属创客
  648. int BrandId = int.Parse(function.CheckInt(data["BrandId"].ToString())); //产品类型
  649. string SnNo = data["SnNo"].ToString(); //SN号
  650. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  651. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  652. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  653. if (!string.IsNullOrEmpty(SnNo))
  654. {
  655. PageSize = 100000;
  656. }
  657. IQueryable<PosMachines> query = main1db.PosMachines.Where(m => m.Status > -1 && m.BuyUserId == UserId && m.BindingState == 0);
  658. if (!string.IsNullOrEmpty(SnNo))
  659. {
  660. query = query.Where(m => m.PosSn == SnNo && m.PosSnType == 0);
  661. }
  662. Other = new Dictionary<string, object>();
  663. if (PageNum == 1)
  664. {
  665. Other.Add("count", query.Count());
  666. query = query.Take(PageSize);
  667. }
  668. else
  669. {
  670. int skipNum = PageSize * (PageNum - 1);
  671. query = query.Skip(skipNum).Take(PageSize);
  672. }
  673. foreach (var subdata in query.ToList())
  674. {
  675. Dictionary<string, object> curData = new Dictionary<string, object>();
  676. int IsLeader = 0;
  677. curData.Add("PosSn", subdata.PosSn); //SN编号
  678. curData.Add("PosSnType", RelationClass.GetPosSnTypeInfo(subdata.PosSnType)); //机具类型
  679. curData.Add("Id", subdata.Id); //Id
  680. if (subdata.RecycEndDate != null)
  681. {
  682. TimeSpan ts = subdata.RecycEndDate.Value - DateTime.Now;
  683. curData.Add("ActDays", ts.TotalDays.ToString("f0")); //活动剩余天数
  684. }
  685. else
  686. {
  687. curData.Add("ActDays", 0); //活动剩余天数
  688. }
  689. curData.Add("CreateDate", subdata.CreateDate.Value.ToString("yyyy-MM-dd")); //机具初始日期
  690. curData.Add("EndDate", subdata.RecycEndDate == null ? "" : subdata.RecycEndDate.Value.ToString("yyyy-MM-dd")); //截止日期
  691. decimal Deposit = 299;
  692. if (BrandId == 6)
  693. {
  694. Deposit = 249;
  695. }
  696. if (!string.IsNullOrEmpty(subdata.PrizeParams))
  697. {
  698. Deposit = decimal.Parse(function.CheckNum(subdata.PrizeParams));
  699. }
  700. curData.Add("Deposit", Deposit);
  701. curData.Add("IsLeader", IsLeader);
  702. dataList.Add(curData);
  703. }
  704. return dataList;
  705. }
  706. #endregion
  707. #region 检查签名是否合法,合法返回1,不合法返回提示信息
  708. /// <summary>
  709. /// 检查签名是否合法,合法返回1,不合法返回提示信息
  710. /// </summary>
  711. /// <param name="value">请求的参数(json字符串)</param>
  712. /// <param name="signField">要签名的字段</param>
  713. /// <returns></returns>
  714. private string CheckSign(string value, string[] signField)
  715. {
  716. JsonData json = JsonMapper.ToObject(value);
  717. Dictionary<string, string> dic = new Dictionary<string, string>();
  718. for (int i = 0; i < signField.Length; i++)
  719. {
  720. dic.Add(signField[i], json[signField[i]].ToString());
  721. }
  722. string sign = json["sign"].ToString(); //客户端签名字符串
  723. return new Sign().sign(dic, sign);
  724. }
  725. #endregion
  726. }
  727. }