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 |  151 +++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 119 insertions(+), 32 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 9ae75bf..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,11 +1,15 @@
 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;
+import com.doumee.biz.zbom.ZbomZhongTaiService;
 import com.doumee.biz.zbom.model.IamUserRoleModel;
 import com.doumee.biz.zbom.model.IamUserTypeModel;
+import com.doumee.biz.zbom.model.zhongtai.ZTBaseRequst;
+import com.doumee.biz.zbom.model.zhongtai.ZTConstants;
 import com.doumee.config.Jwt.JwtPayLoad;
 import com.doumee.config.Jwt.JwtTokenUtil;
 import com.doumee.core.annotation.excel.ExcelImporter;
@@ -21,6 +25,7 @@
 import com.doumee.core.utils.tyyun.TyyZosUtil;
 import com.doumee.dao.admin.request.ShopImport;
 import com.doumee.dao.admin.request.UserImport;
+import com.doumee.dao.business.MemberMapper;
 import com.doumee.dao.business.ShopMapper;
 import com.doumee.core.wx.WxMiniConfig;
 import com.doumee.dao.business.SmsEmailMapper;
@@ -30,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;
@@ -81,6 +87,11 @@
     private SmsEmailMapper smsEmailMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private MemberMapper memberMapper;
+
+    @Autowired
+    private ZbomZhongTaiService zbomZhongTaiService;
 
     @Override
     public Long create(Users users) {
@@ -323,38 +334,40 @@
         }
         Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getPhone,phone).last("limit 1"));
         if(Objects.isNull(users)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌璐︽埛淇℃伅");
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝璐﹀彿淇℃伅涓嶅瓨鍦紒");
         }
         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.ZERO+"")){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
         }
         //楠岃瘉鐭俊
-        SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
-                .eq(SmsEmail::getType, Constants.ZERO)
-                .eq(SmsEmail::getPhone, phone)
-                .eq(SmsEmail::getRemark, code)
-                .eq(SmsEmail::getIsdeleted, Constants.ZERO)
-        );
-        if(model == null){
-            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛岃閲嶆柊鍙戦�佸啀璇曪紒");
-        }
-        if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
-            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇曪紒");
-        }
-        model.setStatus(Constants.ONE);
-        model.setEditDate(new Date());
-        if(model.getCreateDate() !=null &&
-                System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){
-            smsEmailMapper.updateById(model);
-            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇晘");
-        }
-        smsEmailMapper.updateById(model);
+//        SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
+//                .eq(SmsEmail::getType, Constants.ZERO)
+//                .eq(SmsEmail::getPhone, phone)
+//                .eq(SmsEmail::getRemark, code)
+//                .eq(SmsEmail::getIsdeleted, Constants.ZERO)
+//        );
+//        if(model == null){
+//            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佷笉姝g‘锛岃閲嶆柊鍙戦�佸啀璇曪紒");
+//        }
+//        if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
+//            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇曪紒");
+//        }
+//        model.setStatus(Constants.ONE);
+//        model.setEditDate(new Date());
+//        if(model.getCreateDate() !=null &&
+//                System.currentTimeMillis() - model.getCreateDate().getTime() > 3*60*1000){
+//            smsEmailMapper.updateById(model);
+//            throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝楠岃瘉鐮佸凡澶辨晥锛岃閲嶆柊鍙戦�佸啀璇晘");
+//        }
+//        smsEmailMapper.updateById(model);
         //鍒涘缓token
-        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
-        String token = JwtTokenUtil.generateToken(payLoad);
+//        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);
@@ -374,18 +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);
+            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) {
@@ -393,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
@@ -653,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(
@@ -738,11 +785,32 @@
     }
 
     @Override
-    public Users usersDetail(Long userId){
-        Users users = usersMapper.selectById(userId);
+    public Users usersDetailByIamId(String iamId){
+        Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getIamId,iamId).last("limit 1"));
         if(Objects.isNull(users)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
+        if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄦ埛宸茬鐢�");
+        }
+        getUsersDetail(users);
+        return users;
+    }
+
+    @Override
+    public Users usersDetailById(Long id){
+        Users users = usersMapper.selectById(id);
+        if(Objects.isNull(users)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄦ埛宸茬鐢�");
+        }
+        getUsersDetail(users);
+        return users;
+    }
+
+    public void getUsersDetail(Users users){
         String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                 StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
         if(StringUtils.isNotBlank(users.getImgurl())){
@@ -769,7 +837,6 @@
                 }
             }
         }
-        return users;
     }
 
 
@@ -801,7 +868,27 @@
 
 
 
-
+    @Override
+    public ZTBaseRequst logOff(Long userId,String token){
+        Users users = usersMapper.selectById(userId);
+        if(Objects.isNull(users)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        //鏍¢獙鐢ㄦ埛token淇℃伅
+        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS);
+        //璋冭捣涓彴娉ㄩ攢鎺ュ彛
+        ZTBaseRequst ztBaseRequst = new ZTBaseRequst();
+        ztBaseRequst.setUserType(ZTConstants.BUSINESS);
+        ztBaseRequst.setOpenId(users.getOpenid());
+        ztBaseRequst.setToken(users.getToken());
+        usersMapper.update(new UpdateWrapper<Users>().lambda()
+                .set(Users::getOpenid,null)
+                .set(Users::getEditDate,new Date())
+                .eq(Users::getOpenid,users.getOpenid())
+        );
+        redisTemplate.delete(token);
+        return ztBaseRequst;
+    }
 
 }
 

--
Gitblit v1.9.3