Commit e397fee2 by zhangxingmin

客户端用户信息接口

parent 65c83854
package com.yd.user.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.api.service.ApiClientUserService;
import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserDetailResponse;
import com.yd.user.feign.response.clientuser.ApiClientUserPageResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
/**
* 客户端用户信息
*
* @author zxm
* @since 2025-10-20
*/
@RestController
@RequestMapping("/clientUser")
@Validated
public class ApiClientUserController implements ApiClientUserFeignClient {
@Autowired
private ApiClientUserService apiClientUserService;
/**
* 分页查询-客户端用户信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiClientUserPageResponse>> page(ApiClientUserPageRequest request) {
return apiClientUserService.page(request);
}
/**
* 详情-客户端用户信息
* @param clientUserBizId
* @return
*/
@Override
public Result<ApiClientUserDetailResponse> detail(String clientUserBizId) {
return apiClientUserService.detail(clientUserBizId);
}
}
......@@ -15,8 +15,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
......
package com.yd.user.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 客户端用户表 前端控制器
* </p>
*
* @author zxm
* @since 2025-10-20
*/
@RestController
@RequestMapping("/clientUser")
public class ClientUserController {
}
package com.yd.user.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserDetailResponse;
import com.yd.user.feign.response.clientuser.ApiClientUserPageResponse;
import java.util.List;
public interface ApiClientUserService {
Result<IPage<ApiClientUserPageResponse>> page(ApiClientUserPageRequest request);
Result<ApiClientUserDetailResponse> detail(String clientUserBizId);
Result saveClientUserList(List<String> userBizIdList,
String tenantBizId,
String projectBizId);
......
package com.yd.user.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.enums.CommonEnum;
import com.yd.common.enums.ResultCode;
import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
import com.yd.user.api.service.ApiClientUserService;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserDetailResponse;
import com.yd.user.feign.response.clientuser.ApiClientUserPageResponse;
import com.yd.user.feign.response.sysuser.ApiSysUserPageResponse;
import com.yd.user.service.dto.ClientUserDto;
import com.yd.user.service.dto.SysUserDto;
import com.yd.user.service.model.ClientUser;
import com.yd.user.service.model.SysUser;
import com.yd.user.service.service.IClientUserService;
import com.yd.user.service.service.ISysUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
......@@ -28,6 +38,32 @@ public class ApiClientUserServiceImpl implements ApiClientUserService {
private IClientUserService iClientUserService;
/**
* 分页查询-客户端用户信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiClientUserPageResponse>> page(ApiClientUserPageRequest request) {
Page<ApiClientUserPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiClientUserPageResponse> iPage = iClientUserService.page(page, request);
return Result.success(iPage);
}
/**
* 详情-客户端用户信息
* @param clientUserBizId
* @return
*/
@Override
public Result<ApiClientUserDetailResponse> detail(String clientUserBizId) {
Result<ClientUser> result = checkClientUserIsExist(clientUserBizId);
ClientUser clientUser = result.getData();
ApiClientUserDetailResponse response = new ApiClientUserDetailResponse();
BeanUtils.copyProperties(clientUser,response);
return Result.success(response);
}
/**
* 同步sys_user系统用户,批量更新客户端用户表数据
* @param userBizIdList
* @param tenantBizId
......@@ -102,4 +138,17 @@ public class ApiClientUserServiceImpl implements ApiClientUserService {
return clientUserList;
}
/**
* 校验客户端用户是否存在
* @param clientUserBizId
* @return
*/
public Result<ClientUser> checkClientUserIsExist(String clientUserBizId) {
ClientUser clientUser = iClientUserService.queryOne(clientUserBizId);
if (Objects.isNull(clientUser)) {
//数据不存在
throw new BusinessException(ResultCode.NULL_ERROR.getCode(),ResultCode.NULL_ERROR.getMessage());
}
return Result.success(clientUser);
}
}
package com.yd.user.feign.client.clientuser;
import com.yd.common.result.Result;
import com.yd.user.feign.fallback.clientuser.ApiClientUserFeignFallbackFactory;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserDetailResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.constraints.NotBlank;
/**
* 客户端用户信息Feign客户端
*/
@FeignClient(name = "yd-user-api", fallbackFactory = ApiClientUserFeignFallbackFactory.class)
public interface ApiClientUserFeignClient {
/**
* 分页查询-客户端用户信息
* @param request
* @return
*/
@PostMapping("/page")
Result page(@Validated @RequestBody ApiClientUserPageRequest request);
/**
* 详情-客户端用户信息
* @param clientUserBizId
* @return
*/
@GetMapping("/detail")
Result<ApiClientUserDetailResponse> detail(@NotBlank(message = "客户端用户表唯一业务ID不能为空") @RequestParam(value = "clientUserBizId") String clientUserBizId);
}
package com.yd.user.feign.fallback.clientuser;
import com.yd.common.result.Result;
import com.yd.user.feign.client.clientuser.ApiClientUserFeignClient;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserDetailResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import javax.validation.constraints.NotBlank;
/**
* 客户端用户信息Feign降级处理
*/
@Slf4j
@Component
public class ApiClientUserFeignFallbackFactory implements FallbackFactory<ApiClientUserFeignClient> {
@Override
public ApiClientUserFeignClient create(Throwable cause) {
return new ApiClientUserFeignClient() {
@Override
public Result page(ApiClientUserPageRequest request) {
return null;
}
@Override
public Result<ApiClientUserDetailResponse> detail(String clientUserBizId) {
return null;
}
};
}
}
package com.yd.user.feign.request.clientuser;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiClientUserPageRequest extends PageDto {
/**
* 查询内容(姓名/手机号/邮箱,支持模糊搜索)
*/
private String queryContent;
/**
* 所属租户唯一业务ID
*/
private String tenantBizId;
/**
* 所属项目唯一业务ID
*/
private String projectBizId;
/**
* 用户唯一标识(sys_user系统用户表)
*/
private String userBizId;
}
package com.yd.user.feign.response.clientuser;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ApiClientUserDetailResponse {
/**
* 主键ID
*/
private Long id;
/**
* 客户端用户表唯一业务ID
*/
private String clientUserBizId;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 证件类型
*/
private String idCardType;
/**
* 证件号码
*/
private String idCardNumber;
/**
* 登录密码
*/
private String password;
/**
* 邀请码
*/
private String invitationCode;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 审批状态
*/
private String approvalStatus;
/**
* 所属租户唯一业务ID(冗余)
*/
private String tenantBizId;
/**
* 所属项目唯一业务ID(冗余)
*/
private String projectBizId;
/**
* 用户唯一标识(sys_user系统用户表)
*/
private String userBizId;
/**
* 通用备注
*/
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
private Integer isDeleted;
/**
* 创建人ID
*/
private String creatorId;
/**
* 更新人ID
*/
private String updaterId;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
package com.yd.user.feign.response.clientuser;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ApiClientUserPageResponse {
/**
* 主键ID
*/
private Long id;
/**
* 客户端用户表唯一业务ID
*/
private String clientUserBizId;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String phone;
/**
* 邮箱
*/
private String email;
/**
* 证件类型
*/
private String idCardType;
/**
* 证件号码
*/
private String idCardNumber;
/**
* 邀请码
*/
private String invitationCode;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
/**
* 审批状态
*/
private String approvalStatus;
/**
* 所属租户唯一业务ID(冗余)
*/
private String tenantBizId;
/**
* 所属项目唯一业务ID(冗余)
*/
private String projectBizId;
/**
* 用户唯一标识(sys_user系统用户表)
*/
private String userBizId;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 更新时间
*/
private LocalDateTime updateTime;
}
package com.yd.user.service.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserPageResponse;
import com.yd.user.service.model.ClientUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* <p>
......@@ -13,4 +18,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface ClientUserMapper extends BaseMapper<ClientUser> {
IPage<ApiClientUserPageResponse> page(@Param("page") Page<ApiClientUserPageResponse> page,
@Param("request") ApiClientUserPageRequest request);
}
package com.yd.user.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserPageResponse;
import com.yd.user.service.dto.ClientUserDto;
import com.yd.user.service.model.ClientUser;
import com.baomidou.mybatisplus.extension.service.IService;
......@@ -16,5 +20,10 @@ import java.util.List;
*/
public interface IClientUserService extends IService<ClientUser> {
IPage<ApiClientUserPageResponse> page(Page<ApiClientUserPageResponse> page,
ApiClientUserPageRequest request);
List<ClientUser> queryList(ClientUserDto dto);
ClientUser queryOne(String clientUserBizId);
}
package com.yd.user.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.user.feign.request.clientuser.ApiClientUserPageRequest;
import com.yd.user.feign.response.clientuser.ApiClientUserPageResponse;
import com.yd.user.service.dto.ClientUserDto;
import com.yd.user.service.model.ClientUser;
import com.yd.user.service.dao.ClientUserMapper;
......@@ -25,6 +29,12 @@ import java.util.Objects;
@Service
public class ClientUserServiceImpl extends ServiceImpl<ClientUserMapper, ClientUser> implements IClientUserService {
@Override
public IPage<ApiClientUserPageResponse> page(Page<ApiClientUserPageResponse> page,
ApiClientUserPageRequest request) {
return baseMapper.page(page,request);
}
/**
* 查询列表
* @param dto
......@@ -39,4 +49,14 @@ public class ClientUserServiceImpl extends ServiceImpl<ClientUserMapper, ClientU
);
return list;
}
/**
* 查询单个对象
* @param clientUserBizId
* @return
*/
@Override
public ClientUser queryOne(String clientUserBizId) {
return this.getOne(new LambdaQueryWrapper<ClientUser>().eq(ClientUser::getClientUserBizId,clientUserBizId));
}
}
......@@ -2,4 +2,25 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.user.service.dao.ClientUserMapper">
<select id="page" resultType="com.yd.user.feign.response.clientuser.ApiClientUserPageResponse">
select * from client_user cu
<where>
<if test="request.queryContent != null and request.queryContent != ''">
and (cu.name like concat('%', #{request.queryContent}, '%')
or cu.email like concat('%', #{request.queryContent}, '%')
or cu.phone like concat('%', #{request.queryContent}, '%'))
</if>
<if test="request.tenantBizId != null and request.tenantBizId != ''">
and cu.tenant_biz_id = #{request.tenantBizId}
</if>
<if test="request.projectBizId != null and request.projectBizId != ''">
and cu.project_biz_id = #{request.projectBizId}
</if>
<if test="request.userBizId != null and request.userBizId != ''">
and cu.user_biz_id = #{request.userBizId}
</if>
and cu.is_deleted = 0
</where>
order by cu.create_time desc
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment