提交 ab7fec26 作者: 17607474349

feat:

1、定位标签卡相关操作
上级 5b8c6aac
...@@ -4,6 +4,7 @@ package com.yiring.app.excel.location; ...@@ -4,6 +4,7 @@ package com.yiring.app.excel.location;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn; import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -29,11 +30,21 @@ public class LocationTagImportExcel implements Serializable { ...@@ -29,11 +30,21 @@ public class LocationTagImportExcel implements Serializable {
@ExcelColumn(index = 1) @ExcelColumn(index = 1)
String type; String type;
// 设备编码 // 实体类型
@ExcelColumn(index = 2) @ExcelColumn(index = 2)
String entityType;
// 设备编码
@ExcelColumn(index = 3)
String imei; String imei;
public LocationTag transform() { public LocationTag transform() {
return LocationTag.builder().code(this.code).type(LocationTag.Type.valueOf(this.type)).imei(this.imei).build(); return LocationTag
.builder()
.code(this.code)
.type(LocationTag.Type.valueOf(this.type))
.imei(this.imei)
.createTime(LocalDateTime.now())
.build();
} }
} }
...@@ -5,6 +5,7 @@ import com.yiring.app.domain.location.LocationTag; ...@@ -5,6 +5,7 @@ import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -34,6 +35,12 @@ public class LocationTagAddParam implements Serializable { ...@@ -34,6 +35,12 @@ public class LocationTagAddParam implements Serializable {
String imei; String imei;
public LocationTag transform() { public LocationTag transform() {
return LocationTag.builder().code(this.code).type(this.type).imei(this.imei).build(); return LocationTag
.builder()
.code(this.code)
.type(this.type)
.imei(this.imei)
.createTime(LocalDateTime.now())
.build();
} }
} }
/* (C) 2022 YiRing, Inc. */ /* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location; package com.yiring.app.param.location;
import com.yiring.auth.domain.user.User;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
...@@ -25,10 +24,11 @@ public class LocationTagDeleteParam implements Serializable { ...@@ -25,10 +24,11 @@ public class LocationTagDeleteParam implements Serializable {
private static final long serialVersionUID = 2404060244461070885L; private static final long serialVersionUID = 2404060244461070885L;
@ApiModelProperty(value = "id", example = "145235231", required = true) @ApiModelProperty(value = "ids", example = "145235231,145235232", required = true)
@NotNull(message = "id 不能为空") @NotNull(message = "ids 不能为空")
Long id; Long[] ids;
@ApiModelProperty(value = "人员", example = "1") @ApiModelProperty(value = "codes", example = "BTT99999998,BTT99999999", required = true)
User user; @NotNull(message = "codes 不能为空")
String[] codes;
} }
...@@ -3,9 +3,12 @@ package com.yiring.app.param.location.zy; ...@@ -3,9 +3,12 @@ package com.yiring.app.param.location.zy;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.yiring.app.domain.location.LocationTag; import com.yiring.app.domain.location.LocationTag;
import com.yiring.app.excel.location.LocationTagImportExcel;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*; import lombok.*;
import lombok.experimental.FieldDefaults; import lombok.experimental.FieldDefaults;
...@@ -39,6 +42,9 @@ public class ZyLocationTagAddParam implements Serializable { ...@@ -39,6 +42,9 @@ public class ZyLocationTagAddParam implements Serializable {
public static ZyLocationTagAddParam transform(LocationTag locationTag, Integer orgId) { public static ZyLocationTagAddParam transform(LocationTag locationTag, Integer orgId) {
String entityType = StrUtil.equals(locationTag.getType().name(), "BTT02") ? "car" : "staff"; String entityType = StrUtil.equals(locationTag.getType().name(), "BTT02") ? "car" : "staff";
if (StrUtil.equals(locationTag.getType().name(), "BTT11")) {
locationTag.setType(LocationTag.Type.BTT01);
}
return ZyLocationTagAddParam return ZyLocationTagAddParam
.builder() .builder()
.orgId(orgId) .orgId(orgId)
...@@ -47,4 +53,26 @@ public class ZyLocationTagAddParam implements Serializable { ...@@ -47,4 +53,26 @@ public class ZyLocationTagAddParam implements Serializable {
.entityType(entityType) .entityType(entityType)
.build(); .build();
} }
public static List<ZyLocationTagAddParam> transforms(
List<LocationTagImportExcel> locationTagImportExcels,
Integer orgId
) {
return locationTagImportExcels
.stream()
.map(locationTagImportExcel -> {
String entityType = StrUtil.equals(locationTagImportExcel.getType(), "BTT02") ? "car" : "staff";
if (StrUtil.equals(locationTagImportExcel.getType(), "BTT11")) {
locationTagImportExcel.setType(LocationTag.Type.BTT01.name());
}
return ZyLocationTagAddParam
.builder()
.entityType(entityType)
.orgId(orgId)
.tagId(locationTagImportExcel.getCode())
.types(LocationTag.Type.valueOf(locationTagImportExcel.getType()))
.build();
})
.collect(Collectors.toList());
}
} }
...@@ -4,10 +4,8 @@ package com.yiring.app.service.location; ...@@ -4,10 +4,8 @@ package com.yiring.app.service.location;
import com.yiring.app.param.location.LocationTagAddParam; import com.yiring.app.param.location.LocationTagAddParam;
import com.yiring.app.param.location.LocationTagDeleteParam; import com.yiring.app.param.location.LocationTagDeleteParam;
import com.yiring.app.param.location.LocationTagFindParam; import com.yiring.app.param.location.LocationTagFindParam;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.vo.location.LocationTagVo; import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -52,11 +50,10 @@ public interface LocationTagService { ...@@ -52,11 +50,10 @@ public interface LocationTagService {
* @return Result<String> * @return Result<String>
*/ */
Result<String> importLocationTagInfo(MultipartFile file); Result<String> importLocationTagInfo(MultipartFile file);
/** /**
* 修改定位标签 * 修改定位标签
* @param param 入参 * @param param 入参
* @return Result<String> * @return Result<String>
*/ */
Result<String> modifyLocationTag(LocationTagModifyParam param, IdParam idParam); // Result<String> modifyLocationTag(LocationTagModifyParam param, IdParam idParam);
} }
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
package com.yiring.app.service.location.impl; package com.yiring.app.service.location.impl;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder; import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
...@@ -13,25 +14,19 @@ import com.yiring.app.excel.location.LocationTagImportExcel; ...@@ -13,25 +14,19 @@ import com.yiring.app.excel.location.LocationTagImportExcel;
import com.yiring.app.param.location.LocationTagAddParam; import com.yiring.app.param.location.LocationTagAddParam;
import com.yiring.app.param.location.LocationTagDeleteParam; import com.yiring.app.param.location.LocationTagDeleteParam;
import com.yiring.app.param.location.LocationTagFindParam; import com.yiring.app.param.location.LocationTagFindParam;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.param.location.zy.ZyLocationTagAddParam; import com.yiring.app.param.location.zy.ZyLocationTagAddParam;
import com.yiring.app.service.location.LocationTagService; import com.yiring.app.service.location.LocationTagService;
import com.yiring.app.vo.location.LocationTagVo; import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.auth.service.zy.ZyHttpService; import com.yiring.auth.service.zy.ZyHttpService;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.core.Status; import com.yiring.common.core.Status;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.io.Serializable;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -70,20 +65,10 @@ public class LocationTagServiceImpl implements LocationTagService { ...@@ -70,20 +65,10 @@ public class LocationTagServiceImpl implements LocationTagService {
public Result<String> addLocationTag(LocationTagAddParam param) { public Result<String> addLocationTag(LocationTagAddParam param) {
if (hasLocationTagInfoByCode(param.getCode())) return Result.no(Status.BAD_REQUEST, "编号已存在"); if (hasLocationTagInfoByCode(param.getCode())) return Result.no(Status.BAD_REQUEST, "编号已存在");
LocationTag locationTag = param.transform(); LocationTag locationTag = param.transform();
locationTagRepository.save(locationTag);
ZyLocationTagAddParam zyLocationTagAddParam = ZyLocationTagAddParam.transform(locationTag, FACTORY_ID); ZyLocationTagAddParam zyLocationTagAddParam = ZyLocationTagAddParam.transform(locationTag, FACTORY_ID);
List<ZyLocationTagAddParam> of = ListUtil.of(zyLocationTagAddParam); List<ZyLocationTagAddParam> of = ListUtil.of(zyLocationTagAddParam);
try { zyHttpService.post("/positionApi/api/tag/saveTag", of, 3000);
Result<Serializable> result = zyHttpService.post("/positionApi/api/tag/saveTag", of, 3000).get(); locationTagRepository.save(locationTag);
if (result.getStatus() != 200) throw new InterruptedException(
result.getStatus() + " : " + result.getMessage()
);
} catch (Exception e) {
log.error("线程执行异常: " + e.getMessage());
throw new RuntimeException(e.getMessage());
// return Result.no(Status.INTERNAL_SERVER_ERROR, "新增定位标签失败");
}
return Result.ok(); return Result.ok();
} }
...@@ -93,7 +78,7 @@ public class LocationTagServiceImpl implements LocationTagService { ...@@ -93,7 +78,7 @@ public class LocationTagServiceImpl implements LocationTagService {
Sort sort = Sort.by(Sort.Order.desc(LocationTag.Fields.createTime)); Sort sort = Sort.by(Sort.Order.desc(LocationTag.Fields.createTime));
if (Objects.nonNull(param.getPageNo()) && Objects.nonNull(param.getPageSize())) { if (ObjectUtil.isNotEmpty(param.getPageNo()) && ObjectUtil.isNotEmpty(param.getPageSize())) {
//分页 //分页
Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()); Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
Page<LocationTag> locationTags = locationTagRepository.findAll(specification, pageable); Page<LocationTag> locationTags = locationTagRepository.findAll(specification, pageable);
...@@ -110,8 +95,12 @@ public class LocationTagServiceImpl implements LocationTagService { ...@@ -110,8 +95,12 @@ public class LocationTagServiceImpl implements LocationTagService {
@Override @Override
public Result<String> deleteLocationTag(LocationTagDeleteParam param) { public Result<String> deleteLocationTag(LocationTagDeleteParam param) {
if (ObjectUtil.isNotEmpty(param.getUser())) return Result.no(Status.BAD_REQUEST, "请先解绑人员"); if (ObjectUtil.isEmpty(param)) return Result.no(Status.EXPECTATION_FAILED);
locationTagRepository.deleteById(param.getId()); Map<Object, Object> map = MapUtil.createMap(HashMap.class);
map.put("tagIds", param.getCodes());
map.put("orgId", FACTORY_ID);
zyHttpService.delete("/positionApi/api/tag/delete", map, 3000);
locationTagRepository.deleteAllById(ListUtil.toList(param.getIds()));
return Result.ok(); return Result.ok();
} }
...@@ -168,41 +157,16 @@ public class LocationTagServiceImpl implements LocationTagService { ...@@ -168,41 +157,16 @@ public class LocationTagServiceImpl implements LocationTagService {
List<LocationTag> locationTags = locationTagImportExcels List<LocationTag> locationTags = locationTagImportExcels
.stream() .stream()
.filter(locationTagImportExcel -> !hasLocationTagInfoByCode(locationTagImportExcel.getCode()))
.map(LocationTagImportExcel::transform) .map(LocationTagImportExcel::transform)
.collect(Collectors.toList()); .collect(Collectors.toList());
locationTags.forEach(locationTag -> { List<ZyLocationTagAddParam> zyLocationTagAddParams = ZyLocationTagAddParam.transforms(
locationTagRepository locationTagImportExcels,
.findOne((root, cq, cb) -> { FACTORY_ID
List<Predicate> predicates = new ArrayList<>(); );
zyHttpService.post("/positionApi/api/tag/saveTag", zyLocationTagAddParams, 3000);
if (StrUtil.isNotEmpty(locationTag.getCode())) { locationTagRepository.saveAll(locationTags);
predicates.add(cb.equal(root.get(LocationTag.Fields.code), locationTag.getCode()));
}
return cq.where(predicates.toArray(new Predicate[0])).getRestriction();
})
.ifPresent(temp -> locationTag.setId(temp.getId()));
locationTagRepository.save(locationTag);
});
return Result.ok();
}
@Override
public Result<String> modifyLocationTag(LocationTagModifyParam param, IdParam idParam) {
Optional<LocationTag> locationTagOptional = locationTagRepository.findById(idParam.getId());
if (locationTagOptional.isEmpty()) return Result.no(Status.BAD_REQUEST, "被修改的数据不存在");
LocationTag locationTag = locationTagOptional.get();
if (!StrUtil.equals(locationTag.getCode(), param.getCode())) {
if (hasLocationTagInfoByCode(param.getCode())) return Result.no(Status.BAD_REQUEST, "编号已存在");
}
locationTag = param.transform();
locationTag.setId(idParam.getId());
locationTagRepository.save(locationTag);
return Result.ok(); return Result.ok();
} }
......
...@@ -4,11 +4,9 @@ package com.yiring.app.web; ...@@ -4,11 +4,9 @@ package com.yiring.app.web;
import com.yiring.app.param.location.LocationTagAddParam; import com.yiring.app.param.location.LocationTagAddParam;
import com.yiring.app.param.location.LocationTagDeleteParam; import com.yiring.app.param.location.LocationTagDeleteParam;
import com.yiring.app.param.location.LocationTagFindParam; import com.yiring.app.param.location.LocationTagFindParam;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.service.location.LocationTagService; import com.yiring.app.service.location.LocationTagService;
import com.yiring.app.vo.location.LocationTagVo; import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.common.core.Result; import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo; import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -65,10 +63,9 @@ public class LocationTagController { ...@@ -65,10 +63,9 @@ public class LocationTagController {
public Result<String> importLocationTagInfo(@RequestParam("file") MultipartFile file) { public Result<String> importLocationTagInfo(@RequestParam("file") MultipartFile file) {
return locationTagService.importLocationTagInfo(file); return locationTagService.importLocationTagInfo(file);
} }
/* @ApiOperation("修改定位标签")
@ApiOperation("修改定位标签")
@PutMapping("modifyLocationTag") @PutMapping("modifyLocationTag")
public Result<String> modifyLocationTag(@Valid LocationTagModifyParam param, IdParam idParam) { public Result<String> modifyLocationTag(@Valid LocationTagModifyParam param, IdParam idParam) {
return locationTagService.modifyLocationTag(param, idParam); return locationTagService.modifyLocationTag(param, idParam);
} }*/
} }
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
package com.yiring.auth.domain.post; package com.yiring.auth.domain.post;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.GeneratedValue; import javax.persistence.GeneratedValue;
import javax.persistence.Id; import javax.persistence.Id;
...@@ -47,6 +48,12 @@ public class Post implements Serializable { ...@@ -47,6 +48,12 @@ public class Post implements Serializable {
@Comment("描述") @Comment("描述")
String describe; String describe;
@Comment("创建时间")
LocalDateTime createTime;
@Comment("更新时间")
LocalDateTime updateTime;
@Comment("是否启用") @Comment("是否启用")
Boolean enable; Boolean enable;
} }
...@@ -19,6 +19,7 @@ import com.yiring.common.vo.PageVo; ...@@ -19,6 +19,7 @@ import com.yiring.common.vo.PageVo;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
...@@ -52,6 +53,7 @@ public class PostServiceImpl implements PostService { ...@@ -52,6 +53,7 @@ public class PostServiceImpl implements PostService {
public Result<String> addPost(PostParam postParam) { public Result<String> addPost(PostParam postParam) {
if (hasPostInfo(postParam.getName())) return Result.no(Status.BAD_REQUEST, "职位已存在"); if (hasPostInfo(postParam.getName())) return Result.no(Status.BAD_REQUEST, "职位已存在");
Post post = postParam.transform(); Post post = postParam.transform();
post.setCreateTime(LocalDateTime.now());
postRepository.save(post); postRepository.save(post);
return Result.ok(); return Result.ok();
} }
...@@ -68,6 +70,7 @@ public class PostServiceImpl implements PostService { ...@@ -68,6 +70,7 @@ public class PostServiceImpl implements PostService {
} }
post = postParam.transform(); post = postParam.transform();
post.setUpdateTime(LocalDateTime.now());
post.setId(idParam.getId()); post.setId(idParam.getId());
postRepository.save(post); postRepository.save(post);
return Result.ok(); return Result.ok();
...@@ -84,7 +87,7 @@ public class PostServiceImpl implements PostService { ...@@ -84,7 +87,7 @@ public class PostServiceImpl implements PostService {
public Result<PageVo<PostVo>> findPostPage(PostFindParam param) { public Result<PageVo<PostVo>> findPostPage(PostFindParam param) {
Specification<Post> specification = getPostPageSpecification(param); Specification<Post> specification = getPostPageSpecification(param);
if (ObjectUtil.isEmpty(param.getPageSize()) && ObjectUtil.isEmpty(param.getPageNo())) { if (ObjectUtil.isNotEmpty(param.getPageSize()) && ObjectUtil.isNotEmpty(param.getPageNo())) {
//分页 //分页
Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()); Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
Page<Post> page = postRepository.findAll(specification, pageable); Page<Post> page = postRepository.findAll(specification, pageable);
......
...@@ -91,7 +91,7 @@ public class ZyHttpServiceImpl implements ZyHttpService { ...@@ -91,7 +91,7 @@ public class ZyHttpServiceImpl implements ZyHttpService {
String body = HttpRequest String body = HttpRequest
.delete(URL_PREFIX + urlString) .delete(URL_PREFIX + urlString)
.header(Header.AUTHORIZATION, TOKEN_TYPE + token) .header(Header.AUTHORIZATION, TOKEN_TYPE + token)
.header(Header.CONTENT_TYPE, "application/json") .header(Header.CONTENT_TYPE, "application/x-www-form-urlencoded")
.body(json) .body(json)
.timeout(timeout) .timeout(timeout)
.execute() .execute()
......
...@@ -7,6 +7,7 @@ import com.yiring.auth.domain.post.Post; ...@@ -7,6 +7,7 @@ import com.yiring.auth.domain.post.Post;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import lombok.*; import lombok.*;
...@@ -38,6 +39,12 @@ public class PostVo implements Serializable { ...@@ -38,6 +39,12 @@ public class PostVo implements Serializable {
@ApiModelProperty(value = "描述", example = "描述") @ApiModelProperty(value = "描述", example = "描述")
String describe; String describe;
@ApiModelProperty(value = "创建时间", example = "创建时间")
LocalDateTime createTime;
@ApiModelProperty(value = "更新时间", example = "更新时间")
LocalDateTime updateTime;
@ApiModelProperty(value = "是否启用", example = "true") @ApiModelProperty(value = "是否启用", example = "true")
Boolean enable; Boolean enable;
...@@ -48,6 +55,8 @@ public class PostVo implements Serializable { ...@@ -48,6 +55,8 @@ public class PostVo implements Serializable {
.name(post.getName()) .name(post.getName())
.describe(post.getDescribe()) .describe(post.getDescribe())
.enable(post.getEnable()) .enable(post.getEnable())
.createTime(post.getCreateTime())
.updateTime(post.getUpdateTime())
.build(); .build();
} }
...@@ -61,6 +70,8 @@ public class PostVo implements Serializable { ...@@ -61,6 +70,8 @@ public class PostVo implements Serializable {
.name(post.getName()) .name(post.getName())
.describe(post.getDescribe()) .describe(post.getDescribe())
.enable(post.getEnable()) .enable(post.getEnable())
.createTime(post.getCreateTime())
.updateTime(post.getUpdateTime())
.build() .build()
) )
.collect(Collectors.toList()); .collect(Collectors.toList());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论