在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
还有半个小时下班,写点今天做的功能,打发打发时间. 两个类,订单类和序列号类.
订单类
1 class GroupOrder 2 include Mongoid::Document 3 include Mongoid::Timestamps 4 5 field :order_code, type: String 6 field :cellphone_num, type: String 7 field :quantity, type: Integer 8 field :state, type: String 9 10 has_many :verify_serial_nums 11 12 end 订单的state 用状态机来管理. 序列号类 class VerifySerialNum include Mongoid::Document include Mongoid::Timestamps field :code, type: String field :state, type: String belongs_to :group_order validates_uniqueness_of :code end
需求是这样的: 在一个订单创建并且付款成功之后,需要产生序列号,订单下有几件商品就产生多少个序列号.在订单的序列号产生完毕之后,调用短信接口给顾客发送短信. 序列号产生的方法是用ruby中SecureRandom类产生的. SecureRandom.uuid.gsub(/-/,"")[0..9] 限制10位验证码, validates_uniqueness_of :code 来唯一性验证. 短信内容要显示订单下的所有序列号,实现方法: #{self.verify_serial_nums.map(&:code).join(",")}
订单类下支付成功后创建多个序列号代码: 1 self.quantity.times do 2 begin 3 VerifySerialNum.create({ 4 :code => SecureRandom.uuid.gsub(/-/,"")[0..9], 5 :group_order => self 6 }) 7 rescue 8 redo 9 end 10 end 若产生的序列号不是惟一的,就redo 再次执行本次循环.
最后调用短信接口把短信内容和电话号码传过去就OK. content = "兑换码为:'#{self.verify_serial_nums.map(&:code).join(",")}'" Sender.send_code_channel(content, self.cellphone_num)
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论