liukangdong
2024-07-16 20b11236b4364034f52df294b9240776f539ede1
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -1,6 +1,7 @@
package com.doumee.service.business.impl;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.hutool.core.date.DateUnit;
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.zbom.model.IamUserRoleModel;
import com.doumee.biz.zbom.model.IamUserTypeModel;
@@ -13,17 +14,17 @@
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.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.Multifile;
import com.doumee.dao.business.model.News;
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Users;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
@@ -44,10 +45,8 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -68,6 +67,8 @@
    private UsersMapper usersMapper;
    @Autowired
    private ShopMapper shopMapper;
    @Autowired
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
@@ -293,6 +294,8 @@
    }
    @Override
    public AccountResponse phoneLogin(String phone,String code){
        if(StringUtils.isEmpty(phone)||StringUtils.isEmpty(code)){
@@ -308,10 +311,27 @@
        if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前账户已停用,请联系管理员");
        }
        //TODO 验证短信信息
        if(!StringUtils.equals(code,"123456")){
            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(),"对不起,验证码不正确,请重新发送再试!");
        }
        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);
@@ -582,5 +602,69 @@
        return null;
    }
    @Override
    public     String getUserCard(Users users){
        String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
        String folder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode();
        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 imgurl =StringUtils.isNotBlank(users.getImgurl())?path+users.getImgurl():defualtHeader;
        String qrcode =StringUtils.isNotBlank(users.getQrcodeImg())?path+users.getQrcodeImg():null;
        InputStream inputStream = GeneratePicUtil.generateUserCardImg(
                imgurl
                ,qrcode
                ,StringUtils.defaultString(users.getName(),"-")
                ,"导购"
                ,StringUtils.defaultString(users.getPhone(),"-")
                ,StringUtils.defaultString(users.getShopAddress(),"-")
                ,"ZBOM志邦家居|"+ StringUtils.defaultString(users.getShopName(),"-")
                ,defualtPhone
                ,defualtAddr);
        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 fileName =folder+ DateUtil.getNowShortDate()+"/"+UUID.randomUUID().toString() + ".jpg";
        if (obs.uploadInputstreamObject(inputStream,systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.BUCKETNAME).getCode(), fileName)) {
            return  path+fileName;
        }
        return null;
    }
    @Override
    public Users usersDetail(Long userId){
        Users users = usersMapper.selectById(userId);
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        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(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{
                    users.setShopAddress(shop.getProvinceName()+shop.getCityName()+shop.getAreaName()+shop.getTown()+shop.getRegAddr());
                }
            }
        }
        return users;
    }
}