/******************************************************************************** ** auth: DBS ** date: 2018/11/13 19:16:00 ** desc: 尚未编写描述 ** Ver.: V1.0.0 *********************************************************************************/ using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using HH.Redis.ReisModel; using HH.WMS.Entitys; using HH.WMS.Entitys.Sys; using Newtonsoft.Json; using HH.WMS.Entitys.Algorithm; using HH.WMS.BLL.Basic; using HH.WMS.Entitys.Basic; using HH.WMS.Common; using HH.WMS.BLL; using System.Configuration; using System.Net.Http; namespace HH.WMS.WebApi.Areas.Common.Controllers { public class BaseController : ApiController { #region 获取所有仓库 /// /// 获取所有仓库 /// /// /// [Hanhe(lt)] created 2018/11/2 public List GetStock() { if (SysCache.Stock == null || SysCache.Stock.Count == 0) SysCache.Stock = BLLCreator.Create().GetStockList(); ; return SysCache.Stock; } public string GetStockName(string code) { if (SysCache.Stock == null || SysCache.Stock.Count == 0) SysCache.Stock = BLLCreator.Create().GetStockList(); ; if (SysCache.Stock.Count > 0) { TN_AB_STOCKEntity entity = SysCache.Stock.Find(x => x.CN_S_STOCK_CODE.Equals(code)); if (entity != null) return entity.CN_S_STOCK_NAME; } return ""; } #endregion #region 获取所有库区 /// /// 获取所有库区 /// /// /// [Hanhe(lt)] created 2018/11/2 public List GetStockArea() { if (SysCache.Area == null || SysCache.Area.Count == 0) SysCache.Area = BLLCreator.Create().GetArea(1); return SysCache.Area; } #endregion #region 获取所有库区 /// /// 获取所有库区 /// /// /// [Hanhe(lt)] created 2018/11/2 public List GetStockAreas() { if (SysCache.Area == null || SysCache.Area.Count == 0) SysCache.Area = BLLCreator.Create().GetStockAreas(); return SysCache.Area; } #endregion #region 获取autobom中的编码 /// /// 获取autobom中的编码 /// /// tokenId /// 编码名称 /// /// [Hanhe(lt)] created 2018/11/2 public OperateResult GetCode(RedisUserEntity redisMsgEntity, string ruleName) { //RedisMsgEntity redisMsgEntity = HH.Redis.RedisHelper.GetUserInfo(tokenId.Replace(' ', '+'), false); var postData = new { appCode = ConfigurationManager.AppSettings["appCode"],//"AutoWMS", ruleName = ruleName, orgId = redisMsgEntity.CN_S_ORGCODE, orgFlag = redisMsgEntity.CN_S_ORGFLAG }; string no = WebApiManager.HttpAutoBom_Post("Api/BillRule/GenBillNo", JsonConvert.SerializeObject(postData)); if (string.IsNullOrEmpty(no) || no.Equals("null")) return OperateResult.Error("未获取到" + ruleName + "号!"); return OperateResult.Succeed("", no); } #endregion #region 获取策略值 /// /// 获取策略值 /// /// 仓库编号 /// 策略编码 /// /// [Hanhe(DBS)] created 2018-11-27 public string GetStrategy(string stockCode, string code) { if (SysCache.SysStrategy == null || !SysCache.SysStrategy.Any()) { SysCache.SysStrategy = BLLCreator.Create>().GetList(); } TN_WM_B_STRATEGY_VALUEEntity model = SysCache.SysStrategy.Find(x => x.CN_S_STOCK_CODE.Equals(stockCode) && x.CN_S_CODE.Equals(code)); if (model == null) return ""; else return model.CN_S_VALUE; } #endregion #region 验证TokenId是否合法 /// /// 验证TokenId是否合法 /// /// /// public OperateResult Validate(string tokenId) { return OperateResult.Succeed(); } #endregion #region 根据TokenID获取用户信息 /// /// 根据TokenID获取用户信息 /// /// /// /// /// [Hanhe(DBS)] created 2018-10-27 public OperateResult GetTokenInfo(string tokenId, bool isProving = false) { if (string.IsNullOrEmpty(tokenId)) { return OperateResult.Error("tokenId不能为空!", null); } RedisMsgEntity redisMsgEntity = HH.Redis.RedisHelper.GetUserInfo(tokenId.Replace(' ', '+'), isProving); if (redisMsgEntity.Success) { return OperateResult.Succeed("", JsonConvert.SerializeObject(redisMsgEntity.userInfo)); } else { return OperateResult.Error(redisMsgEntity.Msg, null); } } #endregion #region 验证tokenId并带出用户实体 /// /// 验证tokenId并带出用户实体 /// /// /// /// [Hanhe(zh)] created 2018-12-10 public OperateResult ValidateToken(Func validateToken) { try { string tokenId = GetHeader("tokenId");// Request.Headers.["tokenId"]; //Requests.QueryString["tokenId"]; if (string.IsNullOrEmpty(tokenId)) tokenId = Requests.QueryString["tokenId"]; var tokenInfo = GetTokenInfo(tokenId); if (!tokenInfo.Success) return tokenInfo; return validateToken(tokenInfo.GetData()); } catch (Exception ex) { return OperateResult.Error(ex.Message); } } /// /// 验证tokenId并带出用户实体 /// /// /// public string ValidateToken(Func validateToken) { try { string tokenId = GetHeader("tokenId"); //Requests.QueryString["tokenId"]; if (string.IsNullOrEmpty(tokenId)) tokenId = Requests.QueryString["tokenId"]; var tokenInfo = GetTokenInfo(tokenId); if (!tokenInfo.Success) return JsonConvert.SerializeObject(tokenInfo); return validateToken(tokenInfo.GetData()); } catch (Exception ex) { return JsonConvert.SerializeObject(OperateResult.Error(ex.Message)); } } /// /// tokenId传入(一般post时使用) /// /// /// public OperateResult ValidateToken(string tokenId, Func validateToken) { try { var tokenInfo = GetTokenInfo(tokenId); if (!tokenInfo.Success) return tokenInfo; return validateToken(tokenInfo.GetData()); } catch (Exception ex) { return OperateResult.Error(ex.Message); } } /// /// tokenId传入(一般post时使用) /// /// /// public string ValidateToken(string tokenId, Func validateToken) { try { var tokenInfo = GetTokenInfo(tokenId); if (!tokenInfo.Success) return JsonConvert.SerializeObject(tokenInfo); return validateToken(tokenInfo.GetData()); } catch (Exception ex) { return JsonConvert.SerializeObject(OperateResult.Error(ex.Message)); } } #endregion #region webapi request转换成传统request /// /// webapi request转换成传统request /// /// [Hanhe(zh)] created 2018-12-10 private HttpRequestBase _request; protected HttpRequestBase Requests { get { if (this._request == null) { this._request = GetRequest(); } return this._request; } } protected HttpRequestBase GetRequest() { HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"]; HttpRequestBase request = context.Request; return request; } #endregion /// /// 依据键获取请求头中值数据 /// /// /// /// public string GetHeader(string key) { IEnumerable keys = null; if (!Request.Headers.TryGetValues(key, out keys)) return null; return keys.First(); } } }