Commit e012b252 by zhangxingmin

团队信息

parent 7415404c
package com.yd.csf.api.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.csf.api.service.ApiTeamService;
import com.yd.csf.feign.client.team.ApiTeamFeignClient;
import com.yd.csf.feign.request.team.ApiTeamListRequest;
import com.yd.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamDetailResponse;
import com.yd.csf.feign.response.team.ApiTeamPageResponse;
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 java.util.List;
/**
* 团队信息
*
* @author zxm
* @since 2025-10-15
*/
@RestController
@RequestMapping("/team")
@Validated
public class ApiTeamController implements ApiTeamFeignClient {
@Autowired
private ApiTeamService apiTeamService;
/**
* 分页列表查询-团队信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiTeamPageResponse>> page(ApiTeamPageRequest request) {
return apiTeamService.page(request);
}
/**
* 列表查询-团队信息
* @param request
* @return
*/
@Override
public Result<List<ApiTeamDetailResponse>> list(ApiTeamListRequest request) {
return apiTeamService.list(request);
}
}
package com.yd.csf.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 团队表 前端控制器
* </p>
*
* @author zxm
* @since 2025-10-15
*/
@RestController
@RequestMapping("/team")
public class TeamController {
}
package com.yd.csf.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.common.result.Result;
import com.yd.csf.feign.request.team.ApiTeamListRequest;
import com.yd.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamDetailResponse;
import com.yd.csf.feign.response.team.ApiTeamPageResponse;
import java.util.List;
public interface ApiTeamService {
Result<IPage<ApiTeamPageResponse>> page(ApiTeamPageRequest request);
Result<List<ApiTeamDetailResponse>> list(ApiTeamListRequest request);
}
package com.yd.csf.api.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.common.result.Result;
import com.yd.csf.api.service.ApiTeamService;
import com.yd.csf.feign.request.team.ApiTeamListRequest;
import com.yd.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamDetailResponse;
import com.yd.csf.feign.response.team.ApiTeamPageResponse;
import com.yd.csf.service.dto.TeamDto;
import com.yd.csf.service.model.Team;
import com.yd.csf.service.service.ITeamService;
import lombok.extern.slf4j.Slf4j;
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.List;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ApiTeamServiceImpl implements ApiTeamService {
@Autowired
private ITeamService iTeamService;
/**
* 分页列表查询-团队信息
* @param request
* @return
*/
@Override
public Result<IPage<ApiTeamPageResponse>> page(ApiTeamPageRequest request) {
Page<ApiTeamPageResponse> page = new Page<>(request.getPageNo(), request.getPageSize());
IPage<ApiTeamPageResponse> iPage = iTeamService.page(page, request);
return Result.success(iPage);
}
/**
* 列表查询-团队信息
* @param request
* @return
*/
@Override
public Result<List<ApiTeamDetailResponse>> list(ApiTeamListRequest request) {
List<Team> teamList = iTeamService.queryList(TeamDto.builder().teamName(request.getTeamName()).build());
if (CollectionUtils.isEmpty(teamList)) {
return Result.success();
}
List<ApiTeamDetailResponse> responses = teamList.stream().map(dto -> {
ApiTeamDetailResponse response = new ApiTeamDetailResponse();
BeanUtils.copyProperties(dto,response);
return response;
}).collect(Collectors.toList());
return Result.success(responses);
}
}
package com.yd.csf.feign.client.team;
import com.yd.common.result.Result;
import com.yd.csf.feign.fallback.team.ApiTeamFeignFallbackFactory;
import com.yd.csf.feign.request.team.ApiTeamListRequest;
import com.yd.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamDetailResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 香港保险服务-团队信息Feign客户端
*/
@FeignClient(name = "yd-csf-api", fallbackFactory = ApiTeamFeignFallbackFactory.class)
public interface ApiTeamFeignClient {
/**
* 分页列表查询-团队信息
* @param request
* @return
*/
@PostMapping("/page")
Result page(@RequestBody ApiTeamPageRequest request);
/**
* 列表查询-团队信息
* @param request
* @return
*/
@PostMapping("/list")
Result<List<ApiTeamDetailResponse>> list(@RequestBody ApiTeamListRequest request);
}
package com.yd.csf.feign.fallback.team;
import com.yd.common.result.Result;
import com.yd.csf.feign.client.team.ApiTeamFeignClient;
import com.yd.csf.feign.request.team.ApiTeamListRequest;
import com.yd.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamDetailResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 香港保险服务-团队信息Feign降级处理
*/
@Slf4j
@Component
public class ApiTeamFeignFallbackFactory implements FallbackFactory<ApiTeamFeignClient> {
@Override
public ApiTeamFeignClient create(Throwable cause) {
return new ApiTeamFeignClient() {
@Override
public Result page(ApiTeamPageRequest request) {
return null;
}
@Override
public Result<List<ApiTeamDetailResponse>> list(ApiTeamListRequest request) {
return null;
}
};
}
}
package com.yd.csf.feign.request.team;
import lombok.Data;
@Data
public class ApiTeamAddRequest {
}
package com.yd.csf.feign.request.team;
import lombok.Data;
@Data
public class ApiTeamEditRequest {
}
package com.yd.csf.feign.request.team;
import lombok.Data;
@Data
public class ApiTeamListRequest {
/**
* 团队名称
*/
private String teamName;
}
package com.yd.csf.feign.request.team;
import com.yd.common.dto.PageDto;
import lombok.Data;
@Data
public class ApiTeamPageRequest extends PageDto {
/**
* 团队名称
*/
private String teamName;
}
package com.yd.csf.feign.response.team;
import lombok.Data;
@Data
public class ApiTeamDetailResponse {
/**
* 主键ID
*/
private Long id;
/**
* 团队表唯一业务ID
*/
private String teamBizId;
/**
* 父ID
*/
private String pid;
/**
* 团队编码
*/
private String teamCode;
/**
* 团队名称
*/
private String teamName;
/**
* 团队长ID(客户端用户表唯一业务ID)
*/
private String teamLeaderId;
/**
* 团队层级
*/
private Integer teamLevel;
/**
* 团队成员数
*/
private Integer memberCount;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
}
package com.yd.csf.feign.response.team;
import lombok.Data;
@Data
public class ApiTeamPageResponse {
/**
* 主键ID
*/
private Long id;
/**
* 团队表唯一业务ID
*/
private String teamBizId;
/**
* 父ID
*/
private String pid;
/**
* 团队编码
*/
private String teamCode;
/**
* 团队名称
*/
private String teamName;
/**
* 团队长ID(客户端用户表唯一业务ID)
*/
private String teamLeaderId;
/**
* 团队层级
*/
private Integer teamLevel;
/**
* 团队成员数
*/
private Integer memberCount;
/**
* 状态(0:停用 1:启用)
*/
private Integer status;
}
package com.yd.csf.service.dao;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamPageResponse;
import com.yd.csf.service.model.Team;
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 TeamMapper extends BaseMapper<Team> {
IPage<ApiTeamPageResponse> page(@Param("page") Page<ApiTeamPageResponse> page,
@Param("request") ApiTeamPageRequest request);
}
package com.yd.csf.service.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TeamDto {
/**
* 团队名称
*/
private String teamName;
}
......@@ -4,18 +4,19 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
* 团队表
* </p>
*
* @author zxm
* @since 2025-10-15
* @since 2025-12-24
*/
@Getter
@Setter
......@@ -37,6 +38,12 @@ public class Team implements Serializable {
private String teamBizId;
/**
* 父ID
*/
@TableField("pid")
private String pid;
/**
* 团队编码
*/
@TableField("team_code")
......@@ -52,7 +59,7 @@ public class Team implements Serializable {
* 团队长ID(客户端用户表唯一业务ID)
*/
@TableField("team_leader_id")
private Long teamLeaderId;
private String teamLeaderId;
/**
* 团队层级
......
package com.yd.csf.service.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamPageResponse;
import com.yd.csf.service.dto.TeamDto;
import com.yd.csf.service.model.Team;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 团队表 服务类
......@@ -13,4 +20,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface ITeamService extends IService<Team> {
IPage<ApiTeamPageResponse> page(Page<ApiTeamPageResponse> page,
ApiTeamPageRequest request);
List<Team> queryList(TeamDto dto);
}
package com.yd.csf.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.csf.feign.request.team.ApiTeamPageRequest;
import com.yd.csf.feign.response.team.ApiTeamPageResponse;
import com.yd.csf.service.dto.TeamDto;
import com.yd.csf.service.model.Team;
import com.yd.csf.service.dao.TeamMapper;
import com.yd.csf.service.model.Variable;
import com.yd.csf.service.service.ITeamService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 团队表 服务实现类
......@@ -17,4 +27,17 @@ import org.springframework.stereotype.Service;
@Service
public class TeamServiceImpl extends ServiceImpl<TeamMapper, Team> implements ITeamService {
@Override
public IPage<ApiTeamPageResponse> page(Page<ApiTeamPageResponse> page,
ApiTeamPageRequest request) {
return baseMapper.page(page,request);
}
@Override
public List<Team> queryList(TeamDto dto) {
List<Team> list = baseMapper.selectList(new LambdaQueryWrapper<Team>()
.like(StringUtils.isNotBlank(dto.getTeamName()),Team::getTeamName,dto.getTeamName())
);
return list;
}
}
......@@ -21,7 +21,7 @@ public class MyBatisPlusCodeGenerator {
})
.strategyConfig(builder -> {
builder.addInclude(
"additional"
"team"
)
.entityBuilder()
......
......@@ -2,4 +2,13 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.csf.service.dao.TeamMapper">
<select id="page" resultType="com.yd.csf.feign.response.team.ApiTeamPageResponse">
select t.* from team t
<where>
<if test="request.teamName != null and request.teamName != ''">
and t.team_name like concat('%', #{request.teamName}, '%')
</if>
and t.is_deleted = 0
</where>
</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