using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model.SearchModel.PRD; using Ropin.Inspection.Model.ViewModel.PRD; using Ropin.Inspection.Repository.Interface; using Ropin.Inspection.Repository.PRD.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ropin.Inspection.Repository.PRD { public class BoxApiRepository : RepositoryBase, IBoxApiRepository { public BoxApiRepository(InspectionDbContext dbContext) : base(dbContext) { } public Task GetUserPriv(string openId, string deviceCode) { PrivModel privModel = new PrivModel(); var user = DbContext.TSYS_User.Where(u => u.C_WechatID == openId).FirstOrDefault(); var device = DbContext.TDEV_Device.Where(u => u.C_Code == deviceCode).FirstOrDefault(); if (user != null && device != null) { var userRole = DbContext.TSYS_UserRole.Where(u => u.C_UserCode == user.C_UserID).FirstOrDefault(); var storeOrg = DbContext.TPNT_StoreOrg.Where(u => u.C_OrgCode == user.C_OrgCode).FirstOrDefault(); var product = DbContext.TPRD_Product.Where(u => u.C_Code.Equals(device.C_ProductCode)).FirstOrDefault(); if (userRole != null || storeOrg != null || product != null) { if (storeOrg.C_StoreCode == product.C_StoreCode) { var priv = DbContext.TSYS_Priv.Where(u => u.C_Module == "SYS_PRIV_MODULE_003" && u.C_Type == "SYS_PRIV_TYPE_001").FirstOrDefault();//菜单权限 var rolePriv = DbContext.TSYS_RolePriv.Where(u => u.C_RoleCode.Equals(userRole.C_RoleCode) && u.C_PrivilegeCode == priv.C_Code).FirstOrDefault(); if (rolePriv != null) { var priv2 = DbContext.TSYS_Priv.Where(u => u.C_Module == "SYS_PRIV_MODULE_003" && u.C_Type == "SYS_PRIV_TYPE_002").FirstOrDefault();//操作权限 var rolePriv2 = DbContext.TSYS_RolePriv.Where(u => u.C_RoleCode.Equals(userRole.C_RoleCode) && u.C_PrivilegeCode == priv2.C_Code).FirstOrDefault(); if (rolePriv2 != null) { privModel.openId = openId; privModel.type = "SYS_PRIV_TYPE_002"; privModel.status = "true"; } else { privModel.openId = openId; privModel.type = "SYS_PRIV_TYPE_001"; privModel.status = "true"; } return Task.FromResult(privModel); } } } } privModel.type = ""; privModel.status = "false"; return Task.FromResult(privModel); } public Task AddDevData(TDEV_DevData devData) { DbContext.TDEV_DevData.Add(devData); var query = DbContext.SaveChanges(); if (query > 0) { return Task.FromResult(true); } return Task.FromResult(false); } public Task AddDevAlert(TDEV_DevAlert devAlert) { DbContext.TDEV_DevAlert.Add(devAlert); var query = DbContext.SaveChanges(); if (query > 0) { return Task.FromResult(true); } return Task.FromResult(false); } public Task GetDeviceInfo(string C_MachineCode) { var device = DbContext.TDEV_Device.Where(u => u.C_MachineCode == C_MachineCode).FirstOrDefault(); return Task.FromResult(device); } public Task> GetAllDeviceInfo() { var device = DbContext.TDEV_Device; return Task.FromResult(device.ToList()); } public Task> GetAllUser() { var users = DbContext.TSYS_User.ToList(); return Task.FromResult(users); } public Task GetDevAlertConfig(string C_ConfigCode) { var devAlertConfig = DbContext.TDEV_DevAlertConfig.Where(u => u.C_Code == C_ConfigCode).FirstOrDefault(); return Task.FromResult(devAlertConfig); } public Task> GetProductInfo(List models) { List productModels = new List(); List lstepc = models.Select(u => u.C_QRCode).ToList(); List lstProduct = DbContext.TPRD_Product.Where(u => lstepc.Contains(u.C_QRCode)).ToList(); if (lstProduct.Count>0) { foreach (var product in lstProduct) { var prodSKU = DbContext.TPRD_ProdSKU.Where(u => u.C_SKUCode == product.C_SKUCode).FirstOrDefault(); var store = DbContext.TPNT_Store.Where(u => u.C_Code == product.C_StoreCode).FirstOrDefault(); if (prodSKU != null && store != null) { ProductModel productModel = new ProductModel(); productModel.C_QRCode = product.C_QRCode; productModel.C_SKUCode = product.C_SKUCode; productModel.C_StoreCode = product.C_StoreCode; productModel.C_DeviceCode = product.C_DeviceCode; productModel.D_ProdDate = product.D_ProdDate; productModel.D_ValiDate = product.D_ValiDate; productModel.C_ImageUrl = product.C_ImageUrl; productModel.D_LastISP = product.D_LastISP; productModel.I_IsAlarm = product.I_IsAlarm; productModel.C_AlarmMsg = product.C_AlarmMsg; productModel.I_Status = product.I_Status; productModel.C_CreateBy = product.C_CreateBy; productModel.D_CreateOn = product.D_CreateOn; productModel.C_Name = prodSKU.C_Name; productModel.C_Spec = prodSKU.C_Spec; productModel.C_Brand = prodSKU.C_Brand; productModel.C_Vender = prodSKU.C_Vender; productModel.C_ProdArea = prodSKU.C_ProdArea; productModel.C_Unit = prodSKU.C_Unit; productModel.C_ImagePath = prodSKU.C_ImagePath; productModel.C_IconPath = prodSKU.C_IconPath; productModel.I_MinStock = prodSKU.I_MinStock; productModel.I_ValiDays = prodSKU.I_ValiDays; productModel.I_AlarmDays = prodSKU.I_AlarmDays; productModel.TypeCode = prodSKU.C_TypeCode; productModel.C_Status = prodSKU.C_Status; productModel.C_StoreName = store.C_Name; productModels.Add(productModel); } } } return Task.FromResult(productModels); } public Task> GetDevProductInfo(string c_DeviceCode) { //var page = 1; //var pageSize = 10; //var query = (from product in DbContext.Set() // join prodSKU in DbContext.Set() on product.C_SKUCode equals prodSKU.C_SKUCode // join store in DbContext.Set() on product.C_StoreCode equals store.C_Code // where product.C_DeviceCode == c_DeviceCode // orderby product.C_Code descending // select new // { // product.C_SKUCode, // prodSKU.C_Name, // storename = store.C_Name, // }).Skip((page - 1) * pageSize).Take(pageSize); List productModels = new List(); var product = DbContext.TPRD_Product.Where(u => u.C_DeviceCode == c_DeviceCode && u.I_Status == 2).ToList(); if (product.Count > 0) { foreach (var item in product) { var prodSKU = DbContext.TPRD_ProdSKU.Where(u => u.C_SKUCode == item.C_SKUCode).FirstOrDefault(); var store = DbContext.TPNT_Store.Where(u => u.C_Code == item.C_StoreCode).FirstOrDefault(); if (prodSKU != null && store != null) { ProductModel productModel = new ProductModel(); productModel.C_QRCode = item.C_QRCode; productModel.C_SKUCode = item.C_SKUCode; productModel.C_StoreCode = item.C_StoreCode; productModel.C_DeviceCode = item.C_DeviceCode; productModel.D_ProdDate = item.D_ProdDate; productModel.D_ValiDate = item.D_ValiDate; productModel.C_ImageUrl = item.C_ImageUrl; productModel.D_LastISP = item.D_LastISP; productModel.I_IsAlarm = item.I_IsAlarm; productModel.C_AlarmMsg = item.C_AlarmMsg; productModel.I_Status = item.I_Status; productModel.C_CreateBy = item.C_CreateBy; productModel.D_CreateOn = item.D_CreateOn; productModel.C_Name = prodSKU.C_Name; productModel.C_Spec = prodSKU.C_Spec; productModel.C_Brand = prodSKU.C_Brand; productModel.C_Vender = prodSKU.C_Vender; productModel.C_ProdArea = prodSKU.C_ProdArea; productModel.C_Unit = prodSKU.C_Unit; productModel.C_ImagePath = prodSKU.C_ImagePath; productModel.C_IconPath = prodSKU.C_IconPath; productModel.I_MinStock = prodSKU.I_MinStock; productModel.I_ValiDays = prodSKU.I_ValiDays; productModel.I_AlarmDays = prodSKU.I_AlarmDays; productModel.TypeCode = prodSKU.C_TypeCode; productModel.C_Status = prodSKU.C_Status; productModel.C_StoreName = store.C_Name; productModels.Add(productModel); } } } return Task.FromResult(productModels); } public Task UpOffRackProduct(ProductInfoModel model) { List lstepc = model.goods.Select(u => u.C_QRCode).ToList(); List lstProduct = DbContext.TPRD_Product.Where(u => lstepc.Contains(u.C_QRCode)).ToList(); foreach (var item in lstProduct) { item.C_DeviceCode = model.C_DeviceCode; item.I_Status = model.goods.Where(u => u.C_QRCode == item.C_QRCode).FirstOrDefault().I_Status; item.C_LastUpdatedBy = model.C_CreateBy; item.D_LastUpdatedOn = DateTime.Now; } var query = DbContext.SaveChanges(); if (query > 0) { return Task.FromResult(true); } return Task.FromResult(false); } public Task GetUserInfo(string openid) { var user = DbContext.TSYS_User.Where(u => u.C_WechatID == openid && u.C_Status == "1").FirstOrDefault(); UserModel model = new UserModel(); model.C_UserID = user.C_UserID; model.C_UserName = user.C_UserName; model.I_Render = user.I_Render; model.D_Birthday = user.D_Birthday; model.C_Post = user.C_Post; model.C_ProgramID = user.C_ProgramID; model.C_OrgCode = user.C_OrgCode; model.C_IDNum = user.C_IDNum; model.C_Address = user.C_Address; model.C_Email = user.C_Email; model.C_ImagePath = user.C_ImagePath; model.C_Mobile = user.C_Mobile; model.C_Phone = user.C_Phone; model.C_Status = user.C_Status; return Task.FromResult(model); } } }