PosMachinesController.cs 36 KB

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