Tool.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <?php
  2. namespace Agent\Lib;
  3. use Dever;
  4. class Tool
  5. {
  6. public function __construct()
  7. {
  8. Dever::load('manage/auth.init');
  9. }
  10. # 更换权益
  11. public function setGoods_api()
  12. {
  13. # 权益类型
  14. $type = Dever::input('type', 1);
  15. # 权益类型id
  16. $type_id = Dever::input('type_id', 1);
  17. # 替换的权益类型
  18. $set_type = Dever::input('set_type', 1);
  19. # 替换权益类型id
  20. $set_type_id = Dever::input('set_type_id', 1);
  21. $mid = Dever::input('mid');
  22. $where['type'] = $type;
  23. $where['type_id'] = $type_id;
  24. if ($mid) {
  25. $where['mid'] = $mid;
  26. }
  27. $data = Dever::db('agent/member_goods')->getAll($where);
  28. if ($data) {
  29. $desc = '更换权益';
  30. foreach ($data as $k => $v) {
  31. if ($v['num'] > 0) {
  32. # 生成新的权益
  33. $mid = $v['mid'];
  34. $total = $v['num'];
  35. $w = array();
  36. $w['type'] = $set_type;
  37. $w['type_id'] = $set_type_id;
  38. $w['sku_id'] = -1;
  39. $w['mid'] = $v['mid'];
  40. $w['clear'] = true;
  41. $cash = $price = 0;
  42. if ($set_type == 1) {
  43. $goods_info = Dever::load('goods/lib/info')->getInfoBySku($w['type_id'], $w['sku_id']);
  44. $price = $goods_info['price'];
  45. $cash = $goods_info['price'] * $total;
  46. if (isset($goods_info['sku'])) {
  47. $sku = '-' . $goods_info['sku']['string'];
  48. } else {
  49. $sku = '';
  50. }
  51. $name = $goods_info['name'] . $sku;
  52. } elseif ($set_type == 2) {
  53. # 体验卡
  54. $card = Dever::db('card/info')->find($w['type_id']);
  55. if (!$card) {
  56. continue;
  57. }
  58. $name = $card['name'];
  59. if ($card['create_type'] == 2) {
  60. $cash = $price = $card['value'] * $total;
  61. $total = 1;
  62. $w['sku_id'] = Dever::load('card/lib/code')->create($card, 2, $mid, -1, $cash);
  63. if (!$w['sku_id']) {
  64. continue;
  65. }
  66. } else {
  67. if ($card['create_type'] == 3 && isset($v['price']) && $v['price'] > 0) {
  68. $card['value'] = $v['price'];
  69. }
  70. $cash = $price = $card['value'];
  71. for($i=0; $i<$total;$i++) {
  72. $w['sku_id'] = Dever::load('card/lib/code')->create($card, 2, $mid, -1, $cash);
  73. if ($w['sku_id']) {
  74. $w['total_num'] = 1;
  75. $w['cash'] = $cash;
  76. $w['price'] = $price;
  77. $w['name'] = $name;
  78. $state = Dever::db('agent/member_goods')->insert($w);
  79. if ($state) {
  80. Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], 1, 0, 1, $name, $desc);
  81. }
  82. }
  83. }
  84. Dever::db('agent/member_goods')->update(array('where_id' => $v['id'], 'state' => 2));
  85. $name = $v['name'] ? $v['name'] : Dever::load("agent/lib/manage.getGoods#name", $v['type'], $v['type_id'], $v['sku_id']);
  86. Dever::load('agent/lib/member_set')->log($v['mid'], '', $v['type'], $v['type_id'], $v['sku_id'], -1*$v['num'], $v['num'], 0, $name, '[系统删除]');
  87. continue;
  88. }
  89. } elseif ($set_type == 3) {
  90. $prize = Dever::db('setting/prize')->find($w['type_id']);
  91. $price = $prize['price'];
  92. $cash = $prize['price'] * $total;
  93. $name = $prize['name'];
  94. }
  95. $info = Dever::db('agent/member_goods')->one($w);
  96. $w['total_num'] = $total;
  97. $w['cash'] = $cash;
  98. $w['price'] = $price;
  99. $w['name'] = $name;
  100. if (!$info) {
  101. $state = Dever::db('agent/member_goods')->insert($w);
  102. if ($state) {
  103. Dever::load('agent/lib/member_set')->log($w['mid'], '', $w['type'], $w['type_id'], $w['sku_id'], $total, 0, $w['total_num'], $name, $desc);
  104. }
  105. } else {
  106. $w['total_num'] += $info['sell_num'];
  107. $w['where_id'] = $info['id'];
  108. $w['state'] = 1;
  109. $state = Dever::db('agent/member_goods')->update($w);
  110. $num = $w['total_num']-$info['total_num'];
  111. if ($state && $num != 0) {
  112. 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);
  113. }
  114. }
  115. Dever::db('agent/member_goods')->update(array('where_id' => $v['id'], 'state' => 2));
  116. $name = $v['name'] ? $v['name'] : Dever::load("agent/lib/manage.getGoods#name", $v['type'], $v['type_id'], $v['sku_id']);
  117. Dever::load('agent/lib/member_set')->log($v['mid'], '', $v['type'], $v['type_id'], $v['sku_id'], -1*$v['num'], $v['num'], 0, $name, '[系统删除]');
  118. }
  119. }
  120. }
  121. return 'ok';
  122. }
  123. }