From 6a475442955b0ffb480facb92f6a23aa325034ec Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 24 七月 2024 19:19:14 +0800
Subject: [PATCH] 代码提交

---
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java |   59 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 44 insertions(+), 15 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index 4518fe5..0c991ed 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -1,6 +1,7 @@
 package com.doumee.service.business.impl;
 
 import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
 import cn.hutool.core.date.DateUnit;
 import com.alibaba.fastjson.JSONObject;
 import com.doumee.biz.system.SystemDictDataBiz;
@@ -34,6 +35,7 @@
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.dao.web.reqeust.EditUsersRequest;
 import com.doumee.dao.web.reqeust.ContentShareImgDto;
+import com.doumee.dao.web.reqeust.WxPhoneRequest;
 import com.doumee.dao.web.response.AccountResponse;
 import com.doumee.service.business.UsersService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -362,9 +364,10 @@
 //        }
 //        smsEmailMapper.updateById(model);
         //鍒涘缓token
-        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
-        String token = JwtTokenUtil.generateToken(payLoad);
-        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
+//        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
+//        String token = JwtTokenUtil.generateToken(payLoad);
+//        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
+        String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
         AccountResponse accountResponse = new AccountResponse();
         accountResponse.setToken(token);
         accountResponse.setUsers(users);
@@ -384,22 +387,22 @@
             accountResponse.setSessionKey(session.getSessionKey());
             Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getOpenid,openId).last("limit 1"));
             if(Objects.isNull(users)){
+                accountResponse.setSessionKey(session.getSessionKey());
                 return accountResponse;
             }
             if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插垹闄�");
             }
-            if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
+            if(!StringUtils.equals(users.getStatus(),Constants.ONE+"")){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
             }
             users.setOpenid(openId);
             usersMapper.updateById(users);
             //鍒涘缓token
-            JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
-            String token = JwtTokenUtil.generateToken(payLoad);
-            redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
+            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
             accountResponse.setToken(token);
             getUsersDetail(users);
+            accountResponse.setSessionKey(session.getSessionKey());
             accountResponse.setUsers(users);
             return accountResponse;
         } catch (WxErrorException e) {
@@ -407,6 +410,35 @@
         }
         throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"寰俊鐧诲綍寮傚父锛佽鑱旂郴绠$悊鍛�");
     }
+
+
+    @Override
+    public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){
+        try {
+            WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxPersonnelService.getUserService().getPhoneNoInfo(
+                    wxPhoneRequest.getSessionKey(), wxPhoneRequest.getEncryptedData(), wxPhoneRequest.getIv());
+            //鑾峰彇鎵嬫満鍙�
+            String phone= userPhoneInfo.getPurePhoneNumber();
+            if(Objects.isNull(phone)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈幏鍙栧埌鎵嬫満鍙�");
+            }
+            Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
+                    .eq(Users::getPhone,phone).last("limit 1"));
+            AccountResponse accountResponse = new AccountResponse();
+            accountResponse.setPhone( Constants.desensitizationPhone(phone));
+            if(Objects.isNull(users)){
+                return accountResponse;
+            }
+            accountResponse.setUsers(users);
+            String token = JwtTokenUtil.generateTokenForZb(users.getId(),ZTConstants.BUSINESS,JSONObject.toJSON(users).toString(),redisTemplate);
+            accountResponse.setToken(token);
+            return accountResponse;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏇存柊鎵嬫満鍙峰け璐�");
+    }
+
 
 
     @Override
@@ -667,7 +699,8 @@
         String url =null;
         //鍐呭鍒嗕韩娴锋姤鍥剧墖
         InputStream mpCode =  Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
-                "userId="+users.getId()+"&articleId="+param.getArticleId(),
+                //"userId="+users.getId()+"&articleId="+param.getArticleId(),
+                 param.getArticleId()+"&"+users.getId(),
                 param.getPageUrl());//灏忕▼搴�
 
         InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
@@ -836,14 +869,10 @@
 
 
     @Override
-    public ZTBaseRequst logOff(Long userId){
+    public ZTBaseRequst logOff(Long userId,String token){
         Users users = usersMapper.selectById(userId);
         if(Objects.isNull(users)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
-        }
-        if(StringUtils.isBlank(users.getOpenid())){
-            redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
-            return null;
         }
         //鏍¢獙鐢ㄦ埛token淇℃伅
         MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS);
@@ -855,9 +884,9 @@
         usersMapper.update(new UpdateWrapper<Users>().lambda()
                 .set(Users::getOpenid,null)
                 .set(Users::getEditDate,new Date())
-                .eq(Users::getId,users.getId())
+                .eq(Users::getOpenid,users.getOpenid())
         );
-        redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
+        redisTemplate.delete(token);
         return ztBaseRequst;
     }
 

--
Gitblit v1.9.3