/// <summary>
 /// 根据pkid获取用户优惠券接口
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public async override ValueTask <OperationResult <GetCouponByIDResponse> > GetCouponByIDAsync([FromBody]  GetCouponByIDRequest request)
 {
     return(await _CouponManager.GetCouponByIDAsync(request, HttpContext.RequestAborted).ConfigureAwait(false));
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 根据pkid获取用户优惠券接口
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async ValueTask <OperationResult <GetCouponByIDResponse> > GetCouponByIDAsync(GetCouponByIDRequest request, CancellationToken cancellationToken)
        {
            PromotionCodeEntity entity = await _PromotionCodeRepository.GetCouponByIDAsync(request.pkid, cancellationToken).ConfigureAwait(false);

            if (entity == null)
            {
                return(OperationResult.FromError <GetCouponByIDResponse>("-1", "未获取到信息"));
            }
            GetCouponByIDResponse result = ObjectMapper.ConvertTo <PromotionCodeEntity, GetCouponByIDResponse>(entity);

            result.ReduceCost = (Math.Abs(result.Discount - result.ReduceCost) < 1) ? result.ReduceCost : result.Discount;
            result.LeastCost  = (Math.Abs(result.MinMoney ?? 0 - result.LeastCost) < 1) ? result.LeastCost : (result.MinMoney ?? 0);
            if (result.GetRuleID > 0)
            {
                var getRuleModel = await _CouponGetRuleRepository.GetByPKIDAsync(result.GetRuleID, cancellationToken).ConfigureAwait(false);

                result.GetRuleGUID = getRuleModel.GetRuleGUID;
                result.Quantity    = getRuleModel.Quantity ?? 0;
                result.GetQuantity = getRuleModel.GetQuantity;
                result.GetRuleName = getRuleModel.PromtionName;
            }
            if (result.RuleId > 0)
            {
                var useRuleModel = await _CouponUseRuleRepository.GetByPKIDAsync(result.RuleId, cancellationToken).ConfigureAwait(false);

                result.PromotionType   = useRuleModel.PromotionType;
                result.RuleName        = useRuleModel.Name;
                result.RuleDescription = useRuleModel.RuleDescription;
                result.OrderPayMethod  = useRuleModel.OrderPayMethod;
                result.EnabledGroupBuy = useRuleModel.EnabledGroupBuy ? 1 : 0;
                result.InstallType     = useRuleModel.InstallType.ToString();
            }
            return(OperationResult.FromResult(result));
        }