/// <summary> /// 根据原优惠券,创建新优惠券,并且插入日志 /// </summary> /// <param name="promotionId"></param> /// <param name="operation"></param> /// <returns></returns> private string CreateNewPromotionByOldPromotion(int promotionId, string operation = "部分取消") { if (promotionId > 0) { var oldPromotionCode = dbManager.Execute(connection => DalPromotionJob.FetchPromotionCodeByPromotionCode(connection, promotionId)); oldPromotionCode.RuleName = oldPromotionCode.PromtionName; if (oldPromotionCode != null) { oldPromotionCode.Status = 0; oldPromotionCode.CodeChannel = oldPromotionCode.CodeChannel + "(取消订单)"; CreatePromotionModel createPromotionModel = new CreatePromotionModel() { Author = ThreadIdentity.Operator.Name, Channel = "取消订单", Operation = "原优惠券生成新优惠券", PromotionPKID = oldPromotionCode.PkId }; using (var client = new PromotionClient()) { var result = client.CopyPromotionCode(createPromotionModel); if (result.Success) { new OprLogManager().AddOprLog <BizPromotionCode>("Order", oldPromotionCode.OrderId, operation + "原优惠券不释放,生成一张一样的优惠券,优惠券PKID:" + result.Result, null, null); } else { throw new Exception("根据原优惠券生成新优惠券失败,订单号:" + oldPromotionCode.OrderId); } } //var newPromotionCode = dbManager.Execute(connection => DalPromotionJob.CreatePromotionCode(connection, oldPromotionCode)); //new OprLogManager().AddOprLog<BizPromotionCode>("Order", oldPromotionCode.OrderId, operation + "原优惠券不释放,生成一张一样的优惠券,优惠券PKID:" + newPromotionCode, null, null); } } return(string.Empty); }