|
@@ -78,6 +78,10 @@ class Order extends Backend
|
|
|
if ($params) {
|
|
|
$params = $this->preExcludeFields($params);
|
|
|
|
|
|
+ if ($params['num']<=0) {
|
|
|
+ $this->error('生成码数量需要大于0!');
|
|
|
+ }
|
|
|
+
|
|
|
if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
|
|
|
$params[$this->dataLimitField] = $this->auth->id;
|
|
|
}
|
|
@@ -92,6 +96,45 @@ class Order extends Backend
|
|
|
}
|
|
|
//pengchanglu
|
|
|
$params['orderid'] = 's'. date("YmdHis") . mt_rand(100, 999);
|
|
|
+
|
|
|
+ //绑定码
|
|
|
+ $list = Db::query('SELECT id FROM `pi_p_code` WHERE `admin_id` = '.$this->auth->id.' AND `orderid` = \'\' ORDER BY `id` ASC LIMIT 0,'.$params['num'].'; ');
|
|
|
+
|
|
|
+ //$list = Db::query('SELECT id FROM `pi_p_code` WHERE `admin_id` = 4 AND `orderid` = \'\' ORDER BY `id` ASC LIMIT 0,'.$params['num'].'; ');
|
|
|
+ if (!$list) {
|
|
|
+ $this->error('溯源码为空,请先购买!');
|
|
|
+ }
|
|
|
+
|
|
|
+ $str = $list[0]['id'] . '-' ;//码段
|
|
|
+ $step = 0;
|
|
|
+ $sql = 'UPDATE `pi_p_code` SET `orderid` = \''.$params['orderid'].'\' WHERE `id` IN (' ;
|
|
|
+
|
|
|
+ foreach ($list as $k => $v) {
|
|
|
+ $sql .= $v['id'].',';
|
|
|
+ if ($k>0) {
|
|
|
+ if ($list[$k-1]['id']+1 != $list[$k]['id']) {
|
|
|
+ if ($step < 1) {
|
|
|
+ $str = rtrim($str, '-');
|
|
|
+ $str .= ','.$list[$k]['id'].'-' ;//码段
|
|
|
+ } else {
|
|
|
+ $str .= $list[$k-1]['id'].','.$list[$k]['id'].'-' ;//码段
|
|
|
+ }
|
|
|
+ $step = 0;
|
|
|
+ } else {
|
|
|
+ $step ++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $sql = rtrim($sql, ',');
|
|
|
+ $sql .= ');';
|
|
|
+ Db::execute($sql);
|
|
|
+ if ($step == 0) {
|
|
|
+ $params['code'] = rtrim($str, '-');
|
|
|
+ } else {
|
|
|
+ $params['code'] = $str.$list[count($list)-1]['id'];
|
|
|
+ }
|
|
|
+
|
|
|
$result = $this->model->allowField(true)->save($params);
|
|
|
Db::commit();
|
|
|
} catch (ValidateException $e) {
|