From 1b43670626f48266efb898ec7cd7deedcab9ba10 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 17 八月 2024 15:31:23 +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 |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 57 insertions(+), 1 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 3e3b665..912a5e0 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,10 +1,23 @@
 package com.ruoyi.account.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.account.mapper.TAppUserMapper;
 import com.ruoyi.account.service.TAppUserService;
+import com.ruoyi.account.wx.model.WeixinProperties;
+import com.ruoyi.account.wx.pojo.AppletUserDecodeData;
+import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.system.api.model.LoginUserApplet;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
 
 /**
  * <p>
@@ -16,5 +29,48 @@
  */
 @Service
 public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService {
-
+    @Autowired
+    private TokenService tokenService;
+    @Override
+    public Map<String, Object> login(AppletUserDecodeData appletUserDecodeData) {
+        // 通过手机号查询用户,是否已存在手动导入用户
+        TAppUser appUser = this.getOne(Wrappers.lambdaQuery(TAppUser.class)
+                .eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
+                .isNull(TAppUser::getWxOpenid)
+                .last("LIMIT 1"));
+        LambdaQueryWrapper<TAppUser> wrapper = Wrappers.lambdaQuery(TAppUser.class)
+                .eq(TAppUser::getWxOpenid, appletUserDecodeData.getOpenId());
+        if(Objects.isNull(appUser)){
+            // 先使用openId和当前手机号进行查询
+            wrapper.eq(TAppUser::getPhone, appletUserDecodeData.getPhoneNumber())
+                    .last("LIMIT 1");
+            appUser = this.getOne(wrapper);
+            if(Objects.isNull(appUser)){
+                appUser = new TAppUser();
+                appUser.setPhone(appletUserDecodeData.getPhoneNumber());
+            }
+        }else {
+            wrapper.last("LIMIT 1");
+            // 删除小程序原有授权用户
+            this.remove(wrapper);
+        }
+        appUser.setAvatar(appletUserDecodeData.getAvatarUrl());
+        appUser.setCity(appletUserDecodeData.getCity());
+        appUser.setName(appletUserDecodeData.getNickName());
+        appUser.setProvince(appletUserDecodeData.getProvince());
+        appUser.setWxOpenid(appletUserDecodeData.getOpenId());
+        this.saveOrUpdate(appUser);
+        LoginUserApplet loginUserApplet = new LoginUserApplet();
+        if(ObjectUtils.isNotNull(appUser)){
+            loginUserApplet.setUserId(appUser.getId());
+            loginUserApplet.setName(appUser.getName());
+            loginUserApplet.setPhone(appUser.getPhone());
+            loginUserApplet.setAvatar(appUser.getAvatar());
+            loginUserApplet.setAddress(appUser.getProvince()+appUser.getCity());
+        }
+        Map<String, Object> tokenInfos = new HashMap<>();
+        tokenInfos.put("token",tokenService.createTokenApplet(loginUserApplet));
+        tokenInfos.put("info",loginUserApplet);
+        return tokenInfos;
+    }
 }

--
Gitblit v1.7.1