Commit 6864a740 by zhangxingmin

push

parent a9825ebe
......@@ -4,13 +4,17 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.base.api.service.ApiRelFieldValueService;
import com.yd.base.feign.client.relfieldvalue.ApiRelFieldValueFeignClient;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.request.relfieldvalue.GetFieldListRequest;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValuePageResponse;
import com.yd.base.feign.response.relfieldvalue.GetFieldListResponse;
import com.yd.common.result.Result;
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;
/**
* 字段和字段值关系信息
*
......@@ -34,4 +38,13 @@ public class ApiRelFieldValueController implements ApiRelFieldValueFeignClient {
public Result<IPage<ApiRelFieldValuePageResponse>> page(ApiRelFieldValuePageRequest request) {
return apiRelFieldValueService.page(request);
}
/**
* 根据字段ID列表获取字段值列表
* @return
*/
@Override
public Result<List<GetFieldListResponse>> getFieldList(GetFieldListRequest request) {
return apiRelFieldValueService.getFieldList(request);
}
}
......@@ -2,7 +2,9 @@ package com.yd.base.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.request.relfieldvalue.GetFieldListRequest;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValuePageResponse;
import com.yd.base.feign.response.relfieldvalue.GetFieldListResponse;
import com.yd.common.result.Result;
import java.util.List;
......@@ -12,4 +14,6 @@ public interface ApiRelFieldValueService {
Result save(String fieldValueBizId, List<String> fieldBizIdList);
Result<IPage<ApiRelFieldValuePageResponse>> page(ApiRelFieldValuePageRequest request);
Result<List<GetFieldListResponse>> getFieldList(GetFieldListRequest request);
}
......@@ -4,16 +4,23 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.api.service.ApiRelFieldValueService;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.response.category.ApiCategoryPageResponse;
import com.yd.base.feign.request.relfieldvalue.GetFieldListRequest;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValuePageResponse;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValueResponse;
import com.yd.base.feign.response.relfieldvalue.GetFieldListResponse;
import com.yd.base.feign.response.relfieldvalue.GetFieldValueListResponse;
import com.yd.base.service.dto.RelFieldValueDto;
import com.yd.base.service.model.RelFieldValue;
import com.yd.base.service.service.IFieldService;
import com.yd.base.service.service.IRelFieldValueService;
import com.yd.common.result.Result;
import lombok.extern.slf4j.Slf4j;
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.Map;
import java.util.stream.Collectors;
@Slf4j
......@@ -60,4 +67,65 @@ public class ApiRelFieldValueServiceImpl implements ApiRelFieldValueService {
IPage<ApiRelFieldValuePageResponse> iPage = iRelFieldValueService.page(page, request);
return Result.success(iPage);
}
/**
* 根据字段ID列表获取字段值列表
* @return
*/
@Override
public Result<List<GetFieldListResponse>> getFieldList(GetFieldListRequest request) {
List<GetFieldListResponse> typeListResponseList = new ArrayList<>();
// 检查字段ID列表是否为空
if (CollectionUtils.isEmpty(request.getFieldBizIdList())) {
return Result.success(typeListResponseList);
}
// 根据字段表唯一业务ID列表查询字段列表信息
List<ApiRelFieldValueResponse> responses = iRelFieldValueService.list(
RelFieldValueDto.builder().fieldBizIdList(request.getFieldBizIdList()).build());
if (CollectionUtils.isEmpty(responses)) {
return Result.success(typeListResponseList);
}
// 按字段ID分组
Map<String, List<ApiRelFieldValueResponse>> fieldGroupMap = responses.stream()
.collect(Collectors.groupingBy(ApiRelFieldValueResponse::getFieldBizId));
for (String fieldBizId : request.getFieldBizIdList()) {
List<ApiRelFieldValueResponse> fieldValues = fieldGroupMap.get(fieldBizId);
if (CollectionUtils.isEmpty(fieldValues)) {
continue;
}
ApiRelFieldValueResponse firstValue = fieldValues.get(0);
GetFieldListResponse fieldResponse = new GetFieldListResponse();
// 设置字段基本信息
fieldResponse.setFieldBizId(firstValue.getFieldBizId());
fieldResponse.setFieldCode(firstValue.getFieldCode());
fieldResponse.setFieldCnName(firstValue.getFieldCnName());
fieldResponse.setFieldEnName(firstValue.getFieldEnName());
fieldResponse.setTextBoxType(firstValue.getTextBoxType());
// 构建字段值列表
List<GetFieldValueListResponse> valueList = fieldValues.stream()
.map(response -> {
GetFieldValueListResponse valueResponse = new GetFieldValueListResponse();
valueResponse.setFieldValueBizId(response.getFieldValueBizId());
valueResponse.setFieldValueCode(response.getFieldValueCode());
valueResponse.setValue(response.getValue());
return valueResponse;
})
.collect(Collectors.toList());
fieldResponse.setFieldValueListResponseList(valueList);
typeListResponseList.add(fieldResponse);
}
return Result.success(typeListResponseList);
}
}
......@@ -2,11 +2,16 @@ package com.yd.base.feign.client.relfieldvalue;
import com.yd.base.feign.fallback.relfieldvalue.ApiRelFieldValueFeignFallbackFactory;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.request.relfieldvalue.GetFieldListRequest;
import com.yd.base.feign.response.relfieldvalue.GetFieldListResponse;
import com.yd.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
/**
* 基础数据服务-字段和字段值关系信息Feign客户端
*/
......@@ -20,4 +25,11 @@ public interface ApiRelFieldValueFeignClient {
*/
@PostMapping("/page")
Result page(@RequestBody ApiRelFieldValuePageRequest request);
/**
* 根据字段ID列表获取字段值列表
* @return
*/
@PostMapping("/field/list")
Result<List<GetFieldListResponse>> getFieldList(@Validated @RequestBody GetFieldListRequest request);
}
......@@ -2,11 +2,15 @@ package com.yd.base.feign.fallback.relfieldvalue;
import com.yd.base.feign.client.relfieldvalue.ApiRelFieldValueFeignClient;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.request.relfieldvalue.GetFieldListRequest;
import com.yd.base.feign.response.relfieldvalue.GetFieldListResponse;
import com.yd.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* 基础数据服务-字段和字段值关系信息Feign降级处理
*/
......@@ -20,6 +24,11 @@ public class ApiRelFieldValueFeignFallbackFactory implements FallbackFactory<Api
public Result page(ApiRelFieldValuePageRequest request) {
return null;
}
@Override
public Result<List<GetFieldListResponse>> getFieldList(GetFieldListRequest request) {
return null;
}
};
}
}
package com.yd.base.feign.request.relfieldvalue;
import lombok.Data;
import java.util.List;
@Data
public class GetFieldListRequest {
/**
* 字段表唯一业务ID列表
*/
private List<String> fieldBizIdList;
}
package com.yd.base.feign.response.relfieldvalue;
import lombok.Data;
@Data
public class ApiRelFieldValueResponse {
/**
* 字段表唯一业务ID
*/
private String fieldBizId;
/**
* 字段编码(唯一标识)
*/
private String fieldCode;
/**
* 字段中文名称
*/
private String fieldCnName;
/**
* 字段英文名称
*/
private String fieldEnName;
/**
* 文本框类型
*/
private String textBoxType;
/**
* 字段值表唯一业务ID
*/
private String fieldValueBizId;
/**
* 字段值编码
*/
private String fieldValueCode;
/**
* 字段值
*/
private String value;
}
package com.yd.base.feign.response.relfieldvalue;
import lombok.Data;
import java.util.List;
@Data
public class GetFieldListResponse {
/**
* 字段表唯一业务ID
*/
private String fieldBizId;
/**
* 字段编码(唯一标识)
*/
private String fieldCode;
/**
* 字段中文名称
*/
private String fieldCnName;
/**
* 字段英文名称
*/
private String fieldEnName;
/**
* 文本框类型
*/
private String textBoxType;
/**
* 字段值列表
*/
private List<GetFieldValueListResponse> fieldValueListResponseList;
}
package com.yd.base.feign.response.relfieldvalue;
import lombok.Data;
@Data
public class GetFieldValueListResponse {
/**
* 字段值表唯一业务ID
*/
private String fieldValueBizId;
/**
* 字段值编码
*/
private String fieldValueCode;
/**
* 字段值
*/
private String value;
}
......@@ -4,10 +4,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValuePageResponse;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValueResponse;
import com.yd.base.service.dto.RelFieldValueDto;
import com.yd.base.service.model.RelFieldValue;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 字段和字段值关系表 Mapper 接口
......@@ -20,4 +24,6 @@ public interface RelFieldValueMapper extends BaseMapper<RelFieldValue> {
IPage<ApiRelFieldValuePageResponse> page(@Param("page") Page<ApiRelFieldValuePageResponse> page,
@Param("request") ApiRelFieldValuePageRequest request);
List<ApiRelFieldValueResponse> list(@Param("dto") RelFieldValueDto dto);
}
......@@ -5,6 +5,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
......@@ -15,4 +17,6 @@ public class FieldDto {
* 字段表唯一业务ID
*/
private String fieldBizId;
private List<String> fieldBizIdList;
}
package com.yd.base.service.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RelFieldValueDto {
/**
* 字段表唯一业务ID列表
*/
private List<String> fieldBizIdList;
}
......@@ -8,6 +8,8 @@ import com.yd.base.feign.response.field.ApiFieldPageResponse;
import com.yd.base.service.dto.FieldDto;
import com.yd.base.service.model.Field;
import java.util.List;
/**
* <p>
* 字段表(字段属性表) 服务类
......@@ -22,4 +24,7 @@ public interface IFieldService extends IService<Field> {
ApiFieldPageRequest request);
Field queryOne(FieldDto dto);
List<Field> queryList(FieldDto dto);
}
......@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValuePageResponse;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValueResponse;
import com.yd.base.service.dto.RelFieldValueDto;
import com.yd.base.service.model.RelFieldValue;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 字段和字段值关系表 服务类
......@@ -22,4 +26,6 @@ public interface IRelFieldValueService extends IService<RelFieldValue> {
IPage<ApiRelFieldValuePageResponse> page(Page<ApiRelFieldValuePageResponse> page,
ApiRelFieldValuePageRequest request);
List<ApiRelFieldValueResponse> list(RelFieldValueDto dto);
}
......@@ -8,9 +8,14 @@ import com.yd.base.feign.request.field.ApiFieldPageRequest;
import com.yd.base.feign.response.field.ApiFieldPageResponse;
import com.yd.base.service.dao.FieldMapper;
import com.yd.base.service.dto.FieldDto;
import com.yd.base.service.model.Category;
import com.yd.base.service.model.Field;
import com.yd.base.service.service.IFieldService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* <p>
......@@ -38,4 +43,12 @@ public class FieldServiceImpl extends ServiceImpl<FieldMapper, Field> implements
public Field queryOne(FieldDto dto) {
return this.getOne(new LambdaQueryWrapper<Field>().eq(Field::getFieldBizId,dto.getFieldBizId()));
}
@Override
public List<Field> queryList(FieldDto dto) {
List<Field> list = baseMapper.selectList(new LambdaQueryWrapper<Field>()
.in(!CollectionUtils.isEmpty(dto.getFieldBizIdList()),Field::getFieldBizId,dto.getFieldBizIdList())
);
return list;
}
}
......@@ -5,12 +5,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yd.base.feign.request.relfieldvalue.ApiRelFieldValuePageRequest;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValuePageResponse;
import com.yd.base.feign.response.relfieldvalue.ApiRelFieldValueResponse;
import com.yd.base.service.dto.RelFieldValueDto;
import com.yd.base.service.model.RelFieldValue;
import com.yd.base.service.dao.RelFieldValueMapper;
import com.yd.base.service.service.IRelFieldValueService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 字段和字段值关系表 服务实现类
......@@ -37,4 +41,9 @@ public class RelFieldValueServiceImpl extends ServiceImpl<RelFieldValueMapper, R
ApiRelFieldValuePageRequest request) {
return baseMapper.page(page,request);
}
@Override
public List<ApiRelFieldValueResponse> list(RelFieldValueDto dto) {
return baseMapper.list(dto);
}
}
......@@ -13,4 +13,20 @@
AND rfv.is_deleted = 0
</where>
</select>
<select id="list" resultType="com.yd.base.feign.response.relfieldvalue.ApiRelFieldValueResponse">
select f.*,fv.* from rel_field_value rfv
left join field f on f.field_biz_id = rfv.field_biz_id and f.is_deleted = 0
left join field_value fv on fv.field_value_biz_id = rfv.field_value_biz_id and fv.is_deleted = 0
<where>
<if test="request.fieldBizIdList != null and request.fieldBizIdList.size > 0">
and rfv.field_biz_id in
<foreach collection="request.fieldBizIdList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
and rfv.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