k94314517
2024-07-19 4dc531fc2dcd6517fffa2e9760225f5705537258
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -4,8 +4,11 @@
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 +24,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;
@@ -81,6 +85,11 @@
    private SmsEmailMapper smsEmailMapper;
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private MemberMapper memberMapper;
    @Autowired
    private ZbomZhongTaiService zbomZhongTaiService;
    @Override
    public Long create(Users users) {
@@ -323,12 +332,12 @@
        }
        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(),"当前账户已停用,请联系管理员");
        }
        //验证短信
@@ -355,6 +364,7 @@
        //创建token
        JwtPayLoad payLoad = new JwtPayLoad(users.getId(),Constants.ONE);
        String token = JwtTokenUtil.generateToken(payLoad);
        redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
        AccountResponse accountResponse = new AccountResponse();
        accountResponse.setToken(token);
        accountResponse.setUsers(users);
@@ -382,10 +392,14 @@
            if(!StringUtils.equals(users.getStatus(),Constants.ZERO+"")){
                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);
            redisTemplate.opsForValue().set(ZTConstants.BUSINESS+"_"+users.getId(),token);
            accountResponse.setToken(token);
            getUsersDetail(users);
            accountResponse.setUsers(users);
            return accountResponse;
        } catch (WxErrorException e) {
@@ -743,7 +757,7 @@
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
        if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户已禁用");
        }
        getUsersDetail(users);
@@ -756,7 +770,7 @@
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
        if(!Constants.equalsInteger(users.getIsdeleted(),Constants.ZERO)){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"用户已禁用");
        }
        getUsersDetail(users);
@@ -821,7 +835,31 @@
    @Override
    public ZTBaseRequst logOff(Long userId){
        Users users = usersMapper.selectById(userId);
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(StringUtils.isBlank(users.getOpenid())){
            redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
            return null;
        }
        //校验用户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::getId,users.getId())
        );
        redisTemplate.delete(ZTConstants.BUSINESS+"_"+ users.getId());
        return ztBaseRequst;
    }
}