时间:2021-05-23
1.GM_JF客户账户积分表
2. GM_JF_DETAIL客户账户积分消费记录
3. GM_JF_ACTION _RULES积分动作规则表
4.GM_JF_GOODS _RULES积分商品规则表
复制代码 代码如下:
-- ===============测试=======================================================
-- ===========================================================================
/*
* 判断是否重复获取积分(首次完善个人资料,首次修改密码等等不能重复获取积分)
* 判断是根据 从GM_JF_DETAIL(详情表)查询周期内的数据条数与GM_JF_ACTION_RULES(动作规则表)内的周期重复次数对比
* 如果大于等于周期重复次数,则为重复获取积分
* 接下来
* 1.详情表的数据入库
* 2.判断总积分表是否存在对应客户的总积分 没有则插入一条新的,有 则读取其数据,并更新
*
*/
ALTER PROCEDURE [dbo].[sp_GM_JF_AddScore]
@ACCOUNT_ID varchar(30),
@JF_CategoryNumber varchar(15),
@CARD_NUM int,
@HQ_JF_AMOUNT int,
@State varchar(16),
@USE_DESC varchar(400),
@StatusCode int output -- 状态码: 0:失败 1:成功 2: 不能重复获取
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare
@repetitionsCycle float=0, --周期(天)
@repetitionsCycle_second int=0,--周期(秒)
@repetitionsFrequency int=0, --一个周期内允许最大次数
@realFrequency int=0, --实际周期
@USE_DATE datetime = GETDATE();
--是否重复获取积分
select top(1) @repetitionsCycle=RepetitionsCycle,@repetitionsFrequency=RepetitionsFrequency from GM_JF_ACTION_RULES where AN_CategoryNumber=@JF_CategoryNumber;
if(@repetitionsCycle<1)
BEGIN
set @repetitionsCycle_second = (@repetitionsCycle-1)*24*60*60;
select @realFrequency=COUNT(1) from GM_JF_DETAIL where ACCOUNT_ID=@ACCOUNT_ID and JF_CategoryNumber=@JF_CategoryNumber and USE_DATE <= @USE_DATE and USE_DATE >= CONVERT(varchar(19),DATEADD(SECOND,-@repetitionsCycle_second,@USE_DATE),120)
END
ELSE
BEGIN
select @realFrequency=COUNT(1) from GM_JF_DETAIL where ACCOUNT_ID=@ACCOUNT_ID and JF_CategoryNumber=@JF_CategoryNumber and USE_DATE <= @USE_DATE and USE_DATE >= CONVERT(varchar(10),DATEADD(DAY,-(@repetitionsCycle-1),@USE_DATE),120)
END
if(@realFrequency>=@repetitionsFrequency) --实际周期大于周期次数
begin
set @StatusCode = 2;
return 2;
end
declare @count int = 0; --数据条数
declare @temp_table table --表变量
(
ACCOUNT_ID varchar(30),
JF_AMOUNT decimal(16,2),
TTL_JF_AMOUNT decimal(16,2),
Last_Update_Time datetime,
[Version] int
);
begin tran;
--插入详情
insert into GM_JF_DETAIL
(ACCOUNT_ID,JF_CategoryNumber,CARD_NUM,HQ_JF_AMOUNT,[State],USE_DESC)
values
(@ACCOUNT_ID,@JF_CategoryNumber,@CARD_NUM,@HQ_JF_AMOUNT,@State,@USE_DESC)
--填充表变量
insert into @temp_table select ACCOUNT_ID,JF_AMOUNT,TTL_JF_AMOUNT,Last_Update_Time,[Version] from GM_JF where ACCOUNT_ID=@ACCOUNT_ID
select @count = count(1) from @temp_table;
--判断并更新总积分(0:添加 其他:修改)
IF(@count=0)
begin
insert into GM_JF(ACCOUNT_ID,JF_AMOUNT,TTL_JF_AMOUNT)
values
(@ACCOUNT_ID,@HQ_JF_AMOUNT,@HQ_JF_AMOUNT)
end
else
begin
declare @JF_AMOUNT int, --总积分
@TTL_JF_AMOUNT int, --可用积分
@Version int; --版本号
select @JF_AMOUNT=JF_AMOUNT,@TTL_JF_AMOUNT=TTL_JF_AMOUNT,@Version=[Version] from @temp_table where ACCOUNT_ID=@ACCOUNT_ID;
update GM_JF set JF_AMOUNT=(@JF_AMOUNT+@HQ_JF_AMOUNT),TTL_JF_AMOUNT=(@TTL_JF_AMOUNT+@HQ_JF_AMOUNT),Last_Update_Time=GETDATE(),[Version]=(@Version+1) where ACCOUNT_ID=@ACCOUNT_ID
end
Commit tran;
set @StatusCode = 1;
IF(@@ERROR<>0)
BEGIN
set @StatusCode = 0;
ROLLBACK tran;
END
END
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
收天猫积分是天猫为了鼓励顾客积极消费而做出的一种营销方式,通过不断的购买产品增加积分,以更高的积分获取更多的便利和好处。可以用来兑换该店铺的折扣券,而且在类似于
这篇文章主要介绍了sql获取存储过程返回数据过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下就是在执行
天猫积分怎么用?天猫积分获取方式是什么,在天猫与淘宝经常购物的小伙伴们应该都知道买东西会有积分,这个天猫积分之前是可以直接抵现的,但现在天猫取消了这个功能,所以
天猫88折卡获取方法是: 1、不同会员等级的会员可获取的88会员折扣卡不同,会员需达到指定会员等级方可消耗积分获取对应会员等级88会员折扣卡的获取资格。 2
天猫超市88会员折扣卡领取规则: 1、不同会员等级的会员可获取的88会员折扣卡不同,会员需达到指定会员等级方可消耗积分获取对应会员等级88会员折扣卡的获取资格