AllwinUserAgent.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /**
  3. * @copyright Copyright (c) 2017 https://www.sapixx.com All rights reserved.
  4. * @license Licensed (http://www.apache.org/licenses/LICENSE-2.0).
  5. * @author pillar<ltmn@qq.com>
  6. * 社群主管理
  7. */
  8. namespace app\allwin\model;
  9. use app\common\facade\Inform;
  10. use think\Model;
  11. class AllwinUserAgent extends Model{
  12. protected $pk = 'id';
  13. //和主用户表绑定关系
  14. public function user(){
  15. return $this->hasOne('app\common\model\SystemUser','id','uid');
  16. }
  17. /**
  18. * 把已经是社群主的用户排除在外返回用户列表
  19. */
  20. public static function selects($condition){
  21. return model('SystemUser')->where($condition)->whereNotIn('id',self::where(['member_miniapp_id' => $condition['member_miniapp_id']])->column('uid'))
  22. ->whereNotIn('id',AllwinStore::where(['member_miniapp_id' => $condition['member_miniapp_id']])->column('manage_uid'))->order('id desc')->paginate(10,false);
  23. }
  24. /**
  25. * 添加编辑
  26. * @param array $param 数组
  27. */
  28. public static function add(int $member_miniapp_id,array $ids){
  29. $data = [];
  30. $user = self::where(['member_miniapp_id' => $member_miniapp_id,'uid' => $ids])->field('uid')->select()->toArray();
  31. $uid = [];
  32. if(!empty($user)){
  33. $uid = array_column($user,'uid');
  34. }
  35. foreach ($ids as $key => $value) {
  36. if(!in_array($value,$uid)){
  37. $data[$key]['member_miniapp_id'] = $member_miniapp_id;
  38. $data[$key]['uid'] = $value;
  39. $data[$key]['create_time'] = time();
  40. $data[$key]['is_type'] = 0;
  41. $data[$key]['is_pass'] = 1;
  42. $data[$key]['is_lock'] = 0;
  43. $data[$key]['pay_state'] = 2;
  44. }
  45. //通知申请者到微信
  46. Inform::sms($value,$member_miniapp_id,['title' =>'业务进展通知','type' => '身份变更','state' => '成功','content' =>'您的身份已变更为社群主']);
  47. }
  48. if(empty($data)){
  49. return;
  50. }
  51. return self::insertAll($data);
  52. }
  53. /**
  54. * 读取某个用户是否在某个社群主体系中,并返回当前社群主的ID(计算收益使用)
  55. * @param integer $uid
  56. * @param integer $miniapp_id
  57. * @return void
  58. */
  59. public function agentUid(int $uid,int $miniapp_id){
  60. $level = self::view('allwin_user_agent', 'uid')
  61. ->view('allwin_user_level', 'level', 'allwin_user_agent.uid=allwin_user_level.parent_id')
  62. ->where(['allwin_user_level.user_id' => $uid,'allwin_user_agent.member_miniapp_id' => $miniapp_id])
  63. ->order('allwin_user_level.id asc')->find();
  64. return empty($level) ? 0 : $level->uid;
  65. }
  66. /**
  67. * @param $data
  68. * @param $order_no
  69. * 申请成为社群主
  70. */
  71. public static function insertOrder($data,$order_no){
  72. $order = [
  73. 'member_miniapp_id' => $data['member_miniapp_id'],
  74. 'uid' => $data['uid'],
  75. 'price' => $data['price'],
  76. 'order_no' => $order_no,
  77. 'is_type' => 1,
  78. 'is_pass' => 0,
  79. 'is_lock' => 0,
  80. 'pay_state' => isset($data['pay_state']) ? $data['pay_state'] : 0,
  81. 'create_time' => time()
  82. ];
  83. self::create($order);
  84. }
  85. public static function isLock(int $id){
  86. $result = self::where(['id' => $id])->field('is_lock')->find();
  87. $data['is_lock'] = $result['is_lock'] ? 0 : 1;
  88. return self::where('id',$id)->update($data);
  89. }
  90. public static function isPass(int $id,$member_miniapp_id){
  91. $result = self::where(['id' => $id])->field('is_pass,uid')->find();
  92. $data['is_pass'] = $result['is_pass'] ? 0 : 1;
  93. if($data['is_pass'] == 1) {
  94. //通知申请者到微信
  95. Inform::sms($result->uid,$member_miniapp_id,['title' =>'业务进展通知','type' => '合伙人申请','content' =>'您的社群主申请已经通过审核','state' => '成功']);
  96. }
  97. return self::where('id',$id)->update($data);
  98. }
  99. }