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 }));
        }
示例#2
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());
        }