JDStar.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. namespace app\controller\jiandao;
  3. use app\extra\basic\Base;
  4. use app\extra\tools\XcJob;
  5. use app\model\bluev\BluevOceanAccount;
  6. use HuaweiCloud\SDK\Apig\V2\Model\Signature;
  7. use LinFly\Annotation\Route\Controller;
  8. use LinFly\Annotation\Route\Route;
  9. use support\Request;
  10. use support\Response;
  11. use support\think\Db;
  12. use yzh52521\EasyHttp\Http;
  13. #[Controller(prefix: "/jd/star")]
  14. class JDStar extends Base
  15. {
  16. #[Route(path: "push",methods: "post")]
  17. public function getJDYPush(Request $request): Response
  18. {
  19. try {
  20. // 密钥: g8Fbj7NHwS5OhhVEVfP1nTN7
  21. $param = $request->all();
  22. print_r($param);
  23. return success("ok");
  24. } catch (\Throwable $throwable) {
  25. return error($throwable->getMessage());
  26. }
  27. }
  28. #[Route(path: "info",methods: "get")]
  29. public function getStarInfo(Request $request): Response
  30. {
  31. try {
  32. $param = $this->_valid([
  33. "uid.require" => trans("empty.require"),
  34. "name.require" => trans("empty.require")
  35. ],$request->method());
  36. if (!is_array($param)) return error($param);
  37. [$state,$xcData] = (new XcJob)->token()->getStarData($param['uid']);
  38. if (!$state) return error($xcData);
  39. if (empty($xcData['list'])) return error("获取数据失败");
  40. $return = [];
  41. foreach ($xcData['list'] as $key=>$val) {
  42. if (md5($val['attribute_datas']['nick_name']) == md5($param['name'])) {
  43. $return['level'] = $val['attribute_datas']['author_ecom_level']; // 带货等级
  44. $return['avatar_uri'] = $val['attribute_datas']['avatar_uri']; // 用户头像
  45. $return['nick_name'] = $val['attribute_datas']['nick_name']; // 用户昵称
  46. $return['gender'] = $val['attribute_datas']['gender']; // 性别 1 男 2女
  47. $return['follower'] = (int)$val['attribute_datas']['follower']; // 粉丝数
  48. $return['star_id'] = (string)$val['star_id']; // 星图ID
  49. $return['city'] = $val['attribute_datas']['city']; // 所在城市
  50. }
  51. }
  52. if (empty($return)) return error("获取数据失败");
  53. [$state,$starDetail] = (new XcJob)->token()->getStarDetail($return['star_id']);
  54. if (!$state) return error($xcData);
  55. $return['link'] = "https://www.douyin.com/user/{$starDetail['sec_uid']}";
  56. return success("ok",$return);
  57. } catch (\Throwable $throwable) {
  58. return error($throwable->getMessage());
  59. }
  60. }
  61. #[Route(path: "express",methods: "get")]
  62. public function getExpress(Request $request)
  63. {
  64. try {
  65. $param = $this->_valid([
  66. "number.require" => trans("empty.require"),
  67. ],$request->method());
  68. if (!is_array($param)) return error($param);
  69. } catch (\Throwable $throwable) {
  70. return error($throwable->getMessage());
  71. }
  72. }
  73. /**
  74. * 方舟消耗统计
  75. * @param Request $request
  76. * @return Response
  77. */
  78. #[Route(path: "stat",methods: "get")]
  79. public function getAdStatData(Request $request): Response
  80. {
  81. try {
  82. $param = $this->_valid([
  83. "day.default" => date("Y-m-d",strtotime("-1 day")),
  84. "type.default" => 'day',
  85. "page.default" => 1,
  86. "size.default" => 10,
  87. ],$request->method());
  88. if (!is_array($param)) return error($param);
  89. switch ($param['type'])
  90. {
  91. case "year":
  92. $data = (new BluevOceanAccount)
  93. ->where("day", "like","%{$param['day']}%")
  94. ->field("YEAR(day) as year, advertiser_id, ROUND(SUM(noGrantCost)/100000,2) AS total_cost")
  95. ->group("YEAR(day), advertiser_id")
  96. ->order('year', 'desc')
  97. ->paginate([
  98. "list_rows" => $param['size'],
  99. "page" => $param['page']
  100. ]);
  101. break;
  102. case "mon":
  103. $data = (new BluevOceanAccount)
  104. ->where("day", "like","%{$param['day']}%")
  105. ->field("DATE_FORMAT(day, '%Y-%m') AS month, advertiser_id, ROUND(SUM(noGrantCost)/100000,2) AS total_cost")
  106. ->group("DATE_FORMAT(day, '%Y-%m'), advertiser_id")
  107. ->order('month', 'desc')
  108. ->paginate([
  109. "list_rows" => $param['size'],
  110. "page" => $param['page']
  111. ]);
  112. break;
  113. case "day":
  114. default:
  115. $data = (new BluevOceanAccount)->where("day", $param['day'])->paginate([
  116. "list_rows" => $param['size'],
  117. "page" => $param['page']
  118. ]);
  119. break;
  120. }
  121. return success("ok",pageFormat($data));
  122. } catch (\Throwable $throwable) {
  123. return error($throwable->getMessage());
  124. }
  125. }
  126. #[Route(path: "cost",methods: "get")]
  127. public function getJobCostData(Request $request)
  128. {
  129. try {
  130. } catch (\Throwable $throwable) {
  131. return error($throwable->getMessage());
  132. }
  133. }
  134. }