LockConvert.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /* ==============================================================================
  2. * 功能描述:加锁,解锁请求解析
  3. * 创 建 者:Garrett
  4. * 创建日期:2018/8/13 10:08:50
  5. * ==============================================================================*/
  6. using Newtonsoft.Json.Linq;
  7. using SAGA.DotNetUtils.Extend;
  8. using SAGA.MBI.Common;
  9. using SAGA.MBI.DataArrange;
  10. using SAGA.MBI.Model;
  11. using SAGA.MBI.RequestData;
  12. using SAGA.MBI.Tools;
  13. namespace SAGA.MBI.JsonConvert
  14. {
  15. /// <summary>
  16. /// LockRequest
  17. /// </summary>
  18. public class LockConvert
  19. {
  20. /// <summary>
  21. /// 获取楼层的加锁状态
  22. /// </summary>
  23. /// <param name="floorid">楼层id</param>
  24. /// <param name="msg">提示信息</param>
  25. /// <returns></returns>
  26. public static MFloorLock QueryFloorLockState(string floorid)
  27. {
  28. MFloorLock floorLock = new MFloorLock();
  29. MFloorLockState state = MFloorLockState.Unknow;
  30. string json = LockRequest.QueryFloorLockState(floorid);
  31. if (json.IsSuccessRequest())
  32. {
  33. JObject jobject = JObject.Parse(json);
  34. string name = jobject.GetValueEx("name");
  35. string userPhone = jobject.GetValueEx("phoneNum");
  36. if (name.IsNullOrEmptyExt() && userPhone.IsNullOrEmptyExt())
  37. state = MFloorLockState.ULock;
  38. else
  39. {
  40. if (userPhone == MBIControl.ManageInfo.Phone_Num)
  41. state = MFloorLockState.LockBySelf;
  42. else
  43. {
  44. state = MFloorLockState.LockByOther;
  45. }
  46. floorLock.UserName = name;
  47. floorLock.UserPhone = userPhone;
  48. }
  49. }
  50. floorLock.LockState = state;
  51. return floorLock;
  52. }
  53. /// <summary>
  54. /// 申请锁
  55. /// </summary>
  56. /// <param name="floorid">楼层id</param>
  57. /// <param name="msg">提示信息</param>
  58. /// <returns></returns>
  59. public static bool LockFloor(string floorid, ref string msg)
  60. {
  61. //当前用户的手机号
  62. bool result = false;
  63. JObject lockJObject = GetLockLogJObject(floorid);
  64. string json = LockRequest.LockFloor(floorid, MBIControl.ManageInfo.Phone_Num, lockJObject);
  65. if (json.IsSuccessRequest(ref msg))
  66. {
  67. result = true;
  68. }
  69. else
  70. {
  71. JObject jobject = JObject.Parse(json);
  72. string name = jobject.GetValueEx("name");
  73. string userPhone = jobject.GetValueEx("phoneNum");
  74. if (!name.IsNullOrEmptyExt() && !userPhone.IsNullOrEmptyExt())
  75. {
  76. if (userPhone == MBIControl.ManageInfo.Phone_Num)
  77. result = true;
  78. else
  79. {
  80. msg = $"申请锁失败:\r\n本层已被用户 {name} 锁定,手机号为 {userPhone}";
  81. }
  82. }
  83. }
  84. return result;
  85. }
  86. /// <summary>
  87. /// 解锁
  88. /// </summary>
  89. /// <param name="floorid"></param>
  90. /// <param name="msg"></param>
  91. /// <returns></returns>
  92. public static bool UnLockFloor(string floorid, ref string msg)
  93. {
  94. //当前用户的手机号
  95. bool result = false;
  96. JObject lockJObject = GetLockLogJObject(floorid);
  97. string json = LockRequest.UnLockFloor(floorid, MBIControl.ManageInfo.Phone_Num, lockJObject);
  98. if (json.IsSuccessRequest(ref msg))
  99. {
  100. result = true;
  101. }
  102. else
  103. {
  104. result = false;
  105. JObject jobject = JObject.Parse(json);
  106. string name = jobject.GetValueEx("name");
  107. string userPhone = jobject.GetValueEx("phoneNum");
  108. if (!name.IsNullOrEmptyExt() && !userPhone.IsNullOrEmptyExt())
  109. msg = $"解锁失败!\r\n本层加锁用户为 {name} ,手机号为 {userPhone}";
  110. else
  111. {
  112. msg = jobject.GetValueEx("ResultMsg");
  113. }
  114. }
  115. return result;
  116. }
  117. /// <summary>
  118. /// 添加加锁,解锁日志
  119. /// </summary>
  120. /// <param name="floorid">楼层id</param>
  121. /// <param name="userPhone">用户手机号</param>
  122. /// <param name="userName">用户名称</param>
  123. /// <param name="islock">是否为加锁</param>
  124. /// <returns></returns>
  125. private static JObject GetLockLogJObject(string floorid)
  126. {
  127. JObject jObject = new JObject();
  128. TreeNodeItem floorItem = DalModeFileManange.GetFloorTreeById(floorid);
  129. if (floorItem != null)
  130. {
  131. var floor = floorItem.Item as MFloor;
  132. jObject.Add("floorName", floor?.ToString());
  133. var buildingItem = floorItem.Parent;
  134. var building = buildingItem.Item as MBuilding;
  135. jObject.Add("buildingId", building?.Id);
  136. jObject.Add("buildingName", building?.ToString());
  137. var project = MBIControl.ProjectCur;
  138. jObject.Add("projectId", project?.Id);
  139. jObject.Add("projectName", project?.ToString());
  140. }
  141. return jObject;
  142. }
  143. }
  144. }