/// <summary>
        /// 更新美容大客户服务码
        /// </summary>
        /// <param name="model"></param>
        /// <param name="pkids"></param>
        /// <returns></returns>
        public async Task <ActionResult> UpdateBeautyServicePackageDetailCodes(ServiceCodeDetail model)
        {
            if (model == null || string.IsNullOrWhiteSpace(model.ServiceCode))
            {
                return(Json(new { Status = false, Msg = "未知的编辑对象" }, JsonRequestBehavior.AllowGet));
            }
            if (model.StartTime == null || model.EndTime == null)
            {
                return(Json(new { Status = false, Msg = "请选择有效期" }, JsonRequestBehavior.AllowGet));
            }

            ServiceCodeDetail codeDetail = null;

            if (model.PackageDetailCodeId > 0)
            {
                codeDetail = (await SearchCodeManager.GetServiceCodeDetail(new List <string>()
                {
                    model.ServiceCode
                }))?.FirstOrDefault();
            }
            else
            {
                var bankRecords = BankMRManager.GetBankMRActivityCodeRecordByServiceCode(new List <string>()
                {
                    model.ServiceCode
                });
                codeDetail = (await BankMRManager.SearchBankMRActivityCodeDetailByRecords(bankRecords))?.FirstOrDefault();
                if (codeDetail.StartTime.Date != model.StartTime.Date)
                {
                    return(Json(new { Status = false, Msg = $"银行服务码开始时间不能修改" }, JsonRequestBehavior.AllowGet));
                }
            }

            if (codeDetail == null || string.IsNullOrWhiteSpace(codeDetail.Status))
            {
                return(Json(new { Status = false, Msg = "无法获取服务码详情" }, JsonRequestBehavior.AllowGet));
            }
            if (!(codeDetail.Status == "Created" || codeDetail.Status == "SmsSent"))
            {
                return(Json(new { Status = false, Msg = $"服务码:{model.ServiceCode}信息无法更改,请确认服务码状态" }, JsonRequestBehavior.AllowGet));
            }
            var userName = User.Identity.Name;
            var result   = SearchCodeManager.UpdateBeautyServicePackageDetailCodes(model, userName, codeDetail);

            return(Json(new { Status = result, Msg = "修改" + (result ? "成功" : "失败") }, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 修改大客户美容服务码
        /// </summary>
        /// <param name="model"></param>
        /// <param name="pkids"></param>
        /// <returns></returns>
        public static bool UpdateBeautyServicePackageDetailCodes(ServiceCodeDetail model, string user, ServiceCodeDetail oldCode)
        {
            var result = false;

            try
            {
                if (model.StartTime != null && model.EndTime != null)
                {
                    using (var dbhelper = new Tuhu.Component.Common.SqlDbHelper(writeConnStr))
                    {
                        dbhelper.BeginTransaction();
                        var upResult = true;
                        if (model.PackageDetailCodeId > 0)
                        {
                            var oldValue = BeautyServicePackageDal.GetBeautyServicePackageDetailCodeByPKID(model.PackageDetailCodeId);
                            if (oldValue != null)
                            {
                                #region 只更新服务码起止时间 其余数据保持不变
                                var newValue = new BeautyServicePackageDetailCode
                                {
                                    PKID            = model.PackageDetailCodeId,
                                    UserId          = oldValue.UserId,
                                    PackageDetailId = oldValue.PackageDetailId,
                                    ServiceCode     = oldValue.ServiceCode,
                                    IsActive        = oldValue.IsActive,
                                    StartTime       = model.StartTime,
                                    EndTime         = model.EndTime,
                                    PackageCode     = oldValue.PackageCode,
                                    VipUserId       = oldValue.VipUserId
                                };
                                #endregion
                                upResult = BeautyServicePackageDal.UpdateBeautyServicePackageDetailCodes(dbhelper, newValue);
                            }
                            else
                            {
                                upResult = false;
                            }
                        }
                        if (upResult)
                        {
                            using (var client = new ServiceCodeClient())
                            {
                                var kxChangeCodeTimeModel = new ChangeCodeTimeRequest
                                {
                                    ServiceCodes = new List <string>()
                                    {
                                        model.ServiceCode
                                    },
                                    OverdueTime = model.EndTime
                                };
                                var kxChangeResult = client.ChangeOverdueTime(kxChangeCodeTimeModel);
                                kxChangeResult.ThrowIfException(true);
                                if (kxChangeResult.Success && kxChangeResult.Result != null && kxChangeResult.Result.SuccessServiceCode.Count() > 0 &&
                                    string.Equals(kxChangeResult.Result.SuccessServiceCode.FirstOrDefault(), model.ServiceCode))
                                {
                                    result = true;
                                    dbhelper.Commit();

                                    var log = new BaoYangOprLog
                                    {
                                        LogType     = "修改大客户美容服务码",
                                        IdentityID  = oldCode.ServiceCode,
                                        OldValue    = JsonConvert.SerializeObject(oldCode),
                                        NewValue    = JsonConvert.SerializeObject(model),
                                        Remarks     = $"修改服务码有效期:服务码开始时间从{oldCode.StartTime}变更为{model.StartTime},结束时间从{oldCode.EndTime}变更为{model.EndTime}",
                                        OperateUser = user,
                                    };
                                    LoggerManager.InsertLog("BeautyOprLog", log);
                                }
                                else
                                {
                                    throw new Exception($"快修服务修改服务码有效期失败,请求信息:{JsonConvert.SerializeObject(kxChangeCodeTimeModel)},返回信息:{JsonConvert.SerializeObject(kxChangeResult)}");
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
            }
            return(result);
        }