Api.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace Journal\Src;
  3. use Dever;
  4. class Api
  5. {
  6. public function data()
  7. {
  8. return Dever::db('journal/info')->state();
  9. }
  10. public function ding($data)
  11. {
  12. if (isset($data['num_add_ding']) && isset($data['num_ratio_ding'])) {
  13. if ($data['buy'] == 1 && $data['buy_type'] == 2) {
  14. # 获取明星的订阅数
  15. $star = Dever::db('journal/star')->state(array('info_id' => $data['id']));
  16. $data['num_ding'] = 0;
  17. if ($star) {
  18. foreach ($star as $k => $v) {
  19. $data['num_ding'] += $this->starDing($v);
  20. }
  21. }
  22. $data['num_up'] = $data['num_add_ding'] = 0;
  23. $data['num_ratio_ding'] = 1;
  24. } elseif ($data['buy'] == 1 && $data['buy_type'] == 1) {
  25. if (!$data['num_ding']) {
  26. $stat = Dever::db('stat/journal')->getNumByJournal(array('journal_id' => $data['id']));
  27. if (!$stat) {
  28. $stat['buy_num'] = 0;
  29. }
  30. if (!$stat['buy_num']) {
  31. $stat['buy_num'] = 0;
  32. }
  33. $data['num_ding'] = $stat['buy_num'];
  34. }
  35. $data['num_up'] = 0;
  36. }
  37. $data['num_ding'] = $data['num_ding'] + $data['num_up'];
  38. $data['buy_num'] = $data['num_ding'];
  39. $data['num_ding'] = round(($data['num_ding']+$data['num_add_ding'])*$data['num_ratio_ding']);
  40. }
  41. return $data;
  42. }
  43. public function starDing($data)
  44. {
  45. if (isset($data['num_add_ding']) && isset($data['num_ratio_ding'])) {
  46. if (!$data['num_ding']) {
  47. $stat = Dever::db('act/order')->getNumByStar(array('star_id' => $data['id'], 'product_id' => $data['info_id']));
  48. if (!$stat) {
  49. $stat['buy_num'] = 0;
  50. }
  51. if (!$stat['buy_num']) {
  52. $stat['buy_num'] = 0;
  53. }
  54. $data['num_ding'] = $stat['buy_num'];
  55. }
  56. $data['buy_num'] = $data['num_ding'];
  57. $data['num_ding'] = round(($data['num_ding']+$data['num_add_ding'])*$data['num_ratio_ding']);
  58. }
  59. return $data;
  60. }
  61. }