k94314517
2024-07-25 a75b18a4157ab486e0b51c438ac165ab3a08e3e0
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -35,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.GenerateQRCodeRequest;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
@@ -44,6 +45,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import okhttp3.Response;
import org.apache.catalina.User;
import org.apache.commons.lang3.StringUtils;
import me.chanjar.weixin.common.error.WxErrorException;
@@ -58,7 +60,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;
@@ -671,6 +676,8 @@
    @Override
    public  String getContentShareImg(Users users, ContentShareImgDto param){
        users = usersMapper.selectById(users.getId());
        this.getUsersDetail(users);
        if(StringUtils.isBlank(param.getImgurl())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
@@ -690,16 +697,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(
@@ -716,14 +723,13 @@
            url =  path+fileName;
        }
        return  url;
    }
    private String dealShareImgNoUser(ContentShareImgDto param, Users users, String shareFolder, String path) {
       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());//小程序
        String title = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.SHARE_HAIBAO_HEADER_TITLE).getCode();
@@ -744,6 +750,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(),"-")){
@@ -828,7 +836,9 @@
            Shop shop = shopMapper.selectById(users.getDepartmentId());
            if(Objects.nonNull(shop)){
                users.setShopName(shop.getName());
                users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
                    users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                }
                if(StringUtils.isNotBlank(shop.getAddress())){
                    users.setShopAddress(shop.getAddress());
                }else{
@@ -852,7 +862,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())
@@ -873,10 +883,6 @@
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(StringUtils.isBlank(users.getOpenid())){
            redisTemplate.delete(token);
            return null;
        }
        //校验用户token信息
        MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,users.getId(), ZTConstants.BUSINESS);
        //调起中台注销接口
@@ -887,11 +893,47 @@
        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;
    }
    @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(),"二维码生成失败");
    }
}