瀏覽代碼

Merge branch 'dev' of ssh://10.10.101.21/source/kanban-parent into dev

zhuth 8 年之前
父節點
當前提交
b3bc3e6636

+ 2 - 1
kanban-console/src/main/java/com/uas/kanban/controller/KanbanHistoryController.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -75,7 +76,7 @@ public class KanbanHistoryController extends BaseController<KanbanHistory> {
     @RequestMapping("/delete/byKanban/{kanbanCode}")
     @ResponseBody
     public int deleteByKanbanCode(@PathVariable("kanbanCode") String kanbanCode, HttpServletRequest request) {
-        return kanbanHistoryService.deleteByKanbanCode(kanbanCode);
+        return kanbanHistoryService.deleteByKanbanCodes(Collections.singletonList(kanbanCode));
     }
 
     /**

+ 3 - 3
kanban-console/src/main/java/com/uas/kanban/dao/KanbanHistoryDao.java

@@ -33,12 +33,12 @@ public class KanbanHistoryDao extends BaseDao<KanbanHistory> {
     /**
      * 删除指定看板的历史记录
      *
-     * @param kanbanCode 看板 code
+     * @param kanbanCodes 看板 code
      * @return 删除的数据条数
      */
-    public int deleteByKanbanCode(@NotEmpty("kanbanCode") String kanbanCode) {
+    public int deleteByKanbanCodes(@NotEmpty("kanbanCodes") List<String> kanbanCodes) {
         Query<KanbanHistory> query = createQuery();
-        query.filter("kanbanCode", kanbanCode);
+        query.field("kanbanCode").in(kanbanCodes);
         return delete(query);
     }
 }

+ 1 - 1
kanban-console/src/main/java/com/uas/kanban/model/PanelInstance.java

@@ -215,7 +215,7 @@ public class PanelInstance extends BaseEntity {
         private String name;
 
         /**
-         * 是否启用,默认启用
+         * 是否启用,默认启用
          */
         @FieldProperty(nullable = false)
         private Boolean enabled = true;

+ 2 - 2
kanban-console/src/main/java/com/uas/kanban/service/KanbanHistoryService.java

@@ -25,10 +25,10 @@ public interface KanbanHistoryService {
     /**
      * 删除指定看板的历史记录
      *
-     * @param kanbanCode 看板 code
+     * @param kanbanCodes 看板 code
      * @return 删除的数据条数
      */
-    int deleteByKanbanCode(@NotEmpty("kanbanCode") String kanbanCode);
+    int deleteByKanbanCodes(@NotEmpty("kanbanCodes") List<String> kanbanCodes);
 
     /**
      * 保存指定看板的历史记录

+ 10 - 0
kanban-console/src/main/java/com/uas/kanban/service/KanbanService.java

@@ -1,6 +1,7 @@
 package com.uas.kanban.service;
 
 import com.uas.kanban.annotation.NotEmpty;
+import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.model.Kanban;
 
 import java.util.List;
@@ -13,6 +14,15 @@ import java.util.List;
  */
 public interface KanbanService {
 
+    /**
+     * 更新看板
+     *
+     * @param kanban 看板
+     * @param backup 是否备份
+     * @return 更新的数据条数
+     */
+    int update(@NotEmpty("kanban") Kanban kanban, Boolean backup) throws OperationException;
+
     /**
      * 获取指定面板的看板
      *

+ 7 - 6
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanHistoryServiceImpl.java

@@ -1,6 +1,5 @@
 package com.uas.kanban.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
 import com.uas.kanban.annotation.NotEmpty;
 import com.uas.kanban.base.BaseService;
 import com.uas.kanban.dao.KanbanDao;
@@ -9,6 +8,7 @@ import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.model.Kanban;
 import com.uas.kanban.model.KanbanHistory;
 import com.uas.kanban.service.KanbanHistoryService;
+import com.uas.kanban.service.KanbanService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -30,7 +30,7 @@ public class KanbanHistoryServiceImpl extends BaseService<KanbanHistory> impleme
     private KanbanDao kanbanDao;
 
     @Autowired
-    private KanbanServiceImpl kanbanService;
+    private KanbanService kanbanService;
 
     @Override
     public List<KanbanHistory> findByKanbanCode(@NotEmpty("kanbanCode") String kanbanCode) {
@@ -38,10 +38,11 @@ public class KanbanHistoryServiceImpl extends BaseService<KanbanHistory> impleme
     }
 
     @Override
-    public int deleteByKanbanCode(@NotEmpty("kanbanCode") String kanbanCode) {
-        return kanbanHistoryDao.deleteByKanbanCode(kanbanCode);
+    public int deleteByKanbanCodes(@NotEmpty("kanbanCodes") List<String> kanbanCodes) {
+        return kanbanHistoryDao.deleteByKanbanCodes(kanbanCodes);
     }
 
+
     @Override
     public KanbanHistory backup(@NotEmpty("kanbanCode") String kanbanCode, String description, Boolean autoSave) {
         Kanban kanban = kanbanDao.checkExist(kanbanCode);
@@ -58,8 +59,8 @@ public class KanbanHistoryServiceImpl extends BaseService<KanbanHistory> impleme
     public int restore(@NotEmpty("code") String code) throws OperationException {
         KanbanHistory kanbanHistory = kanbanHistoryDao.checkExist(code);
         try {
-            return kanbanService.update(JSONObject.toJSONString(kanbanHistory.getKanban()));
-        } catch (IllegalArgumentException | OperationException e) {
+            return kanbanService.update(kanbanHistory.fromKanban(), false);
+        } catch (IllegalArgumentException e) {
             throw new IllegalStateException("恢复失败", e);
         }
     }

+ 26 - 11
kanban-console/src/main/java/com/uas/kanban/service/impl/KanbanServiceImpl.java

@@ -7,8 +7,8 @@ import com.uas.kanban.dao.KanbanDao;
 import com.uas.kanban.dao.PanelDao;
 import com.uas.kanban.exception.OperationException;
 import com.uas.kanban.model.Kanban;
+import com.uas.kanban.service.KanbanHistoryService;
 import com.uas.kanban.service.KanbanService;
-import com.uas.kanban.util.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -30,6 +30,9 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
     @Autowired
     private PanelDao panelDao;
 
+    @Autowired
+    private KanbanHistoryService kanbanHistoryService;
+
     @Override
     public Kanban save(@NotEmpty("json") String json) {
         // TODO update related Panel and PanelInstance
@@ -49,30 +52,39 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
     @Override
     public int update(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
         // TODO update related Panel and PanelInstance (old and new)
-        processPanel(json);
+        Kanban kanban = JSONObject.parseObject(json, Kanban.class);
+        processPanel(kanban);
+        kanbanHistoryService.backup(kanban.codeNotEmpty(), null, true);
         return super.update(json);
     }
 
     @Override
     public int updatePart(@NotEmpty("json") String json) throws IllegalArgumentException, OperationException {
         // TODO update related Panel and PanelInstance (old and new)
-        processPanel(json);
+        Kanban kanban = JSONObject.parseObject(json, Kanban.class);
+        processPanel(kanban);
+        kanbanHistoryService.backup(kanban.codeNotEmpty(), null, true);
         return super.updatePart(json);
     }
 
+    @Override
+    public int update(@NotEmpty("kanban") Kanban kanban, Boolean backup) throws OperationException {
+        processPanel(kanban);
+        if (backup != null && backup) {
+            kanbanHistoryService.backup(kanban.codeNotEmpty(), null, true);
+        }
+        return kanbanDao.update(kanban);
+    }
+
     /**
      * 处理看板关联的面板,包括检查 panelCode 是否被修改,更新面板版本等
      *
-     * @param json 看板
+     * @param kanban 看板
      * @throws OperationException panelCode 是否被修改
      */
-    private void processPanel(@NotEmpty("json") String json) throws OperationException {
-        JSONObject jsonObject = JSONObject.parseObject(json);
-        String code = jsonObject.getString("code");
-        if (StringUtils.isEmpty(code)) {
-            throw new IllegalArgumentException("未指定 code");
-        }
-        String panelCode = jsonObject.getString("panelCode");
+    private void processPanel(@NotEmpty("kanban") Kanban kanban) throws OperationException {
+        String code = kanban.codeNotEmpty();
+        String panelCode = kanban.getPanelCode();
         String oldPanelCode = kanbanDao.findPanelCode(code);
         if (panelCode != null && !panelCode.equals(oldPanelCode)) {
             throw new OperationException("不可修改 panelCode");
@@ -91,6 +103,8 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
     public int deleteOne(@NotEmpty("code") String code) throws OperationException {
         // TODO update related Panel and PanelInstance
         panelDao.incVersion(kanbanDao.findPanelCodes(Collections.singletonList(code)));
+        // 删除看板历史记录
+        kanbanHistoryService.deleteByKanbanCodes(Collections.singletonList(code));
         return super.deleteOne(code);
     }
 
@@ -98,6 +112,7 @@ public class KanbanServiceImpl extends BaseService<Kanban> implements KanbanServ
     public int delete(@NotEmpty("codes") List<String> codes) throws OperationException {
         // TODO update related Panel and PanelInstance
         panelDao.incVersion(kanbanDao.findPanelCodes(codes));
+        kanbanHistoryService.deleteByKanbanCodes(codes);
         return super.delete(codes);
     }