Client.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <?php namespace Place\Api;
  2. use Dever;
  3. use Place;
  4. use Place\Lib\Main;
  5. class Client extends Main
  6. {
  7. protected $login = true;
  8. protected $entry = true;
  9. public function __construct()
  10. {
  11. parent::__construct();
  12. # 查询当前源主界面是否有进货功能
  13. if (Place::$info['channel'] != 1) {
  14. Dever::error('渠道信息获取失败');
  15. }
  16. }
  17. # 检测是否绑定源主
  18. private function check($type = 1)
  19. {
  20. if ($type == 2) {
  21. if (Place::$user['client_id'] <= 0) {
  22. Dever::error('您还未绑定源主');
  23. }
  24. $user = Dever::db('user', 'sector')->find(Place::$uid);
  25. $mobile = $user['mobile'];
  26. } else {
  27. $mobile = Dever::input('mobile', 'is_numeric', '手机号');
  28. if (Place::$user['client_id'] > 0) {
  29. Dever::error('您已经绑定过了,请先解绑再来吧');
  30. }
  31. }
  32. return $mobile;
  33. }
  34. # 发送绑定短信验证码
  35. public function sms()
  36. {
  37. $type = Dever::input('type', 'is_numeric', '类型', 1);
  38. $mobile = $this->check($type);
  39. $data = Dever::load('template', 'msg')->send('user_code', array('mobile' => $mobile));
  40. return $data;
  41. }
  42. # 绑定源主
  43. public function bind()
  44. {
  45. $mobile = $this->check();
  46. $code = Dever::input('code', 'is_string', '验证码');
  47. Dever::load('template', 'msg')->check('user_code', $mobile, $code);
  48. $user = Dever::db('user', 'sector')->find(array('mobile' => $mobile, 'status' => 1));
  49. if (!$user) {
  50. Dever::error('您绑定的手机号未开通源主');
  51. }
  52. $data = array('client_id' => $user['id']);
  53. $member = Dever::db('member', 'place')->find($data);
  54. if ($member) {
  55. Dever::error('手机号已绑定源主,您无法绑定');
  56. }
  57. Dever::db('member', 'place')->update(Place::$uid, $data);
  58. Place::$user['client_id'] = $data['client_id'];
  59. return Place::$user;
  60. }
  61. # 解绑源主
  62. public function unbind()
  63. {
  64. $mobile = $this->check(2);
  65. $code = Dever::input('code', 'is_string', '验证码');
  66. Dever::load('template', 'msg')->check('user_code', $mobile, $code);
  67. Dever::db('member', 'place')->update(Place::$uid, array('client_id' => -1));
  68. }
  69. # 点击进货按钮
  70. public function submit()
  71. {
  72. if (Place::$user['client_id'] <= 0) {
  73. Dever::error('您不是源主');
  74. }
  75. $where = array('uid' => Place::$user['client_id']);
  76. if (Place::$user['client_id'] == Place::$info['uid']) {
  77. $where['id'] = array('!=', Place::$id);
  78. }
  79. # 获取源主的身份
  80. $data['place'] = Dever::db('info', 'place')->select($where, array('col' => 'id, name'));
  81. if (!$data['place']) {
  82. Dever::error('请先创建身份');
  83. }
  84. $type = Dever::input('type', 'is_numeric', '资源类型');
  85. $type_id = Dever::input('type_id', 'is_numeric', '资源ID');
  86. $resource = new \Place\Lib\Resource($type);
  87. $data['info'] = $resource->getInfo($type_id);
  88. $data['info'] = Dever::load('info', $resource->app)->submit($data['info'], 'client');
  89. return $data;
  90. }
  91. # 确定进货或者修改进货
  92. public function act_commit(){}
  93. public function act()
  94. {
  95. if (Place::$user['client_id'] <= 0) {
  96. Dever::error('您不是源主');
  97. }
  98. $data['uid'] = Place::$uid;
  99. $data['client_id'] = Place::$user['client_id'];
  100. $data['type'] = Dever::input('type', 'is_numeric', '资源类型');
  101. $data['type_id'] = Dever::input('type_id', 'is_numeric', '资源ID');
  102. $info = Dever::db('client_resource', 'place')->find($data);
  103. $data['status'] = 1;
  104. $data['place_id'] = Dever::input('place_id', 'is_string', '身份ID');
  105. $temp = explode(',', $data['place_id']);
  106. $where = array('id' => array('in', $data['place_id']), 'uid' => Place::$user['client_id']);
  107. if (Place::$user['client_id'] == Place::$info['uid']) {
  108. $where['id#'] = array('!=', Place::$id);
  109. }
  110. $place = Dever::db('info', 'place')->select($where);
  111. if (count($place) != count($temp)) {
  112. Dever::error('身份不存在');
  113. }
  114. $resource = new \Place\Lib\Resource($data['type']);
  115. $resource_info = $resource->getInfo($data['type_id']);
  116. $data['price'] = $resource_info['client']['value'];
  117. $resource_info['price'] = $resource_info['price']['value'];
  118. $resource_info['status'] = 2;
  119. unset($resource_info['cdate']);
  120. unset($resource_info['cdate_str']);
  121. unset($resource_info['client']);
  122. unset($resource_info['password']);
  123. if ($info) {
  124. Dever::db('client_resource', 'place')->update($info['id'], $data);
  125. } else {
  126. Dever::db('client_resource', 'place')->insert($data);
  127. }
  128. # 同时同步源主里的内容信息
  129. Dever::load('client', 'place')->resource($place, $data, $resource, $resource_info);
  130. return 'ok';
  131. }
  132. # 取消进货
  133. public function cancel_commit(){}
  134. public function cancel()
  135. {
  136. if (Place::$user['client_id'] <= 0) {
  137. Dever::error('您不是源主');
  138. }
  139. $data['uid'] = Place::$uid;
  140. $data['client_id'] = Place::$user['client_id'];
  141. $data['type'] = Dever::input('type', 'is_numeric', '资源类型');
  142. $data['type_id'] = Dever::input('type_id', 'is_numeric', '资源ID');
  143. $info = Dever::db('client_resource', 'place')->find($data);
  144. if ($info) {
  145. # 同时删除源主里的内容信息
  146. Dever::load('client', 'place')->resourceDel($info['place_id'], $data);
  147. Dever::db('client_resource', 'place')->update($info['id'], array('status' => 2));
  148. }
  149. return 'ok';
  150. }
  151. }