From c969b218bcda530759f1b39ef61341a030f6ab11 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Thu, 21 Jan 2021 23:58:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/lz/common/utils/NumberUtil.java | 12 +++ .../java/com/lz/common/utils/TaskCommand.java | 81 ++++++++++++++++++- .../com/lz/modules/flow/model/TaskDto.java | 11 +++ 3 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/lz/modules/flow/model/TaskDto.java diff --git a/src/main/java/com/lz/common/utils/NumberUtil.java b/src/main/java/com/lz/common/utils/NumberUtil.java index a5ffab86..c0419206 100644 --- a/src/main/java/com/lz/common/utils/NumberUtil.java +++ b/src/main/java/com/lz/common/utils/NumberUtil.java @@ -1,10 +1,12 @@ package com.lz.common.utils; +import javafx.scene.input.TouchEvent; import org.apache.commons.lang.StringUtils; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; +import java.util.regex.Pattern; /** @@ -441,4 +443,14 @@ public class NumberUtil { return ret; } } + + + public static boolean isNumeric(String str){ + Pattern pattern = Pattern.compile("[0-9]*"); + return pattern.matcher(str).matches(); + } + + public static void main(String[] args) { + System.out.println(isNumeric("123a")); + } } diff --git a/src/main/java/com/lz/common/utils/TaskCommand.java b/src/main/java/com/lz/common/utils/TaskCommand.java index 0999d946..490f11fc 100644 --- a/src/main/java/com/lz/common/utils/TaskCommand.java +++ b/src/main/java/com/lz/common/utils/TaskCommand.java @@ -4,8 +4,10 @@ package com.lz.common.utils; import com.lz.common.cli.CliToken; import com.lz.common.cli.CliTokens; import com.lz.modules.app.utils.t.Tuple; +import com.lz.modules.flow.model.TaskDto; import org.junit.Test; +import javax.print.attribute.standard.MediaSize; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -18,7 +20,7 @@ public class TaskCommand { public static final String task = "task"; public static final String record = "record"; - public static List commandCommands = new ArrayList(Arrays.asList(new String[]{"add","update","list"})); + public static List commandCommands = new ArrayList(Arrays.asList(new String[]{"add", "update", "list"})); public static List optTargets = new ArrayList(Arrays.asList(new String[]{"task", "record"})); @@ -32,15 +34,84 @@ public class TaskCommand { return new Tuple(488, "命令的第二个参数必需是 task or record"); } if (task.equals(tokens[1])) { //表示对 task 增删改查 + if (tokens[0].equals(list)) { //task list + return new Tuple(1); + } + if (tokens[0].equals(add)) { + //task add 1 -nrm "内容" 30 "哈哈" + //task add 1 "内容" 30 "哈哈" + //task add 1 "内容" 30 + //task add 1 "内容" + //task add 1 -n "内容" + if(tokens.length < 4 ){ + return new Tuple(488, "task add 参数不对,如 task add 1 \"今天任务\""); + } + if(!NumberUtil.isNumeric(tokens[2])){ + return new Tuple(488, "命令的第三个参数必需是数字"); + } + TaskDto taskDto = new TaskDto(); + taskDto.setId(NumberUtil.objToLong(tokens[2])); + int i = 3; + while (i < tokens.length) { + String notKnow = tokens[i]; + if(notKnow.startsWith("-")){ + notKnow = notKnow.substring(1); + if (StringUtil.isEmpty(notKnow)) { + return new Tuple(488, "task add 的-参数后面必需是 n或r或m。"); + } + char chars[] = notKnow.toCharArray(); + if (i + chars.length > tokens.length) { + return new Tuple(488, "参数个数不对"); + } + for (char c : chars) { + i++; + String know = tokens[i]; + if (c == 'n') { + taskDto.setName(know); + } else if (c == 'r') { + if(!NumberUtil.isNumeric(know)){ + return new Tuple(488, "r 参数必需是一个正整数"); + } + taskDto.setRate(NumberUtil.objToIntDefault(know,0)); + }else if ( c == 'm'){ + taskDto.setMark(know); + } + } + }else{ + if(StringUtil.isBlank(taskDto.getName())){ + taskDto.setName(notKnow); + }else if(taskDto.getRate() !=null){ + if(!NumberUtil.isNumeric(notKnow)){ + return new Tuple(488, "进度必需是一个正整数"); + } + taskDto.setRate(NumberUtil.objToIntDefault( notKnow,0)); + }else if(StringUtil.isEmpty(taskDto.getMark())){ + taskDto.setMark(notKnow); + } + } + i ++; + } + return new Tuple(2,taskDto); + } else if (tokens[0].equals(update)) { //task update - } else if (record.equals(tokens[1])) { //表示对 list 增删改查 + return new Tuple(3); + } + } else if (record.equals(tokens[1])) { //表示对 record 增删改查 + if (tokens[0].equals(list)) { //record list + return new Tuple(4); + } + if (tokens[0].equals(add)) { //record add + return new Tuple(5); + } else if (tokens[0].equals(update)) { //record update + return new Tuple(6); + } } return new Tuple(); } - public static String [] getTokens(String command) { + public static String[] getTokens(String command) { List tokenList = new ArrayList<>(); List tokens = CliTokens.tokenize(command); for (int i = 0; i < tokens.size(); i++) { @@ -56,5 +127,9 @@ public class TaskCommand { for (int i = 0; i < tokens.size(); i++) { System.out.println(tokens.get(i).value()); } + System.out.println("======================"); + String dd = "-d"; + dd = dd.substring(1); + System.out.println(dd); } } diff --git a/src/main/java/com/lz/modules/flow/model/TaskDto.java b/src/main/java/com/lz/modules/flow/model/TaskDto.java new file mode 100644 index 00000000..3248545b --- /dev/null +++ b/src/main/java/com/lz/modules/flow/model/TaskDto.java @@ -0,0 +1,11 @@ +package com.lz.modules.flow.model; + +import lombok.Data; + +@Data +public class TaskDto { + private Long id ; + private String name; + private Integer rate ; + private String mark; +}