捷信达会员管理系统SQL语句相关
USE gshis GO SET ANSI_NULLS, QUOTED_IDENTIFIER ON GO /******************************************************************************************* 名称: up_mbrdata更新会员资料 说明: 更新会员资料 作者: dxb 日期: 2005-12-23 execute up_mbrdata '','2005-01','2005-12' begin tran execute up_mbrdata @ActionType ='I',@c用户名 = 'abcccc',@c姓名 = '姓名' rollback tran select * from gsmbrcard where resortid = 0 select mbrcardno,* from gsprofile where netname = 'abcccc' 修改人:陈前良,修改时间:2006-8-31 17:55:55 修改原因:如果在新增会员的时候,未指定会员卡类型的话,则从系统参数设置中取默认会员卡类型 修改人:陈前良,修改时间:2007-3-15 10:59:18 修改原因:在新增时,@retCode设置为新增会员的profileid进行返回。 修改人:陈前良,修改时间:2007年4月29日13时51分 修改原因:1<添加参数@来源IP,将会员注册时的来源ip地址保存起来,以控制同一天同一ip上的注册人数 2<置是否审核的初始值为0 修改人:陈前良,修改时间:2007年6月20日10时13分 1<将是否审核,审核时间作为参数,网站中有一参数控制新增的会员是否需要审核,如不需要审核,则直接为审核通过状态 修改人:陈前良,修改时间:2007年10月17日 15时39分04秒 1<增加注册会员时,根据系统参数中的会员注册时默认业务员的值来给会员的业务员赋值,如果系统参数中没有设置,则默认为admin 修改人:陈前良,修改时间:2007年11月17日 15时23分11秒 1<增加注册会员时,会员的resortid默认为-1,而不是采用默认的null值 修改人:陈前良,修改时间:2008年6月18日 09时23分44秒 1<增加注册会员时,如果是自动发卡的,则同时将发卡日期,入会日期默认为当前日期,有效期默认为当前日期+40年,主卡标志为主卡,入会地点为会员管理中心,会员类型为个人,审核人为net 修改人:陈前良,修改时间:2008年10月31日09时53分07秒 1<修改了会员的有效期,如果不是自动发卡,则有效期默认为当前日期+10年 修改人:陈前良,修改时间:2009年11月25日 15时14分50秒 1<修改了注册时,判断用户名是否重复只在用户名不为空的情况下才检查,因为有些用户要求注册时不需要输入用户名 修改人:陈提见,修改时间:2012年5月10日11时50分02秒 1<加一个参数@pwd,可以传入明文的密码,在这里转换保存 修改人:周望平,2013-4-1 1<注册直接发放会员卡时,将会员isell标志直接为1 修改人:周望平 2013-11-1 1<web注册会员时,@c密码为null时,不插入888888 2<增加注册成功,返回有效期 modify:zwp 2014-12-3 9:36:33 desc:增加微信号 modify:zwp 2015-1-19 15:17:13 desc:增加guestename 修改人:Gavin 2015-01-21 1<添加 @ResortId参数 可以传递当前注册时是单点模式的resortid或者集团的resortid 修改人:王佳铭 判断手机号码,身份证号码不能重复添加了一个状态判断条件 select * from gssyspara where cname like '%会员卡号%' 1.增加ispertain,pertainto,主要是增加附属卡功能 bomber 2016-06-23 lisz 2016-06-30 增加一个判断是否是真正会员的@IsMember lisz 2016-07-11 非会员的不能有默认会员卡号的 modify:zwp 2016-8-24 8:39:01 desc:如果会员卡号是空的,发卡前根据系统参数【网络预订时是否直接发放会员卡号】判断是否要设置卡号 modify:zwp 2016-8-31 14:28:20 desc:会员修改的时候,增加IsPertain的过滤 modify:zwp 2016-9-7 14:06:04 desc:增加业务员传入 modify:zwp 2016-11-2 10:08:23 desc:会员有效期根据会员卡类型来取值 modify:zwp 2017-1-11 16:07:35 desc:修改会员资料时根据参数:新增会员时是否判断手机号的唯一性<新增会员时,是否检查证件号码唯一性,来判断是否验证 *******************************************************************************************/ CREATE procedure [dbo].[up_mbrdata] @ActionType varchar(1) = '', --'I':insert;'U':update;'D':delete. @retcode varchar(200)=null output, -- 返回码:>=1,成功;<0:失败. @retmsg varchar(200)=null output, -- 返回信息 @retMbrExpired char(10)=null output, -- 返回有效期 新版bookingservice 注册成功后显示 @c用户名旧 varchar(50) = null, --网络登录名旧(用于更新) @c用户名 varchar(50) = null, --网络登录名 @c密码 varchar(50) = null, @c姓名 varchar(50) = null, @c国家 varchar(50) = null, @c证照类型 varchar(50) = null, @c证照号码 varchar(50) = null, @cemial varchar(50) = null, @c性别 varchar(5) = null, @c出生日期 varchar(20) = null, --格式:YYYY-MM-DD @c家庭电话 varchar(50) = null, @c公司电话 varchar(50) = null, @c移动电话 varchar(50) = null, @c传真号码 varchar(50) = null, @c邮政编码 varchar(50) = null, @c地址 varchar(100) = null, @c信用卡号 varchar(50) = null, @c要求 varchar(200) = null, @c会员种类 varchar(20) = null, @c会员号 varchar(20) = null, @c会员卡号 varchar(30) = null, @c会员卡类型 varchar(10) = null, @c是否充值 int = null, @c折扣代码 varchar(10) = null, @c入会日期 datetime = null, @c有效期至 datetime = null, @c入会地点 varchar(100)= null, @c工作单位 varchar(100)= null, @c职业 varchar(20) = null, @c职务 varchar(30) = null, @c兴趣爱好 varchar(100)= null, @c禁忌 varchar(100)= null, @c特殊要求 varchar(100)= null, @c备注 varchar(200)= null, @ResortId int = null, --单点模式下用单点resortid 酒店就用设置的集团id @c会员ID varchar(500)= null output, -- 多个ID以,隔开 @来源IP varchar(30) = null, --会员来源ip地址,用以限制同一ip一天的新注册人数 @isAudit int = 0,--审核状态,默认为0,未审核 @auditDate datetime = null,--审核时间,默认为未审核,没有审核时间 @pwd varchar(30) = null, --密码,明文 @weixin varchar(30)=null, --微信号 @Salutation varchar(20)=null, -- 称呼 @netpwd varchar(50) = null, --网上登录密码 @guestename varchar(50)=null , @ispertain integer = 0 , --主卡附属卡标志 ,注册会员用到 @pertainto varchar(30) = NULL, --主卡客历号 ,注册会员用到 @IsMember tinyint =NULL, --是否为真正的会员 @ActionName varchar(30) = null , @NotSendMsg integer = 0, -- 是否不发短信<微信推送 bomber 2016-08-30 @sales VARCHAR(20) = null , @introducer varchar(30) = NULL, --介绍人客历号 bomber 2017-01-19 @PersonOrTeam varchar(1) = NULL, --微信注册会员时,标记是个人会员还是团体会员,默认个人 zhangxp 20170413 @RfCardNo varchar(30) =null , --感应卡号 add by dongl 2017-08-14 @reason varchar(60) = null,--入住原因 @isElevator varchar(60) = null,--电梯要求 @smoke varchar(60) = null,--吸烟喜好 @bedType varchar(60) = null,--床型要求 @floors varchar(60) = null ,--楼层喜好 @descriptions varchar(200) = null--客史档案 WITH ENCRYPTION as begin declare @error_var int declare @issell int set @issell=0 set @retcode = 1 set @retMbrExpired='' IF(@IsMember IS NULL OR LEN(@IsMember)<=0) BEGIN SET @IsMember=1 END --处理默认分店id if @ResortId is null begin select top 1 @ResortId = resortid from gsresort where havegshis=1 order by orderby end if @pwd is not null --明文的转为密码保存 begin set @c密码 = dbo.uf_encrypt(@Pwd,1) end set @c性别 = case @c性别 when '男' then 'M' when '女' then 'F' else @c性别 end --判断手机号码,身份证号码不能重复 (null对于修改时是允许的因为null即是不修改) if @c证照号码 = '' AND @c移动电话= ''and @c用户名 = '' begin set @retcode = -1 set @retmsg = '证件号和手机号不能同时为空,请重新录入!' return END DECLARE @isCheckMobileNo VARCHAR(20), @isCheckCertificateNo VARCHAR(20) SELECT @isCheckMobileNo=ISNULL(Value,0) FROM dbo.gsSyspara WHERE code='isCheckMobileNo' --新增会员时是否判断手机号的唯一性 SELECT @isCheckCertificateNo=ISNULL(Value,0) FROM dbo.gsSyspara WHERE code='isCheckCertificateNo' --新增会员时,是否检查证件号码唯一性 if upper(@ActionType) = 'I' BEGIN if isnull(@ispertain,0) <> 1 begin --判断手机号码,身份证号码不能重复 if isnull( @c证照号码,'') = '' and isnull( @c移动电话,'') = '' and isnull(@c用户名,'') = '' begin set @retcode = -1 set @retmsg = '证件号和手机号不能同时为空,请重新录入!' return end --判断手机号码,身份证号码不能重复 if isnull(@ActionName,'') <> 'New' begin declare @checkMobile varchar(10) select @checkMobile=value from gsSyspara where code='IsCheckMobileRepet' if(@checkMobile='1') begin if exists(select * from gsprofile where ismember = @IsMember and Mobile = @c移动电话) and @c移动电话 <> '' begin set @retcode = -1 set @retmsg = '此手机号码已经被注册,请重新录入!' return end end --判断手机号码,身份证号码不能重复 if exists(select * from gsprofile where ismember = @IsMember and CertificateNo = @c证照号码) and @c证照号码 <> '' begin set @retcode = -1 set @retmsg = '此证件号码已经被注册,请重新录入!' return end end if isnull(@c用户名,'')<>'' and exists(select 1 from gsprofile where ismember = @IsMember and NetName = @c用户名) begin set @retcode = -1 set @retmsg = '此用户名'+@c用户名+'已存在,请重新输入!' return end end begin declare @issueTime datetime--,--发卡日期 --@IsPertain tinyint--是否附卡 if @c会员卡类型 is NULL AND @IsMember=1 BEGIN ----------zhangxp 20170504 推荐人如果是团体会员就按照推荐人的会员卡类型 SELECT @c会员卡类型=MbrCardType FROM gsProfile WHERE ProfileID=@introducer AND wechatmembertype='T' if ISNULL(@c会员卡类型,'')='' BEGIN IF @PersonOrTeam = 'T' ---如果是团体会员(Team) 就根据系统参数获取会员卡类型 BEGIN select @c会员卡类型=Value from gssyspara where code = 'NetNewTeamMbrDefaultCardType' END ELSE BEGIN select @c会员卡类型=Value from gssyspara where code = 'NetNewMbrDefaultCardType' --'DefaultMbrCardType' 改成Web新增会员的默认会员卡类型 bomber 2016-08-19 END END end --是否自动生成会员卡 if isnull(@c会员卡号,'')='' AND @IsMember=1 begin --如果是自动生成卡但没有卡号, create table #temp_cardno (iscardno int ,cardno varchar(30),cardType varchar(30)) --2018年4月19日18:25:38 --修改gsmbrcard表时,需要写入profileid,不然在统计发卡记录表中查不到数据,up_gsIsGettingCardNoOnRegister未修改profileid insert into #temp_cardno execute up_gsIsGettingCardNoOnRegister @cardType = @c会员卡类型 select @c会员卡号 = cardno from #temp_cardno end if isnull(@c会员卡号,'')<>'' --如果同时发会员卡号,则此会员的审核状态置为审核通过,不论参数中的值是什么 begin set @isAudit = 1 set @issell=1 --直接发放会员卡,会员出售标志 set @auditDate = getdate() --如果是直接发放会员卡,则给相关参数赋默认值 set @issueTime = getdate() set @c入会日期 = getdate() DECLARE @mon INT SELECT @mon=ISNULL(ExpiredTimelong,120) FROM gsmbrcardtype WHERE Code=@c会员卡类型 set @c有效期至 = dateadd(MONTH,@mon,getdate()) set @c入会地点 = '会员管理中心' set @c会员种类 = 'P' end else begin SET @c有效期至 = dateadd(year,10,getdate()) end --增加默认入会日期功能 bomber 2016-12-21 if @ActionName = 'New' and @c入会日期 is null begin set @issueTime = getdate() set @c入会日期 = getdate() end set @retMbrExpired=convert(char(10),@c有效期至,120) --把时分秒去掉,不然在会员系统中按有效期查询会员会有问题 declare @mbrExpiredStr char(10) set @mbrExpiredStr= convert(char(10), @c有效期至,120) declare @defaultSale varchar(60) IF(ISNULL(@sales,'')='') begin select @defaultSale=value from gssyspara where workstationid='0' and code = 'DefaultSales' if @defaultSale is null set @defaultSale = 'admin' END ELSE SET @defaultSale=@sales if(@c折扣代码 is null) --zwp 98479 begin select @c折扣代码=discountcode from gsmbrcardtype where code=@c会员卡类型 end --xiongm 2015-10-10 根据卡类型记录默认是否可充值属性 if @c是否充值 is null select @c是否充值=ischargable from gsmbrcardtype where code=@c会员卡类型 insert into gsprofile(guesttype,ismember,Status,ModifiedDate,Modificator, CreateDate,Creator,NetName,CardPassword,GuestCName, Nationality,CertificateType,CertificateNo,Email,Gender, Birthday,tel,OfficeTel,Mobile,fax, ZipCode,Address,Special,MemberType,PaymentCode, MbrCardNo,mbrcardtype,IsChargable,DiscountCode,EffectDate, MbrExpired,InAddress,Company,Occupation,DutyTitle, Interests, Taboo, Remark,FromIp,isaudit, audittime,sales,resortId,issueTime,IsPertain, cardIssuer,auditor,issell,weixinname,Salutation, netpwd,guestename,pertainto,notsendmsg ,introducer,wechatmemberType, RFCardNo ,--感应卡号 add by dongl 2017-08-14 reason,isElevator,smoke,bedType,floors,descriptions ) values('I',@IsMember,0,getdate(),'Net', getdate(),'Net',@c用户名,@c密码, @c姓名, @c国家,@c证照类型,@c证照号码,@cemial,@c性别, @c出生日期,@c家庭电话,@c公司电话,@c移动电话,@c传真号码, @c邮政编码,@c地址,@c要求 ,@c会员种类,@c信用卡号, @c会员卡号,@c会员卡类型,@c是否充值,@c折扣代码,@c入会日期, @mbrExpiredStr,@c入会地点,@c工作单位,@c职业,@c职务, @c兴趣爱好,@c禁忌,@c备注,@来源IP,@isAudit, @auditDate,@defaultSale, @ResortId,@issueTime,@IsPertain, 'Net','Net' ,@issell,@weixin,@Salutation, @netpwd,@guestename,@pertainto ,isnull(@NotSendMsg,0) ,@introducer,@PersonOrTeam, @RfCardNo ,--感应卡号 add by dongl 2017-08-14 @reason,@isElevator,@smoke,@bedType,@floors,@descriptions ) select @retcode = IDENT_CURRENT('gsprofile') --得到profileid 2018年4月19日18:28:57 set @error_var = @@error if @error_var <> 0 begin set @retcode = -1 set @retmsg = '插入会员资料出错,错误代码:'+convert(varchar,@error_var) return end --皇室要求新增会员有个卡号啥的 ,bomber 2016-07-14 if @ActionName = 'New' begin declare @isSendCardNO varchar(60) select @isSendCardNO=value from gssyspara where code = 'IsGettingCardNoOnRegister' --如果是新增的会员,卡号为空的话,默认个会员卡号给它 if (isnull(@c会员卡号,'') = '' and @isSendCardNO='1') begin Set @c会员卡号 = 'S' + right('0000000000' + convert(varchar(10),@retcode),10) Update gsProfile set MbrCardno = @c会员卡号 , MbrSeqNo = @c会员卡号 , RfCardno = @c会员卡号 where Profileid = @retcode end if isnull(@introducer,'') <> '' and isnumeric(@introducer) = 1 begin --增加新办会员介绍人奖励积分政策,既新办的会员是通过介绍人(微信扫码,系统新增/售卡功能)办理的会员,则奖励介绍人200积分(积分可调整)。 --bomber 2017-03-03 jobid = 110861 exec up_gsMbrGenProfileBounty @ProfileID = @retcode end end --微信注册会员时,需要向发卡记录表gsMbrIsSuecardLog中插入数据 add by dongl 2018年4月20日11:43:38 insert into gsMbrIsSuecardLog(profileid,MbrSeqNo,MbrCardNo,RFCardNo,MbrCardType,CreateDate,Creator,OutletCode,sueFlag,modificator,modifieddate,ResortID,CreatebsnsDate) values(@retcode,'',@c会员卡号,@RfCardNo,@c会员卡类型,getdate(),'admin','',2,'admin',getdate(),@ResortId,'') end end else if upper(@ActionType) = 'U' begin if @c用户名旧 is null or @c用户名旧='' begin --判断手机号码,身份证号码不能重复 if exists(select * from gsprofile where ismember = @IsMember and Status=0 and Mobile = @c移动电话 AND IsPertain!=1 and profileid not in (select sReturn from uf_string2table(@c会员ID,',')) ) and @c移动电话 <> '' AND @isCheckMobileNo='1' begin set @retcode = -1 set @retmsg = '此手机号码已经被注册,请重新录入' return end --判断手机号码,身份证号码不能重复 if exists(select * from gsprofile where ismember = @IsMember and CertificateNo = @c证照号码 and profileid not in (select sReturn from uf_string2table(@c会员ID,','))) and @c证照号码 <> '' AND @isCheckCertificateNo='1' begin set @retcode = -1 set @retmsg = '此证件号码已经被注册,请重新录入!' return end update gsprofile set ModifiedDate = getdate(), Modificator = 'Net', NetName = isnull(@c用户名,netname), --网络登录名 netpwd = isnull(@netpwd,netpwd), CardPassword = isnull(@c密码,CardPassword), GuestCName = isnull(@c姓名,GuestCName), Nationality = isnull(@c国家,Nationality), CertificateType= isnull(@c证照类型,CertificateType), CertificateNo = isnull(@c证照号码,CertificateNo), Email = isnull(@cemial,Email), Gender = isnull(@c性别,Gender), Birthday = isnull(@c出生日期,Birthday), --格式:YYYY-MM-DD tel = isnull(@c家庭电话,tel), OfficeTel = isnull(@c公司电话,OfficeTel), Mobile = isnull(@c移动电话,Mobile), fax = isnull(@c传真号码,fax), ZipCode = isnull(@c邮政编码,ZipCode), Address = isnull(@c地址,Address), Special = isnull(@c要求,Special), MemberType = isnull(@c会员种类,MemberType), PaymentCode = isnull(@c信用卡号,PaymentCode), MbrCardNo = isnull(@c会员卡号,MbrCardNo), mbrcardtype = isnull(@c会员卡类型,mbrcardtype), IsChargable = isnull(@c是否充值,IsChargable), DiscountCode = isnull(@c折扣代码,DiscountCode), EffectDate = isnull(@c入会日期,EffectDate), MbrExpired = isnull(@c有效期至,MbrExpired), InAddress = isnull(@c入会地点,InAddress), Company = isnull(@c工作单位,Company), Occupation = isnull(@c职业,Occupation), DutyTitle = isnull(@c职务,DutyTitle), Interests = isnull(@c兴趣爱好,Interests), Taboo = isnull(@c禁忌 ,Taboo), Remark = isnull(@c备注,Remark), weixinname =isnull(@weixin,weixinname), Salutation =isnull(@Salutation,Salutation), guestename=isnull(@guestename,guestename) , notsendmsg = isnull(@NotSendMsg,0) , --是否不发短信,微信推送 bomber 2016-08-30 introducer = case when isnull(@introducer,'') = '' then introducer else @introducer end , ispertain = isnull(@ispertain,ispertain), PertainTo = isnull(@PertainTo,PertainTo) , reason = isnull(@reason,reason), isElevator = isnull(@isElevator,isElevator), smoke = isnull(@smoke,smoke), bedType = isnull(@bedType,bedType), floors = isnull(@floors,floors), descriptions = isnull(@descriptions,descriptions) where ismember = @IsMember and profileid in (select sReturn from uf_string2table(@c会员ID,',')) if isnull(@RfCardNo,'')<>'' begin update gsprofile set RFCardNo = isnull(@RfCardNo,RFCardNo) --感应卡号 add by dongl 2017-08-14 where ismember = @IsMember and profileid = @c会员ID end set @error_var = @@error if @error_var <> 0 begin set @retcode = -1 set @retmsg = '删除会员资料出错,错误代码:'+convert(varchar,@error_var) return end end else begin if not exists(select 1 from gsprofile where ismember = @IsMember and NetName = @c用户名旧) begin set @retcode = -1 set @retmsg = '此用户名[ '+@c用户名旧+' ]不存在,不能修改!' return end begin update gsprofile set ModifiedDate = getdate(), Modificator = 'Net', NetName = isnull(@c用户名,netname), --网络登录名 netpwd = isnull(@netpwd,netpwd), CardPassword = isnull(@c密码,CardPassword), GuestCName = isnull(@c姓名,GuestCName), Nationality = isnull(@c国家,Nationality), CertificateType= isnull(@c证照类型,CertificateType), CertificateNo = isnull(@c证照号码,CertificateNo), Email = isnull(@cemial,Email), Gender = isnull(@c性别,Gender), Birthday = isnull(@c出生日期,Birthday), --格式:YYYY-MM-DD tel = isnull(@c家庭电话,tel), OfficeTel = isnull(@c公司电话,OfficeTel), Mobile = isnull(@c移动电话,Mobile), fax = isnull(@c传真号码,fax), ZipCode = isnull(@c邮政编码,ZipCode), Address = isnull(@c地址,Address), Special = isnull(@c要求,Special), MemberType = isnull(@c会员种类,MemberType), PaymentCode = isnull(@c信用卡号,PaymentCode), MbrCardNo = isnull(@c会员卡号,MbrCardNo), mbrcardtype = isnull(@c会员卡类型,mbrcardtype), IsChargable = isnull(@c是否充值,IsChargable), DiscountCode = isnull(@c折扣代码,DiscountCode), EffectDate = isnull(@c入会日期,EffectDate), MbrExpired = isnull(@c有效期至,MbrExpired), InAddress = isnull(@c入会地点,InAddress), Company = isnull(@c工作单位,Company), Occupation = isnull(@c职业,Occupation), DutyTitle = isnull(@c职务,DutyTitle), Interests = isnull(@c兴趣爱好,Interests), Taboo = isnull(@c禁忌 ,Taboo), Remark = isnull(@c备注,Remark), weixinname =isnull(@weixin,weixinname), Salutation =isnull(@Salutation,Salutation), guestename=isnull(@guestename,guestename) , notsendmsg = isnull(@NotSendMsg,0), --是否不发短信,微信推送 bomber 2016-08-30 introducer = case when isnull(@introducer,'') = '' then introducer else @introducer end , PertainTo = isnull(@PertainTo,PertainTo) , reason = isnull(@reason,reason), isElevator = isnull(@isElevator,isElevator), smoke = isnull(@smoke,smoke), bedType = isnull(@bedType,bedType), floors = isnull(@floors,floors), descriptions = isnull(@descriptions,descriptions) where ismember = @IsMember and NetName = @c用户名旧 set @error_var = @@error if @error_var <> 0 begin set @retcode = -1 set @retmsg = '更新会员资料出错,错误代码:'+convert(varchar,@error_var) return end end end end else if upper(@ActionType) = 'D' begin if @c用户名旧 is null or @c用户名旧='' BEGIN delete from gsprofile where ismember = @IsMember and profileid in (select sReturn from uf_string2table(@c会员ID,',')) set @error_var = @@error if @error_var <> 0 begin set @retcode = -1 set @retmsg = '删除会员资料出错,错误代码:'+convert(varchar,@error_var) return end end else begin if not exists(select 1 from gsprofile where ismember =@IsMember and NetName = @c用户名旧) begin set @retcode = -1 set @retmsg = '此用户名[ '+@c用户名旧+' ]不存在,不能删除!' return end begin delete from gsprofile where ismember = @IsMember and NetName = @c用户名旧 set @error_var = @@error if @error_var <> 0 begin set @retcode = -1 set @retmsg = '删除会员资料出错,错误代码:'+convert(varchar,@error_var) return end end end end else begin set @retcode = -1 set @retmsg = '更新类型不对!' return end return end GO
网名:浩秦; 邮箱:root#landv.pw; 只要我能控制一個國家的貨幣發行,我不在乎誰制定法律。金錢一旦作響,壞話隨之戛然而止。