public string Verification(PromotionCouponCreateRequest request) { var promotionEntity = _promotionRepository.GetItem(request.PromotionId); string err = Verification(promotionEntity); if (!string.IsNullOrEmpty(err)) return err; if (promotionEntity.IsLimitPerUser.HasValue && promotionEntity.IsLimitPerUser.Value) { var existCoupon = _couponRepo.Get(c => c.FromPromotion == request.PromotionId && c.User_Id == request.AuthUser.Id && c.Status != (int)DataStatus.Deleted).FirstOrDefault(); if (existCoupon != null) return "该优惠活动每人限领一次,您已经领过了。"; } return null; }
public RestfulResult Coupon(FormCollection formCollection, PromotionCouponCreateRequest request, int? authuid, UserModel authUser) { request.AuthUid = authuid.Value; request.AuthUser = authUser; if (System.String.Compare(request.Method, DefineRestfulMethod.Create, System.StringComparison.OrdinalIgnoreCase) == 0) { var result = this._promotionDataService.CreateCoupon(request); if (request.IsPass == 1 && result.Data != null && result.Data.CouponCodeResponse != null) { var code = result.Data.CouponCodeResponse; result.Data.CouponCodeResponse.Pass = _passHelper.GetPass(ControllerContext.HttpContext, code.Id, code.CouponId, code.User_Id); //result.Data.CouponCodeResponse.Pass = PassController.GetPass(ControllerContext, result.Data.CouponCodeResponse.Id, // result.Data.CouponCodeResponse.CouponId, // result.Data.CouponCodeResponse // .ProductName, // result.Data.CouponCodeResponse // .ProductDescription, null, result.Data.CouponCodeResponse.User_Id); } return new RestfulResult { Data = result }; } return new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.ClientError, Message = "参数错误" } }; }
/// <summary> /// 创建优惠卷 /// </summary> /// <param name="request"></param> /// <returns></returns> public ExecuteResult<PromotionInfoResponse> CreateCoupon(PromotionCouponCreateRequest request) { var str = _promotionService.Verification(request); if (!String.IsNullOrEmpty(str)) { return new ExecuteResult<PromotionInfoResponse>(null) { StatusCode = StatusCode.ClientError, Message = str }; } ExecuteResult<CouponCodeResponse> coupon = null; using (var ts = new TransactionScope()) { coupon = _couponDataService.CreateCoupon(new CouponCouponRequest { AuthUid = request.AuthUid, PromotionId = request.PromotionId, ProductId = 0, SourceType = (int)SourceType.Promotion, Token = request.Token, AuthUser = request.AuthUser, Method = request.Method, Client_Version = request.Client_Version }); if (!coupon.IsSuccess) { return new ExecuteResult<PromotionInfoResponse>(null) { Message = coupon.Message, StatusCode = coupon.StatusCode }; } var promotionEntity = _promotionRepository.GetItem(request.PromotionId); promotionEntity = _promotionRepository.SetCount(PromotionCountType.InvolvedCount, promotionEntity.Id, 1); var re = MappingManager.PromotionResponseMapping(promotionEntity); re.CouponCodeResponse = coupon.Data; re = IsR(re, request.AuthUser, request.AuthUser.Id); ts.Complete(); return new ExecuteResult<PromotionInfoResponse> { Data = re }; } }