xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpOperationsUserServiceImpl.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.account.constant.I18nKeyConstant;
import com.xiaopeng.account.mapper.SysRoleMapper;
import com.xiaopeng.account.mapper.XpOperationsRoleMapper;
@@ -17,16 +18,18 @@
import com.xiaopeng.account.model.dto.XpOperationsUserDTO;
import com.xiaopeng.account.model.query.XpOperationsUserPageQuery;
import com.xiaopeng.account.model.query.XpOperationsUserQuery;
import com.xiaopeng.account.service.ISysRoleService;
import com.xiaopeng.account.service.IXpOperationsRoleService;
import com.xiaopeng.account.service.IXpOperationsUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.account.service.IXpQualificationAuditService;
import com.xiaopeng.account.service.*;
import com.xiaopeng.account.util.AliOssDownloadUtil;
import com.xiaopeng.api.dto.account.XpOperationsUserQueryDTO;
import com.xiaopeng.api.feignClient.maintenance.XpClockInClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetOperationsClient;
import com.xiaopeng.api.model.account.*;
import com.xiaopeng.api.model.account.SysRole;
import com.xiaopeng.api.model.account.XpOperationsRole;
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.model.account.XpQualificationAudit;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.query.account.OptionalUsersPageListQuery;
import com.xiaopeng.api.vo.account.*;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
@@ -45,10 +48,8 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.time.LocalDateTime;
import java.util.*;
@@ -89,21 +90,45 @@
    private ISysRoleService iSysRoleService;
    @Autowired
    private AliOssService aliOssService;
    @Autowired
    private AliOssDownloadUtil aliOssDownloadUtil;
    @Autowired
    private  ISysGroupService sysGroupService;
    @Override
    public XpOperationsUser getById(Serializable userId){
        XpOperationsUser user = baseMapper.selectById(userId);
        //获取登录用户权限信息
        user.setPhoneNumber(sysGroupService.getPhoneDesensitization(user.getPhoneNumber()));
        return user;
    }
    @Override
    public List<XpOperationsUser> listByName(String nickName) {
        if (StringUtils.isBlank(nickName)) {
            return Collections.emptyList();
        }
        return lambdaQuery().like(XpOperationsUser::getNickName, nickName).list();
        List<XpOperationsUser> list = lambdaQuery().like(XpOperationsUser::getNickName, nickName).list();
        for (XpOperationsUser obj : list) {
            obj.setPhoneNumber(sysGroupService.getPhoneDesensitization(obj.getPhoneNumber()));
        }
        return list;
    }
    @Override
    public PageInfo<XpOperationsUserWithRoleVO> selectUserPageByConditions(XpOperationsUserPageQuery query) {
        PageInfo<XpOperationsUserWithRoleVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
        Page<XpOperationsUserWithRoleVO> page = baseMapper.selectUserPageByConditions(pageInfo, query);
        for (XpOperationsUserWithRoleVO record : page.getRecords()) {
            record.setPhoneNumber(sysGroupService.getPhoneDesensitization(record.getPhoneNumber()));
        }
        pageInfo.setRecords(page.getRecords());
        return pageInfo;
    }
    @Override
    public List<XpOperationsUserWithRoleVO> findList(XpOperationsUserQueryDTO query){
        return baseMapper.selectUserPageByConditions(query);
    }
    @Override
@@ -116,7 +141,8 @@
        XpOperationsUserProfileVO vo = new XpOperationsUserProfileVO();
        BeanUtils.copyProperties(user, vo);
        vo.setPhoneNumber(sysGroupService.getPhoneDesensitization(vo.getPhoneNumber()));
        vo.setAvatar(aliOssDownloadUtil.getPictureJSONObject(vo.getAvatar()));
        // 2. 查询关联的车队ID列表(一个运维人员只能关联一个车队)
        R<List<Long>> fleetIdsResult = xpFleetOperationsClient.getFleetIdsByUserId(userId);
        List<Long> fleetIds = fleetIdsResult.getData();
@@ -191,8 +217,8 @@
    @Transactional
    @ShardingSphereTransactionType(TransactionType.BASE)
    public void saveCertificate(XpOperationsUserDTO dto) {
        XpOperationsUser xpOperationsUser = BeanUtil.copyProperties(dto, XpOperationsUser.class);
        updateById(xpOperationsUser);
//        XpOperationsUser xpOperationsUser = BeanUtil.copyProperties(dto, XpOperationsUser.class);
//        updateById(xpOperationsUser);
        //保存审核记录
        XpQualificationAudit xpQualificationAudit = BeanUtil.copyProperties(dto, XpQualificationAudit.class, "id");
        xpQualificationAudit.setAuditStatus(1);
@@ -241,7 +267,12 @@
        }
        for (XpOperationsUserVO xpOperationsUserVO : list) {
            xpOperationsUserVO.setPhoneNumber(sysGroupService.getPhoneDesensitization(xpOperationsUserVO.getPhoneNumber()));
            String avatar = xpOperationsUserVO.getAvatar();
            // 处理空的情况
            if (avatar == null) {
                continue;
            }
            JSONObject jsonObject = JSONObject.parseObject(avatar);
            String downloadUrl = null;
            try {
@@ -516,4 +547,9 @@
        }
        return lambdaQuery().like(XpOperationsUser::getPhoneNumber, phoneNumber).list();
    }
    @Override
    public List<XpOperationsUserWithRoleVO> pageListByIds(OptionalUsersPageListQuery q) {
        return baseMapper.pageListByIds(q);
    }
}