提交修改

This commit is contained in:
quyixiao 2021-01-26 18:38:12 +08:00
parent 39b421b797
commit 55199060d9
10 changed files with 145 additions and 70 deletions

View File

@ -5,18 +5,21 @@ import com.lz.common.cli.CliToken;
import com.lz.common.cli.CliTokens; import com.lz.common.cli.CliTokens;
import com.lz.modules.app.utils.t.Tuple; import com.lz.modules.app.utils.t.Tuple;
import com.lz.modules.flow.model.TaskDto; import com.lz.modules.flow.model.TaskDto;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test; import org.junit.Test;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
@Slf4j
public class TaskCommand { public class TaskCommand {
public static String[] parse(String command) { public static String[] parse(String command) {
command = command.replaceAll("\\\\u0000", ""); //替换掉前面的空格 log.info("parse command : " + command);
return getTokens(command); return getTokens(command);
} }
@ -55,8 +58,8 @@ public class TaskCommand {
//String command = "add task 1 -r \"哈哈\" \"说明\" " ; //String command = "add task 1 -r \"哈哈\" \"说明\" " ;
//String command = "add task 1 -r 30 " ; //String command = "add task 1 -r 30 " ;
//String command = "add task 1 -mr \"说明\" 30 \"哈哈\"" ; //String command = "add task 1 -mr \"说明\" 30 \"哈哈\"" ;
String command = "" ; String command = "\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000task list" ;
String[] tokens = getTokens(command); String[] tokens = parse(command);
System.out.println(Arrays.toString(tokens)); System.out.println(Arrays.toString(tokens));
} }
} }

View File

@ -1,6 +1,7 @@
package com.lz.modules.app.controller; package com.lz.modules.app.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lz.common.constant.CacheConstants; import com.lz.common.constant.CacheConstants;
import com.lz.common.utils.*; import com.lz.common.utils.*;
import com.lz.modules.app.dto.CommandDto; import com.lz.modules.app.dto.CommandDto;
@ -56,7 +57,11 @@ public class ThirdTaskController {
if (user == null) { if (user == null) {
return R.error(499, "登陆己经过期"); return R.error(499, "登陆己经过期");
} }
log.info("commandDto:" + JSON.toJSONString(commandDto)); String a = JSON.toJSONString(commandDto);
log.info("commandDto:" + a);
a = a.replaceAll("\\\\u0000", ""); //替换掉前面的空格
log.info("替换空格之后的命令:" + a);
commandDto = JSONObject.parseObject(a,CommandDto.class);
String[] tokens = TaskCommand.parse(commandDto.getCommand()); String[] tokens = TaskCommand.parse(commandDto.getCommand());
log.info("parse data :" + Arrays.toString(tokens)); log.info("parse data :" + Arrays.toString(tokens));
Object object = SpringContextUtils.getBean(tokens[0]); Object object = SpringContextUtils.getBean(tokens[0]);

View File

@ -19,16 +19,16 @@ import org.springframework.stereotype.Component;
@Component("help") @Component("help")
@Name("help") @Name("help")
@Summary("帮助") @Summary("help")
@Description(Constant.EXAMPLE @Description(Constant.EXAMPLE
+ " help\n" + " help\n"
+ " help task\n" + " help task : 任务命令使用\n"
+ " help record\n") + " help record : 绩效命令使用\n")
public class HelpCommand extends BaseCommand implements ICommand { public class HelpCommand extends BaseCommand implements ICommand {
private String cmd; private String cmd;
@Argument(index = 0, argName = "task", required = false) @Argument(index = 0, argName = "task or record", required = false)
@Description("command name") @Description("command name")
public void setCmd(String cmd) { public void setCmd(String cmd) {
this.cmd = cmd; this.cmd = cmd;
@ -41,7 +41,8 @@ public class HelpCommand extends BaseCommand implements ICommand {
@Override @Override
public void init(SysUserEntity user, String[] tokens) throws Exception { public void init(SysUserEntity user, String[] tokens) throws Exception {
this.user = user;
this.tokens = tokens;
} }
@Override @Override
@ -72,6 +73,6 @@ public class HelpCommand extends BaseCommand implements ICommand {
cliDto.setName(cli.getName()); cliDto.setName(cli.getName());
cliDto.setOptions(cli.getOptions()); cliDto.setOptions(cli.getOptions());
cliDto.setSummary(cli.getSummary()); cliDto.setSummary(cli.getSummary());
return R.ok().put("cliDto", cliDto); return R.ok(422).put("cliDto", cliDto);
} }
} }

View File

@ -27,6 +27,7 @@ import java.util.List;
) )
public class RecordCommand extends BaseCommand implements ICommand<Tuple> { public class RecordCommand extends BaseCommand implements ICommand<Tuple> {
private String l;
@Autowired @Autowired
private ResultDetailService resultDetailService; private ResultDetailService resultDetailService;
@ -57,8 +58,14 @@ public class RecordCommand extends BaseCommand implements ICommand<Tuple> {
@Override @Override
public R process(Tuple o) throws Exception { public R process(Tuple o) throws Exception {
List<ResultDto> listRecords = resultDetailService.listRecord(user); List<ResultDto> listRecords = resultDetailService.listRecord(user);
taskRespService.deleteInsertLastResult(user, listRecords); //保存索引和 id对应关系 taskRespService.deleteInsertLastResult(user, listRecords,tokens[0]); //保存索引和 id对应关系
TwoTuple<List<String>, List<List<String>>> recordData = TaskConvertUtils.convert(listRecords).getData(); TwoTuple<List<String>, List<List<String>>> recordData = TaskConvertUtils.convert(listRecords).getData();
return R.ok().put("header", recordData.getFirst()).put("data", recordData.getSecond()); return R.ok().put("header", recordData.getFirst()).put("data", recordData.getSecond());
} }
} }

View File

@ -1,5 +1,6 @@
package com.lz.modules.command.base1000; package com.lz.modules.command.base1000;
import com.alibaba.fastjson.JSON;
import com.lz.common.utils.Constant; import com.lz.common.utils.Constant;
import com.lz.common.utils.NumberUtil; import com.lz.common.utils.NumberUtil;
import com.lz.common.utils.R; import com.lz.common.utils.R;
@ -15,6 +16,7 @@ import com.lz.modules.performance.service.ResultTaskService;
import com.lz.modules.sys.entity.SysUserEntity; import com.lz.modules.sys.entity.SysUserEntity;
import com.lz.modules.third.service.TaskRespService; import com.lz.modules.third.service.TaskRespService;
import com.lz.modules.third.utils.TaskConvertUtils; import com.lz.modules.third.utils.TaskConvertUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -34,6 +36,7 @@ import java.util.List;
" task add 1 -n \"短信开发\" -r 30 -m \"中途遇到问题,可能会慢一点\"\n" + " task add 1 -n \"短信开发\" -r 30 -m \"中途遇到问题,可能会慢一点\"\n" +
" task add 1 -nrm \"短信开发\" 30 \"中途遇到问题,可能会慢一点\"\n" " task add 1 -nrm \"短信开发\" 30 \"中途遇到问题,可能会慢一点\"\n"
) )
@Slf4j
public class TaskCommand extends BaseCommand implements ICommand<Tuple> { public class TaskCommand extends BaseCommand implements ICommand<Tuple> {
private String option; private String option;
@ -57,17 +60,16 @@ public class TaskCommand extends BaseCommand implements ICommand<Tuple> {
@Override @Override
public Tuple check() throws Exception { public Tuple check() throws Exception {
if (tokens.length < 4) {
return new Tuple(false, "task add 参数不对,如 task add 1 \"今天任务\"");
}
if (!NumberUtil.isNumeric(tokens[2])) {
return new Tuple(false, "命令的第三个参数必需是数字");
}
return new Tuple(true); return new Tuple(true);
} }
@Override @Override
public Tuple parse() throws Exception { public Tuple parse() throws Exception {
return new Tuple(true);
}
public Tuple doParse (){
TaskDto taskDto = new TaskDto(); TaskDto taskDto = new TaskDto();
taskDto.setId(NumberUtil.objToLong(tokens[2])); taskDto.setId(NumberUtil.objToLong(tokens[2]));
int i = 3; int i = 3;
@ -101,7 +103,7 @@ public class TaskCommand extends BaseCommand implements ICommand<Tuple> {
i++; i++;
} }
taskDto.setOption(tokens[1]); taskDto.setOption(tokens[1]);
return new Tuple(false, taskDto); return new Tuple(true, taskDto);
} }
@Override @Override
@ -110,22 +112,34 @@ public class TaskCommand extends BaseCommand implements ICommand<Tuple> {
if (!parse.getFirst()) { if (!parse.getFirst()) {
return R.error(parse.getSecond()); return R.error(parse.getSecond());
} }
TwoTuple<Boolean, TaskDto> taskData = tuple.getData();
if (add.equals(tokens[1])) { if (add.equals(tokens[1])) {
return add(taskData.getSecond()); return add();
} else if (update.equals(tokens[1])) { } else if (update.equals(tokens[1])) {
return update(taskData.getSecond()); return update();
} else if (list.equals(tokens[1])) { } else if (list.equals(tokens[1])) {
return list(); return list();
} }
return R.error("未知问题"); return R.error("未知问题");
} }
public R add(TaskDto taskDto) throws Exception { public R add() throws Exception {
boolean flag = taskRespService.updateIndex(user, taskDto); Tuple tuple = doParse();
TwoTuple<Boolean, String> data = tuple.getData();
if (!data.getFirst()) {
return R.error(data.getSecond());
}
if (tokens.length < 4) {
return R.error("task add 参数不对,如 task add 1 \"今天任务\"");
}
if (!NumberUtil.isNumeric(tokens[2])) {
return R.error("命令的第三个参数必需是数字");
}
TaskDto taskDto = (TaskDto) tuple.getData().getSecond();
boolean flag = taskRespService.updateIndex(user, taskDto,"record");
if (!flag) { if (!flag) {
return R.error("请先输入 list record"); return R.error("请先输入 list record");
} }
log.info(" 添加数据 " + JSON.toJSONString(taskDto));
R r = resultTaskService.addOrUpdateTask(user, taskDto); R r = resultTaskService.addOrUpdateTask(user, taskDto);
if (NumberUtil.objToIntDefault(r.get("code"), 500) != 200) { //如果返回值不是200 if (NumberUtil.objToIntDefault(r.get("code"), 500) != 200) { //如果返回值不是200
return r; return r;
@ -135,16 +149,29 @@ public class TaskCommand extends BaseCommand implements ICommand<Tuple> {
public R list() throws Exception { public R list() throws Exception {
List<ResultDto> list = resultTaskService.listResultTask(user); List<ResultDto> list = resultTaskService.listResultTask(user);
taskRespService.deleteInsertLastResult(user, list); //保存索引和 id对应关系 taskRespService.deleteInsertLastResult(user, list,tokens[0]); //保存索引和 id对应关系
TwoTuple<List<String>, List<List<String>>> data = TaskConvertUtils.convert(list).getData(); TwoTuple<List<String>, List<List<String>>> data = TaskConvertUtils.convert(list).getData();
return R.ok().put("header", data.getFirst()).put("data", data.getSecond()); return R.ok().put("header", data.getFirst()).put("data", data.getSecond());
} }
public R update(TaskDto taskDto) { public R update() {
boolean flag = taskRespService.updateIndex(user, taskDto); Tuple tuple = doParse();
TwoTuple<Boolean, String> data = tuple.getData();
if (!data.getFirst()) {
return R.error(data.getSecond());
}
if (tokens.length < 4) {
return R.error("task add 参数不对,如 task add 1 \"今天任务\"");
}
if (!NumberUtil.isNumeric(tokens[2])) {
return R.error("命令的第三个参数必需是数字");
}
TaskDto taskDto = (TaskDto) tuple.getData().getSecond();
boolean flag = taskRespService.updateIndex(user, taskDto,"task");
if (!flag) { if (!flag) {
return R.error("请先输入 list task"); return R.error("请先输入 list task");
} }
log.info(" 更新数据 " + JSON.toJSONString(taskDto));
R r = resultTaskService.addOrUpdateTask(user, taskDto); R r = resultTaskService.addOrUpdateTask(user, taskDto);
if (NumberUtil.objToIntDefault(r.get("code"), 500) != 200) { //如果返回值不是200 if (NumberUtil.objToIntDefault(r.get("code"), 500) != 200) { //如果返回值不是200
return r; return r;
@ -154,34 +181,36 @@ public class TaskCommand extends BaseCommand implements ICommand<Tuple> {
@Argument(index = 0, argName = "option") @Argument(index = 0, argName = "option")
@Option(shortName = "o", longName = "option") @Option(shortName = "o")
@Description("任务操作") @Description("任务操作")
public void setOption(String option) { public void setOption(String option) {
this.option = option; this.option = option;
} }
@Option(shortName = "id", longName = "id") @Option(shortName = "id")
@Description("任务 id") @Description("任务 id")
public void setId(Long id) { public void setId(Long id) {
this.id = id; this.id = id;
} }
@Option(shortName = "n", longName = "name") @Option(shortName = "n")
@Description("任务名称") @Description("任务名称")
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
@Option(shortName = "r", longName = "rate") @Option(shortName = "r")
@Description("任务进度") @Description("任务进度")
public void setRate(String rate) { public void setRate(String rate) {
this.rate = rate; this.rate = rate;
} }
@Option(shortName = "m", longName = "mark") @Option(shortName = "m")
@Description("任务说明") @Description("任务说明")
public void setMark(String mark) { public void setMark(String mark) {
this.mark = mark; this.mark = mark;
} }
} }

View File

@ -35,7 +35,7 @@ public interface TaskRespMapper extends BaseMapper<TaskResp> {
void deleteTaskRespByUserId(@Param("userId") Long userId); void deleteTaskRespByUserId(@Param("userId") Long userId);
TaskResp selectTaskRespByUserIdIndex(@Param("userId") Long userId, @Param("index") Long index); TaskResp selectTaskRespByUserIdIndex(@Param("userId") Long userId, @Param("index") Long index, @Param("command") String command);
void batchInsertTaskRespList(@Param("taskRespList") List<TaskResp> taskRespList); void batchInsertTaskRespList(@Param("taskRespList") List<TaskResp> taskRespList);
} }

View File

@ -41,6 +41,9 @@ public class TaskResp implements java.io.Serializable {
//返回值内容 //返回值内容
@ApiModelProperty(value = "返回值内容", name = "content") @ApiModelProperty(value = "返回值内容", name = "content")
private String content; private String content;
//
@ApiModelProperty(value = "", name = "command")
private String command;
/** /**
* *
* @return * @return
@ -161,6 +164,21 @@ public class TaskResp implements java.io.Serializable {
this.content = content; this.content = content;
} }
/**
*
* @return
*/
public String getCommand() {
return command;
}
/**
*
* @param command
*/
public void setCommand(String command) {
this.command = command;
}
@Override @Override
public String toString() { public String toString() {
return "TaskResp{" + return "TaskResp{" +
@ -172,6 +190,7 @@ public class TaskResp implements java.io.Serializable {
",userId=" + userId + ",userId=" + userId +
",resultId=" + resultId + ",resultId=" + resultId +
",content=" + content + ",content=" + content +
",command=" + command +
"}"; "}";
} }
} }

View File

@ -35,9 +35,9 @@ public interface TaskRespService extends IService<TaskResp> {
int deleteTaskRespById(Long id); int deleteTaskRespById(Long id);
void deleteInsertLastResult(SysUserEntity user ,List<ResultDto> list); void deleteInsertLastResult(SysUserEntity user ,List<ResultDto> list,String command);
TaskResp selectTaskRespByUserIdIndex(Long userId, Long id); TaskResp selectTaskRespByUserIdIndex(Long userId, Long id,String command);
boolean updateIndex(SysUserEntity userEntity, TaskDto taskDto); boolean updateIndex(SysUserEntity userEntity, TaskDto taskDto,String command);
} }

View File

@ -65,7 +65,7 @@ public class TaskRespServiceImpl extends ServiceImpl<TaskRespMapper, TaskResp> i
} }
@Override @Override
public void deleteInsertLastResult(SysUserEntity user,List<ResultDto> list) { public void deleteInsertLastResult(SysUserEntity user,List<ResultDto> list,String command) {
taskRespMapper.deleteTaskRespByUserId(user.getUserId()); taskRespMapper.deleteTaskRespByUserId(user.getUserId());
List<TaskResp> taskRespList =new ArrayList<>(); List<TaskResp> taskRespList =new ArrayList<>();
for(ResultDto resultDto : list){ for(ResultDto resultDto : list){
@ -74,6 +74,7 @@ public class TaskRespServiceImpl extends ServiceImpl<TaskRespMapper, TaskResp> i
taskResp.setResultId(resultDto.getId()); taskResp.setResultId(resultDto.getId());
taskResp.setUserId(user.getUserId()); taskResp.setUserId(user.getUserId());
taskResp.setContent(resultDto.getContent()); taskResp.setContent(resultDto.getContent());
taskResp.setCommand(command);
taskRespList.add(taskResp); taskRespList.add(taskResp);
} }
if (CollectionUtils.isNotEmpty(taskRespList)) { if (CollectionUtils.isNotEmpty(taskRespList)) {
@ -82,12 +83,13 @@ public class TaskRespServiceImpl extends ServiceImpl<TaskRespMapper, TaskResp> i
} }
@Override @Override
public TaskResp selectTaskRespByUserIdIndex(Long userId, Long index ) { public TaskResp selectTaskRespByUserIdIndex(Long userId, Long index,String command ) {
return taskRespMapper.selectTaskRespByUserIdIndex(userId,index); return taskRespMapper.selectTaskRespByUserIdIndex(userId,index,command);
} }
public boolean updateIndex(SysUserEntity userEntity, TaskDto taskDto) {
TaskResp taskResp = taskRespService.selectTaskRespByUserIdIndex(userEntity.getUserId(), taskDto.getId()); public boolean updateIndex(SysUserEntity userEntity, TaskDto taskDto,String command) {
TaskResp taskResp = taskRespService.selectTaskRespByUserIdIndex(userEntity.getUserId(), taskDto.getId(),command);
if (taskResp != null) { if (taskResp != null) {
taskDto.setId(taskResp.getResultId()); taskDto.setId(taskResp.getResultId());
return true; return true;

View File

@ -12,12 +12,13 @@
<result column="user_id" property="userId"/> <result column="user_id" property="userId"/>
<result column="result_id" property="resultId"/> <result column="result_id" property="resultId"/>
<result column="content" property="content"/> <result column="content" property="content"/>
<result column="command" property="command"/>
</resultMap> </resultMap>
<!-- 通用查询结果列 --> <!-- 通用查询结果列 -->
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, index_id AS indexId, user_id AS userId, result_id AS resultId, content AS content id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, index_id AS indexId, user_id AS userId, result_id AS resultId, content AS content, command AS command
</sql> </sql>
@ -34,6 +35,7 @@
<if test="userId != null">user_id, </if> <if test="userId != null">user_id, </if>
<if test="resultId != null">result_id, </if> <if test="resultId != null">result_id, </if>
<if test="content != null">content, </if> <if test="content != null">content, </if>
<if test="command != null">command, </if>
is_delete, is_delete,
gmt_create, gmt_create,
gmt_modified gmt_modified
@ -42,6 +44,7 @@
<if test="userId != null">#{ userId}, </if> <if test="userId != null">#{ userId}, </if>
<if test="resultId != null">#{ resultId}, </if> <if test="resultId != null">#{ resultId}, </if>
<if test="content != null">#{ content}, </if> <if test="content != null">#{ content}, </if>
<if test="command != null">#{ command}, </if>
0, 0,
now(), now(),
now() now()
@ -49,31 +52,6 @@
</insert> </insert>
<insert id="batchInsertTaskRespList">
insert into lz_task_resp(
index_id,
user_id,
result_id,
content,
is_delete,
gmt_create,
gmt_modified
) values
<foreach collection="taskRespList" item="item" separator=",">
(
#{ item.indexId},
#{ item.userId},
#{ item.resultId},
#{ item.content},
0,
now(),
now()
)
</foreach>
</insert>
<update id="updateTaskRespById" parameterType="TaskResp" > <update id="updateTaskRespById" parameterType="TaskResp" >
update update
lz_task_resp lz_task_resp
@ -83,7 +61,8 @@
<if test="indexId != null">index_id = #{indexId},</if> <if test="indexId != null">index_id = #{indexId},</if>
<if test="userId != null">user_id = #{userId},</if> <if test="userId != null">user_id = #{userId},</if>
<if test="resultId != null">result_id = #{resultId},</if> <if test="resultId != null">result_id = #{resultId},</if>
<if test="content != null">content = #{content}</if> <if test="content != null">content = #{content},</if>
<if test="command != null">command = #{command}</if>
</trim> </trim>
,gmt_modified = now() ,gmt_modified = now()
where id = #{id} where id = #{id}
@ -99,22 +78,52 @@
index_id = #{indexId}, index_id = #{indexId},
user_id = #{userId}, user_id = #{userId},
result_id = #{resultId}, result_id = #{resultId},
content = #{content} content = #{content},
command = #{command}
,gmt_modified = now() ,gmt_modified = now()
where id = #{id} where id = #{id}
</update> </update>
<update id="deleteTaskRespById" parameterType="java.lang.Long"> <update id="deleteTaskRespById" parameterType="java.lang.Long">
update lz_task_resp set is_delete = 1 where id=#{id} limit 1 update lz_task_resp set is_delete = 1 where id=#{id} limit 1
</update> </update>
<insert id="batchInsertTaskRespList">
insert into lz_task_resp(
index_id,
user_id,
result_id,
content,
command,
is_delete,
gmt_create,
gmt_modified
) values
<foreach collection="taskRespList" item="item" separator=",">
(
#{ item.indexId},
#{ item.userId},
#{ item.resultId},
#{ item.content},
#{ item.command},
0,
now(),
now()
)
</foreach>
</insert>
<delete id="deleteTaskRespByUserId"> <delete id="deleteTaskRespByUserId">
delete from lz_task_resp where user_id = #{userId} delete from lz_task_resp where user_id = #{userId}
</delete> </delete>
<select id="selectTaskRespByUserIdIndex" resultType="com.lz.modules.third.entity.TaskResp"> <select id="selectTaskRespByUserIdIndex" resultType="com.lz.modules.third.entity.TaskResp">
select * from lz_task_resp where index_id=#{index} and user_id = #{userId} and is_delete = 0 limit 1 select * from lz_task_resp where index_id=#{index} and user_id = #{userId} and is_delete = 0 and command = #{command} limit 1
</select> </select>