/// <summary> /// 绑定列表 /// </summary> private void RptBind() { BLL.wx_diancai_admin dcBll = new BLL.wx_diancai_admin(); List <Model.wx_diancai_admin> shopAdmins = dcBll.GetModelList("ShopId=" + shopid); BLL.manager managerBll = new BLL.manager(); DataSet dsData = new DataSet(); if (shopAdmins.Any()) { string strWhere = string.Empty; for (int index = 0; index <= shopAdmins.Count - 1; index++) { strWhere += "," + shopAdmins[index].ManagerId; } strWhere = "(" + strWhere.Substring(1) + ")"; dsData = managerBll.GetList(0, "id in " + strWhere, string.Empty); rptList.DataSource = dsData; } else { rptList.DataSource = new List <Model.manager>(); } rptList.DataBind(); }
public List <ShortMsgWithCountDto> GetAllLastNewMsg(UserManagerDto toUserDto) { List <ShortMsgWithCountDto> result = new List <ShortMsgWithCountDto>(); if (toUserDto != null) { var userType = _userService.GetUserType(toUserDto); Expression <Func <ShortMsg, bool> > func; if (userType != MsgUserType.User) { var userids = new List <string>(); var hotelBll = new BLL.wx_hotel_admin(); var diancaiBll = new BLL.wx_diancai_admin(); switch (userType) { case MsgUserType.Hotel: var listU = hotelBll.GetModelList(String.Format( "HotelId=(SELECT HotelId FROM dbo.wx_hotel_admin WHERE ManagerId={0})" , toUserDto.UserId)); if (listU != null && listU.Any()) { userids = listU.Select(i => i.ManagerId.ToString()).ToList(); } break; case MsgUserType.Shop: var listD = diancaiBll.GetModelList(String.Format( "ShopId=(SELECT ShopId FROM dbo.wx_diancai_admin WHERE ManagerId={0})" , toUserDto.UserId)); if (listD != null && listD.Any()) { userids = listD.Select(i => i.ManagerId.ToString()).ToList(); } break; case MsgUserType.Scenic: default: //景区管理员 var count = new wx_userweixin().GetUserWxNumCount(toUserDto.UserId.ToInt()); if (count > 0) { userids.Add(toUserDto.UserId); } break; } func = c => c.MsgToUserType == (int)userType && userids.Contains(c.ToUserId) && c.IsRead == false; } else { func = c => c.ToUserId == toUserDto.UserId && c.IsRead == false; } var msgList = _msgRepository.GetAllList(func); //todo:判断组合方法 //现在是如果不是微信用户发的,就按发送人分组 //是微信用户发的直接分组 var list = msgList.Where(c => (MsgUserType)c.MsgFromUserType != MsgUserType.WeChatCustomer).GroupBy(c => new { FromUserId = c.FromUserId, Type = c.Type, DetailType = c.DetailType }) .Select(c => new { Count = c.Count(), Key = c.Key }).ToList(); if (list.Any()) { var listReslut = list.Select(c => new ShortMsgWithCountDto { Count = c.Count, Msg = GetLastNewMsg(toUserDto, c.Key.FromUserId, c.Key.Type, c.Key.DetailType) }).ToList(); //多个商品在商品描述上加上xx等5件商品 listReslut.ForEach(c => { if (c.Count > 1) { var index = c.Msg.Content.LastIndexOf(']'); c.Msg.Content = c.Msg.Content.Insert(index + 1, String.Format("等{0}件商品", c.Count)); } }); result.AddRange(listReslut); } //添加是微信用户发的直接分组的 if (msgList.Any(c => (MsgUserType)c.MsgFromUserType == MsgUserType.WeChatCustomer)) { var wxlist = msgList.Where(c => (MsgUserType)c.MsgFromUserType == MsgUserType.WeChatCustomer).GroupBy(c => c.MsgFromUserType) .Select(c => new { Count = c.Count(), Key = c.Max(u => u.Id) }).ToList(); if (wxlist.Any()) { var listReslut = wxlist.Select(c => new ShortMsgWithCountDto { Count = c.Count, Msg = GetMsg(c.Key) }).ToList(); //多个订单在商品描述上加上xx等5件订单 listReslut.ForEach(c => { if (c.Count > 1) { var index = c.Msg.Content.LastIndexOf("的订单"); var msgContent = c.Msg.Content.Substring(0, index); var msgHz = c.Msg.Content.Substring(c.Msg.Content.LastIndexOf(",")); //todo:写死的判断多个时后缀 var hz = c.Msg.Type.ToLower().Contains("order") ? "订单" : ""; c.Msg.Content = String.Format("{2}等{0}个{1}{3}", c.Count, hz, msgContent, msgHz); } }); result.AddRange(listReslut); } } } return(result); }