Commit 8d489b8e by zhangxingmin

push

parent 1a53bf36
package com.yd.base.api.controller;
import com.yd.base.api.service.ApiRelObjectCertificateService;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
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;
/**
* 对象证件关系信息
*
* @author zxm
* @since 2026-02-02
*/
@RestController
@RequestMapping("/relObjectCertificate")
@Validated
public class ApiRelObjectCertificateController implements ApiRelObjectCertificateFeignClient {
@Autowired
private ApiRelObjectCertificateService apiRelObjectCertificateService;
/**
* 列表查询-对象和分类关系
* @param request
* @return
*/
@Override
public Result<List<ApiRelObjectCertificateListResponse>> list(ApiRelObjectCertificateListRequest request) {
return apiRelObjectCertificateService.list(request);
}
/**
* 添加-单个对象和分类列表关系
* @param request
* @return
*/
@Override
public Result addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest request) {
return apiRelObjectCertificateService.addRelObjectCertificateList(request);
}
}
package com.yd.base.api.service;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
import com.yd.common.result.Result;
import java.util.List;
public interface ApiRelObjectCertificateService {
Result<List<ApiRelObjectCertificateListResponse>> list(ApiRelObjectCertificateListRequest request);
Result addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest request);
}
package com.yd.base.api.service.impl;
import com.yd.base.api.service.ApiRelObjectCertificateService;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
import com.yd.base.service.model.RelObjectCertificate;
import com.yd.base.service.service.IRelObjectCertificateService;
import com.yd.common.enums.CommonEnum;
import com.yd.common.result.Result;
import com.yd.common.utils.RandomStringGenerator;
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.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ApiRelObjectCertificateServiceImpl implements ApiRelObjectCertificateService {
@Autowired
private IRelObjectCertificateService iRelObjectCertificateService;
/**
* 列表查询-对象和分类关系
* @param request
* @return
*/
@Override
public Result<List<ApiRelObjectCertificateListResponse>> list(ApiRelObjectCertificateListRequest request) {
List<ApiRelObjectCertificateListResponse> responses = new ArrayList<>();
List<RelObjectCertificate> list = iRelObjectCertificateService.list(request.getObjectBizId());
if (!CollectionUtils.isEmpty(list)) {
responses = list.stream().map(dto -> {
ApiRelObjectCertificateListResponse response = new ApiRelObjectCertificateListResponse();
BeanUtils.copyProperties(dto,response);
return response;
}).collect(Collectors.toList());
}
return Result.success(responses);
}
/**
* 添加-单个对象和分类列表关系
* @param request
* @return
*/
@Override
public Result addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest request) {
//先删后新增
//删除
iRelObjectCertificateService.delByObjectBizId(request.getObjectBizId());
if (!CollectionUtils.isEmpty(request.getApiCertificateDtoList())) {
//新增
List<RelObjectCertificate> addList = request.getApiCertificateDtoList()
.stream().map(dto -> {
RelObjectCertificate relObjectCertificate = new RelObjectCertificate();
BeanUtils.copyProperties(request,relObjectCertificate);
BeanUtils.copyProperties(dto,relObjectCertificate);
relObjectCertificate.setRelObjectCertificateBizId(RandomStringGenerator.generateBizId16(CommonEnum.UID_TYPE_REL_OBJECT_CERTIFICATE.getCode()));
return relObjectCertificate;
}).collect(Collectors.toList());
iRelObjectCertificateService.saveOrUpdateBatch(addList);
}
return Result.success();
}
}
package com.yd.base.feign.client.relobjectcertificate;
import com.yd.base.feign.fallback.relobjectcertificate.ApiRelObjectCertificateFeignFallbackFactory;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
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客户端
*/
@FeignClient(name = "yd-base-api",path = "/base/api/relObjectCertificate",fallbackFactory = ApiRelObjectCertificateFeignFallbackFactory.class)
public interface ApiRelObjectCertificateFeignClient {
/**
* 列表查询-对象和分类关系
* @param request
* @return
*/
@PostMapping("/list")
Result<List<ApiRelObjectCertificateListResponse>> list(@Validated @RequestBody ApiRelObjectCertificateListRequest request);
/**
* 添加-单个对象和分类列表关系
* @param request
* @return
*/
@PostMapping("/add/relObjectCertificateList")
Result addRelObjectCertificateList(@Validated @RequestBody ApiRelObjectCertificateListAddRequest request);
}
package com.yd.base.feign.dto;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ApiCertificateDto {
/**
* 证件类型
*/
private String documentType;
/**
* 证件号码
*/
private String idNumber;
/**
* 证件签发日期
*/
private LocalDateTime certificateIssueDate;
/**
* 证件有效期开始日期
*/
private LocalDateTime certificateStartDate;
/**
* 证件有效期截止日期,NULL表示长期有效
*/
private LocalDateTime certificateEndDate;
/**
* 是否长期有效:0-否,1-是
*/
private Integer isPermanent;
}
package com.yd.base.feign.fallback.relobjectcertificate;
import com.yd.base.feign.client.relobjectcertificate.ApiRelObjectCertificateFeignClient;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListAddRequest;
import com.yd.base.feign.request.relobjectcertificate.ApiRelObjectCertificateListRequest;
import com.yd.base.feign.response.relobjectcertificate.ApiRelObjectCertificateListResponse;
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降级处理
*/
@Slf4j
@Component
public class ApiRelObjectCertificateFeignFallbackFactory implements FallbackFactory<ApiRelObjectCertificateFeignClient> {
@Override
public ApiRelObjectCertificateFeignClient create(Throwable cause) {
return new ApiRelObjectCertificateFeignClient() {
@Override
public Result<List<ApiRelObjectCertificateListResponse>> list(ApiRelObjectCertificateListRequest request) {
return null;
}
@Override
public Result addRelObjectCertificateList(ApiRelObjectCertificateListAddRequest request) {
return null;
}
};
}
}
package com.yd.base.feign.request.relobjectcertificate;
import com.yd.base.feign.dto.ApiCertificateDto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
public class ApiRelObjectCertificateListAddRequest {
/**
* 业务对象类型
*/
private String objectType;
/**
* 业务对象所属表名
*/
private String objectTableName;
/**
* 业务对象名
*/
private String objectName;
/**
* 业务对象业务ID
*/
@NotBlank(message = "业务对象业务ID不能为空")
private String objectBizId;
/**
* 证件信息列表
*/
private List<ApiCertificateDto> apiCertificateDtoList;
}
package com.yd.base.feign.request.relobjectcertificate;
import lombok.Data;
@Data
public class ApiRelObjectCertificateListRequest {
/**
* 业务对象业务ID
*/
private String objectBizId;
}
package com.yd.base.feign.response.relobjectcertificate;
import lombok.Data;
import java.time.LocalDateTime;
@Data
public class ApiRelObjectCertificateListResponse {
/**
* 主键ID
*/
private Long id;
/**
* 对象证件关系表唯一业务ID
*/
private String relObjectCertificateBizId;
/**
* 业务对象类型
*/
private String objectType;
/**
* 业务对象所属表名
*/
private String objectTableName;
/**
* 业务对象名
*/
private String objectName;
/**
* 业务对象业务ID
*/
private String objectBizId;
/**
* 证件类型
*/
private String documentType;
/**
* 证件号码
*/
private String idNumber;
/**
* 证件签发日期
*/
private LocalDateTime certificateIssueDate;
/**
* 证件有效期开始日期
*/
private LocalDateTime certificateStartDate;
/**
* 证件有效期截止日期,NULL表示长期有效
*/
private LocalDateTime certificateEndDate;
/**
* 是否长期有效:0-否,1-是
*/
private Integer isPermanent;
}
package com.yd.base.service.dao;
import com.yd.base.service.model.RelObjectCertificate;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* <p>
* 对象证件关系表 Mapper 接口
* </p>
*
* @author zxm
* @since 2026-02-02
*/
public interface RelObjectCertificateMapper extends BaseMapper<RelObjectCertificate> {
}
package com.yd.base.service.model;
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;
/**
* <p>
* 对象证件关系表
* </p>
*
* @author zxm
* @since 2026-02-02
*/
@Getter
@Setter
@TableName("rel_object_certificate")
public class RelObjectCertificate implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 对象证件关系表唯一业务ID
*/
@TableField("rel_object_certificate_biz_id")
private String relObjectCertificateBizId;
/**
* 业务对象类型
*/
@TableField("object_type")
private String objectType;
/**
* 业务对象所属表名
*/
@TableField("object_table_name")
private String objectTableName;
/**
* 业务对象名
*/
@TableField("object_name")
private String objectName;
/**
* 业务对象业务ID
*/
@TableField("object_biz_id")
private String objectBizId;
/**
* 证件类型
*/
@TableField("document_type")
private String documentType;
/**
* 证件号码
*/
@TableField("id_number")
private String idNumber;
/**
* 证件签发日期
*/
@TableField("certificate_issue_date")
private LocalDateTime certificateIssueDate;
/**
* 证件有效期开始日期
*/
@TableField("certificate_start_date")
private LocalDateTime certificateStartDate;
/**
* 证件有效期截止日期,NULL表示长期有效
*/
@TableField("certificate_end_date")
private LocalDateTime certificateEndDate;
/**
* 是否长期有效:0-否,1-是
*/
@TableField("is_permanent")
private Integer isPermanent;
/**
* 通用备注
*/
@TableField("remark")
private String remark;
/**
* 删除标识: 0-正常, 1-删除
*/
@TableField("is_deleted")
private Integer isDeleted;
/**
* 创建人ID
*/
@TableField("creator_id")
private String creatorId;
/**
* 更新人ID
*/
@TableField("updater_id")
private String updaterId;
/**
* 创建时间
*/
@TableField("create_time")
private LocalDateTime createTime;
/**
* 更新时间
*/
@TableField("update_time")
private LocalDateTime updateTime;
}
package com.yd.base.service.service;
import com.yd.base.service.model.RelObjectCertificate;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* <p>
* 对象证件关系表 服务类
* </p>
*
* @author zxm
* @since 2026-02-02
*/
public interface IRelObjectCertificateService extends IService<RelObjectCertificate> {
List<RelObjectCertificate> list(String objectBizId);
Boolean delByObjectBizId(String objectBizId);
}
package com.yd.base.service.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yd.base.service.model.RelObjectCertificate;
import com.yd.base.service.dao.RelObjectCertificateMapper;
import com.yd.base.service.service.IRelObjectCertificateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 对象证件关系表 服务实现类
* </p>
*
* @author zxm
* @since 2026-02-02
*/
@Service
public class RelObjectCertificateServiceImpl extends ServiceImpl<RelObjectCertificateMapper, RelObjectCertificate> implements IRelObjectCertificateService {
@Override
public List<RelObjectCertificate> list(String objectBizId) {
return baseMapper.selectList(new LambdaQueryWrapper<RelObjectCertificate>()
.eq(RelObjectCertificate::getObjectBizId,objectBizId));
}
@Override
public Boolean delByObjectBizId(String objectBizId) {
return this.remove(new LambdaQueryWrapper<RelObjectCertificate>()
.eq(RelObjectCertificate::getObjectBizId,objectBizId));
}
}
...@@ -21,7 +21,7 @@ public class MyBatisPlusCodeGenerator { ...@@ -21,7 +21,7 @@ public class MyBatisPlusCodeGenerator {
}) })
.strategyConfig(builder -> { .strategyConfig(builder -> {
builder.addInclude( builder.addInclude(
"exchange_rate" "rel_object_certificate"
) )
.entityBuilder() .entityBuilder()
.enableLombok() .enableLombok()
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yd.base.service.dao.RelObjectCertificateMapper">
</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