issue voucher for campaign的流程

代码在controllers/csa.php 的request_issue()里

 

主要的流程是$this->voucher_api_campaign->campaign_request_issue( $option );

在models/campign_voucher.php  的 campaign_request_issue()内

1.将相关voucher锁住

2.创建batch记录

$batch_id = $this->create_vouchers_batch_by_numbers( $prefix, $suffix, $first, $last );

3.插入记录到 Table -> voucher_request_approve 

4.通过voucher_action_insert_by_prefix_suffix() 插入voucher_action 表

5.插入voucher_campaign_issue_request 记录 campaign_id 和 request_id

6.最后整理notinotification的一些数据发送邮件

 

大致的过程如上。

关于mysql having的使用

以前不常用这个函数having,今天一个东西要对比不同的数据。我就有点摸不着头脑了,应为以前对写mysql sql并不是很熟练,然后鸿池发给我如下SQL语句:

 

其中用到了having 对查询出来的数据与表里的issued_amount进行对比,找出数据不相同的行,很好用。