/// <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; coupon = _couponDataService.CreateCoupon(new CouponCouponRequest { AuthUid = request.AuthUid, SourceId = request.PromotionId, 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); return(new ExecuteResult <PromotionInfoResponse> { Data = re }); }
public ExecuteResult <ProductInfoResponse> CreateCoupon(CreateCouponProductRequest request) { if (request == null) { return(new ExecuteResult <ProductInfoResponse>(null) { StatusCode = StatusCode.ClientError, Message = "参数错误" }); } var product = _productRepository.GetItem(request.ProductId); if (product == null) { return(new ExecuteResult <ProductInfoResponse>(null) { StatusCode = StatusCode.ClientError, Message = "参数错误" }); } //判断如果是v1.0版本 可以允许创建优惠券。 ExecuteResult <CouponCodeResponse> coupon; if (request.Client_Version != "1.0") { if (request.PromotionId == null || request.PromotionId.Value < 1) { //获取商品关联的活动 var promotionEntity = _promotionService.GetFristNormalForProductId(product.Id); if (promotionEntity == null) { return(new ExecuteResult <ProductInfoResponse>(null) { StatusCode = StatusCode.ClientError, Message = "当前商品没有参加活动" }); } request.PromotionId = promotionEntity.Id; } else { //判断 if (!_promotionService.Exists(request.PromotionId ?? 0, request.ProductId)) { return(new ExecuteResult <ProductInfoResponse>(null) { StatusCode = StatusCode.ClientError, Message = "当前商品没有参加该活动" }); } } var pr = _promotionDataService.CreateCoupon(new PromotionCouponCreateRequest { AuthUid = request.AuthUid, AuthUser = request.AuthUser, Client_Version = request.Client_Version, IsPass = request.IsPass, Method = request.Method, PromotionId = request.PromotionId ?? 0, Token = request.Token }); if (pr.IsSuccess && pr.Data != null && pr.Data.CouponCodeResponse != null) { coupon = new ExecuteResult <CouponCodeResponse>(pr.Data.CouponCodeResponse); } else { coupon = new ExecuteResult <CouponCodeResponse>(null) { Message = pr.Message, StatusCode = pr.StatusCode }; } } else { coupon = _couponDataService.CreateCoupon(new CouponCouponRequest { AuthUid = request.AuthUid, SourceId = product.Id, SourceType = (int)SourceType.Product, Token = request.Token, AuthUser = request.AuthUser, Method = request.Method, Client_Version = request.Client_Version }); } if (!coupon.IsSuccess) { return(new ExecuteResult <ProductInfoResponse>(null) { Message = coupon.Message, StatusCode = coupon.StatusCode }); } //+1 product = _productRepository.SetCount(ProductCountType.InvolvedCount, product.Id, 1); var response = MappingManager.ProductInfoResponseMapping(product); response.CouponCodeResponse = coupon.Data; if (request.AuthUser != null) { response = IsR(response, request.AuthUser, product.Id); } return(new ExecuteResult <ProductInfoResponse>(response)); }