package com.finance.system.dto;
|
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSONArray;
|
import com.google.common.collect.Lists;
|
import com.finance.common.enums.ValueTypeEnum;
|
import com.finance.common.utils.CalculateUtil;
|
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModelProperty;
|
import java.io.Serializable;
|
import java.util.List;
|
import java.util.stream.Collectors;
|
import lombok.AllArgsConstructor;
|
import lombok.Data;
|
import lombok.NoArgsConstructor;
|
|
/**
|
* @author mitao
|
* @date 2024/4/12
|
*/
|
@Data
|
@ApiModel("计算规则配置值数据传输对象")
|
@AllArgsConstructor
|
@NoArgsConstructor
|
public class CalculateItemDTO implements Serializable {
|
|
private static final long serialVersionUID = 7842483119802233747L;
|
|
@ApiModelProperty(value = "值类型", notes = "字段;符号;数字")
|
private ValueTypeEnum valueType;
|
@ApiModelProperty("内容")
|
private String content;
|
|
public static void main(String[] args) {
|
CalculateItemDTO dto1 = new CalculateItemDTO(ValueTypeEnum.FIELD, "1");
|
CalculateItemDTO dto2 = new CalculateItemDTO(ValueTypeEnum.CHARACTER, "*");
|
CalculateItemDTO dto3 = new CalculateItemDTO(ValueTypeEnum.NUMBER, "1");
|
CalculateItemDTO dto4 = new CalculateItemDTO(ValueTypeEnum.CHARACTER, ")");
|
CalculateItemDTO dto5 = new CalculateItemDTO(ValueTypeEnum.CHARACTER, "*");
|
|
List<CalculateItemDTO> list = Lists.newArrayList(dto1, dto2, dto3, dto4);
|
//将list转为jsonString
|
String jsonString = JSON.toJSONString(list);
|
System.out.println(jsonString);
|
List<CalculateItemDTO> calculateItemDTOS = JSONArray.parseArray(jsonString,
|
CalculateItemDTO.class);
|
System.out.println(calculateItemDTOS);
|
String numberCalculateFormulaStr = calculateItemDTOS.stream()
|
.map(CalculateItemDTO::getContent).collect(Collectors.joining());
|
System.out.println(numberCalculateFormulaStr);
|
double calculate = CalculateUtil.calculate(numberCalculateFormulaStr);
|
System.out.println(calculate);
|
}
|
}
|