예제 #1
0
        public async ValueTask <OperationResult <bool> > UpdateCouponReduceCostAsync(UpdateCouponReduceCostRequest 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.UpdateCouponReduceCostAsync(request, cancellationToken).ConfigureAwait(false);

            if (result)
            {
                PromotionOprLogEntity entity = ObjectMapper.ConvertTo <UpdateCouponReduceCostRequest, PromotionOprLogEntity>(request);
                entity.Referer         = request.Message;
                entity.UserID          = coupon.UserId;
                entity.Operation       = CouponOperateEnum.修改金额.ToString();
                entity.OperationDetail = string.Format("OldReduceCost={0};NewReduceCost={1}", coupon.ReduceCost, request.ReduceCost);

                await _IPromotionOprLogRepository.CreateAsync(entity, cancellationToken).ConfigureAwait(false);
            }
            return(OperationResult.FromResult(result));
        }
 /// <summary>
 /// 更改优惠券的金额
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async override ValueTask <OperationResult <bool> > UpdateCouponReduceCostAsync([FromBody] UpdateCouponReduceCostRequest request)
 {
     if (!request.IsPassed)
     {
         return(OperationResult.FromError <bool>("-1", request.ErrorMsg));
     }
     return(await _CouponManager.UpdateCouponReduceCostAsync(request, HttpContext.RequestAborted).ConfigureAwait(false));
 }