private MyProduct EntityToModel(CTMS_MYPRODUCT entity) { if (entity == null) { return(null); } return(new MyProduct() { ID = entity.ID, LoginName = entity.LOGINNAME, UserID = entity.USERID, ProductID = entity.PRODUCTID, ProductNum = entity.PRODUCTNUM, StartDate = entity.STARTDATE, EndDate = entity.ENDDATE, IsUsed = entity.ISUSED, UsedDate = entity.USEDDATE, Product = string.IsNullOrEmpty(entity.PRODUCTID) ? null : new ProductsService().GetProductsById(entity.PRODUCTID), CreateDateTime = entity.CREATEDATETIME, CreateUserID = entity.CREATEUSERID, CreateUserName = entity.CREATEUSERNAME, EditTime = entity.EDITDATETIME, EditUserID = entity.EDITUSERID, EditUserName = entity.EDITUSERNAME, OwnerID = entity.OWNERID, OwnerName = entity.OWNERNAME, IsDeleted = entity.ISDELETED }); }
/// <summary> /// 根据ID获取我的产品 /// </summary> /// <param name="keyWord"></param> /// <returns></returns> public MyProduct Get(string id) { using (DbContext db = new CRDatabase()) { if (string.IsNullOrEmpty(id)) { return(null); } CTMS_MYPRODUCT entity = db.Set <CTMS_MYPRODUCT>().Find(id); if (entity == null) { return(null); } return(EntityToModel(entity)); } }
/// <summary> /// 根据ID获取我的产品 /// </summary> /// <param name="keyWord"></param> /// <returns></returns> public bool BuyProduct(string userID, string ProductID) { using (DbContext db = new CRDatabase()) { DateTime now = DateTime.Now; if (string.IsNullOrEmpty(userID) || string.IsNullOrEmpty(ProductID)) { throw new Exception("用户ID或产品ID为空,购买失败!"); } CTMS_SYS_USERINFO user = db.Set <CTMS_SYS_USERINFO>().Find(userID); CTMS_PRODUCTS product = db.Set <CTMS_PRODUCTS>().Find(ProductID); if (user == null || product == null) { throw new Exception("错误的用户ID或产品ID"); } if (product.SALEPRICE > user.ACCOUNT) { throw new Exception("余额不足!"); } //用户表 decimal salePrice = product.SALEPRICE.HasValue ? product.SALEPRICE.Value : 0; user.ACCOUNT -= salePrice; db.Entry(user).State = EntityState.Modified; //记录表 CTMS_ACCOUNTRECORD accountRecord = new CTMS_ACCOUNTRECORD() { ID = Guid.NewGuid().ToString(), USERID = user.USERID, ACCOUNT = salePrice, ACCOUNTDESCRIPTION = string.Format("购买{0}", product.PRODUCTNAME), BALANCE = -1, LOGINNAME = user.LOGINNAME, ORDERID = "", PRODUCTID = product.PRODUCTID, PRODUCTNAME = product.PRODUCTNAME, SPENDTYPE = (int)SpendType.Buy, CREATEDATETIME = now, CREATEUSERID = user.USERID, CREATEUSERNAME = user.LOGINNAME }; db.Set <CTMS_ACCOUNTRECORD>().Add(accountRecord); //我的产品表 CTMS_MYPRODUCT myProduct = new CTMS_MYPRODUCT() { ID = Guid.NewGuid().ToString(), USERID = user.USERID, LOGINNAME = user.LOGINNAME, PRODUCTID = product.PRODUCTID, PRODUCTNUM = 1, STARTDATE = DateTime.Now.Date, ENDDATE = DateTime.Now.Date.AddYears(1).AddDays(-1), CREATEUSERID = user.USERID, CREATEUSERNAME = user.LOGINNAME, CREATEDATETIME = now, }; db.Set <CTMS_MYPRODUCT>().Add(myProduct); return(db.SaveChanges() > 0); } }