ManagerController.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Name: 芸众商城系统
  5. * Author: 广州市芸众信息科技有限公司
  6. * Profile: 广州市芸众信息科技有限公司位于国际商贸中心的广州,专注于移动电子商务生态系统打造,拥有芸众社交电商系统、区块链数字资产管理系统、供应链管理系统、电子合同等产品/服务。官网 :www.yunzmall.com www.yunzshop.com
  7. * Date: 2021/9/22
  8. * Time: 13:37
  9. */
  10. namespace business\admin\controllers;
  11. use app\common\models\Member;
  12. use business\common\models\ManagerList;
  13. use business\common\services\BusinessService;
  14. use business\common\controllers\components\BaseController;
  15. use business\common\models\Business as BusinessModel;
  16. class ManagerController extends BaseController
  17. {
  18. /*
  19. * 管理员列表
  20. */
  21. public function managerList()
  22. {
  23. if (!$business_id = \request()->business_id) {
  24. return $this->errorJson('请选择要操作的企业');
  25. }
  26. if (!$this->checkManagerRight($business_id, 0, 1)) {
  27. return $this->errorJson('无权查看管理者列表');
  28. }
  29. $manager = BusinessService::getManager($business_id)->toArray(); //获取管理员列表
  30. $creater = BusinessService::getBusinessCreater($business_id); //获取企业创建人
  31. $owner = BusinessService::getBusinessOwner($business_id); //获取企业法人
  32. $return_data = [];
  33. foreach ($manager as $k => $v) {
  34. if ($creater->uid == $v['uid'] || $owner->uid == $v['uid']) {
  35. continue;
  36. }
  37. $return_data[] = [
  38. 'id' => $v['id'],
  39. 'uid' => $v['has_one_member']['uid'],
  40. 'avatar' => $v['has_one_member']['avatar_image'] ?: '',
  41. 'nickname' => $v['has_one_member']['username'] ?: '',
  42. 'realname' => $v['has_one_member']['realname'] ?: '',
  43. 'identity' => 2,
  44. 'identity_desc' => '管理员',
  45. ];
  46. }
  47. if ($creater && $owner && $creater->uid == $owner->uid) {
  48. array_unshift($return_data, [
  49. 'id' => 0,
  50. 'uid' => $creater->uid,
  51. 'avatar' => $creater->avatar_image ?: '',
  52. 'nickname' => $creater->username ?: '',
  53. 'realname' => $creater->realname ?: '',
  54. 'identity' => 5,
  55. 'identity_desc' => '法人、创建人',
  56. ]);
  57. } elseif ($creater) {
  58. array_unshift($return_data, [
  59. 'id' => 0,
  60. 'uid' => $creater->uid,
  61. 'avatar' => $creater->avatar_image ?: '',
  62. 'nickname' => $creater->username ?: '',
  63. 'realname' => $creater->realname ?: '',
  64. 'identity' => 3,
  65. 'identity_desc' => '创建人',
  66. ]);
  67. } elseif ($owner) {
  68. array_unshift($return_data, [
  69. 'id' => 0,
  70. 'uid' => $owner->uid,
  71. 'avatar' => $owner->avatar_image ?: '',
  72. 'nickname' => $owner->username ?: '',
  73. 'realname' => $owner->realname ?: '',
  74. 'identity' => 4,
  75. 'identity_desc' => '法人',
  76. ]);
  77. }
  78. return $this->successJson('获取成功', ['list' => $return_data]);
  79. }
  80. /*
  81. * 转让企业
  82. */
  83. public function changeBusinessOwner()
  84. {
  85. if (!$business_id = \request()->business_id) {
  86. return $this->errorJson('请选择要操作的企业');
  87. }
  88. if (!$business = BusinessModel::uniacid()->find($business_id)) {
  89. return $this->errorJson('企业不存在');
  90. }
  91. if (!$this->checkManagerRight($business_id, 0, 1)) {
  92. return $this->errorJson('无权转让企业');
  93. }
  94. if (!$member = Member::uniacid()->where('mobile', \request()->mobile)->first()) {
  95. return $this->errorJson('转让会员不存在');
  96. }
  97. $business->member_uid = $member->uid;
  98. $business->save();
  99. //清除相关人员的缓存
  100. BusinessService::flush(0, [\YunShop::app()->getMemberId(), $member->uid]);
  101. return $this->successJson('转让成功');
  102. }
  103. /*
  104. * 添加管理员
  105. */
  106. public function addManager()
  107. {
  108. if (!$business_id = \request()->business_id) {
  109. return $this->errorJson('请选择要操作的企业');
  110. }
  111. if (!$this->checkManagerRight($business_id, 0, 1)) {
  112. return $this->errorJson('无权添加管理员');
  113. }
  114. if (!$member = Member::uniacid()->where('mobile', \request()->mobile)->first()) {
  115. return $this->errorJson('不存在此用户');
  116. }
  117. $auth = BusinessService::checkBusinessRight($business_id, $member->uid, 1);
  118. if ($auth['identity'] > 1) {
  119. return $this->errorJson('该用户已经拥有管理员权限');
  120. } elseif (!$auth['identity']) {
  121. return $this->errorJson('请先将该用户添加为企业员工');
  122. }
  123. $manager = ManagerList::create([
  124. 'uniacid' => \YunShop::app()->uniacid,
  125. 'uid' => $member->uid,
  126. 'business_id' => $business_id,
  127. ]);
  128. if (!$manager) {
  129. return $this->errorJson('创建管理员失败');
  130. }
  131. BusinessService::flush(0, $manager->uid);//清除会员缓存
  132. return $this->successJson('创建管理员成功');
  133. }
  134. /*
  135. * 删除管理员
  136. */
  137. public function deleteManager()
  138. {
  139. if (!$business_id = \request()->business_id) {
  140. return $this->errorJson('请选择要操作的企业');
  141. }
  142. if (!$this->checkManagerRight($business_id, 0, 1)) {
  143. return $this->errorJson('无权删除管理员');
  144. }
  145. if (!$manager = ManagerList::business($business_id)->find(\request()->id)) {
  146. return $this->errorJson('管理员不存在或已删除');
  147. }
  148. $delete_uid = $manager->uid;
  149. $manager->delete();
  150. BusinessService::flush(0, $delete_uid);//清除会员缓存
  151. return $this->successJson('删除成功');
  152. }
  153. private function checkManagerRight($business_id = 0, $member_id = 0, $forget = 0)
  154. {
  155. $premission = BusinessService::checkBusinessRight($business_id, $member_id, $forget);
  156. return $premission['identity'] >= 3;
  157. }
  158. }