Manage.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  1. <?php namespace Seller\Api;
  2. use Dever;
  3. use Manage\Lib\Auth;
  4. class Manage extends Auth
  5. {
  6. public function showOrderExpand($value = false)
  7. {
  8. $data = Dever::db('order', 'seller')->find($value);
  9. return Dever::load('manage', 'seller')->showOrderExpand($data);
  10. }
  11. public function showOrderLogExpand($value = false)
  12. {
  13. $data = Dever::db('order_log1', 'seller')->find($value);
  14. return Dever::load('manage', 'seller')->showOrderExpand($data);
  15. }
  16. public function showOrderExpandKm($value = false)
  17. {
  18. $data = Dever::db('order', 'seller')->find($value);
  19. return Dever::load('manage', 'seller')->showOrderExpandKm($data);
  20. }
  21. public function showOrderLogExpandKm($value = false)
  22. {
  23. $data = Dever::db('order_log1', 'seller')->find($value);
  24. return Dever::load('manage', 'seller')->showOrderExpandKm($data);
  25. }
  26. # 补发回调
  27. public function sendCallBack()
  28. {
  29. $id = Dever::input('id');
  30. if ($id) {
  31. $where['id'] = array('in', $id);
  32. $order = Dever::db('order', 'seller')->select($where);
  33. foreach ($order as $k => $v) {
  34. $msg = '';
  35. if ($v['status'] == 10) {
  36. $msg = 'ok';
  37. } elseif ($v['status'] == 11) {
  38. $msg = 'error';
  39. }
  40. if ($msg) {
  41. Dever::load('order', 'seller')->notify($v, $msg, array(), 1000);
  42. }
  43. }
  44. } else {
  45. Dever::error('请选择发回调的订单');
  46. }
  47. return '回调发送成功';
  48. }
  49. # 获取商品
  50. public function getGoods($value = false)
  51. {
  52. $result = array();
  53. $result['goods']['value'] = '';
  54. $result['sku_id']['value'] = '';
  55. $result['goods_id']['value'] = '';
  56. $result['goods']['option'] = array();
  57. $result['sku_id']['option'] = array();
  58. if (!$value) {
  59. return $result;
  60. }
  61. $channel = Dever::db('channel', 'seller')->select(array('seller_id' => $value, 'status' => 1));
  62. if ($channel) {
  63. $option = $setCate = $setGoods = array();
  64. $i = 0;
  65. foreach ($channel as $k => $v) {
  66. $goods = Dever::db('info', 'goods')->find($v['goods_id']);
  67. if ($goods && $goods['status'] == 1) {
  68. if (!isset($setCate[$goods['cate_id']])) {
  69. $cate = Dever::db('cate', 'goods')->find($goods['cate_id']);
  70. if ($cate) {
  71. $setCate[$goods['cate_id']] = $i;
  72. $option[$i] = array
  73. (
  74. 'id' => $cate['id'],
  75. 'name' => $cate['name'],
  76. );
  77. $i++;
  78. }
  79. }
  80. if (!isset($setGoods[$goods['id']])) {
  81. $v['name'] = $goods['name'];
  82. $option[$setCate[$goods['cate_id']]]['children'][] = $v;
  83. $setGoods[$goods['id']] = 1;
  84. }
  85. }
  86. }
  87. $result['goods']['option'] = $option;
  88. }
  89. return $result;
  90. }
  91. public function getSku($value)
  92. {
  93. if (is_array($value)) {
  94. $value = end($value);
  95. }
  96. $result = array();
  97. $result['sku_id']['value'] = '';
  98. if (!$value) {
  99. $result['sku_id']['option'] = array();
  100. return $result;
  101. }
  102. $channel = Dever::db('channel', 'seller')->find($value);
  103. $channel_sku = Dever::db('channel', 'seller')->select(array('seller_id' => $channel['seller_id'], 'goods_id' => $channel['goods_id'], 'status' => 1));
  104. if ($channel_sku) {
  105. $sku = array();
  106. foreach ($channel_sku as $k => $v) {
  107. if ($v['sku_id']) {
  108. $v['sku_id'] = explode(',', $v['sku_id']);
  109. foreach ($v['sku_id'] as $v1) {
  110. $sku[$v1] = $v1;
  111. }
  112. }
  113. }
  114. }
  115. $result['goods_id']['value'] = $channel['goods_id'];
  116. $where = array('info_id' => $channel['goods_id']);
  117. if (isset($sku) && $sku) {
  118. $where['id'] = array('in', implode(',', $sku));
  119. }
  120. $sku = Dever::db('info_sku', 'goods')->select($where);
  121. if ($sku) {
  122. $option = array();
  123. foreach ($sku as $k => $v) {
  124. if ($v['key'] != -1) {
  125. $spec = Dever::db('info_spec_value', 'goods')->find(array('id' => array('in', $v['key'])), array('col' => 'id,group_concat(value) as name', 'group' => 'info_id'));
  126. if ($spec) {
  127. $spec['id'] = $v['id'];
  128. $result['sku_id']['value'] = $v['id'];
  129. $option[] = $spec;
  130. }
  131. } else {
  132. $result['sku_id']['value'] = $v['id'];
  133. $option[0] = array
  134. (
  135. 'id' => $v['id'],
  136. 'name' => '无',
  137. );
  138. }
  139. }
  140. $result['sku_id']['option'] = $option;
  141. //$result['sku_id']['desc'] = '222';
  142. }
  143. return $result;
  144. }
  145. # 提取卡密
  146. public function tqKmManage()
  147. {
  148. return $this->tqKmRun(2);
  149. }
  150. # 提取卡密
  151. public function tqKm()
  152. {
  153. return $this->tqKmRun(1);
  154. }
  155. # 提取卡密
  156. public function tqKmRun($type = 1)
  157. {
  158. $value = Dever::input('value');
  159. $id = Dever::input('order_id');
  160. $order = Dever::db('order', 'seller')->find($id);
  161. /*
  162. $code = Dever::load('manage', 'seller')->kmPwd($order['id'], $order['cdate']);
  163. if ($code != $value) {
  164. Dever::error('密码错误');
  165. }*/
  166. if (!$value) {
  167. Dever::error('请输入正确的邮箱');
  168. }
  169. if (!preg_match(Dever::rule('email'), $value)) {
  170. Dever::error('请输入正确的邮箱');
  171. }
  172. if ($type == 1) {
  173. $log['seller_id'] = $order['seller_id'];
  174. $log['order_id'] = $id;
  175. $order_km = Dever::db('order_km', 'seller')->find($log);
  176. if ($order_km) {
  177. Dever::error('您已经提取过卡密,无法重复提取,如需再次提取请联系商务');
  178. }
  179. }
  180. $result = array();
  181. $result['msg'] = '提取成功';
  182. //$result['url'] = Dever::url('seller/manage.tqKmAct', array('order_id' => $order['id'], 'value' => $value));
  183. \Dever\Helper\Cmd::run('seller/manage.tqKmAct', array('order_id' => $order['id'], 'value' => $value));
  184. # 增加提取日志
  185. $log['admin_id'] = $this->uid;
  186. $log['system_id'] = $this->system['id'];
  187. $log['admin_name'] = $this->user['name'];
  188. $log['email'] = $value;
  189. Dever::db('order_km', 'seller')->insert($log);
  190. return $result;
  191. }
  192. # 提取卡密
  193. public function tqKmAct()
  194. {
  195. $value = Dever::input('value');
  196. $id = Dever::input('order_id');
  197. $order = Dever::db('order', 'seller')->select($id);
  198. if (!$order) {
  199. Dever::error('订单不存在');
  200. }
  201. $code = Dever::load('manage', 'seller')->kmPwd($order[0]['id'], $order[0]['cdate']);
  202. /*
  203. if ($code != $value) {
  204. Dever::error('密码错误');
  205. }
  206. */
  207. $data = Dever::load('manage', 'seller')->outKm(array('body' => $order));
  208. $file = Dever::load('export', 'excel')->act($data['body'], $data['head'], '导出卡密', 0, '', false, false, $code, 'km' . $id);
  209. $seller = Dever::db('info', 'seller')->find($order[0]['seller_id']);
  210. $email = $value;
  211. $username = $seller['name'];
  212. $title = '您有新的卡密请查收';
  213. $content = '请您打开附件提取卡密,提取密码请联系商务人员';
  214. $this->send($email, $username, $title, $content, $file);
  215. Dever::db('info', 'seller')->update($seller['id'], array('email' => $value));
  216. return '卡密提取成功';
  217. }
  218. # 发送邮件
  219. public function send($email, $username, $title, $content, $file = '')
  220. {
  221. $config = Dever::db('config', 'channel')->find(1);
  222. Dever::apply('PHPMailer', 'email', 'src');
  223. Dever::apply('Exception', 'email', 'src');
  224. Dever::apply('SMTP', 'email', 'src');
  225. $mail = new \PHPMailer\PHPMailer\PHPMailer();
  226. $mail->isSMTP();
  227. //$mail->SMTPDebug = 2;
  228. $mail->CharSet = 'UTF-8';
  229. $mail->Host = 'smtp.exmail.qq.com';
  230. $mail->Port = 465;
  231. $mail->SMTPSecure = 'ssl';
  232. $mail->SMTPAuth = true;
  233. $mail->Username = $config['email_user'];
  234. $mail->Password = $config['email_pass'];
  235. $mail->setFrom($config['email_user'], 'kaibihe');
  236. $mail->addAddress($email, $username);
  237. $mail->Subject = "=?utf-8?B?" . base64_encode($title) . "?=";
  238. $mail->Body = $content;
  239. $mail->isHTML(true);
  240. if ($file) {
  241. $mail->addAttachment($file);
  242. }
  243. if (!$mail->send()) {
  244. Dever::log($email . '-' . $username . '-' . $mail->ErrorInfo, 'email');
  245. Dever::alert("Mailer Error: " . $mail->ErrorInfo);
  246. } else {
  247. @unlink($file);
  248. return 'ok';
  249. }
  250. }
  251. }