访客预约修改为精确查询拜访人

This commit is contained in:
zjf committed 2025-07-23 18:09:33 +08:00
1 parent cd9b010c00
commit 10f9b4cb98
4 files changed
+95

No files matched your search

@@ -5,6 +5,8 @@ import cn.hutool.jwt.JWT;
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.bsd.pjcloud.admin.api.dto.UserDeptSimpleInfo;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.common.core.constant.CacheConstants;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
@@ -33,6 +35,7 @@ import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cn.hutool.extra.qrcode.QrConfig;
import java.awt.Image;
@@ -58,6 +61,8 @@ public class AppVisitorController {
private final VisitorsService visitorsService;
private final RemoteUserService remoteUserService;
@Value("${visitor.qr-secret}")
private String visitorQrSecret;
@@ -240,4 +245,13 @@ public class AppVisitorController {
}
@GetMapping("/getBFInfo")
@SysLog("查询拜访人的信息" )
@Operation(summary = "查询拜访人的信息" , description = "根据拜访人的手机号或者姓名精确查询" )
public R getBFInfo(@RequestParam("keyword") String keyword) {
R<List<UserDeptSimpleInfo>> userByNameOrMobile = remoteUserService.getUserByNameOrMobile(keyword);
return userByNameOrMobile;
}
}
@@ -0,0 +1,46 @@
/*
*
* Copyright (c) 2018-2025, pjcloud All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the pig4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: pjcloud
*
*/
package com.bsd.pjcloud.admin.api.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
@Data
@Schema(description = "用户信息")
public class UserDeptSimpleInfo implements Serializable {
@Schema(description = "用户ID")
private Long userId;
@Schema(description = "姓名")
private String name;
@Schema(description = "手机号")
private String mobile;
@Schema(description = "部门ID")
private Long deptId;
@Schema(description = "部门名称")
private String deptName;
}
@@ -20,6 +20,7 @@
package com.bsd.pjcloud.admin.api.feign;
import com.bsd.pjcloud.admin.api.dto.UserDTO;
import com.bsd.pjcloud.admin.api.dto.UserDeptSimpleInfo;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
import com.bsd.pjcloud.admin.api.entity.SysUser;
import com.bsd.pjcloud.admin.api.vo.UserVO;
@@ -188,4 +189,7 @@ public interface RemoteUserService {
R<List<SysUser>> getLikeNameOrByMobileScope(@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "mobile", required = false) String mobile);
@GetMapping("/get-name-or-mobile")
R<List<UserDeptSimpleInfo>> getUserByNameOrMobile(@RequestParam("keyword") String keyword);
}
@@ -26,9 +26,12 @@ 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.bsd.pjcloud.admin.api.dto.UserDTO;
import com.bsd.pjcloud.admin.api.dto.UserDeptSimpleInfo;
import com.bsd.pjcloud.admin.api.dto.UserInfo;
import com.bsd.pjcloud.admin.api.entity.SysDept;
import com.bsd.pjcloud.admin.api.entity.SysUser;
import com.bsd.pjcloud.admin.api.vo.*;
import com.bsd.pjcloud.admin.service.SysDeptService;
import com.bsd.pjcloud.admin.service.SysUserService;
import com.bsd.pjcloud.common.core.constant.CommonConstants;
import com.bsd.pjcloud.common.core.exception.ErrorCodes;
@@ -56,6 +59,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springdoc.core.annotations.ParameterObject;
import org.springframework.http.HttpHeaders;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -81,6 +85,7 @@ public class SysUserController {
private final RemoterVisitorService remoterVisitorService;
private final SysDeptService sysDeptService;
/* ************************************* start 回调 start ************************************* */
@Inner(value = false)
@@ -115,6 +120,32 @@ public class SysUserController {
return R.ok(userService.findUserInfo(user));
}
@GetMapping("/get-name-or-mobile")
public R<List<UserDeptSimpleInfo>> getUserByNameOrMobile(@RequestParam("keyword") String keyword) {
List<SysUser> users = userService.list(
Wrappers.<SysUser>query().lambda()
.eq(SysUser::getName, keyword)
.or()
.eq(SysUser::getPhone, keyword)
);
if (CollectionUtils.isEmpty(users)) {
return R.failed(MsgUtils.getMessage(ErrorCodes.SYS_USER_USERINFO_EMPTY, keyword));
}
Map<Long, SysDept> deptListByDeptIds = sysDeptService.getDeptListByDeptIds(
users.stream().map(SysUser::getDeptId).collect(Collectors.toList())
);
List<UserDeptSimpleInfo> userDeptSimpleInfos = users.stream().map(user -> {
UserDeptSimpleInfo userDeptSimpleInfo = new UserDeptSimpleInfo();
userDeptSimpleInfo.setUserId(user.getUserId());
userDeptSimpleInfo.setName(user.getName());
userDeptSimpleInfo.setMobile(user.getPhone());
userDeptSimpleInfo.setDeptId(user.getDeptId());
userDeptSimpleInfo.setDeptName(deptListByDeptIds.get(user.getDeptId()).getName());
return userDeptSimpleInfo;
}).collect(Collectors.toList());
return R.ok(userDeptSimpleInfos);
}
/**
* 获取指定用户全部信息
*/