Rebate.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace app\data\controller\api\auth;
  3. use app\data\controller\api\Auth;
  4. use app\data\model\BaseUserUpgrade;
  5. use app\data\model\DataUserRebate;
  6. use app\data\service\RebateService;
  7. /**
  8. * 用户返利管理
  9. * Class Rebate
  10. * @package app\data\controller\api\auth
  11. */
  12. class Rebate extends Auth
  13. {
  14. /**
  15. * 获取用户返利记录
  16. * @throws \think\db\exception\DataNotFoundException
  17. * @throws \think\db\exception\DbException
  18. * @throws \think\db\exception\ModelNotFoundException
  19. */
  20. public function get()
  21. {
  22. $date = trim(input('date', date('Y-m')), '-');
  23. [$map, $year] = [['uuid' => $this->uuid], substr($date, 0, 4)];
  24. $query = DataUserRebate::mQuery()->where($map)->equal('type,status')->whereLike('date', "{$date}%");
  25. $this->success('获取返利统计', array_merge($query->order('id desc')->page(true, false, false, 10), [
  26. 'total' => [
  27. '年度' => DataUserRebate::mQuery()->where($map)->equal('type,status')->whereLike('date', "{$year}%")->db()->sum('amount'),
  28. '月度' => DataUserRebate::mQuery()->where($map)->equal('type,status')->whereLike('date', "{$date}%")->db()->sum('amount'),
  29. ],
  30. ]));
  31. }
  32. /**
  33. * 获取我的奖励
  34. */
  35. public function prize()
  36. {
  37. [$map, $data] = [['number' => $this->user['vip_code']], []];
  38. $prizes = DataUserRebate::mk()->group('name')->column('name');
  39. $rebate = BaseUserUpgrade::mk()->where($map)->value('rebate_rule', '');
  40. $codemap = array_merge($prizes, str2arr($rebate));
  41. foreach (RebateService::PRIZES as $prize) {
  42. if (in_array($prize['code'], $codemap)) $data[] = $prize;
  43. }
  44. $this->success('获取我的奖励', $data);
  45. }
  46. /**
  47. * 获取奖励配置
  48. */
  49. public function prizes()
  50. {
  51. $this->success('获取系统奖励', array_values(RebateService::PRIZES));
  52. }
  53. }