/src/main/java/com/ngtesting/platform/action/client/CaseAction.java

https://github.com/aaronchen2k/ngtesting-platform · Java · 249 lines · 195 code · 54 blank · 0 comment · 16 complexity · 393a0f17afea65933982f6e658c2e31d MD5 · raw file

  1. package com.ngtesting.platform.action.client;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.ngtesting.platform.action.BaseAction;
  4. import com.ngtesting.platform.config.Constant;
  5. import com.ngtesting.platform.dao.ProjectDao;
  6. import com.ngtesting.platform.model.TstCase;
  7. import com.ngtesting.platform.model.TstProject;
  8. import com.ngtesting.platform.model.TstUser;
  9. import com.ngtesting.platform.service.intf.*;
  10. import com.ngtesting.platform.servlet.PrivPrj;
  11. import org.apache.shiro.SecurityUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.web.bind.annotation.*;
  14. import javax.servlet.http.HttpServletRequest;
  15. import java.util.HashMap;
  16. import java.util.List;
  17. import java.util.Map;
  18. @RestController
  19. @RequestMapping(Constant.API_PATH_CLIENT + "case/")
  20. public class CaseAction extends BaseAction {
  21. @Autowired
  22. ProjectService projectService;
  23. @Autowired
  24. CaseService caseService;
  25. @Autowired
  26. CaseExportService caseExportService;
  27. @Autowired
  28. CaseTypeService caseTypeService;
  29. @Autowired
  30. CasePriorityService casePriorityService;
  31. @Autowired
  32. ProjectDao projectDao;
  33. @RequestMapping(value = "query", method = RequestMethod.POST)
  34. @PrivPrj(perms = {"test_case:view"})
  35. public Map<String, Object> query(HttpServletRequest request, @RequestBody JSONObject json) {
  36. Map<String, Object> ret = new HashMap<String, Object>();
  37. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  38. Integer orgId = user.getDefaultOrgId();
  39. Integer prjId = user.getDefaultPrjId();
  40. List<TstCase> ls = caseService.query(prjId);
  41. ret.put("data", ls);
  42. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  43. return ret;
  44. }
  45. @RequestMapping(value = "queryForSuiteSelection", method = RequestMethod.POST)
  46. @PrivPrj(perms = {"test_case:view"})
  47. public Map<String, Object> queryForSuiteSelection(HttpServletRequest request, @RequestBody JSONObject json) {
  48. Map<String, Object> ret = new HashMap<String, Object>();
  49. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  50. Integer prjId = user.getDefaultPrjId();
  51. Integer caseProjectId = json.getInteger("caseProjectId");
  52. Integer suiteId = json.getInteger("suiteId");
  53. Integer projectId = caseProjectId == null? prjId: caseProjectId;
  54. List<TstCase> vos = caseService.queryForSuiteSelection(projectId, suiteId);
  55. List<TstProject> projects = projectDao.listBrothers(prjId);
  56. ret.put("data", vos);
  57. ret.put("brotherProjects", projects);
  58. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  59. return ret;
  60. }
  61. @RequestMapping(value = "queryForTaskSelection", method = RequestMethod.POST)
  62. @PrivPrj(perms = {"test_case:view"})
  63. public Map<String, Object> queryForTaskSelection(HttpServletRequest request, @RequestBody JSONObject json) {
  64. Map<String, Object> ret = new HashMap<String, Object>();
  65. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  66. Integer prjId = user.getDefaultPrjId();
  67. Integer caseProjectId = json.getInteger("caseProjectId");
  68. Integer taskId = json.getInteger("taskId");
  69. Integer projectId = caseProjectId == null? prjId: caseProjectId;
  70. List<TstCase> vos = caseService.queryForTaskSelection(projectId, taskId);
  71. List<TstProject> projects = projectDao.listBrothers(prjId);
  72. ret.put("data", vos);
  73. ret.put("brotherProjects", projects);
  74. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  75. return ret;
  76. }
  77. @RequestMapping(value = "get", method = RequestMethod.POST)
  78. @PrivPrj(perms = {"test_case:view", "test_case:maintain"})
  79. public Map<String, Object> get(HttpServletRequest request, @RequestBody JSONObject json) {
  80. Map<String, Object> ret = new HashMap<String, Object>();
  81. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  82. Integer prjId = user.getDefaultPrjId();
  83. Integer caseId = json.getInteger("id");
  84. TstCase testCase = caseService.getDetail(caseId, prjId);
  85. ret.put("data", testCase);
  86. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  87. return ret;
  88. }
  89. @RequestMapping(value = "rename", method = RequestMethod.POST)
  90. @PrivPrj(perms = {"test_case:maintain"})
  91. public Map<String, Object> rename(HttpServletRequest request, @RequestBody JSONObject json) {
  92. Map<String, Object> ret = new HashMap<String, Object>();
  93. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  94. TstCase testCase = caseService.rename(json, user);
  95. if (testCase == null) {
  96. return authorFail();
  97. }
  98. ret.put("data", testCase);
  99. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  100. return ret;
  101. }
  102. @RequestMapping(value = "move", method = RequestMethod.POST)
  103. @PrivPrj(perms = {"test_case:maintain"})
  104. public Map<String, Object> move(HttpServletRequest request, @RequestBody JSONObject json) {
  105. Map<String, Object> ret = new HashMap<String, Object>();
  106. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  107. TstCase testCase = caseService.move(json, user);
  108. if (testCase == null) {
  109. return authorFail();
  110. }
  111. ret.put("data", testCase);
  112. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  113. return ret;
  114. }
  115. @RequestMapping(value = "delete", method = RequestMethod.POST)
  116. @PrivPrj(perms = {"test_case:delete"})
  117. public Map<String, Object> delete(HttpServletRequest request, @RequestBody JSONObject json) {
  118. Map<String, Object> ret = new HashMap<String, Object>();
  119. Integer id = json.getInteger("id");
  120. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  121. Integer count = caseService.delete(id, user);
  122. if (count == 0) {
  123. return authorFail();
  124. }
  125. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  126. return ret;
  127. }
  128. @RequestMapping(value = "update", method = RequestMethod.POST)
  129. @PrivPrj(perms = {"test_case:maintain"})
  130. public Map<String, Object> update(HttpServletRequest request, @RequestBody JSONObject json) {
  131. Map<String, Object> ret = new HashMap<String, Object>();
  132. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  133. TstCase testCase = caseService.update(json, user);
  134. if (testCase == null) {
  135. return authorFail();
  136. }
  137. ret.put("data", testCase);
  138. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  139. return ret;
  140. }
  141. @PrivPrj(perms = {"test_case:maintain"})
  142. @RequestMapping(value = "saveField", method = RequestMethod.POST)
  143. public Map<String, Object> saveField(HttpServletRequest request, @RequestBody JSONObject json) {
  144. Map<String, Object> ret = new HashMap<String, Object>();
  145. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  146. TstCase testCase = caseService.saveField(json, user);
  147. if (testCase == null) {
  148. return authorFail();
  149. }
  150. ret.put("data", testCase);
  151. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  152. return ret;
  153. }
  154. @RequestMapping(value = "changeContentType", method = RequestMethod.POST)
  155. @PrivPrj(perms = {"test_case:maintain"})
  156. public Map<String, Object> changeContentType(HttpServletRequest request, @RequestBody JSONObject json) {
  157. Map<String, Object> ret = new HashMap<String, Object>();
  158. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  159. Integer id = json.getInteger("id");
  160. String contentType = json.getString("contentType");
  161. TstCase testCase = caseService.changeContentType(id, contentType, user);
  162. if (testCase == null) {
  163. return authorFail();
  164. }
  165. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  166. return ret;
  167. }
  168. @RequestMapping(value = "reviewResult", method = RequestMethod.POST)
  169. @PrivPrj(perms = {"test_case:review"})
  170. public Map<String, Object> reviewResult(HttpServletRequest request, @RequestBody JSONObject json) {
  171. Map<String, Object> ret = new HashMap<String, Object>();
  172. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  173. Integer id = json.getInteger("id");
  174. Boolean result = json.getBoolean("result");
  175. Integer nextId = json.getInteger("nextId");
  176. TstCase testCase = caseService.reviewResult(id, result, nextId, user);
  177. if (testCase == null) {
  178. return authorFail();
  179. }
  180. ret.put("data", testCase);
  181. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  182. return ret;
  183. }
  184. @RequestMapping(value = "exportAll", method = RequestMethod.POST)
  185. @PrivPrj(perms = {"test_case:view"})
  186. public Map<String, Object> exportAll(HttpServletRequest request, @RequestBody JSONObject json) {
  187. Map<String, Object> ret = new HashMap<String, Object>();
  188. TstUser user = (TstUser) SecurityUtils.getSubject().getPrincipal();
  189. Integer prjId = user.getDefaultPrjId();
  190. String excelPath = caseExportService.export(prjId);
  191. ret.put("code", Constant.RespCode.SUCCESS.getCode());
  192. ret.put("excelPath", excelPath);
  193. return ret;
  194. }
  195. }