diff --git a/src/main/java/com/lz/common/utils/TaskCommand.java b/src/main/java/com/lz/common/utils/TaskCommand.java index 93c5f57e..ac02b719 100644 --- a/src/main/java/com/lz/common/utils/TaskCommand.java +++ b/src/main/java/com/lz/common/utils/TaskCommand.java @@ -1,6 +1,7 @@ package com.lz.common.utils; +import com.alibaba.fastjson.JSON; import com.lz.common.cli.CliToken; import com.lz.common.cli.CliTokens; import com.lz.modules.app.utils.t.Tuple; @@ -24,10 +25,10 @@ public class TaskCommand { public static Tuple parse(String command) { String[] tokens = getTokens(command); - if (commandCommands.contains(tokens[0])) { + if (!commandCommands.contains(tokens[0])) { return new Tuple(488, "命令的第一个参数必需是 add or update or list"); } - if (optTargets.contains(tokens[1])) { + if (!optTargets.contains(tokens[1])) { return new Tuple(488, "命令的第二个参数必需是 task or record"); } if (task.equals(tokens[1])) { //表示对 task 增删改查 @@ -64,11 +65,6 @@ public class TaskCommand { public static Tuple doParseTaskDto(int flag ,String [] tokens){ - //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 \"今天任务\""); } @@ -101,12 +97,14 @@ public class TaskCommand { taskDto.setRate(NumberUtil.objToIntDefault(know, 0)); } else if (c == 'm') { taskDto.setMark(know); + }else{ + return new Tuple(488, "-后面的参数不对,只能是 n 或 r 或 m"); } } } else { if (StringUtil.isBlank(taskDto.getName())) { taskDto.setName(notKnow); - } else if (taskDto.getRate() != null) { + } else if (taskDto.getRate() == null) { if (!NumberUtil.isNumeric(notKnow)) { return new Tuple(488, "进度必需是一个正整数"); } @@ -125,6 +123,7 @@ public class TaskCommand { return new Tuple(flag,taskDto); } + @Test public void test11() { String ln = " abcdef b csssss dddddd -c \"b ccc ' bb a , bb x b\" a "; @@ -135,8 +134,21 @@ public class TaskCommand { } + /** + * //task add 1 -nrm "内容" 30 "哈哈" + * //task add 1 "内容" 30 "哈哈" + * //task add 1 "内容" 30 + * //task add 1 "内容" + * //task add 1 -n "内容" + */ @Test public void test2() { - + //String command = "add task 1 \"哈哈\" 30 \"说明\" " ; + //String command = "add task 1 -r \"哈哈\" \"说明\" " ; + //String command = "add task 1 -r 30 " ; + //String command = "add task 1 -mr \"说明\" 30 \"哈哈\"" ; + String command = "add task 1 -m\"说明\" -r 30 \"哈哈\"" ; + Tuple tuple = TaskCommand.parse(command); + System.out.println(JSON.toJSONString(tuple)); } } diff --git a/src/main/java/com/lz/modules/app/controller/ThirdTaskController.java b/src/main/java/com/lz/modules/app/controller/ThirdTaskController.java index 6d3089de..5943e86c 100644 --- a/src/main/java/com/lz/modules/app/controller/ThirdTaskController.java +++ b/src/main/java/com/lz/modules/app/controller/ThirdTaskController.java @@ -1,6 +1,7 @@ package com.lz.modules.app.controller; import com.alibaba.fastjson.JSON; +import com.lz.common.cli.LineStatus; import com.lz.common.constant.CacheConstants; import com.lz.common.utils.Md5Utils; import com.lz.common.utils.R; @@ -18,6 +19,9 @@ import com.lz.modules.performance.service.ResultTaskService; import com.lz.modules.sys.entity.SysUserEntity; import com.lz.modules.sys.service.SysUserService; import com.lz.modules.sys.service.app.ResultDetailService; +import com.lz.modules.third.entity.TaskResp; +import com.lz.modules.third.service.TaskRespService; +import com.lz.modules.third.utils.TaskConvertUtils; import lombok.extern.slf4j.Slf4j; import org.apache.shiro.crypto.hash.Sha256Hash; import org.springframework.beans.factory.annotation.Autowired; @@ -49,8 +53,11 @@ public class ThirdTaskController { @Autowired private ResultDetailService resultDetailService; + @Autowired + private TaskRespService taskRespService; + @RequestMapping("/handler") - public R handler(@RequestBody CommandDto commandDto) { + public R handler(@RequestBody CommandDto commandDto) throws Exception{ SysUserEntity user = checkLogin(commandDto.getToken()); if (user == null) { return R.error(499, "登陆己经过期"); @@ -63,16 +70,30 @@ public class ThirdTaskController { return R.error(twoTuple.getSecond()); } TwoTuple taskInfo = tuple.getData(); + boolean flag = true; switch (parseData.getFirst()) { case 1: //list task List list = resultTaskService.listResultTask(user); - break; + taskRespService.deleteInsertLastResult(user,list); //保存索引和 id对应关系 + TwoTuple,List>> data = TaskConvertUtils.convert(list).getData(); + return R.ok().put("header", data.getFirst()).put("data", data.getSecond()); case 2: //add task + flag = updateIndex(user, taskInfo.getSecond()); + if(!flag){ + return R.error("请先输入 list record"); + } return resultTaskService.addOrUpdateTask(user, taskInfo.getSecond()); case 3: //update task + flag = updateIndex(user, taskInfo.getSecond()); + if(!flag){ + return R.error("请先输入 list task"); + } return resultTaskService.addOrUpdateTask(user, taskInfo.getSecond()); case 4: //list record - return resultDetailService.listRecord(user); + List listRecords = resultDetailService.listRecord(user); + taskRespService.deleteInsertLastResult(user,listRecords); //保存索引和 id对应关系 + TwoTuple,List>> recordData = TaskConvertUtils.convert(listRecords).getData(); + return R.ok().put("header", recordData.getFirst()).put("data", recordData.getSecond()); case 5: //TODO add record break; case 6: //TODO update record @@ -81,12 +102,19 @@ public class ThirdTaskController { break; } List> data = new ArrayList<>(); - List header = new ArrayList<>(Arrays.asList(new String[]{"用户名", "密码", "哈哈", "双", "你是"})); + List header = new ArrayList<>(Arrays.asList(new String[]{"未知问题"})); return R.ok().put("header", header).put("data", data); } - + public boolean updateIndex(SysUserEntity userEntity ,TaskDto taskDto){ + TaskResp taskResp = taskRespService.selectTaskRespByUserIdIndex(userEntity.getUserId(),taskDto.getId()); + if(taskResp !=null){ + taskDto.setId(taskResp.getResultId()); + return true; + } + return false; + } public SysUserEntity checkLogin(String token) { Object object = redisCacheUtil.getObject(token); if (object != null) { diff --git a/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java b/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java index b8403255..91b0244e 100644 --- a/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java +++ b/src/main/java/com/lz/modules/sys/service/app/ResultDetailService.java @@ -3,6 +3,7 @@ package com.lz.modules.sys.service.app; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.common.utils.BigDecimalUtil; import com.lz.common.utils.R; +import com.lz.modules.app.dto.ResultDto; import com.lz.modules.app.resp.ResultDetailResp; import com.lz.modules.app.resp.Step; import com.lz.modules.flow.model.Auth; @@ -79,5 +80,5 @@ public interface ResultDetailService extends IService { List selectNotNoticeResultDetailByRecordId(Long recordId); - R listRecord(SysUserEntity user); + List listRecord(SysUserEntity user); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java index 3e17633d..426bc7aa 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lz.common.utils.BigDecimalUtil; import com.lz.common.utils.Constant; import com.lz.common.utils.R; +import com.lz.modules.app.dto.ResultDto; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.resp.ResultDetailResp; import com.lz.modules.app.resp.Step; @@ -358,7 +359,7 @@ public class ResultDetailServiceImpl extends ServiceImpl listRecord(SysUserEntity user) { return null; } } diff --git a/src/main/java/com/lz/modules/third/dao/TaskRespMapper.java b/src/main/java/com/lz/modules/third/dao/TaskRespMapper.java index fc2e5cdc..c57a6280 100644 --- a/src/main/java/com/lz/modules/third/dao/TaskRespMapper.java +++ b/src/main/java/com/lz/modules/third/dao/TaskRespMapper.java @@ -30,4 +30,7 @@ public interface TaskRespMapper extends BaseMapper { int deleteTaskRespById(@Param("id") Long id); + void deleteTaskRespByUserId(@Param("userId") Long userId); + + TaskResp selectTaskRespByUserIdIndex(@Param("userId") Long userId, @Param("index") Long index); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/third/service/TaskRespService.java b/src/main/java/com/lz/modules/third/service/TaskRespService.java index a8284c50..da295d5d 100644 --- a/src/main/java/com/lz/modules/third/service/TaskRespService.java +++ b/src/main/java/com/lz/modules/third/service/TaskRespService.java @@ -1,8 +1,12 @@ package com.lz.modules.third.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.lz.modules.app.dto.ResultDto; +import com.lz.modules.sys.entity.SysUserEntity; import com.lz.modules.third.entity.TaskResp; +import java.util.List; + /** *

* 用户执行命令的最后一个值表 服务类 @@ -30,4 +34,7 @@ public interface TaskRespService extends IService { int deleteTaskRespById(Long id); + void deleteInsertLastResult(SysUserEntity user ,List list); + + TaskResp selectTaskRespByUserIdIndex(Long userId, Long id); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/third/service/impl/TaskRespServiceImpl.java b/src/main/java/com/lz/modules/third/service/impl/TaskRespServiceImpl.java index a133e20a..fca3ddd4 100644 --- a/src/main/java/com/lz/modules/third/service/impl/TaskRespServiceImpl.java +++ b/src/main/java/com/lz/modules/third/service/impl/TaskRespServiceImpl.java @@ -1,12 +1,16 @@ package com.lz.modules.third.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.lz.modules.app.dto.ResultDto; +import com.lz.modules.sys.entity.SysUserEntity; import com.lz.modules.third.dao.TaskRespMapper; import com.lz.modules.third.entity.TaskResp; import com.lz.modules.third.service.TaskRespService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** *

* 用户执行命令的最后一个值表 服务类 @@ -58,6 +62,24 @@ public class TaskRespServiceImpl extends ServiceImpl i return taskRespMapper.deleteTaskRespById(id); } + @Override + public void deleteInsertLastResult(SysUserEntity user,List list) { + taskRespMapper.deleteTaskRespByUserId(user.getUserId()); + for(ResultDto resultDto : list){ + TaskResp taskResp = new TaskResp(); + taskResp.setIndex(resultDto.getIndex()); + taskResp.setResultId(resultDto.getId()); + taskResp.setUserId(user.getUserId()); + taskResp.setContent(resultDto.getContent()); + taskRespMapper.insertTaskResp(taskResp); + } + + } + + @Override + public TaskResp selectTaskRespByUserIdIndex(Long userId, Long index ) { + return taskRespMapper.selectTaskRespByUserIdIndex(userId,index); + } } diff --git a/src/main/resources/mapper/third/TaskRespMapper.xml b/src/main/resources/mapper/third/TaskRespMapper.xml index 2c9bd31a..d7257d67 100644 --- a/src/main/resources/mapper/third/TaskRespMapper.xml +++ b/src/main/resources/mapper/third/TaskRespMapper.xml @@ -20,9 +20,6 @@ id AS id, is_delete AS isDelete, gmt_create AS gmtCreate, gmt_modified AS gmtModified, index AS index, user_id AS userId, result_id AS resultId, content AS content - - - @@ -84,5 +81,15 @@ update lz_task_resp set is_delete = 1 where id=#{id} limit 1 + + delete from lz_task_resp where user_id = #{userId} + + + + + +