From 20baa77b1ce6c6dc980077965927a5877440a17d Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 24 二月 2026 18:37:13 +0800
Subject: [PATCH] 管理后台,人员资质审核,打卡地址管理

---
 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java |   79 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
index 9f5aa08..d217f3c 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpQualificationAuditServiceImpl.java
@@ -1,10 +1,31 @@
 package com.xiaopeng.account.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.xiaopeng.account.mapper.SysRoleMapper;
+import com.xiaopeng.account.mapper.XpOperationsRoleMapper;
+import com.xiaopeng.account.mapper.XpOperationsUserMapper;
 import com.xiaopeng.account.mapper.XpQualificationAuditMapper;
+import com.xiaopeng.account.model.dto.QualificationReviewDTO;
+import com.xiaopeng.account.model.query.XpQualificationAuditQuery;
+import com.xiaopeng.account.service.ISysRoleService;
 import com.xiaopeng.account.service.IXpQualificationAuditService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.vo.account.XpQualificationAuditVO;
+import com.xiaopeng.common.core.web.page.PageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -17,4 +38,62 @@
 @Service
 public class XpQualificationAuditServiceImpl extends ServiceImpl<XpQualificationAuditMapper, XpQualificationAudit> implements IXpQualificationAuditService {
 
+    @Autowired
+    private XpOperationsRoleMapper xpOperationsRoleMapper;
+    @Autowired
+    private SysRoleMapper sysRoleMapper;
+
+    @Override
+    public PageInfo<XpQualificationAuditVO> pageList(XpQualificationAuditQuery query) {
+        PageInfo<XpQualificationAuditVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<XpQualificationAuditVO> list = this.baseMapper.pageList(pageInfo, query);
+        if(CollectionUtils.isEmpty(list)){
+            return pageInfo;
+        }
+
+        // 查询角色名称
+        List<Long> operationsUserIds = list.stream().map(XpQualificationAuditVO::getOperationsUserId).collect(Collectors.toList());
+
+        // 查询用户信息
+        List<XpOperationsRole> xpOperationsRoles = xpOperationsRoleMapper.selectList(Wrappers.lambdaQuery(XpOperationsRole.class)
+                .in(XpOperationsRole::getOperationsUserId, operationsUserIds));
+
+        if(!CollectionUtils.isEmpty(xpOperationsRoles)){
+            List<Long> roleIds = xpOperationsRoles.stream().map(XpOperationsRole::getRoleId).collect(Collectors.toList());
+            // 查询列表关联的所有角色
+            List<SysRole> sysRoles = sysRoleMapper.selectList(Wrappers.lambdaQuery(SysRole.class)
+                    .in(SysRole::getId, roleIds));
+            if(!CollectionUtils.isEmpty(sysRoles)){
+
+                // 角色匹配账号id
+                Map<Long, List<SysRole>> map = new HashMap<>();
+                for (XpOperationsRole xpOperationsRole : xpOperationsRoles) {
+                    List<SysRole> sysRoleList = sysRoles.stream().filter(sysRole -> sysRole.getId().equals(xpOperationsRole.getRoleId())).collect(Collectors.toList());
+                    map.put(xpOperationsRole.getOperationsUserId(), sysRoleList);
+                }
+
+                // 角色名称匹配
+                for (XpQualificationAuditVO xpQualificationAuditVO : list) {
+                    map.get(xpQualificationAuditVO.getOperationsUserId()).forEach(sysRole -> {
+                        xpQualificationAuditVO.getRoleNames().add(sysRole.getRoleName());
+                    });
+                }
+            }
+        }
+
+        pageInfo.setRecords(list);
+        return pageInfo;
+    }
+
+    @Override
+    public void audit(QualificationReviewDTO dto, Long userid) {
+        List<XpQualificationAudit> qualificationAudits = this.listByIds(dto.getIds());
+        for (XpQualificationAudit qualificationAudit : qualificationAudits) {
+            qualificationAudit.setAuditUserId(userid);
+            qualificationAudit.setAuditTime(LocalDateTime.now());
+            qualificationAudit.setAuditStatus(dto.getAuditStatus());
+//        qualificationAudit.setAuditRemarks(dto.getAuditRemarks());
+        }
+        this.updateBatchById(qualificationAudits);
+    }
 }

--
Gitblit v1.7.1