Package com.sogou.qadev.service.cynthia.controller

Source Code of com.sogou.qadev.service.cynthia.controller.BugVersionMoveController

package com.sogou.qadev.service.cynthia.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import net.sf.json.JSONArray;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.sogou.qadev.service.cynthia.bean.Data;
import com.sogou.qadev.service.cynthia.bean.DataAccessAction;
import com.sogou.qadev.service.cynthia.bean.Field;
import com.sogou.qadev.service.cynthia.bean.Flow;
import com.sogou.qadev.service.cynthia.bean.Stat;
import com.sogou.qadev.service.cynthia.bean.Template;
import com.sogou.qadev.service.cynthia.bean.UUID;
import com.sogou.qadev.service.cynthia.dao.DataAccessSessionMySQL;
import com.sogou.qadev.service.cynthia.factory.DataAccessFactory;
import com.sogou.qadev.service.cynthia.service.DataAccessSession.ErrorCode;
import com.sogou.qadev.service.cynthia.service.DataManager;
import com.sogou.qadev.service.cynthia.vo.DataVO;
import com.sogou.qadev.service.login.bean.Key;
import com.sohu.rd.td.util.reference.Pair;

/**
* @description:bug move process
* @author:liming
* @mail:liming@sogou-inc.com
* @date:2014-5-5 下午8:15:58
* @version:v1.0
*/
@Controller
@RequestMapping("/bugMove")
public class BugVersionMoveController extends BaseController{

  @ResponseBody
  @RequestMapping("/bugVersionMove.do")
  public String bugVersionMove(HttpSession httpSession, HttpServletRequest request) throws Exception {
   
    String templateId = request.getParameter("templateId");
    String oldTaskId  = request.getParameter("oldTaskId");
    String newTaskId  = request.getParameter("newTaskId");
    String statsIdStr = request.getParameter("stats");
    String bugField   = request.getParameter("bugField");
    String taskField  = request.getParameter("taskField");
    String userName   = ((Key)httpSession.getAttribute("key")).getUsername();
    String[] statsIdArr = null;
    if(statsIdStr!=null)
      statsIdArr = statsIdStr.split(",");
    if(statsIdArr!=null)
    {
      Set<UUID> statusIdSet = new HashSet<UUID>();
      for(String statusIdStr : statsIdArr){
        if(statusIdStr!=null&&!"".equals(statusIdStr))
          statusIdSet.add(DataAccessFactory.getInstance().createUUID(statusIdStr));
      }
      Data oldTask = das.queryData(DataAccessFactory.getInstance().createUUID(oldTaskId) ,DataAccessFactory.getInstance().createUUID(templateId));
      String oldTaskTitle = oldTask.getTitle();
      UUID[] oldVersionBugIds = oldTask.getMultiReference(DataAccessFactory.getInstance().createUUID(bugField));
      Set<Data> oldVesionBugsSet = new HashSet<Data>();
      for(UUID uuid : oldVersionBugIds){
        Data tempData = das.queryData(uuid ,DataAccessFactory.getInstance().createUUID(templateId));
        if(tempData!=null)
          oldVesionBugsSet.add(tempData);
      }
      boolean success = true;
      Data[] dataArray = oldVesionBugsSet.toArray(new Data[oldVesionBugsSet.size()]);
      for(Data data : dataArray){
        if(data.getObject(DataAccessFactory.getInstance().createUUID(taskField)) == null|| !statusIdSet.contains(data.getStatusId())){
          continue;
        }
        data = (Data)data.clone();
       
        Map<String, Pair<Object, Object>> baseValueMap = new HashMap<String, Pair<Object, Object>>();
        Map<UUID, Pair<Object, Object>> extValueMap = new HashMap<UUID, Pair<Object, Object>>();
       
        if(!data.getTitle().startsWith("[")){
          String newTitle = "[" + oldTaskTitle + "]" + data.getTitle();
          baseValueMap.put("title", new Pair<Object, Object>(data.getTitle(), newTitle));
          data.setTitle(newTitle);
        }
        extValueMap.put(DataAccessFactory.getInstance().createUUID(taskField), new Pair<Object, Object>(DataAccessFactory.getInstance().createUUID(oldTaskId), DataAccessFactory.getInstance().createUUID(newTaskId)));
        data.setSingleReference(DataAccessFactory.getInstance().createUUID(taskField),DataAccessFactory.getInstance().createUUID(newTaskId));
        data.setObject("logCreateUser", userName);
        data.setObject("logActionId", null);
        data.setObject("logActionComment", null);
        data.setObject("logBaseValueMap", baseValueMap);
        data.setObject("logExtValueMap", extValueMap);
        Pair<ErrorCode, String> pair = das.modifyData(data);
        if (!pair.getFirst().equals(ErrorCode.success)) {
          success = false;
        }
        das.updateCache(DataAccessAction.delete, data.getId().getValue(), data);
      }
    }
    return correctJson;
  }
 
  /**
   * @description:get tasks of template
   * @date:2014-5-5 下午8:16:31
   * @version:v1.0
   * @param oldTaskId
   * @param bugTaskFieldId
   * @return
   * @throws Exception
   */
  @ResponseBody
  @RequestMapping("/getTaskBugTemplate.do")
  public String getTaskBugTemplate(@RequestParam("oldTaskId") String oldTaskId ,@RequestParam("bugTaskField") String bugTaskFieldId ) throws Exception {
   
    Data oldTask = das.queryData(DataAccessFactory.getInstance().createUUID(oldTaskId));
    UUID [] bugs = oldTask.getMultiReference(DataAccessFactory.getInstance().createUUID(bugTaskFieldId));
    Map<String,Template> bugTemplateMap = new HashMap<String,Template>();
    Data bugData = null;
   
    Map<UUID, Template> allTemplateMap = new HashMap<UUID, Template>();
   
    if(bugs!=null&&bugs.length>0){
      for(UUID id : bugs){
       bugData = das.queryData(id)
       if(bugData!=null){
        if (allTemplateMap.get(bugData.getTemplateId()) == null) {
          allTemplateMap.put(bugData.getTemplateId(), das.queryTemplate(bugData.getTemplateId()));
        }
        Template template = allTemplateMap.get(bugData.getTemplateId());
        if(template!=null)
          bugTemplateMap.put(template.getId().toString(), template);
       }
      }
    }
    JSONArray jsonArray = JSONArray.fromObject(bugTemplateMap);
    return jsonArray.toString();
  }
 
  /**
   * @description:get datas by template id
   * @date:2014-5-5 下午8:17:05
   * @version:v1.0
   * @param templateId
   * @return
   * @throws Exception
   */
  @ResponseBody
  @RequestMapping("/getTemplateDatas.do")
  public String getTempalteDatas(@RequestParam("templateId") String templateId) throws Exception {
    Map<String, String> templateIdTitleMap = new DataAccessSessionMySQL().queryIdAndFieldOfTemplate(templateId, "title");
   
    List<DataVO> templateDataList = new ArrayList<DataVO>();
    for(String dataId : templateIdTitleMap.keySet())
    {
      DataVO dataVO = new DataVO();
      dataVO.setId(dataId);
      dataVO.setName(templateIdTitleMap.get(dataId));
      templateDataList.add(dataVO);
    }
    JSONArray jsonArray = JSONArray.fromObject(templateDataList);
    return jsonArray.toString();
  }
 
  /**
   * @description:get all Fields of template
   * @date:2014-5-5 下午8:17:34
   * @version:v1.0
   * @param templateId
   * @return
   * @throws Exception
   */
  @ResponseBody
  @RequestMapping("/getTemplateFields.do")
  public String getTemplateFields(@RequestParam("templateId") String templateId) throws Exception {
    Template template = das.queryTemplate(DataAccessFactory.getInstance().createUUID(templateId));
    Set<Field> fields = template.getFields();
    JSONArray json = JSONArray.fromObject(fields)
    return json.toString();
  }
 
  /**
   * @description:get all templates by template type
   * @date:2014-5-5 下午8:17:51
   * @version:v1.0
   * @param templateType
   * @param httpSession
   * @return
   * @throws Exception
   */
  @ResponseBody
  @RequestMapping("/getTemplatesByTemplateType.do")
  public String getTemplatesByTemplateType(@RequestParam("templateType") String templateType, HttpSession httpSession) throws Exception {
    Key key   = ((Key)httpSession.getAttribute("key"));
    Long keyId = (Long)httpSession.getAttribute("kid");
    das = DataAccessFactory.getInstance().createDataAccessSession(key.getUsername(), keyId);
   
    Template[] templates = DataManager.getInstance().queryUserTemplates(DataAccessFactory.getInstance().createUUID(templateType), das);
    JSONArray json = JSONArray.fromObject(templates);
    return json.toString();
  }

  /**
   * @description:get all status of the template
   * @date:2014-5-5 下午8:18:11
   * @version:v1.0
   * @param templateId
   * @return
   * @throws Exception
   */
  @ResponseBody
  @RequestMapping("/getTemplateStats.do")
  public String getTemplateStats(@RequestParam("templateId") String templateId) throws Exception {
    Template template = das.queryTemplate(DataAccessFactory.getInstance().createUUID(templateId));
    Flow flow = das.queryFlow(template.getFlowId());
    Stat[] stats = flow.getStats();
    JSONArray json = JSONArray.fromObject(stats);
    return json.toString();
  }
}
TOP

Related Classes of com.sogou.qadev.service.cynthia.controller.BugVersionMoveController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.