From 80835bcc12f4788c1a88da61e623b362e57f1cb1 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 24 八月 2024 09:31:43 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java |   70 ++++++++++++++++++++++++++++++----
 1 files changed, 61 insertions(+), 9 deletions(-)

diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
index f8cfe72..b49fc4f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppUserServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.account.service.impl;
 
 import com.alipay.api.response.AlipaySystemOauthTokenResponse;
+import com.alipay.api.response.AlipayUserInfoShareResponse;
 import com.alipay.api.response.AlipayUserUserinfoShareResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -9,8 +10,10 @@
 import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.account.mapper.TAppUserMapper;
 import com.ruoyi.account.service.TAppUserService;
+import com.ruoyi.account.service.TInviteUserService;
 import com.ruoyi.account.wx.model.WeixinProperties;
 import com.ruoyi.account.wx.pojo.AppletUserDecodeData;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.system.api.model.LoginUserApplet;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -33,8 +36,10 @@
 public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService {
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private TInviteUserService inviteUserService;
     @Override
-    public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData) {
+    public Map<String, Object> wxLogin(AppletUserDecodeData appletUserDecodeData,Long inviteUserId) {
         // 通过手机号查询用户,是否已存在手动导入用户,包含支付宝用户
         TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                 .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
@@ -51,41 +56,76 @@
                 appUser.setPhone(appletUserDecodeData.getPhoneNumber());
             }
         }
+        if(Objects.nonNull(appUser.getStatus())){
+            throwInfo(appUser.getStatus());
+        }
+        appUser.setInviteUserId(inviteUserId);
         appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
         appUser.setCity(appletUserDecodeData.getCity());
         appUser.setName(appletUserDecodeData.getNickName());
         appUser.setProvince(appletUserDecodeData.getProvince());
         appUser.setWxOpenid(appletUserDecodeData.getOpenId());
         this.saveOrUpdate(appUser);
+        inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
         return this.getUserInfo(appUser);
     }
 
     @Override
-    public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserUserinfoShareResponse userInfo) {
+    public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response,String phone,Long inviteUserId) {
         // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户
         TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
-                .eq(TAppUser::getPhone, userInfo.getMobile())
+                .eq(TAppUser::getPhone, phone)
                 .isNull(TAppUser::getAliOpenid)
                 .last("LIMIT 1"));
         if(Objects.isNull(appUser)){
             // 先使用openId和当前手机号进行查询
             appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
                     .eq(TAppUser::getAliOpenid, response.getOpenId())
-                    .eq(TAppUser::getPhone, userInfo.getMobile())
+                    .eq(TAppUser::getPhone, phone)
                     .last("LIMIT 1"));
             if(Objects.isNull(appUser)){
                 appUser = new TAppUser();
-                appUser.setPhone(userInfo.getMobile());
+                appUser.setPhone(phone);
             }
         }
-        appUser.setAvatar(userInfo.getAvatar());
-        appUser.setCity(userInfo.getCity());
-        appUser.setName(userInfo.getNickName());
-        appUser.setProvince(userInfo.getProvince());
+        if(Objects.nonNull(appUser.getStatus())){
+            throwInfo(appUser.getStatus());
+        }
+        appUser.setInviteUserId(inviteUserId);
         appUser.setAliOpenid(response.getOpenId());
         this.saveOrUpdate(appUser);
+        inviteUserService.saveInviteUser(appUser.getId(), inviteUserId);
         return this.getUserInfo(appUser);
     }
+//    @Override
+//    public Map<String, Object> aliLogin(AlipaySystemOauthTokenResponse response, AlipayUserInfoShareResponse userInfo) {
+//        // 通过手机号查询用户,是否已存在手动导入用户,包含微信用户
+//        TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+//                .eq(TAppUser::getPhone, userInfo.getMobile())
+//                .isNull(TAppUser::getAliOpenid)
+//                .last("LIMIT 1"));
+//        if(Objects.isNull(appUser)){
+//            // 先使用openId和当前手机号进行查询
+//            appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+//                    .eq(TAppUser::getAliOpenid, response.getOpenId())
+//                    .eq(TAppUser::getPhone, userInfo.getMobile())
+//                    .last("LIMIT 1"));
+//            if(Objects.isNull(appUser)){
+//                appUser = new TAppUser();
+//                appUser.setPhone(userInfo.getMobile());
+//            }
+//        }
+//        if(Objects.nonNull(appUser.getStatus())){
+//            throwInfo(appUser.getStatus());
+//        }
+//        appUser.setAvatar(userInfo.getAvatar());
+//        appUser.setCity(userInfo.getCity());
+//        appUser.setName(userInfo.getNickName());
+//        appUser.setProvince(userInfo.getProvince());
+//        appUser.setAliOpenid(response.getOpenId());
+//        this.saveOrUpdate(appUser);
+//        return this.getUserInfo(appUser);
+//    }
 
     @Override
     public Map<String, Object> getUserInfo(TAppUser appUser) {
@@ -102,4 +142,16 @@
         tokenInfos.put("info",loginUserApplet);
         return tokenInfos;
     }
+
+    @Override
+    public void throwInfo(Integer status){
+        switch (status){
+            case 2:
+                throw new ServiceException("账号被冻结,请联系管理员");
+            case 3:
+                throw new ServiceException("账号已注销,请重新注册使用");
+            default:
+                break;
+        }
+    }
 }

--
Gitblit v1.7.1