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 |  844 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 794 insertions(+), 50 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 8eba3c7..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,20 +1,77 @@
 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;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.GeneratePicUtil;
 import com.doumee.core.utils.Utils;
+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;
 import com.doumee.dao.business.UsersMapper;
-import com.doumee.dao.business.model.Users;
+import com.doumee.dao.business.model.*;
+import com.doumee.dao.system.model.SystemDictData;
+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;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 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;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.util.ThreadContext;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
 
-import java.util.List;
+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;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import static com.aliyun.api.internal.util.AliyunWebUtils.doGet;
 
 /**
  * 鍛樺伐淇℃伅琛⊿ervice瀹炵幇
@@ -22,10 +79,26 @@
  * @date 2024/07/04 14:40
  */
 @Service
+@Slf4j
 public class UsersServiceImpl implements UsersService {
 
+
+    ExecutorService executor = Executors.newFixedThreadPool(1);
+    @Autowired
+    private RedisTemplate<String, Object> redisTemplate;
     @Autowired
     private UsersMapper usersMapper;
+    @Autowired
+    private ShopMapper shopMapper;
+    @Autowired
+    private SmsEmailMapper smsEmailMapper;
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private MemberMapper memberMapper;
+
+    @Autowired
+    private ZbomZhongTaiService zbomZhongTaiService;
 
     @Override
     public Long create(Users users) {
@@ -69,7 +142,15 @@
 
     @Override
     public Users findById(Long id) {
-        return usersMapper.selectById(id);
+        MPJLambdaWrapper<Users> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.leftJoin(Shop.class,Shop::getId,Users::getDepartmentId)
+                .selectAs(Shop::getName,Users::getShopName)
+                .selectAs(Shop::getAddress,Users::getShopAddress)
+                .selectAs(Shop::getType,Users::getShopType)
+                .selectAs(Shop::getSecondType,Users::getShopSecType)
+                .selectAll(Users.class)
+                .eq(Users::getId,id);
+        return usersMapper.selectJoinOne(Users.class,queryWrapper);
     }
 
     @Override
@@ -87,123 +168,164 @@
     @Override
     public PageData<Users> findPage(PageWrap<Users> pageWrap) {
         IPage<Users> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<Users> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<Users> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.leftJoin(Shop.class,Shop::getId,Users::getDepartmentId)
+                .selectAs(Shop::getNamePath,Users::getShopName)
+                .selectAs(Shop::getType,Users::getShopType)
+                .selectAs(Shop::getSecondType,Users::getShopSecType)
+                .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.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.lambda().eq(Users::getId, pageWrap.getModel().getId());
+            queryWrapper.eq(Users::getId, pageWrap.getModel().getId());
         }
         if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(Users::getCreator, pageWrap.getModel().getCreator());
+            queryWrapper.eq(Users::getCreator, pageWrap.getModel().getCreator());
         }
         if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(Users::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(Users::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+            queryWrapper.ge(Users::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(Users::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
         }
         if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(Users::getEditor, pageWrap.getModel().getEditor());
+            queryWrapper.eq(Users::getEditor, pageWrap.getModel().getEditor());
         }
         if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(Users::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(Users::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+            queryWrapper.ge(Users::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(Users::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
         }
         if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(Users::getIsdeleted, pageWrap.getModel().getIsdeleted());
+            queryWrapper.eq(Users::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(Users::getRemark, pageWrap.getModel().getRemark());
+            queryWrapper.eq(Users::getRemark, pageWrap.getModel().getRemark());
         }
         if (pageWrap.getModel().getDepartmentId() != null) {
-            queryWrapper.lambda().eq(Users::getDepartmentId, pageWrap.getModel().getDepartmentId());
+            queryWrapper.eq(Users::getDepartmentId, pageWrap.getModel().getDepartmentId());
         }
         if (pageWrap.getModel().getImgurl() != null) {
-            queryWrapper.lambda().eq(Users::getImgurl, pageWrap.getModel().getImgurl());
+            queryWrapper.eq(Users::getImgurl, pageWrap.getModel().getImgurl());
         }
         if (pageWrap.getModel().getType() != null) {
-            queryWrapper.lambda().eq(Users::getType, pageWrap.getModel().getType());
+            queryWrapper.eq(Users::getType, pageWrap.getModel().getType());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(Users::getName, pageWrap.getModel().getName());
+            queryWrapper.eq(Users::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getBirthday() != null) {
-            queryWrapper.lambda().ge(Users::getBirthday, Utils.Date.getStart(pageWrap.getModel().getBirthday()));
-            queryWrapper.lambda().le(Users::getBirthday, Utils.Date.getEnd(pageWrap.getModel().getBirthday()));
+            queryWrapper.ge(Users::getBirthday, Utils.Date.getStart(pageWrap.getModel().getBirthday()));
+            queryWrapper.le(Users::getBirthday, Utils.Date.getEnd(pageWrap.getModel().getBirthday()));
         }
         if (pageWrap.getModel().getPhone() != null) {
-            queryWrapper.lambda().eq(Users::getPhone, pageWrap.getModel().getPhone());
+            queryWrapper.eq(Users::getPhone, pageWrap.getModel().getPhone());
         }
         if (pageWrap.getModel().getIdcardNo() != null) {
-            queryWrapper.lambda().eq(Users::getIdcardNo, pageWrap.getModel().getIdcardNo());
+            queryWrapper.eq(Users::getIdcardNo, pageWrap.getModel().getIdcardNo());
         }
         if (pageWrap.getModel().getCode() != null) {
-            queryWrapper.lambda().eq(Users::getCode, pageWrap.getModel().getCode());
+            queryWrapper.eq(Users::getCode, pageWrap.getModel().getCode());
         }
         if (pageWrap.getModel().getOpenid() != null) {
-            queryWrapper.lambda().eq(Users::getOpenid, pageWrap.getModel().getOpenid());
+            queryWrapper.eq(Users::getOpenid, pageWrap.getModel().getOpenid());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(Users::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(Users::getStatus, pageWrap.getModel().getStatus());
         }
         if (pageWrap.getModel().getIamStatus() != null) {
-            queryWrapper.lambda().eq(Users::getIamStatus, pageWrap.getModel().getIamStatus());
+            queryWrapper.eq(Users::getIamStatus, pageWrap.getModel().getIamStatus());
         }
         if (pageWrap.getModel().getIamDate() != null) {
-            queryWrapper.lambda().ge(Users::getIamDate, Utils.Date.getStart(pageWrap.getModel().getIamDate()));
-            queryWrapper.lambda().le(Users::getIamDate, Utils.Date.getEnd(pageWrap.getModel().getIamDate()));
+            queryWrapper.ge(Users::getIamDate, Utils.Date.getStart(pageWrap.getModel().getIamDate()));
+            queryWrapper.le(Users::getIamDate, Utils.Date.getEnd(pageWrap.getModel().getIamDate()));
         }
         if (pageWrap.getModel().getIamId() != null) {
-            queryWrapper.lambda().eq(Users::getIamId, pageWrap.getModel().getIamId());
+            queryWrapper.eq(Users::getIamId, pageWrap.getModel().getIamId());
         }
         if (pageWrap.getModel().getIamUsername() != null) {
-            queryWrapper.lambda().eq(Users::getIamUsername, pageWrap.getModel().getIamUsername());
+            queryWrapper.like(Users::getIamUsername, pageWrap.getModel().getIamUsername());
         }
         if (pageWrap.getModel().getPassword() != null) {
-            queryWrapper.lambda().eq(Users::getPassword, pageWrap.getModel().getPassword());
+            queryWrapper.eq(Users::getPassword, pageWrap.getModel().getPassword());
         }
         if (pageWrap.getModel().getSex() != null) {
-            queryWrapper.lambda().eq(Users::getSex, pageWrap.getModel().getSex());
+            queryWrapper.eq(Users::getSex, pageWrap.getModel().getSex());
         }
         if (pageWrap.getModel().getLastLoginDate() != null) {
-            queryWrapper.lambda().ge(Users::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate()));
-            queryWrapper.lambda().le(Users::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate()));
+            queryWrapper.ge(Users::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate()));
+            queryWrapper.le(Users::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate()));
         }
         if (pageWrap.getModel().getLoginNum() != null) {
-            queryWrapper.lambda().eq(Users::getLoginNum, pageWrap.getModel().getLoginNum());
+            queryWrapper.eq(Users::getLoginNum, pageWrap.getModel().getLoginNum());
         }
         if (pageWrap.getModel().getLastLoginPlat() != null) {
-            queryWrapper.lambda().eq(Users::getLastLoginPlat, pageWrap.getModel().getLastLoginPlat());
+            queryWrapper.eq(Users::getLastLoginPlat, pageWrap.getModel().getLastLoginPlat());
         }
         if (pageWrap.getModel().getCostomerNum() != null) {
-            queryWrapper.lambda().eq(Users::getCostomerNum, pageWrap.getModel().getCostomerNum());
+            queryWrapper.eq(Users::getCostomerNum, pageWrap.getModel().getCostomerNum());
         }
         if (pageWrap.getModel().getJobDate() != null) {
-            queryWrapper.lambda().eq(Users::getJobDate, pageWrap.getModel().getJobDate());
+            queryWrapper.eq(Users::getJobDate, pageWrap.getModel().getJobDate());
         }
         if (pageWrap.getModel().getSlogans() != null) {
-            queryWrapper.lambda().eq(Users::getSlogans, pageWrap.getModel().getSlogans());
+            queryWrapper.eq(Users::getSlogans, pageWrap.getModel().getSlogans());
         }
         if (pageWrap.getModel().getQrcodeImg() != null) {
-            queryWrapper.lambda().eq(Users::getQrcodeImg, pageWrap.getModel().getQrcodeImg());
+            queryWrapper.eq(Users::getQrcodeImg, pageWrap.getModel().getQrcodeImg());
         }
         if (pageWrap.getModel().getEmail() != null) {
-            queryWrapper.lambda().eq(Users::getEmail, pageWrap.getModel().getEmail());
+            queryWrapper.eq(Users::getEmail, pageWrap.getModel().getEmail());
         }
         if (pageWrap.getModel().getUserTypes() != null) {
-            queryWrapper.lambda().eq(Users::getUserTypes, pageWrap.getModel().getUserTypes());
+            queryWrapper.eq(Users::getUserTypes, pageWrap.getModel().getUserTypes());
         }
         if (pageWrap.getModel().getRoleIds() != null) {
-            queryWrapper.lambda().eq(Users::getRoleIds, pageWrap.getModel().getRoleIds());
+            queryWrapper.eq(Users::getRoleIds, pageWrap.getModel().getRoleIds());
         }
-        if (pageWrap.getModel().getRoleNames() != null) {
-            queryWrapper.lambda().eq(Users::getRoleNames, pageWrap.getModel().getRoleNames());
+        if (StringUtils.isNotBlank(pageWrap.getModel().getRoleNames() )) {
+            queryWrapper.eq(Users::getRoleNames, pageWrap.getModel().getRoleNames());
         }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
+        if (StringUtils.isNotBlank(pageWrap.getModel().getShopName() )) {
+            queryWrapper.eq(Shop::getName, pageWrap.getModel().getShopName());
+        }
+        queryWrapper.eq(pageWrap.getModel().getShopType()!=null,Shop::getType,pageWrap.getModel().getShopType());
+        queryWrapper.eq(pageWrap.getModel().getShopSecType()!=null,Shop::getSecondType,pageWrap.getModel().getShopSecType());
+        if(StringUtils.isNotBlank(pageWrap.getModel().getQueryKeyword())){
+            queryWrapper.and(w ->{
+                w.eq(Users::getName,pageWrap.getModel().getQueryKeyword())
+                        .or().eq(Users::getPhone,pageWrap.getModel().getQueryKeyword())
+                        .or().eq(Users::getCode,pageWrap.getModel().getQueryKeyword())
+                ;
+            } );
+        }
+        if(pageWrap.getModel().getIamOrgId()!=null){
+            if(pageWrap.getModel().getIncludeChild()!=null &&pageWrap.getModel().getIncludeChild() ){
+                //濡傛灉鍖呭惈涓嬬骇缁勭粐
+                Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getOrgId,pageWrap.getModel().getIamOrgId()).last("limit 1"));//鏌ヨ缁勭粐淇℃伅
+                queryWrapper.likeRight(Shop::getIdPath,shop.getIdPath());
+            }else{
+                //涓嶅寘鍚笅绾х粍缁�
+                queryWrapper.eq(Shop::getOrgId,pageWrap.getModel().getIamOrgId());
             }
         }
-        return PageData.from(usersMapper.selectPage(page, queryWrapper));
+
+        PageData<Users> pageData =   PageData.from(usersMapper.selectJoinPage(page,Users.class, queryWrapper));
+        if(pageData!=null && pageData.getRecords()!=null && pageData.getRecords().size()>0){
+                String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH ).getCode() +
+                        systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE ).getCode();
+                for(Users f : pageData.getRecords()){
+                    if(StringUtils.isNotBlank(f.getImgurl())){
+                        f.setImgurlFull(path + f.getImgurl());
+                    }
+                    if(StringUtils.isNotBlank(f.getQrcodeImg())){
+                        f.setQrcodeImgFull(path + f.getQrcodeImg());
+                    }
+                }
+        }
+        return pageData;
     }
 
     @Override
@@ -211,4 +333,626 @@
         QueryWrapper<Users> wrapper = new QueryWrapper<>(users);
         return usersMapper.selectCount(wrapper);
     }
+
+
+
+
+    @Override
+    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(),"瀵逛笉璧凤紝璐﹀彿淇℃伅涓嶅瓨鍦紒");
+        }
+        if(!Constants.equalsInteger(users.getIsdeleted(), Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插垹闄�");
+        }
+        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);
+        //鍒涘缓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);
+        return accountResponse;
+    }
+
+    @Override
+    public AccountResponse wxLogin(String code){
+        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澶辫触锛佽鑱旂郴绠$悊鍛�");
+            }
+            AccountResponse accountResponse = new AccountResponse();
+            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.ONE+"")){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璐︽埛宸插仠鐢紝璇疯仈绯荤鐞嗗憳");
+            }
+            users.setOpenid(openId);
+            usersMapper.updateById(users);
+            //鍒涘缓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) {
+            e.printStackTrace();
+        }
+        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;
+            }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
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public String importBatch(MultipartFile file){
+        Boolean importing = (Boolean) redisTemplate.opsForValue().get(Constants.RedisKeys.IMPORTING_USERS);
+        if(importing!=null && importing){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝宸插瓨鍦ㄥ鍏ユ垨鑰呬笂涓嬬骇閲嶇疆浠诲姟姝e湪鎵ц涓紝璇风◢鍚庡啀璇曪紒");
+        }
+        redisTemplate.opsForValue().set(Constants.RedisKeys.IMPORTING_USERS,true);
+        try {
+            LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+            ExcelImporter ie = null;
+            List<UserImport> dataList =null;
+            try {
+                ie = new ExcelImporter(file,0,0);
+                dataList = ie.getDataList(UserImport.class,null);
+            }  catch (Exception e) {
+                e.printStackTrace();
+            }
+            if(dataList == null || dataList.size() ==0){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+            }
+            Date date =new Date();
+            List<UserImport> finalDataList = dataList;
+            Callable<String> task = () -> {
+                dealUserDataBiz(finalDataList,date,loginUserInfo);
+                return "寮傛浠诲姟瀹屾垚";
+            };
+            executor.submit(task);
+
+            return "瀵煎叆鎴愬姛";
+        }catch (BusinessException e){
+            throw e;
+        }catch (Exception e){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"淇℃伅瀵煎叆澶辫触锛岃绋嶅悗閲嶈瘯");
+        }
+    }
+
+    private void dealUserDataBiz(List<UserImport> dataList, Date date, LoginUserInfo loginUserInfo) {
+        try {
+            List<Users> list =  usersMapper.selectJoinList(Users.class,new MPJLambdaWrapper<Users>()
+                    .selectAll(Users.class)
+            );
+            List<Users> insertList = new ArrayList<>();
+            List<Users> updateList = new ArrayList<>();
+            for(int i=0;i<dataList.size();i++){
+                UserImport model = dataList.get(i);
+                if(StringUtils.isBlank(model.getName())
+                        &&StringUtils.isBlank(model.getCode()) ){
+                    continue;
+                }
+                Users user = checkModelParam(model,insertList,updateList,i,loginUserInfo,list,date);
+            }
+            if(insertList .size() >0){
+                int temp = 0;
+                while(temp < insertList.size()){
+                    int index;
+                    if(temp + 500 <= insertList.size()){
+                        index = temp+500;
+                    }else{
+                        index = insertList.size();
+                    }
+                    usersMapper.insert(insertList.subList(temp,index));
+                    temp = index;
+                }
+            }
+            if(updateList .size() >0){
+                for(Users s : updateList){
+                    //閬嶅巻鏇存柊鏁版嵁
+                    usersMapper.updateById(s);
+                }
+            }
+        }catch (BusinessException e){
+            throw e;
+        }catch (Exception e){
+            throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"淇℃伅瀵煎叆澶辫触锛岃绋嶅悗閲嶈瘯");
+        }finally {
+            executor.shutdown();
+            redisTemplate.delete(Constants.RedisKeys.IMPORTING_USERS);
+        }
+    }
+    private Users getUserByUserID(String userId, List<Users> list) {
+        if(list ==null || list.size() ==0){
+            return null;
+        }
+        for(Users s :list){
+            if(StringUtils.equals(s.getIamId(),userId)){
+                return s;
+            }
+        }
+        return null;
+    }
+
+    private Users checkModelParam(UserImport model, List<Users> insertList, List<Users> updateList, int index, LoginUserInfo loginUserInfo, List<Users> list, Date date) {
+
+            if(StringUtils.isBlank(model.getUserId())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愮紪鐮併�戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            if(StringUtils.isBlank(model.getName())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愬鍚嶃�戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            if(StringUtils.isBlank(model.getAccountNo())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愮櫥褰曡处鍙枫�戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            if(StringUtils.isBlank(model.getPhone())){
+                throw  new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+(index+3)+"琛屻�愭墜鏈哄彿銆戜俊鎭笉瀹屾暣锛岃妫�鏌ヨ〃鏍煎唴瀹癸紒");
+            }
+            Users users = getUserByUserID(model.getUserId(),list);
+            if(users == null){
+                users = new Users();
+                users.setCreator(loginUserInfo.getId());
+                users.setCreateDate(date);
+                initUsersInfo(users,model,date,loginUserInfo);
+                insertList.add(users);
+            }else {
+                initUsersInfo(users,model,date,loginUserInfo);
+                updateList.add(users);
+            }
+            return  users;
+        }
+
+    private void initUsersInfo(Users users, UserImport model,Date date,LoginUserInfo loginUserInfo ){
+        users.setEditor(loginUserInfo.getId());
+        users.setEditDate(date);
+        users.setName(model.getName());
+        users.setIamUsername(model.getAccountNo());
+        users.setPhone(model.getPhone());
+        users.setStatus(model.getStatus());
+        users.setEmail(model.getEmail());
+        users.setIamId(model.getUserId());
+        users.setCode(model.getCode());
+        users.setSex(model.getSex());
+        users.setStatus(model.getStatus());
+        users.setIsdeleted(Constants.ZERO);
+        users.setRoleIds("");
+        users.setRoleNames("");
+        users.setRoleCodes("");
+        users.setUserTypes("");
+        users.setIamOrgId("");
+        getDepartidByParam(users,model.getOrgIds());
+        setRolesInfo(users,model);
+        getUserTypesByParam(users,model.getTypeCodes());
+    }
+
+    private String getUserTypesByParam(Users users,String typeCodes) {
+        if( typeCodes !=null){
+            String[] codes =typeCodes.split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getUserTypes())){
+                    users.setUserTypes("");
+                }
+                users.setUserTypes(users.getUserTypes()+"["+t+"];");
+            }
+        }
+        return  users.getUserTypes();
+    }
+
+    private void setRolesInfo(Users users, UserImport model) {
+        if( model.getRoleCodes() !=null){
+            String[] codes = model.getRoleCodes().split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getRoleCodes())){
+                    users.setRoleCodes("");
+                }
+                users.setRoleCodes(users.getRoleCodes()+"["+t+"];");
+            }
+        }
+        if( model.getRoleIds() !=null){
+            String[] codes = model.getRoleIds().split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getRoleIds())){
+                    users.setRoleIds("");
+                }
+                users.setRoleIds(users.getRoleIds()+"["+t+"];");
+            }
+        }
+        if( model.getRoleNames() !=null){
+            String[] codes = model.getRoleNames().split(",");
+            for(String t : codes){
+                if(StringUtils.isBlank(users.getRoleNames())){
+                    users.setRoleNames("");
+                }
+                users.setRoleNames(users.getRoleNames()+"["+t+"];");
+            }
+        }
+    }
+
+    private Shop getDepartidByParam(Users users , String orgIds) {
+        if( orgIds ==null){
+          return null;
+        }
+        String[] orgArray = orgIds.split(",");
+        if( orgArray !=null && orgArray.length>0){
+            for(String t : orgArray){
+                Shop shop = shopMapper.selectOne(new QueryWrapper<Shop>().lambda()
+                        .eq(Shop::getOrgId,t)
+                        .last("limit 1"));
+                if(shop!=null) {
+                    users.setIamOrgId(t);
+                    users.setDepartmentId(shop.getId());
+                    return  shop;
+                }
+            }
+        }
+        users.setIamOrgId(orgIds+"--灏氭湭鍚屾鍒扮粍缁�");
+
+        return null;
+    }
+
+
+    @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);
+        }
+
+        String shareFolder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.SHARES_FILE).getCode();
+        String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
+        if(param.getType() == 1){
+            //澶氬浘甯︿簩缁寸爜涓嬭浇
+            return dealShareImgWithUser(param,users,shareFolder,path);
+        }else{
+          return dealShareImgNoUser(param,users,shareFolder,path);
+        }
+    }
+
+    private String dealShareImgWithUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
+        BufferedImage img1 =GeneratePicUtil.getImgIO(param.getImgurl());
+        if(img1 ==null){
+            return param.getImgurl();
+        }
+       /* 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(),
+                param.getArticleId()+"_"+users.getId(),
+                param.getPageUrl());//灏忕▼搴�
+
+        InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
+                img1
+                ,mpCode
+                ,imgurl
+        ,StringUtils.defaultString(users.getName(),"-"));
+        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());
+        String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+        String fileName =shareFolder+ key;
+        if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+            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(),
+                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());
+        String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+        String fileName =shareFolder+ key;
+        if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+            url =  path+fileName;
+        }
+        return  url;
+    }
+
+    @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(),"-")){
+            return  path + folder+users.getCardImg();
+        }
+        String defualtHeader = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_HEADER_IMG).getCode();
+        String defualtPhone = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_PHONE_IMG).getCode();
+        String defualtAddr = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_ADDR_IMG).getCode();
+        String defualtShop = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_SHOP_IMG).getCode();
+        String defualtLogo = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.USER_CARD_LOGO_IMG).getCode();
+        String imgurl =StringUtils.isNotBlank(users.getImgurl())?path+folder+users.getImgurl():defualtHeader;
+        String qrcode =StringUtils.isNotBlank(users.getQrcodeImg())?path+folder+users.getQrcodeImg():null;
+        InputStream inputStream = GeneratePicUtil.generateUserCardImg(
+                imgurl
+                ,qrcode
+                ,StringUtils.defaultString(users.getName(),"-")
+                ,"瀵艰喘"
+                ,StringUtils.defaultString(users.getPhone(),"-")
+                ,StringUtils.defaultString(users.getShopAddress(),"-")
+                , StringUtils.defaultString(users.getShopName(),"-")
+                ,defualtPhone
+                ,defualtAddr
+                ,defualtShop
+                ,defualtLogo);
+        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());
+        String key = DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
+        String fileName =folder+ key;
+        if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
+            Users update = new Users();
+            update.setId(users.getId());
+            update.setCardImg(key);
+            usersMapper.updateById(update);
+            return  path+fileName;
+        }
+        return null;
+    }
+
+    @Override
+    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())){
+            users.setImgurlFull(prefix + users.getImgurl());
+        }
+        if(StringUtils.isNotBlank(users.getQrcodeImg())){
+            users.setQrcodeImgFull(prefix + users.getQrcodeImg());
+        }
+        if(StringUtils.isNotBlank(users.getCompanyQrcodeImg())){
+            users.setCompanyQrcodeImgFull(prefix + users.getCompanyQrcodeImg());
+        }
+        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());
+                if(StringUtils.isNotBlank(shop.getAddress())){
+                    users.setShopAddress(shop.getAddress());
+                }else{
+                    if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
+                        users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
+                    }
+                }
+            }
+        }
+    }
+
+
+
+    @Override
+    public void editUserInfo(EditUsersRequest editUsersRequest){
+        if(Objects.isNull(editUsersRequest)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        Users users = usersMapper.selectById(editUsersRequest.getUserId());
+        if(Objects.isNull(users)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        //TODO 璋冭捣 涓彴鎺ュ彛
+        usersMapper.update(new UpdateWrapper<Users>()
+                .lambda()
+                .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())
+                .set(StringUtils.isNotBlank(editUsersRequest.getCompanyQrcodeImg()),Users::getCompanyQrcodeImg,editUsersRequest.getCompanyQrcodeImg())
+                .set(StringUtils.isNotBlank(editUsersRequest.getQrcodeImg()),Users::getQrcodeImg,editUsersRequest.getQrcodeImg())
+                .set(StringUtils.isNotBlank(editUsersRequest.getSlogans()),Users::getSlogans,editUsersRequest.getSlogans())
+                .set(Objects.nonNull(editUsersRequest.getCostomerNum()),Users::getCostomerNum,editUsersRequest.getCostomerNum())
+                .set(Objects.nonNull(editUsersRequest.getJobDate()),Users::getJobDate,editUsersRequest.getJobDate())
+                .set(StringUtils.isNotBlank(editUsersRequest.getPhone()),Users::getPhone,editUsersRequest.getPhone())
+                .eq(Users::getId,editUsersRequest.getUserId()));
+    }
+
+
+
+    @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