Agent.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace app\model;
  3. use think\Model;
  4. class Agent extends Model
  5. {
  6. protected $connection = 'mysql';
  7. protected $pk = 'id';
  8. protected $name = 'agent';
  9. public static function is_agent($uid)
  10. {
  11. $data = Agent::where(['uid' => $uid, 'status' => 1])->find();
  12. if (!empty($data)) {
  13. return 1;
  14. } else {
  15. return 0;
  16. }
  17. }
  18. public static function getTitle($uid)
  19. {
  20. $data = Agent::where(['uid' => $uid])->find();
  21. if (!empty($data)) {
  22. return $data->title;
  23. }
  24. }
  25. public static function conversion($vo)
  26. {
  27. $vo['agent_level'] = AgentLevel::getLevel($vo['agent_level']) ?? '初级';
  28. $vo = RegisterField::conversion($vo);
  29. return $vo;
  30. }
  31. public static function register($Member)
  32. {
  33. if (empty($Member['id'])) {
  34. return;
  35. }
  36. $weid = weid();
  37. $data = Agent::where(['uid' => $Member['id'], 'weid' => $weid])->find();
  38. if (!empty($data)) {
  39. Agent::where(['id' => $data->id])->update(['status' => 1]);
  40. } else {
  41. $createdata['weid'] = $weid;
  42. $createdata['uid'] = $Member['id'];
  43. $createdata['title'] = $Member['nickname'];
  44. $createdata['agent_level'] = (int) AgentLevel::getdefault()['id'];
  45. $createdata['status'] = 1;
  46. Agent::create($createdata);
  47. }
  48. }
  49. public static function setIncome($uid, $order_info, $percent, $level)
  50. {
  51. $Agent = Agent::where('uid', $uid)->find();
  52. //代理商是状态是开启的
  53. if (!empty($Agent)) {
  54. $share = Config::getconfig('share');
  55. $Agent = $Agent->toArray();
  56. if ($share['price_type'] == 1) {
  57. $income = $percent;
  58. } else {
  59. $income = OrderGoods::getCommission($order_info, 'agent', $percent);
  60. }
  61. $return_percent = $percent;
  62. $agent_level = AgentLevel::find($Agent['agent_level']);
  63. if (!empty($agent_level)) {
  64. $agent_level = $agent_level->toArray();
  65. }
  66. if (!empty($agent_level['return_percent'])) {
  67. $income = $income * percent_to_num($agent_level['return_percent']);
  68. $return_percent = $return_percent * percent_to_num($agent_level['return_percent']);
  69. }
  70. if ($income > 0) {
  71. if ($income > 0 && $income < 0.01) {
  72. $income = 0.01;
  73. }
  74. $Incomelog = Incomelog::where([
  75. 'uid' => $uid,
  76. 'level' => $uid,
  77. 'weid' => $level,
  78. 'order_id' => $order_info['id'],
  79. ])->find();
  80. if (empty($Incomelog)) {
  81. Agent::where('uid', $uid)->inc('income', $income)->update();
  82. Agent::where('uid', $uid)->inc('total_income', $income)->update();
  83. $incomedata['uid'] = $uid;
  84. $incomedata['ptype'] = 1;
  85. $incomedata['weid'] = $order_info['weid'];
  86. $incomedata['level'] = $level;
  87. $incomedata['order_id'] = $order_info['id'];
  88. $incomedata['order_num_alias'] = $order_info['order_num_alias'];
  89. $incomedata['buyer_id'] = $order_info['uid'];
  90. $incomedata['income'] = $income;
  91. $incomedata['return_percent'] = floatval($return_percent);
  92. $incomedata['percentremark'] = $percent . '% x' . $agent_level['return_percent'] . '%';
  93. $incomedata['order_total'] = $order_info['total'];
  94. $incomedata['pay_time'] = $order_info['pay_time'];
  95. $incomedata['month_time'] = date('m', time());
  96. $incomedata['year_time'] = date('Y', time());
  97. $incomedata['order_status_id'] = 2; //已付款
  98. Incomelog::create($incomedata);
  99. }
  100. }
  101. }
  102. }
  103. }