|
@@ -0,0 +1,136 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace Agent\Lib;
|
|
|
+
|
|
|
+use Dever;
|
|
|
+
|
|
|
+class Tool
|
|
|
+{
|
|
|
+ public function __construct()
|
|
|
+ {
|
|
|
+ Dever::load('manage/auth.init');
|
|
|
+ }
|
|
|
+
|
|
|
+ # 更换权益
|
|
|
+ public function setGoods_api()
|
|
|
+ {
|
|
|
+ # 权益类型
|
|
|
+ $type = Dever::input('type', 1);
|
|
|
+ # 权益类型id
|
|
|
+ $type_id = Dever::input('type_id', 1);
|
|
|
+
|
|
|
+ # 替换的权益类型
|
|
|
+ $set_type = Dever::input('set_type', 1);
|
|
|
+ # 替换权益类型id
|
|
|
+ $set_type_id = Dever::input('set_type_id', 1);
|
|
|
+
|
|
|
+ $mid = Dever::input('mid');
|
|
|
+
|
|
|
+ $where['type'] = $type;
|
|
|
+ $where['type_id'] = $type_id;
|
|
|
+
|
|
|
+ if ($mid) {
|
|
|
+ $where['mid'] = $mid;
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = Dever::db('agent/member_goods')->getAll($where);
|
|
|
+
|
|
|
+ if ($data) {
|
|
|
+ $desc = '更换权益';
|
|
|
+ foreach ($data as $k => $v) {
|
|
|
+ if ($v['num'] > 0) {
|
|
|
+ # 生成新的权益
|
|
|
+ $mid = $v['mid'];
|
|
|
+ $total = $v['num'];
|
|
|
+ $w = array();
|
|
|
+ $w['type'] = $set_type;
|
|
|
+ $w['type_id'] = $set_type_id;
|
|
|
+ $w['sku_id'] = -1;
|
|
|
+ $w['mid'] = $v['mid'];
|
|
|
+ $w['clear'] = true;
|
|
|
+ $cash = $price = 0;
|
|
|
+
|
|
|
+ if ($set_type == 1) {
|
|
|
+ $goods_info = Dever::load('goods/lib/info')->getInfoBySku($w['type_id'], $w['sku_id']);
|
|
|
+ $price = $goods_info['price'];
|
|
|
+ $cash = $goods_info['price'] * $total;
|
|
|
+ if (isset($goods_info['sku'])) {
|
|
|
+ $sku = '-' . $goods_info['sku']['string'];
|
|
|
+ } else {
|
|
|
+ $sku = '';
|
|
|
+ }
|
|
|
+ $name = $goods_info['name'] . $sku;
|
|
|
+ } elseif ($set_type == 2) {
|
|
|
+ # 体验卡
|
|
|
+ $card = Dever::db('card/info')->find($w['type_id']);
|
|
|
+ if (!$card) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $name = $card['name'];
|
|
|
+ if ($sku_id == -1) {
|
|
|
+ if ($card['create_type'] == 2) {
|
|
|
+ $cash = $price = $card['value'] * $total;
|
|
|
+ $total = 1;
|
|
|
+ $w['sku_id'] = Dever::load('card/lib/code')->create($card, 2, $mid, -1, $cash);
|
|
|
+ if (!$w['sku_id']) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ($card['create_type'] == 3 && isset($v['price']) && $v['price'] > 0) {
|
|
|
+ $card['value'] = $v['price'];
|
|
|
+ }
|
|
|
+ $cash = $price = $card['value'];
|
|
|
+ for($i=0; $i<$total;$i++) {
|
|
|
+ $w['sku_id'] = Dever::load('card/lib/code')->create($card, 2, $mid, -1, $cash);
|
|
|
+ if ($w['sku_id']) {
|
|
|
+ $w['total_num'] = 1;
|
|
|
+ $w['cash'] = $cash;
|
|
|
+ $w['price'] = $price;
|
|
|
+ $w['name'] = $name;
|
|
|
+ $state = Dever::db('agent/member_goods')->insert($w);
|
|
|
+ if ($state) {
|
|
|
+ Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], 1, 0, 1, $name, $desc);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } elseif ($set_type == 3) {
|
|
|
+ $prize = Dever::db('setting/prize')->find($w['type_id']);
|
|
|
+ $price = $prize['price'];
|
|
|
+ $cash = $prize['price'] * $total;
|
|
|
+ $name = $prize['name'];
|
|
|
+ }
|
|
|
+ $info = Dever::db('agent/member_goods')->one($w);
|
|
|
+ $w['total_num'] = $total;
|
|
|
+ $w['cash'] = $cash;
|
|
|
+ $w['price'] = $price;
|
|
|
+ $w['name'] = $name;
|
|
|
+ if (!$info) {
|
|
|
+ $state = Dever::db('agent/member_goods')->insert($w);
|
|
|
+ if ($state) {
|
|
|
+ Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], $v['total'], 0, $w['total_num'], $name, $desc);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ $w['total_num'] += $info['sell_num'];
|
|
|
+ $w['where_id'] = $info['id'];
|
|
|
+ $w['state'] = 1;
|
|
|
+ $state = Dever::db('agent/member_goods')->update($w);
|
|
|
+ $num = $w['total_num']-$info['total_num'];
|
|
|
+ if ($state && $num != 0) {
|
|
|
+ Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], $num, $info['total_num'], $w['total_num'], $name, $desc);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($state) {
|
|
|
+ Dever::db('agent/member_goods')->update(array('where_id' => $v['id'], 'state' => 2));
|
|
|
+
|
|
|
+ $name = $v['name'] ? $v['name'] : Dever::load("agent/lib/manage.getGoods#name", $v['type'], $v['type_id'], $v['sku_id']);
|
|
|
+ Dever::load('agent/lib/member_set')->log($v['mid'], '', $v['type'], $v['type_id'], $v['sku_id'], -1*$v['total_num'], $v['total_num'], 0, $name, '[系统删除]');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|