/// <summary> /// 获取成员信息 /// </summary> /// <param name="PatientUserID"></param> /// <param name="PatientMemberID"></param> /// <returns></returns> public ResponseUserMemberDTO GetMemberInfo(string DoctorID, string UserID, string PatientMemberID) { if (Exists(a => a.DoctorID == DoctorID && a.MemberID == PatientMemberID)) { BLL.User.Implements.UserMemberService service = new User.Implements.UserMemberService(); var member = service.GetMemberInfo(PatientMemberID); if (member == null) { //兼容药店端看诊,MemberID非当前用户下的Member BLL.User.Implements.UserService ser = new User.Implements.UserService(); var user = ser.GetUserInfoByUserId(UserID); if (user != null && user.UserType == EnumUserType.Drugstore) { return(service.GetMemberInfo(UserID, PatientMemberID)); } } return(member); } else { return(null); } }
public Response <List <ResponseUserOPDRegisterDTO> > GetPageList(RequestUserQueryOPDRegisterDTO request) { Response <List <ResponseUserOPDRegisterDTO> > result = new Response <List <ResponseUserOPDRegisterDTO> >(); var today = DateTime.Now; using (XuHos.DAL.EF.DBEntities db = new DBEntities()) { int Total = 0; string queryPredicate = "IsDeleted = @0 AND (OPDType = @1 OR OPDType = @2)"; List <object> paramValues = new List <object> { false, EnumDoctorServiceType.VidServiceType, EnumDoctorServiceType.AudServiceType }; if (!string.IsNullOrEmpty(request.MemberID)) { BLL.User.Implements.UserMemberService memser = new UserMemberService(); var member = memser.GetMemberInfo(request.MemberID); if (!string.IsNullOrEmpty(member.IDNumber)) { queryPredicate += " AND IDNumber = @3"; paramValues.Add(member.IDNumber); } else { queryPredicate += " AND MemberID = @3"; paramValues.Add(request.MemberID); } } else { queryPredicate += " AND UserID = @3"; paramValues.Add(CurrentOperatorUserID); } var query = from opd in db.UserOpdRegisters.Where(queryPredicate, paramValues.ToArray()) join doctor in db.Doctors.Where(a => !a.IsDeleted) on opd.DoctorID equals doctor.DoctorID join order in db.Orders.Where(a => !a.IsDeleted) on opd.OPDRegisterID equals order.OrderOutID join room in db.ConversationRooms.Where(a => !a.IsDeleted) on opd.OPDRegisterID equals room.ServiceID into leftJoinRoom from roomIfEmpty in leftJoinRoom.DefaultIfEmpty() select new ResponseUserOPDRegisterDTO() { OPDRegisterID = opd.OPDRegisterID, //预约编号 OPDDate = opd.OPDDate, //排版日期 OPDType = opd.OPDType, //预约类型 RegDate = opd.RegDate, //预约时间 UserID = opd.UserID, //用户编号 Fee = opd.Fee, //费用 ConsultContent = opd.ConsultContent, IDNumber = opd.IDNumber, MemberID = opd.MemberID, Room = new DTO.ConversationRoomDTO() { //就诊当天,没有就诊,用户已经支付 ChannelID = roomIfEmpty != null && (order.OrderState == EnumOrderState.Finish || (order.OrderState == EnumOrderState.Paid && (opd.OPDDate.Year == today.Year && opd.OPDDate.Month == today.Month && opd.OPDDate.Day == today.Day)) ) ? roomIfEmpty.ChannelID : 0, //就诊房间 RoomState = roomIfEmpty != null ? roomIfEmpty.RoomState : EnumRoomState.NoTreatment, //预约状态 Secret = roomIfEmpty != null ? roomIfEmpty.Secret : "", //房间密码 }, Order = new DTO.Platform.OrderDTO() { OrderNo = order.OrderNo, //订单编号 OrderTime = order.OrderTime, //订单时间 OrderState = order.OrderState, LogisticNo = order.LogisticNo, LogisticState = order.LogisticState, PayType = order.PayType, CostType = order.CostType, TotalFee = order.totalFee, TradeNo = order.TradeNo, IsEvaluated = order.IsEvaluated, RefundState = order.RefundState }, Member = new DTO.UserMemberDTO() { UserID = opd.UserID, MemberID = opd.MemberID, //成员编号 MemberName = opd.MemberName, Gender = opd.Gender, IDNumber = opd.IDNumber }, Doctor = new DTO.DoctorDto() { DoctorID = opd.DoctorID, //医生编号 DoctorName = doctor.DoctorName, HospitalID = doctor.HospitalID, HospitalName = doctor.HospitalName, DepartmentID = doctor.DepartmentID, DepartmentName = doctor.DepartmentName, Specialty = doctor.Specialty, Title = doctor.Title, Duties = doctor.Duties, } }; #region 处理搜索条件 //查询关键字 if (!string.IsNullOrEmpty(request.Keyword)) { query = query.Where(a => a.Member.MemberName.Contains(request.Keyword)); } //开始日期 if (request.BeginDate.HasValue) { query = query.Where(a => a.OPDDate >= request.BeginDate); } //结束日期 if (request.EndDate.HasValue) { request.EndDate = request.EndDate.Value.AddDays(1); query = query.Where(a => a.OPDDate < request.EndDate); } //类型 if (request.OPDType.HasValue) { query = query.Where(a => a.OPDType == request.OPDType.Value); } //状态 if (request.OrderState.HasValue) { query = query.Where(a => a.Order.OrderState == request.OrderState.Value); } //传了MemberID,查memberid 的身份号的所有记录 //if (!string.IsNullOrEmpty(request.MemberID)) //{ // BLL.User.Implements.UserMemberService memser = new UserMemberService(); // var member = memser.GetMemberInfo(request.MemberID); // if (!string.IsNullOrEmpty(member.IDNumber)) // query = query.Where(t => t.IDNumber == member.IDNumber); // else // query = query.Where(t => t.MemberID == member.MemberID); //} //else //{ // query = query.Where(t => t.UserID == CurrentOperatorUserID); //} #endregion query = query.OrderByDescending(a => new { a.Order.OrderTime, a.Order.OrderState }); result.Data = query.Pager <ResponseUserOPDRegisterDTO>(out Total, request.CurrentPage, request.PageSize); result.Total = Total; } return(result); }
/// <summary> /// 根据用户编号获取用户信息 /// </summary> /// <param name="userId"></param> public ResponseUserDTO GetUserInfoByUserId(string userId) { if (string.IsNullOrEmpty(userId)) { return(default(ResponseUserDTO)); } var User_CacheKey = new XuHos.Common.Cache.Keys.EntityCacheKey <ResponseUserDTO>(StringCacheKeyType.User, userId); var userModel = User_CacheKey.FromCache(); if (userModel == null) { using (DBEntities db = new DBEntities()) { var query = from user in db.Users.Where(a => a.UserID == userId && a.IsDeleted == false) join userUid in db.ConversationIMUids on user.UserID equals userUid.UserID select new ResponseUserDTO() { CancelTime = user.CancelTime, Email = user.Email, Identifier = userUid.Identifier, UserID = user.UserID, Mobile = user.Mobile, Password = user.Password, PhotoUrl = user.PhotoUrl, RegTime = user.RegTime, UserType = user.UserType, UserState = user.UserState, UserLevel = user.UserLevel, UserAccount = user.UserAccount, OrgID = user.OrgCode, UserCNName = user.UserCNName, UserENName = user.UserENName, CreateUserID = user.CreateUserID }; userModel = query.FirstOrDefault(); if (userModel != null) { XuHos.BLL.User.Implements.UserMemberService service = new UserMemberService(); var MemberIsEmpty = service.GetMemberList(userModel.UserID).Find(a => a.Relation == EnumUserRelation.MySelf); //取 usercnname, 先取自己关系membername, 为空则取users.usercname,还为空则取手机号 var UserCNName = userModel.UserCNName; if (MemberIsEmpty != null && !string.IsNullOrWhiteSpace(MemberIsEmpty.MemberName)) { UserCNName = MemberIsEmpty.MemberName; } if (string.IsNullOrEmpty(UserCNName)) { UserCNName = userModel.Mobile; } userModel.UserCNName = UserCNName; userModel.UserENName = MemberIsEmpty != null ? MemberIsEmpty.MemberName : userModel.UserENName; userModel.MemberID = MemberIsEmpty != null ? MemberIsEmpty.MemberID : ""; userModel.IDType = MemberIsEmpty != null ? MemberIsEmpty.IDType : EnumUserCardType.IDCard; userModel.IDNumber = MemberIsEmpty != null ? MemberIsEmpty.IDNumber : ""; userModel.Gender = MemberIsEmpty != null ? MemberIsEmpty.Gender : EnumUserGender.Other; } userModel.ToCache(User_CacheKey, TimeSpan.FromMinutes(_GetUserInfoExpireMinutes())); } } return(userModel); }