public ResponseModel UpdateAccountTimesCard(AccountTimesCard timesCard)
        {
            var userContext = GetUserContext();

            //1.入参校验:

            //1.1 参数为空
            if (timesCard == null)
            {
                return(Fail(ErrorCodeEnum.NullArguments));
            }
            ResponseModel checkResult;

            //1.2 参数校验-参数不合法
            if (CheckModelParams(out checkResult))
            {
                return(checkResult);
            }

            //1.3 参数校验-获取不到此计次卡信息
            var accountTimeCard = _userTimesCardService.GetAccountTimesCard(timesCard.Id, userContext.AccId);

            if (accountTimeCard == null)
            {
                return(Fail(ErrorCodeEnum.TimeCardGetById));
            }

            accountTimeCard.CardName = timesCard.CardName;
            //1.4 参数校验-是否存在该记录,卡名不能重复
            if (_userTimesCardService.ExistSameNameTimesCard(userContext.AccId,
                                                             accountTimeCard.CardName))
            {
                return(Fail(ErrorCodeEnum.TimeCardExistSameNameTimesCard));
            }

            var result = _userTimesCardService.UpdateAccountTimesCard(accountTimeCard, userContext);

            return(Success(result));
        }
        public ResponseModel AddAccountTimesCard(AccountTimesCard request)
        {
            ResponseModel rModel;
            var           userContext = GetUserContext();

            //1.入参校验:

            //1.1 参数为空
            if (request == null)
            {
                return(Fail(ErrorCodeEnum.TimeCardIsNullArguments));
            }

            request.AddTime  = DateTime.Now;
            request.EditTime = DateTime.Now;

            //1.2 参数校验-参数不合法
            if (CheckModelParams(out rModel))
            {
                return(rModel);
            }

            //1.3 参数校验-是否存在该记录,卡名不能重复
            if (_userTimesCardService.ExistSameNameTimesCard(userContext.AccId,
                                                             request.CardName))
            {
                return(Fail(ErrorCodeEnum.TimeCardExistSameNameTimesCard));
            }
            if (request.BindGoodsId == 0)
            {
                //1.4 参数校验-是否已经存在无限制计次卡类
                if (_userTimesCardService.ExistUnlimitedTimesCard(userContext.AccId))
                {
                    return(Fail(ErrorCodeEnum.TimeCardExistUnlimitedTimesCard));
                }
            }

            //1.5 参数校验-是否存在该记录,一个服务只能对应一个计次卡类
            if (_userTimesCardService.ExistServiceOnly(userContext.AccId, request.BindGoodsId))
            {
                return(Fail(ErrorCodeEnum.TimeCardExistServiceOnly));
            }

            //1.6 校验绑定的服务类商品是否存在
            if (request.BindGoodsId != 0)
            {
                var goodsinfo = _goodsService.GetGoodsInfoByGid(request.BindGoodsId, userContext);
                if (goodsinfo.Code != (int)ErrorCodeEnum.Success)
                {
                    return(Fail(ErrorCodeEnum.NotFoundServiceItem));
                }

                var gModel = (GoodsInfoSummary)goodsinfo.Data;
                //1.7 参数校验-必须为服务类商品
                if (gModel.IsService != 1)
                {
                    return(Fail(ErrorCodeEnum.TimeCardIsService));
                }
            }

            //TODO: 添加版本校验,是否添加多张计次卡


            //1.8 新增店铺计次卡
            var result = _userTimesCardService.AddAccountTimesCard(request, userContext);

            rModel = Success(result);
            return(rModel);
        }