/// <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)); }
/// <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)); }