| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 | <?phpnamespace 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 ($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'], $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*$total, $total, 0, $name, '[系统删除]');	                }    			}    		}    	}    }}
 |