示例#1
0
 /// <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);
 }