首页 > 编程语言 >Java案例树形数据结构及构建;数据结构思路优化方案

Java案例树形数据结构及构建;数据结构思路优化方案

时间:2023-02-25 11:32:46浏览次数:43  
标签:CUSTOMER code return dataGroupMap SERVICE 树形 Java 数据结构 ORDER


Java案例树形数据结构及构建

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysDataDictTreeResp extends SysDataDict {

@ApiModelProperty(value = "子集")
List<SysDataDictTreeResp> childrenList;

}

//构建树

private List<SysDataDictTreeResp> generateDictTree(Map<String, List<SysDataDict>> dataGroupMap,
List<SysDataDict> defaultGroupSonKeys) {
return defaultGroupSonKeys.stream().map(data -> {
SysDataDictTreeResp resp = new SysDataDictTreeResp();
BeanUtils.copyProperties(data, resp);
resp.setChildrenList(generateChildrenDict(dataGroupMap, data.getDataKey()));
return resp;
}).collect(Collectors.toList());
}

private List<SysDataDictTreeResp> generateChildrenDict(Map<String, List<SysDataDict>> dataGroupMap, String dataKey) {
if (dataGroupMap.containsKey(dataKey)) {
List<SysDataDict> mapValues = dataGroupMap.get(dataKey);
return generateDictTree(dataGroupMap, mapValues);
}
return Collections.emptyList();
}

数据结构思路优化方案

数据结构优化方案

@Override
public Boolean setOrderCustomerServiceStatus(Long id, Integer status) {
LOGGER.info("id:{}, status:{}", id, status);
OrderCustomerService orderCustomerService = orderCustomerServiceMapper.getById(id);
if (null == orderCustomerService) {
throw new OrderException(OrderExceptionResult.ORDER_CUSTOMER_SERVICE_NOT_EXITS);
}
if (OrderConstant.ORDER_CUSTOMER_SERVICE_STATUS_PROCESSED.equals(orderCustomerService.getStatus())) {
LOGGER.info("备注已处理,不能更新");
throw new OrderException(OrderExceptionResult.ORDER_CUSTOMER_SERVICE_STATUS_PROCESSED);
}
if (status.equals(orderCustomerService.getStatus())) {
LOGGER.info("订单备注状态重复");
throw new OrderException(OrderExceptionResult.ORDER_CUSTOMER_SERVICE_STATUS_REPEAT);
}
Date now = DateUtils.getNow();
orderCustomerServiceMapper.setOrderCustomerServiceStatus(id, status, now);
return true;
}

考虑到不同的情况,做一个处理
如不存在
如备注已处理,不能更新
如订单备注状态和前端传入的值一样
以上情况都提示

将被下面代码处理

public enum OrderExceptionResult implements IExceptionResult {

。。。。。
ORDER_CUSTOMER_SERVICE_STATUS_PROCESSED(1025, "订单备注状态已处理"),
ORDER_CUSTOMER_SERVICE_NOT_EXITS(1026, "订单备注不存在"),
ORDER_CUSTOMER_SERVICE_STATUS_REPEAT(1027, "订单备注状态重复"),
;

private int code;
private String msg;

OrderExceptionResult(int code, String msg) {
this.code = code;
this.msg = msg;
}

@Override
public int getCode() {
return code;
}

@Override
public String getMsg() {
return msg;
}

public IExceptionResult buildParamErrorMsg(String paramErrorMsg) {
if (paramErrorMsg == null || "".equals(paramErrorMsg)) {
paramErrorMsg = "";
}

if (this.code == PARAM_ERROR.code) {
this.msg = "参数 " + paramErrorMsg + " 不能为空";
}
return this;
}


标签:CUSTOMER,code,return,dataGroupMap,SERVICE,树形,Java,数据结构,ORDER
From: https://blog.51cto.com/u_14604401/6085093

相关文章