EvaluationController.java 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.goafanti.evaluation.controller;
  2. import javax.validation.Valid;
  3. import org.apache.commons.lang3.StringUtils;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.util.Assert;
  8. import org.springframework.validation.BindingResult;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestMethod;
  11. import org.springframework.web.bind.annotation.RestController;
  12. import com.alibaba.fastjson.JSON;
  13. import com.alibaba.fastjson.JSONObject;
  14. import com.goafanti.common.bo.Result;
  15. import com.goafanti.common.constant.ErrorConstants;
  16. import com.goafanti.common.controller.BaseApiController;
  17. import com.goafanti.common.model.ValueEvaluation;
  18. import com.goafanti.common.utils.LoggerUtils;
  19. import com.goafanti.core.shiro.token.TokenManager;
  20. import com.goafanti.evaluation.bo.Step1;
  21. import com.goafanti.evaluation.service.ValueEvaluationService;
  22. @RestController
  23. @RequestMapping(value = "/api/user/evaluate")
  24. public class EvaluationController extends BaseApiController {
  25. private static final Logger logger = LoggerFactory.getLogger(EvaluationController.class);
  26. @Autowired
  27. ValueEvaluationService valueEvaluationService;
  28. @RequestMapping(value = "/create", method = RequestMethod.POST)
  29. public Result create() {
  30. ValueEvaluation ve = new ValueEvaluation();
  31. ve.setUid(TokenManager.getUserId());
  32. ve.setStep(1);
  33. ve.setLog("{}");
  34. valueEvaluationService.insert(ve);
  35. return new Result(ve.getId());
  36. }
  37. @RequestMapping(value = "/list", method = RequestMethod.GET)
  38. public Result list(String pageNo, String pageSize) {
  39. return new Result().data(valueEvaluationService.list(handlePageNo(pageNo), handlePageSize(pageSize)));
  40. }
  41. @RequestMapping(value = "/info", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
  42. public String info(String id) {
  43. Assert.isTrue(StringUtils.isNumeric(id), ErrorConstants.EVALUATE_ID);
  44. return valueEvaluationService.getMyEvaluationSteps(Long.valueOf(id));
  45. }
  46. @RequestMapping(value = "/step1", method = RequestMethod.POST)
  47. public Result update(String id, @Valid Step1 data, BindingResult bindingResult) {
  48. Assert.isTrue(StringUtils.isNumeric(id), ErrorConstants.EVALUATE_ID);
  49. Result res = new Result();
  50. if (handleBindingError(res, bindingResult)) {
  51. return res;
  52. }
  53. ValueEvaluation ve = valueEvaluationService.getEvaluation(Long.valueOf(id));
  54. Assert.notNull(ve, ErrorConstants.EVALUATE_ID);
  55. ve.setName(data.getName());
  56. JSONObject jo = JSON.parseObject(ve.getLog());
  57. jo.put("1", data);
  58. ve.setLog(jo.toJSONString());
  59. res.data(valueEvaluationService.update(ve));
  60. return res;
  61. }
  62. private boolean handleBindingError(Result res, BindingResult bindingResult) {
  63. if (bindingResult.hasErrors()) {
  64. LoggerUtils.debug(logger, "参数错误:[%s], [%s], [%s]", bindingResult.getFieldError().getDefaultMessage(),
  65. bindingResult.getFieldError().getField(), bindingResult.getFieldError().getRejectedValue());
  66. res.getError().add(buildError(ErrorConstants.EVALUATE_PARAM));
  67. return true;
  68. }
  69. return false;
  70. }
  71. }