Seller.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. <?php
  2. namespace Scm_role\Lib;
  3. use Dever;
  4. class Seller
  5. {
  6. # 获取商品列表
  7. public function getGoods($seller_id)
  8. {
  9. $where['seller_id'] = $seller_id;
  10. $where['sell_type'] = 1;
  11. $data = Dever::db('scm_role/seller_goods')->getDataPage($where);
  12. if ($data) {
  13. foreach ($data as $k => $v) {
  14. $v['id'] = $v['goods_id'];
  15. $data[$k] = Dever::load('scm_product/lib/info')->getInfo($v);
  16. }
  17. }
  18. return $data;
  19. }
  20. # 获取商品列表
  21. public function goods_api()
  22. {
  23. $seller_id = Dever::input('seller_id', 1);
  24. $price_id = Dever::input('price_id', -1);
  25. $type = Dever::input('type', 1);
  26. $source = '';
  27. $table = 'scm_role/seller_goods_sku';
  28. if ($type == 2) {
  29. $source = 'scm_role/seller_goods_sku';
  30. $table = '';
  31. }
  32. $goods_category = Dever::input('goods_category');
  33. $where['seller_id'] = $seller_id;
  34. return Dever::outDiy(Dever::load('scm_product/lib/info')->getSetList($table, $where, $goods_category, 'goods_id', array(), $price_id, $source));
  35. }
  36. # 配置商品
  37. public function setGoods_api()
  38. {
  39. $data = array();
  40. $data['seller_id'] = Dever::input('id', 1);
  41. $info = Dever::db('scm_role/seller')->find($data['seller_id']);
  42. $data['info'] = $info;
  43. $goods_category = $info['category'];
  44. $data['host'] = Dever::url('lib/seller.setGoods', 'scm_role');
  45. $data['url'] = Dever::url('lib/seller.goods?seller_id=' . $data['seller_id'] . '&goods_category=' . $goods_category . '&price_id=' . $info['price_id'], 'scm_role');
  46. //$data['search'] = Dever::url('lib/seller.search?yes='.$data['seller_id'].'&json=1', 'scm_role');
  47. $data['submit'] = Dever::url('lib/seller.setGoods_action_commit?json=1', 'scm_role');
  48. return Dever::render('set_seller_goods', $data);
  49. }
  50. # 配置商品
  51. public function setGoods_action_commit_api()
  52. {
  53. $goods = Dever::input('goods');
  54. if (!$goods) {
  55. Dever::alert('请传入商品');
  56. }
  57. $goods = Dever::json_decode($goods);
  58. $seller_id = Dever::input('seller_id');
  59. $seller = Dever::db('scm_role/seller')->one($seller_id);
  60. $where['option_seller_id'] = $seller_id;
  61. $where['set_state'] = 2;
  62. Dever::db('scm_role/seller_goods')->updates($where);
  63. Dever::db('scm_role/seller_goods_sku')->updates($where);
  64. foreach ($goods as $k => $v) {
  65. $temp = explode('-', $k);
  66. $goods_id = $temp[0];
  67. if (isset($temp[1])) {
  68. $sku_id = $temp[1];
  69. } else {
  70. $sku_id = -1;
  71. }
  72. if ($v['num'] < 0) {
  73. continue;
  74. }
  75. if ($v['del'] == 2) {
  76. $w = array();
  77. $w['goods_id'] = $goods_id;
  78. $w['seller_id'] = $seller_id;
  79. $w['sku_id'] = $sku_id;
  80. $sku_info = Dever::db('scm_role/seller_goods_sku')->one($w);
  81. if ($sku_info) {
  82. Dever::db('scm_role/seller_goods_sku')->update(array('where_id' => $sku_info['id'], 'state' => 2));
  83. }
  84. unset($w['sku_id']);
  85. $t = $w;
  86. $t['state'] = 1;
  87. $total = Dever::db('scm_role/seller_goods_sku')->total($t);
  88. if ($total <= 0) {
  89. $info = Dever::db('scm_role/seller_goods')->one($w);
  90. if ($info) {
  91. Dever::db('scm_role/seller_goods')->update(array('where_id' => $info['id'], 'state' => 2));
  92. }
  93. }
  94. } else {
  95. $goods_info = Dever::db('scm_product/info')->one($goods_id);
  96. $w = array();
  97. $w['goods_id'] = $goods_id;
  98. $w['seller_id'] = $seller_id;
  99. $info = Dever::db('scm_role/seller_goods')->one($w);
  100. $w['in_num'] = $v['num'];
  101. $w['min'] = $v['min'];
  102. if (!$info) {
  103. Dever::db('scm_role/seller_goods')->insert($w);
  104. } else {
  105. $w['in_num'] += $info['in_num'];
  106. $w['where_id'] = $info['id'];
  107. $w['state'] = 1;
  108. Dever::db('scm_role/seller_goods')->update($w);
  109. }
  110. $w = array();
  111. $w['goods_id'] = $goods_id;
  112. $w['seller_id'] = $seller_id;
  113. $w['sku_id'] = $sku_id;
  114. $info = Dever::db('scm_role/seller_goods_sku')->one($w);
  115. $w['in_num'] = $v['num'];
  116. $w['min'] = $v['min'];
  117. if (!$info) {
  118. Dever::db('scm_role/seller_goods_sku')->insert($w);
  119. } else {
  120. $w['in_num'] += $info['in_num'];
  121. $w['where_id'] = $info['id'];
  122. $w['state'] = 1;
  123. Dever::db('scm_role/seller_goods_sku')->update($w);
  124. }
  125. }
  126. }
  127. return 'refer';
  128. }
  129. # 采购商品
  130. public function buyGoods_api()
  131. {
  132. $data = array();
  133. $data['seller_id'] = Dever::input('id', 1);
  134. $info = Dever::db('scm_role/seller')->find($data['seller_id']);
  135. $data['info'] = $info;
  136. $goods_category = $info['category'];
  137. $data['host'] = Dever::url('lib/seller.buyGoods', 'scm_role');
  138. $data['url'] = Dever::url('lib/seller.goods?seller_id=' . $data['seller_id'] . '&goods_category=' . $goods_category . '&price_id=' . $info['price_id'] . '&type=2', 'scm_role');
  139. $data['submit'] = Dever::url('lib/seller.buyGoods_action_commit?json=1', 'scm_role');
  140. return Dever::render('buy_seller_goods', $data);
  141. }
  142. # 采购商品
  143. public function buyGoods_action_commit_api()
  144. {
  145. $goods = Dever::input('goods');
  146. if (!$goods) {
  147. Dever::alert('请传入商品');
  148. }
  149. $goods = Dever::json_decode($goods);
  150. $seller_id = Dever::input('seller_id');
  151. $seller = Dever::db('scm_role/seller')->one($seller_id);
  152. $where['option_seller_id'] = $seller_id;
  153. $where['set_state'] = 2;
  154. Dever::db('scm_role/seller_goods')->updates($where);
  155. Dever::db('scm_role/seller_goods_sku')->updates($where);
  156. foreach ($goods as $k => $v) {
  157. $temp = explode('-', $k);
  158. $goods_id = $temp[0];
  159. if (isset($temp[1])) {
  160. $sku_id = $temp[1];
  161. } else {
  162. $sku_id = -1;
  163. }
  164. if ($v['num'] < 0) {
  165. continue;
  166. }
  167. if ($v['del'] == 2) {
  168. $w = array();
  169. $w['goods_id'] = $goods_id;
  170. $w['seller_id'] = $seller_id;
  171. $w['sku_id'] = $sku_id;
  172. $sku_info = Dever::db('scm_role/seller_goods_sku')->one($w);
  173. if ($sku_info) {
  174. Dever::db('scm_role/seller_goods_sku')->update(array('where_id' => $sku_info['id'], 'state' => 2));
  175. }
  176. unset($w['sku_id']);
  177. $t = $w;
  178. $t['state'] = 1;
  179. $total = Dever::db('scm_role/seller_goods_sku')->total($t);
  180. if ($total <= 0) {
  181. $info = Dever::db('scm_role/seller_goods')->one($w);
  182. if ($info) {
  183. Dever::db('scm_role/seller_goods')->update(array('where_id' => $info['id'], 'state' => 2));
  184. }
  185. }
  186. } else {
  187. $goods_info = Dever::db('scm_product/info')->one($goods_id);
  188. $w = array();
  189. $w['goods_id'] = $goods_id;
  190. $w['seller_id'] = $seller_id;
  191. $info = Dever::db('scm_role/seller_goods')->one($w);
  192. $w['in_num'] = $v['num'];
  193. $w['min'] = $v['min'];
  194. if (!$info) {
  195. Dever::db('scm_role/seller_goods')->insert($w);
  196. } else {
  197. $w['in_num'] += $info['in_num'];
  198. $w['where_id'] = $info['id'];
  199. $w['state'] = 1;
  200. Dever::db('scm_role/seller_goods')->update($w);
  201. }
  202. $w = array();
  203. $w['goods_id'] = $goods_id;
  204. $w['seller_id'] = $seller_id;
  205. $w['sku_id'] = $sku_id;
  206. $info = Dever::db('scm_role/seller_goods_sku')->one($w);
  207. $w['in_num'] = $v['num'];
  208. $w['min'] = $v['min'];
  209. if (!$info) {
  210. Dever::db('scm_role/seller_goods_sku')->insert($w);
  211. } else {
  212. $w['in_num'] += $info['in_num'];
  213. $w['where_id'] = $info['id'];
  214. $w['state'] = 1;
  215. Dever::db('scm_role/seller_goods_sku')->update($w);
  216. }
  217. }
  218. }
  219. return 'refer';
  220. }
  221. }