/// <summary>
        /// 批量作废优惠券 - 根据优惠券渠道
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async override ValueTask <OperationResult <ObsoleteCouponListReponse> > ObsoleteCouponListByChannelAsync([FromBody] ObsoleteCouponsByChannelRequest request)
        {
            if (!request.IsPassed)
            {
                return(OperationResult.FromError <ObsoleteCouponListReponse>("-1", request.ErrorMsg));
            }

            //根据渠道和pkid筛选优惠券
            var couponList = await promotionCodeRepository.GetPKIDByCodeChannelANDPKIDAsync(request, HttpContext.RequestAborted).ConfigureAwait(false);

            couponList = couponList.Where(p => p.Status == 0).ToList();

            ObsoleteCouponListReponse response = new ObsoleteCouponListReponse();
            ObsoleteCouponRequest     ObsoleteCouponRequest = ObjectMapper.ConvertTo <ObsoleteCouponsByChannelRequest, ObsoleteCouponRequest>(request);

            foreach (var item in couponList)
            {
                ObsoleteCouponRequest.PromotionPKID = item.PKID;
                ObsoleteCouponRequest.UserID        = item.UserId;
                var flag = await _CouponManager.ObsoleteCouponAsync(ObsoleteCouponRequest, HttpContext.RequestAborted).ConfigureAwait(false);

                if (flag.Result)
                {
                    response.SuccessedIDs += ObsoleteCouponRequest.PromotionPKID + ",";
                }
                else
                {
                    response.FaidedIDs += ObsoleteCouponRequest.PromotionPKID + ",";
                }
            }
            return(OperationResult.FromResult(response));
        }
예제 #2
0
        /// <summary>
        /// 作废优惠券
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async ValueTask <OperationResult <bool> > ObsoleteCouponAsync(ObsoleteCouponRequest request, CancellationToken cancellationToken)
        {
            var coupon = await _PromotionCodeRepository.GetCouponByIDAsync(request.PromotionPKID, cancellationToken).ConfigureAwait(false);

            if (coupon == null)
            {
                return(OperationResult.FromError <bool>("-1", "优惠券不存在"));
            }
            if (coupon.UserId != request.UserID)
            {
                return(OperationResult.FromError <bool>("-2", "优惠券所属人不匹配 请检查入参userid"));
            }
            if (coupon.Status != 0)
            {
                return(OperationResult.FromError <bool>("-2", "优惠券已使用或者已作废"));
            }

            var result = await _PromotionCodeRepository.ObsoleteCouponAsync(request, cancellationToken).ConfigureAwait(false);

            if (result)
            {
                PromotionOprLogEntity entity = ObjectMapper.ConvertTo <ObsoleteCouponRequest, PromotionOprLogEntity>(request);
                entity.Referer         = request.Message;
                entity.UserID          = coupon.UserId;
                entity.Operation       = CouponOperateEnum.作废.ToString();
                entity.OperationDetail = string.Format("OldStatus={0};NewStatus={1}", coupon.Status, (int)CouponOperateEnum.作废);
                await _IPromotionOprLogRepository.CreateAsync(entity, cancellationToken).ConfigureAwait(false);
            }
            return(OperationResult.FromResult(result));
        }
        /// <summary>
        ///  作废优惠券 - 批量
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async override ValueTask <OperationResult <ObsoleteCouponListReponse> > ObsoleteCouponListAsync([FromBody] ObsoleteCouponListRequest request)
        {
            if (!request.IsPassed)
            {
                return(OperationResult.FromError <ObsoleteCouponListReponse>("-1", request.ErrorMsg));
            }
            if (request.IsObsoleteAll)
            {
                GetCouponByUserIDRequest getCouponByUserIDRequest = new GetCouponByUserIDRequest()
                {
                    UserID    = request.UserID,
                    IsHistory = 2
                };
                var couponList = await _CouponManager.GetCouponByUserIDAsync(getCouponByUserIDRequest, HttpContext.RequestAborted).ConfigureAwait(false);

                request.PromotionPKIDList = couponList.Where(p => p.Status == 0).Select(p => p.PKID).ToList();
            }
            ObsoleteCouponListReponse response = new ObsoleteCouponListReponse();
            ObsoleteCouponRequest     ObsoleteCouponRequest = ObjectMapper.ConvertTo <ObsoleteCouponListRequest, ObsoleteCouponRequest>(request);

            foreach (var item in request.PromotionPKIDList)
            {
                ObsoleteCouponRequest.PromotionPKID = item;
                var flag = await _CouponManager.ObsoleteCouponAsync(ObsoleteCouponRequest, HttpContext.RequestAborted).ConfigureAwait(false);

                if (flag.Result)
                {
                    response.SuccessedIDs += ObsoleteCouponRequest.PromotionPKID + ",";
                }
                else
                {
                    response.FaidedIDs += ObsoleteCouponRequest.PromotionPKID + ",";
                }
            }
            return(OperationResult.FromResult(response));
        }
 /// <summary>
 /// 作废优惠券
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async override ValueTask <OperationResult <bool> > ObsoleteCouponAsync([FromBody] ObsoleteCouponRequest request)
 {
     if (!request.IsPassed)
     {
         return(OperationResult.FromError <bool>("-1", request.ErrorMsg));
     }
     return(await _CouponManager.ObsoleteCouponAsync(request, HttpContext.RequestAborted).ConfigureAwait(false));
 }