代码HHH

call create_order_infos(7,2,3);
delimiter $$
create procedure create_order_infos(
in in_user_id int,
in in_product_id int,
in in_count int
)
begin
	-- 判断用户是否有消费资格
	declare count_money decimal(10,2); -- 用户余额
	declare out_price decimal(10,2); -- 产品价格
	declare all_price decimal(10,2); -- 总消费金额
	declare result_str varchar(200); -- 用于返回消息
	select balance  into count_money from user_wallet where user_id=in_user_id; -- 赋值有多少钱
	select price into out_price from product where product_id=in_product_id; -- 获取产品的单价
	
	set all_price=out_price * in_count; -- 总消费金额
	-- 判断是否能消费的起
	if all_price>count_money then
		set result_str = concat('金额不足',all_price,'您当前账户余额:',count_money,'请充值。');
		signal sqlstate '45000' set message_text=result_str;
end if;
-- 需要修改以及插入具体数据,共涉及到5张表的操作,2表修改,3个插入
update user_wallet set balance=balance-all_price where user_id=in_user_id; -- 1、修改用户钱包余额
update product set stock=stock-in_count where product_id=in_product_id; -- 1、修改产品表的产品数量
insert into user_wallet_log (user_id,transaction_type,amount)values(in_user_id,'消费',all_price); -- 3、添加消费日志
insert into user_wallet_log (user_id,transaction_type,amount)values `order`(user_id,order_status,payment_status,payment_time,total_price)values(in_user_id,'已支付',now(),all_price); --4、添加订单

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值