public async Task <IActionResult> WishList([FromQuery] WishListRequestParam request) { var memberId = this.GetMemberId(); var activityNo = this.GetActivityNo(); if (memberId == 0) { return(BadRequest("未获取会员id")); } if (request == null) { return(BadRequest("参数错误")); } if (request.gender != 1 && request.gender != 2) { return(BadRequest("性别选择有误")); } //获取会员的许愿列表 var(dataList, total) = await _activityApplication.GetWishListAsync(activityNo, memberId, request); //判断其他愿望显示不显示,规则是提交过一次其他愿望就不再显示 其他愿望0-不显示 1-显示 var HaveotherWish = await _activityApplication.IsHaveOtherWishAsync(activityNo, memberId); return(this.MyOK(new { dataList, total, otherWish = HaveotherWish == 0 ? 1 : 0 })); }
///// <summary> ///// 获取会员性别 ///// </summary> ///// <param name="activityNo"></param> ///// <param name="memberId"></param> ///// <returns></returns> //public async Task<int> GetMemberGenderAsync(int memberId) //{ // //获取会员性别 // string strSql = $@"SELECT gender FROM t_member WHERE id={memberId};"; // var gender = await _jiakeRepository.SQLQueryFirstOrDefaultAsync<int>(strSql); // return gender; //} /// <summary> /// 选择愿望列表 /// </summary> /// <param name="activityNo"></param> /// <param name="memberId"></param> /// <param name="gender">0 不限 1 男 2 女</param> /// <returns></returns> public async Task <(IEnumerable <WishListResponse>, int)> GetWishListAsync(string activityNo, int memberId, WishListRequestParam request) { string strWhere = ""; if (request.gender != 0) { strWhere += $" AND (for_people = {request.gender} or for_people=0)"; } //先查询符合性别的所有的愿望 string strSql = $@"SELECT wish_no AS wishNo, wish_name AS `name` FROM t_wish_base WHERE activity_no = @activityNo AND is_deleted = 0 AND is_online = 1 {strWhere} ORDER BY id;"; var wishList = await _jiakeRepository.SQLQueryAsync <WishListResponse>(strSql, new { activityNo }); //再查询会员已经许愿的愿望 strSql = $@"SELECT wish_no AS wishNo, `status` FROM t_make_wish WHERE member_id = {memberId} AND activity_no = @activityNo; " ; var memberWishes = await _jiakeRepository.SQLQueryAsync <(string, int)>(strSql, new { activityNo }); //有达成的愿望就返回空吧 if (memberWishes.Any(x => x.Item2 == 1 || x.Item2 == 4)) { return(new List <WishListResponse>(), 0); } // 商户库存 strSql = "SELECT SUM(IFNULL(wish_stock,1)) `value`,wish_no `key` FROM t_wish GROUP BY wish_no;"; var mchStock = await _jiakeRepository.SQLQueryAsync <KeyValuePair <string, int> >(strSql); var ret = wishList.Where(p => mchStock.Any(x => x.Key == p.wishNo && x.Value > 0)); if (memberWishes.Count() > 0) { var memberWishNos = memberWishes.Select(x => x.Item1).ToList(); //排除掉会员已许愿的愿望 ret = ret.Where(x => !memberWishNos.Contains(x.wishNo)); } //分页 return(ret.Skip(request.pageSize * (request.pageIndex - 1)).Take(request.pageSize), ret.Count()); }