MemberUpdateService.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: weifeng
  5. * Date: 2020-08-12
  6. * Time: 16:18
  7. *
  8. * .--, .--,
  9. * ( ( \.---./ ) )
  10. * '.__/o o\__.'
  11. * {= ^ =}
  12. * > - <
  13. * / \
  14. * // \\
  15. * //| . |\\
  16. * "'\ /'"_.-~^`'-.
  17. * \ _ /--' `
  18. * ___)( )(___
  19. * (((__) (__))) 梦之所想,心之所向.
  20. */
  21. namespace app\frontend\modules\member\services;
  22. use app\common\exceptions\ShopException;
  23. use app\common\facades\EasyWeChat;
  24. use app\common\models\AccountWechats;
  25. use app\common\models\McMappingFans;
  26. use app\frontend\modules\member\models\McMappingFansModel;
  27. use app\frontend\modules\member\models\MemberModel;
  28. class MemberUpdateService
  29. {
  30. public $type;
  31. public function __construct($type)
  32. {
  33. $this->type = $type;
  34. }
  35. public function update()
  36. {
  37. $result = [];
  38. switch ($this->type) {
  39. case 1 :
  40. $result = $this->fans();
  41. break;
  42. case 2 :
  43. $result = $this->mini();
  44. break;
  45. }
  46. return $result;
  47. }
  48. public function fans()
  49. {
  50. $McFans = McMappingFans::uniacid()->where('uid', \YunShop::app()->getMemberId())->first();
  51. if (isset($McFans)) {
  52. $McFans = $McFans->toArray();
  53. }
  54. if (empty($McFans)) {
  55. return [
  56. 'status' => 0,
  57. 'message' => '登录信息不完整',
  58. ];
  59. }
  60. $app = EasyWeChat::officialAccount();
  61. $user_info = $app->user->get($McFans['openid']);
  62. if ($user_info['subscribe'] == 0) {
  63. $this->updateFansInfo(\YunShop::app()->getMemberId(), $user_info);
  64. return [
  65. 'status' => 0,
  66. 'message' => '未关注当前公众号,无法获取会员信息',
  67. ];
  68. }
  69. //todo 更新会员信息
  70. $this->updateMemberInfo(\YunShop::app()->getMemberId(), $user_info);
  71. $this->updateFansInfo(\YunShop::app()->getMemberId(), $user_info);
  72. return [
  73. 'status' => 1,
  74. 'message' => '更新成功',
  75. ];
  76. }
  77. public function mini()
  78. {
  79. $min_set = \Setting::get('plugin.min_app');
  80. if (is_null($min_set) || 0 == $min_set['switch']) {
  81. return [
  82. 'status' => 0,
  83. 'message' => '未开启小程序',
  84. ];
  85. }
  86. $para = \YunShop::request();
  87. $paras = $para['info'];
  88. if (!empty($paras)) {
  89. $json_user['nickname'] = $paras['nickName'];
  90. $json_user['headimgurl'] = $paras['avatarUrl'];
  91. $json_user['sex'] = $paras['gender'];
  92. //todo 更新会员信息
  93. $this->updateMemberInfo(\YunShop::app()->getMemberId(), $json_user);
  94. return [
  95. 'status' => 1,
  96. 'message' => '更新成功',
  97. ];
  98. } else {
  99. return [
  100. 'status' => 0,
  101. 'message' => '获取用户信息失败',
  102. ];
  103. }
  104. }
  105. /**
  106. * 更新会员信息
  107. *
  108. * @param $member_id
  109. * @param $userinfo
  110. */
  111. public function updateMemberInfo($member_id, $userinfo)
  112. {
  113. //更新mc_members
  114. $mc_data = array(
  115. 'nickname' => isset($userinfo['nickname']) ? stripslashes($userinfo['nickname']) : '',
  116. 'avatar' => isset($userinfo['headimgurl']) ? $userinfo['headimgurl'] : '',
  117. // 'gender' => isset($userinfo['sex']) ? $userinfo['sex'] : '-1',
  118. 'nationality' => isset($userinfo['country']) ? $userinfo['country'] : '',
  119. 'resideprovince' => isset($userinfo['province']) ? $userinfo['province'] : '' . '省',
  120. 'residecity' => isset($userinfo['city']) ? $userinfo['city'] : '' . '市'
  121. );
  122. MemberModel::updataData($member_id, $mc_data);
  123. }
  124. /**
  125. * 更新关注信息
  126. *
  127. * @param $member_id
  128. * @param $userinfo
  129. */
  130. public function updateFansInfo($member_id, $userinfo)
  131. {
  132. //更新mc_members
  133. $data = array(
  134. 'follow' => $userinfo['subscribe'],
  135. 'followtime' => $userinfo['subscribe_time'] ?: ''
  136. );
  137. McMappingFansModel::updateData($member_id, $data);
  138. }
  139. }