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<TSYS_User, Guid>, IBoxApiRepository { public BoxApiRepository(InspectionDbContext dbContext) : base(dbContext) { } public Task<PrivModel> 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<bool> 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<bool> 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<TDEV_Device> GetDeviceInfo(string C_MachineCode) { var device = DbContext.TDEV_Device.Where(u => u.C_MachineCode == C_MachineCode).FirstOrDefault(); return Task.FromResult(device); } public Task<List<TDEV_Device>> GetAllDeviceInfo() { var device = DbContext.TDEV_Device; return Task.FromResult(device.ToList()); } public Task<List<TSYS_User>> GetAllUser() { var users = DbContext.TSYS_User.ToList(); return Task.FromResult(users); } public Task<TDEV_DevAlertConfig> GetDevAlertConfig(string C_ConfigCode) { var devAlertConfig = DbContext.TDEV_DevAlertConfig.Where(u => u.C_Code == C_ConfigCode).FirstOrDefault(); return Task.FromResult(devAlertConfig); } public Task<List<ProductModel>> GetProductInfo(List<epcModel> models) { List<ProductModel> productModels = new List<ProductModel>(); List<string> lstepc = models.Select(u => u.C_QRCode).ToList(); List<TPRD_Product> 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<List<ProductModel>> GetDevProductInfo(string c_DeviceCode) { //var page = 1; //var pageSize = 10; //var query = (from product in DbContext.Set<TPRD_Product>() // join prodSKU in DbContext.Set<TPRD_ProdSKU>() on product.C_SKUCode equals prodSKU.C_SKUCode // join store in DbContext.Set<TPNT_Store>() 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<ProductModel> productModels = new List<ProductModel>(); 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<bool> UpOffRackProduct(ProductInfoModel model) { List<string> lstepc = model.goods.Select(u => u.C_QRCode).ToList(); List<TPRD_Product> 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<UserModel> 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); } } }