AgentController.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. namespace app\admin\controller;
  3. use think\exception\ValidateException;
  4. use app\model\Incomelog;
  5. use app\model\Member;
  6. use app\model\Order;
  7. use app\model\Agent;
  8. use app\model\AgentLevel;
  9. use app\model\RegisterField;
  10. class AgentController extends Base
  11. {
  12. function index()
  13. {
  14. $weid = weid();
  15. $page = input('post.page', 1, 'intval');
  16. $ptype = 'agent';
  17. $Fielddata = RegisterField::where(['weid' => $weid, 'ptype' => $ptype])->select()->toArray();
  18. if (empty($Fielddata)) {
  19. RegisterField::datainitial($ptype);
  20. }
  21. $query = $this->setSearch();
  22. $res = $query->order('sort asc,id desc')
  23. ->paginate(getpage())
  24. ->toArray();
  25. if (!empty($res['data'])) {
  26. foreach ($res['data'] as &$vo) {
  27. $vo['agent_level'] = AgentLevel::getLevel($vo['agent_level']) ?? '初级';
  28. }
  29. }
  30. $data['data'] = $res;
  31. if ($page == 1) {
  32. $data['field_data']['RegisterField'] = RegisterField::getlistViewField($ptype);
  33. }
  34. return $this->json($data);
  35. }
  36. function setSearch()
  37. {
  38. $keyword = trim(input('post.keyword', '', 'serach_in'));
  39. $status = input('post.status', '', 'serach_in');
  40. $path = input('post.path', '', 'serach_in');
  41. $weid = weid();
  42. if ($path == "/agent/audit") {
  43. $status = "0";
  44. }
  45. $query = Agent::where(['weid' => $weid]);
  46. if (!empty($keyword)) {
  47. $query->where('title|tel', 'like', '%' . $keyword . '%');
  48. }
  49. if (!empty($status) || $status === "0") {
  50. $query->where(['status' => $status]);
  51. }
  52. return $query;
  53. }
  54. function listUpdate()
  55. {
  56. $data = only('id,status');
  57. if (!$data['id']) throw new ValidateException('参数错误');
  58. Agent::update($data);
  59. return $this->json(['msg' => '操作成功']);
  60. }
  61. function delete()
  62. {
  63. return $this->del(new Agent());
  64. }
  65. function subordinates()
  66. {
  67. $weid = weid();
  68. $uid = input('post.uid', '', 'serach_in');
  69. $keyword = input('post.keyword', '', 'serach_in');
  70. if (empty($uid)) {
  71. $uid = -1;
  72. }
  73. $query = Member::where(['weid' => $weid, 'pid' => $uid]);
  74. if (!empty($keyword)) {
  75. $query->where('title', 'like', '%' . $keyword . '%');
  76. }
  77. $res = $query->order('id asc')
  78. ->paginate(getpage())
  79. ->toArray();
  80. foreach ($res['data'] as &$vo) {
  81. $vo['is_agent'] = yesno(Agent::is_agent($vo['id']));
  82. $vo['subordinatescount'] = Member::where(['pid' => $vo['id']])->count();
  83. $vo['ordercount'] = Incomelog::where(['weid' => $weid, 'uid' => $vo['id']])->count();
  84. }
  85. $data['data'] = $res;
  86. return $this->json($data);
  87. }
  88. public function agentorder()
  89. {
  90. $weid = weid();
  91. $uid = input('post.uid', '', 'serach_in');
  92. $keyword = input('post.keyword', '', 'serach_in');
  93. if (empty($uid)) {
  94. $uid = -1;
  95. }
  96. $where['weid'] = $weid;
  97. $where['uid'] = $uid;
  98. $query = Incomelog::where($where);
  99. $res = $query->order('id desc')
  100. ->paginate(getpage())
  101. ->toArray();
  102. foreach ($res['data'] as &$vo) {
  103. $vo['username'] = Member::get_name($vo['buyer_id']);
  104. $vo['pay_time'] = time_format($vo['pay_time']);
  105. }
  106. $data['data'] = $res;
  107. return $this->json($data);
  108. }
  109. }