예제 #1
0
        /// <summary>
        /// 激活会员(外用)
        /// </summary>
        /// <param name="memberid"></param>
        /// <param name="phone"></param>
        /// <param name="activecode"></param>
        /// <returns></returns>
        public string ActiveMember(int memberid, string phone, string activecode, bool isauto, int souceid = 0)
        {
            string result = "0";

            if (isauto)
            {
                activecode = ActiveCodeDAL.GetRedamActiveCode(1);
            }
            MemberInfoModel member = null;

            if (memberid != 0)
            {
                member = MemberInfoDAL.GetNotActiveMember(memberid);
            }
            if (!string.IsNullOrWhiteSpace(phone))
            {
                member = MemberInfoDAL.GetMember(phone);
            }
            if (member == null)
            {
                result = "0无此会员";
                return(result);
            }
            if (member.MStatus != 1)
            {
                result = "0会员状态不正确";
                return(result);
            }
            ActiveCodeModel activecodemodel = ActiveCodeDAL.GetActiveCodeExtendModel(activecode);

            if (activecodemodel == null)
            {
                result = @"0无此激活码";
                return(result);
            }
            if (activecodemodel.AType == 2)
            {
                result = @"0激活码类型选择不正确";
                return(result);
            }
            if (activecodemodel.AStatus == 10)
            {
                result = @"0激活码已经使用";
                return(result);
            }
            if (activecodemodel.AMStatus == 3)
            {
                result = @"0激活码已经过期";
                return(result);
            }
            using (TransactionScope scope = new TransactionScope())
            {
                //更改会员的状态
                int rowcount = MemberInfoDAL.UpdateStatus(member.ID, 2);
                if (rowcount < 1)
                {
                    result = "0更新会员状态失败";
                    return(result);
                }
                //更改激活码的状态
                rowcount = ActiveCodeDAL.UpdateStatus(activecodemodel.ID, 10);
                if (rowcount < 1)
                {
                    result = "0更新激活码状态失败";
                    return(result);
                }
                if (activecodemodel.MID > 0)
                {
                    //更改会员机会码的使用状态
                    if (souceid > 0)
                    {
                        rowcount = ActiveCodeDAL.UpdateMemberActiveCodeToUse(souceid, member.MobileNum, activecodemodel.ActivationCode);
                        if (rowcount < 1)
                        {
                            result = "0更新会员激活码表状态失败";
                            return(result);
                        }
                    }
                    else
                    {
                        rowcount = ActiveCodeDAL.UpdateMemberActiveStatus(activecodemodel.MID, 2);
                        if (rowcount < 1)
                        {
                            result = "0更新会员激活码表状态失败";
                            return(result);
                        }
                    }
                    //插入使用日志
                    ActiveCodeLogModel logmodel = new ActiveCodeLogModel();
                    logmodel.ActiveCode  = activecodemodel.ActivationCode;
                    logmodel.Addtime     = DateTime.Now;
                    logmodel.AID         = activecodemodel.ID;
                    logmodel.MemberID    = activecodemodel.MemberID;
                    logmodel.MemberName  = activecodemodel.MemberName;
                    logmodel.MemberPhone = activecodemodel.MemberPhone;
                    logmodel.Remark      = "为会员:" + member.MobileNum + " 激活";
                    rowcount             = OperateLogDAL.AddActiveCodeLog(logmodel);
                    if (rowcount < 1)
                    {
                        result = "0写入日志失败";
                        return(result);
                    }
                }
                scope.Complete();
                result = "1";
            }
            return(result);
        }