From b2d360d9113b6955287108ca9e90d76a1f3c1419 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期日, 29 九月 2024 15:05:11 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia

---
 server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java |  259 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 205 insertions(+), 54 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..a4e4879 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,8 @@
 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.GenerateQRCodeRequest;
+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;
@@ -38,6 +45,8 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.interfaces.MPJBaseJoin;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.Response;
 import org.apache.catalina.User;
 import org.apache.commons.lang3.StringUtils;
 import me.chanjar.weixin.common.error.WxErrorException;
@@ -52,7 +61,10 @@
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.imageio.ImageIO;
 import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.util.*;
 import java.util.concurrent.Callable;
@@ -67,6 +79,7 @@
  * @date 2024/07/04 14:40
  */
 @Service
+@Slf4j
 public class UsersServiceImpl implements UsersService {
 
 
@@ -81,6 +94,11 @@
     private SmsEmailMapper smsEmailMapper;
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private MemberMapper memberMapper;
+
+    @Autowired
+    private ZbomZhongTaiService zbomZhongTaiService;
 
     @Override
     public Long create(Users users) {
@@ -158,7 +176,10 @@
                 .selectAll(Users.class);
         Utils.MP.blankToNull(pageWrap.getModel());
         if (StringUtils.isNotBlank(pageWrap.getModel().getPhone())) {
-            queryWrapper.apply(" t.id in ( select c.USER_ID from customer_user c where c.phone = '"+pageWrap.getModel().getPhone()+"'  ) ");
+            queryWrapper.apply(" t.id in ( select c.USER_ID from customer_user c where  c.isdeleted = 0 and  c.phone = '"+pageWrap.getModel().getPhone()+"'  ) ");
+        }
+        if (Objects.nonNull(pageWrap.getModel().getMemberId())) {
+            queryWrapper.apply(" t.id in ( select c.USER_ID from customer_user c where c.isdeleted = 0 and  c.member_id = '"+pageWrap.getModel().getMemberId()+"'  ) ");
         }
         if (pageWrap.getModel().getId() != null) {
             queryWrapper.eq(Users::getId, pageWrap.getModel().getId());
@@ -317,44 +338,52 @@
 
 
     @Override
-    public AccountResponse phoneLogin(String phone,String code){
+    public AccountResponse phoneLogin(String phone,String code,String openid){
         if(StringUtils.isEmpty(phone)||StringUtils.isEmpty(code)){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         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(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
         }
+        if(StringUtils.isNotBlank(openid)){
+            usersMapper.update(null,new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null).eq(Users::getOpenid,openid).ne(Users::getId,users.getId()));
+            users.setOpenid(openid);
+            users.setEditDate(new Date());
+            usersMapper.updateById(users);
+        }
         //楠岃瘉鐭俊
-        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 +403,23 @@
             accountResponse.setSessionKey(session.getSessionKey());
             Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getOpenid,openId).last("limit 1"));
             if(Objects.isNull(users)){
+                accountResponse.setOpenid(openId);
+                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) {
@@ -396,22 +430,48 @@
 
 
     @Override
-    public void bindingOpenid(String code,Long userId){
+    public AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest){
         try {
-            //鑾峰彇寰俊鏁忔劅鏁版嵁
-            WxMaJscode2SessionResult session = WxMiniConfig.wxPersonnelService.getUserService().getSessionInfo(code);
-            String openId = session.getOpenid();
-            if (com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(openId)) {
-                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇openid澶辫触锛佽鑱旂郴绠$悊鍛�");
+            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(),"鏈幏鍙栧埌鎵嬫満鍙�");
             }
-            usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null).eq(Users::getOpenid,openId));
-            Users users = usersMapper.selectById(userId);
-            users.setOpenid(openId);
-            users.setEditDate(new Date());
-            usersMapper.updateById(users);
-        } catch (WxErrorException e) {
+            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;
+            }else{
+                if(StringUtils.isNotBlank(wxPhoneRequest.getOpenid())){
+                    usersMapper.update(null,new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null)
+                            .eq(Users::getOpenid,wxPhoneRequest.getOpenid()));
+                    users.setOpenid(wxPhoneRequest.getOpenid());
+                    usersMapper.updateById(users);
+                }
+            }
+            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
+    public void bindingOpenid(String openid,Long userId){
+        usersMapper.update(new UpdateWrapper<Users>().lambda().set(Users::getOpenid,null).eq(Users::getOpenid,openid));
+        Users users = usersMapper.selectById(userId);
+        users.setOpenid(openid);
+        users.setEditDate(new Date());
+        usersMapper.updateById(users);
     }
 
     @Override
@@ -625,6 +685,9 @@
 
     @Override
     public  String getContentShareImg(Users users, ContentShareImgDto param){
+        log.error("======================start===========:娴锋姤寮�濮�"+JSONObject.toJSONString(param));
+        users = usersMapper.selectById(users.getId());
+        this.getUsersDetail(users);
         if(StringUtils.isBlank(param.getImgurl())){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -644,16 +707,16 @@
         if(img1 ==null){
             return param.getImgurl();
         }
-      /*  if(img1.getWidth() <200 && img1.getHeight()<100){
+       /* if(img1.getWidth() <200 && img1.getHeight()<100){
             return  param.getImgurl();
-        }
-*/
+        }*/
         String defualtHeader = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_HEADER_IMG).getCode();
         String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode())+users.getImgurl():defualtHeader;
         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(
@@ -670,21 +733,24 @@
             url =  path+fileName;
         }
         return  url;
-
     }
 
     private String dealShareImgNoUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
        String url =null;
-        //鍐呭鍒嗕韩娴锋姤鍥剧墖
+        log.error("======================start===========:娴锋姤寮�濮�");
         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());//灏忕▼搴�
 
+        log.error("======================mpcode===========:鑾峰彇灏忕▼搴忕爜寮�濮�");
         String title = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.SHARE_HAIBAO_HEADER_TITLE).getCode();
         InputStream inputStream = GeneratePicUtil.generateShareImg(
                 param.getImgurl()
                 ,mpCode
                 ,title);
+
+        log.error("======================huatu===========:鐢诲浘缁撴潫");
         TyyZosUtil obs = new TyyZosUtil( systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ENDPOINT).getCode(),
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_ID).getCode(),
                 systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.ACCESS_KEY).getCode());
@@ -698,6 +764,8 @@
 
     @Override
     public     String getUserCard(Users users){
+        users = usersMapper.selectById(users.getId());
+        this.getUsersDetail(users);
         String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
         String folder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode();
         if(StringUtils.isNotBlank(users.getCardImg()) && !StringUtils.equals(users.getCardImg(),"-")){
@@ -738,11 +806,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())){
@@ -757,19 +846,25 @@
         if(StringUtils.isBlank(users.getSlogans())){
             users.setSlogans(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.ZBOM_CUSTOMIZED,Constants.USER_LABEL).getCode()));
         }
+        users.setManageShop(false);
+        if(StringUtils.isNotBlank(users.getRoleCodes())){
+            if(users.getRoleCodes().indexOf(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.ZBOM_CUSTOMIZED,Constants.USERS_MANAGE_CODE).getCode()))>=0){
+                users.setManageShop(true);
+            }
+        }
         if(Objects.nonNull(users.getDepartmentId())){
             Shop shop = shopMapper.selectById(users.getDepartmentId());
             if(Objects.nonNull(shop)){
                 users.setShopName(shop.getName());
-                users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                 if(StringUtils.isNotBlank(shop.getAddress())){
                     users.setShopAddress(shop.getAddress());
                 }else{
-                    users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName()+shop.getTown()+shop.getRegAddr());
+                    if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
+                        users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
+                    }
                 }
             }
         }
-        return users;
     }
 
 
@@ -786,7 +881,7 @@
         //TODO 璋冭捣 涓彴鎺ュ彛
         usersMapper.update(new UpdateWrapper<Users>()
                 .lambda()
-                .set(Users::getCardImg,"-") //閲嶇疆鍚嶇墖涓� -
+                .set(Users::getCardImg,null) //閲嶇疆鍚嶇墖涓� -
                 .set(StringUtils.isNotBlank(editUsersRequest.getImgurl()),Users::getImgurl,editUsersRequest.getImgurl())
                 .set(StringUtils.isNotBlank(editUsersRequest.getName()),Users::getName,editUsersRequest.getName())
                 .set(StringUtils.isNotBlank(editUsersRequest.getPhone()),Users::getPhone,editUsersRequest.getPhone())
@@ -801,7 +896,63 @@
 
 
 
+    @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;
+    }
 
 
+
+    @Override
+    public InputStream getQrCode(GenerateQRCodeRequest generateQRCodeRequest){
+        if(Objects.isNull(generateQRCodeRequest)
+            ||StringUtils.isBlank(generateQRCodeRequest.getIamId())
+            || StringUtils.isBlank(generateQRCodeRequest.getBusinessId())
+            || Objects.isNull(generateQRCodeRequest.getBusinessType())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(generateQRCodeRequest.getBusinessType()<Constants.ZERO || generateQRCodeRequest.getBusinessType() > Constants.THREE){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"涓氬姟绫诲瀷閿欒");
+        }
+        Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getIamId,
+                generateQRCodeRequest.getIamId()).last("limit 1"));
+        if(Objects.isNull(users)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍛樺伐淇℃伅");
+        }
+        InputStream inputStream =  Constants.generateWxMiniImgStream(
+                systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
+                generateQRCodeRequest.getBusinessId()+"_"+generateQRCodeRequest.getBusinessType()+"_"+users.getId(),
+                null);//灏忕▼搴�
+        return inputStream;
+//        try {
+//               ByteArrayOutputStream baos = new ByteArrayOutputStream();
+//                    byte[] buffer = new byte[1024];
+//                    int len = -1;
+//                    while ((len = inputStream.read(buffer)) != -1) {
+//                        baos.write(buffer, 0, len);
+//                    }
+//                    return "data:mediatype;base64," + Base64.getEncoder().encodeToString(baos.toByteArray());
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"浜岀淮鐮佺敓鎴愬け璐�");
+    }
 }
 

--
Gitblit v1.9.3