MemberController.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. <?php
  2. /**
  3. * 微信成员管理控制器
  4. * @author 2015-11-30
  5. */
  6. class MemberController extends AdminController {
  7. public function actionIndex() {
  8. }
  9. public function actionList() {
  10. // $criteria = new EMongoCriteria();
  11. // $criteria->is_qywx_member('==', 0);
  12. // $cursor = User::model()->findAll($criteria);
  13. // $rows = CommonFn::getRowsFromCursor($cursor);
  14. }
  15. public function actionEditMember() {
  16. $id = Yii::app()->request->getParam('_id', -1);
  17. $userid = Yii::app()->request->getParam('userid', '');
  18. $name = Yii::app()->request->getParam('wx_name', '');
  19. $department = Yii::app()->request->getParam('department', array());
  20. $mobile = Yii::app()->request->getParam('mobile', '');
  21. $position = Yii::app()->request->getParam('position', '');
  22. $weixinid = Yii::app()->request->getParam('weixinid', '');
  23. $email = Yii::app()->request->getParam('email', '');
  24. $gender = intval(Yii::app()->request->getParam('gender', 0));
  25. $userObj = User::get(intval($id));
  26. if ($id == -1) {
  27. CommonFn::requestAjax(false, '请选择用户');
  28. }
  29. foreach ($department as $key => $value) {
  30. $department[$key] = intval($value);
  31. }
  32. if (empty($department)) {
  33. $department[0] = 1;
  34. }
  35. // 请求微信企业号,添加成员
  36. $user_data = array(
  37. 'userid' => $userid,
  38. 'name' => $name,
  39. 'department' => $department,
  40. 'position' => $position,
  41. 'mobile' => $mobile,
  42. 'gender' => $gender,
  43. 'email' => $email,
  44. 'weixinid' => $weixinid,
  45. );
  46. if ($gender == 0) {
  47. unset($user_data['gender']);
  48. }
  49. $option = WechatConfig::getIns()->getLinkOption();
  50. $secret = WechatConfig::getIns()->getSecret('admin_dev');
  51. $wechat = new QyWechat($option);
  52. if ($wechat->checkAuth($option['appid'], $secret)) {
  53. // 检查用户是否存在
  54. $userInfo = $wechat->getUserInfo($userid);
  55. if ($userInfo == false) {
  56. $result = $wechat->createUser($user_data);
  57. if ($result['errmsg'] != 'created') {
  58. CommonFn::requestAjax(false, $result['errmsg']);
  59. }
  60. } else {
  61. $result = $wechat->updateUser($user_data);
  62. if ($result['errmsg'] != 'updated') {
  63. CommonFn::requestAjax(false, $result['errmsg']);
  64. }
  65. }
  66. } else {
  67. CommonFn::requestAjax(false, '微信验证失败');
  68. }
  69. // 后台修改用户信息
  70. $userObj->is_member = 1;
  71. $userObj->userid = $userid;
  72. $wx_info = array(
  73. 'name' => $name,
  74. 'department' => $department,
  75. 'position' => $position,
  76. 'mobile' => $mobile,
  77. 'weixinid' => $weixinid,
  78. 'gender' => $gender,
  79. );
  80. $userObj->wx_info = $wx_info;
  81. if ($gender == 0) {
  82. $wx_info['gender'] = isset($userObj->wx_info['gender']) ? $userObj->wx_info['gender'] : 0;
  83. }
  84. $success = $userObj->save(true, array('is_member', 'userid', 'wx_info'));
  85. CommonFn::requestAjax($success, '', array());
  86. }
  87. }