|
@@ -5,12 +5,21 @@ import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import seecoder.devcloud.web.aop.TreeLogging;
|
|
import seecoder.devcloud.web.aop.TreeLogging;
|
|
|
|
|
+
|
|
|
|
|
+import seecoder.devcloud.web.model.enums.NodeStateEnum;
|
|
|
|
|
+import seecoder.devcloud.web.model.enums.NodeTypeEnum;
|
|
|
import seecoder.devcloud.web.model.enums.OperationEnum;
|
|
import seecoder.devcloud.web.model.enums.OperationEnum;
|
|
|
import seecoder.devcloud.web.model.po.TreeNodePO;
|
|
import seecoder.devcloud.web.model.po.TreeNodePO;
|
|
|
import seecoder.devcloud.web.service.tree.TreeNodeService;
|
|
import seecoder.devcloud.web.service.tree.TreeNodeService;
|
|
|
import seecoder.devcloud.web.model.vo.Response;
|
|
import seecoder.devcloud.web.model.vo.Response;
|
|
|
import seecoder.devcloud.web.model.vo.TreeNodeVO;
|
|
import seecoder.devcloud.web.model.vo.TreeNodeVO;
|
|
|
import seecoder.devcloud.web.dao.tree.TreeNodeMapper;
|
|
import seecoder.devcloud.web.dao.tree.TreeNodeMapper;
|
|
|
|
|
+import seecoder.devcloud.web.utils.TimeUtils;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
@@ -24,8 +33,8 @@ public class TreeNodeServiceImpl implements TreeNodeService {
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public Response listTreeNodesByProjectId(int projectId) {
|
|
public Response listTreeNodesByProjectId(int projectId) {
|
|
|
- // TODO:safety check
|
|
|
|
|
- return Response.buildSuccess(treeNodeMapper.listTreeNodesByProjectId(projectId));
|
|
|
|
|
|
|
+ List<TreeNodePO> result = treeNodeMapper.listTreeNodesByProjectId(projectId);
|
|
|
|
|
+ return Response.buildSuccess(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -35,6 +44,9 @@ public class TreeNodeServiceImpl implements TreeNodeService {
|
|
|
BeanUtils.copyProperties(treeNodeVO,treeNodePO);
|
|
BeanUtils.copyProperties(treeNodeVO,treeNodePO);
|
|
|
int res = treeNodeMapper.insertTreeNode(treeNodePO);
|
|
int res = treeNodeMapper.insertTreeNode(treeNodePO);
|
|
|
// TODO:safety check
|
|
// TODO:safety check
|
|
|
|
|
+ if (res <= 0) {
|
|
|
|
|
+ return Response.buildFailure(503,"Insert failed!");
|
|
|
|
|
+ }
|
|
|
return Response.buildSuccess();
|
|
return Response.buildSuccess();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -49,8 +61,55 @@ public class TreeNodeServiceImpl implements TreeNodeService {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public Response deleteTreeNode(TreeNodeVO treeNodeVO) {
|
|
|
|
|
- return null;
|
|
|
|
|
|
|
+ public Response deleteTreeNode(int nodeId) {
|
|
|
|
|
+ treeNodeMapper.deleteTreeNode(nodeId);
|
|
|
|
|
+ // TODO:safety check
|
|
|
|
|
+ return Response.buildSuccess();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 根据父节点id插入一个新的子节点
|
|
|
|
|
+ * @param fatherId
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ @TreeLogging(OperationEnum.START)
|
|
|
|
|
+ public Response insertTreeNodeByFatherNode(int fatherId) {
|
|
|
|
|
+ TreeNodePO treeNodePO = getDefaultTreeNodePO();
|
|
|
|
|
+ treeNodePO.setParentId(fatherId);
|
|
|
|
|
+ int res = treeNodeMapper.insertTreeNode(treeNodePO);
|
|
|
|
|
+ // TODO:safety check
|
|
|
|
|
+ if (res <= 0) {
|
|
|
|
|
+ return Response.buildFailure(503,"Insert failed!");
|
|
|
|
|
+ }
|
|
|
|
|
+ return Response.buildSuccess(treeNodePO.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 创建一个default的节点
|
|
|
|
|
+ * @param
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private TreeNodePO getDefaultTreeNodePO() {
|
|
|
|
|
+ SimpleDateFormat format = TimeUtils.getSimpleDateFormat();
|
|
|
|
|
+
|
|
|
|
|
+ TreeNodePO treeNodePO = new TreeNodePO();
|
|
|
|
|
+ treeNodePO.setTitle("title");
|
|
|
|
|
+ treeNodePO.setDescription("description");
|
|
|
|
|
+ treeNodePO.setType(NodeTypeEnum.TASK);
|
|
|
|
|
+ treeNodePO.setPriority(3);
|
|
|
|
|
+ treeNodePO.setState(NodeStateEnum.CREATED);
|
|
|
|
|
+ treeNodePO.setTimeToTake(10);
|
|
|
|
|
+ treeNodePO.setStartTime(format.format(new Date()));
|
|
|
|
|
+ treeNodePO.setEndTime(format.format(new Date()));
|
|
|
|
|
+ treeNodePO.setLeaf(true);
|
|
|
|
|
+ treeNodePO.setGroupId(-1);
|
|
|
|
|
+ treeNodePO.setProjectId(-1);
|
|
|
|
|
+ treeNodePO.setDeep(-1);
|
|
|
|
|
+ treeNodePO.setId(1);
|
|
|
|
|
+ return treeNodePO;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|