AdminOrderApiController.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. package com.goafanti.admin.controller;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletResponse;
  4. import javax.validation.Valid;
  5. import org.apache.commons.lang3.StringUtils;
  6. import org.springframework.beans.BeanUtils;
  7. import org.springframework.validation.BindingResult;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestMethod;
  10. import org.springframework.web.bind.annotation.RestController;
  11. import com.goafanti.achievement.bo.InputAchievementOrder;
  12. import com.goafanti.achievement.service.AchievementOrderLogService;
  13. import com.goafanti.achievement.service.AchievementOrderService;
  14. import com.goafanti.common.bo.Result;
  15. import com.goafanti.common.constant.ErrorConstants;
  16. import com.goafanti.common.controller.CertifyApiController;
  17. import com.goafanti.common.enums.AchievementOrderFields;
  18. import com.goafanti.common.enums.AchievementOrderStatus;
  19. import com.goafanti.common.enums.DemandOrderStatus;
  20. import com.goafanti.common.model.AchievementOrder;
  21. import com.goafanti.common.model.AchievementOrderLog;
  22. import com.goafanti.common.model.DemandOrder;
  23. import com.goafanti.common.model.DemandOrderLog;
  24. import com.goafanti.demand.bo.InputDemandOrder;
  25. import com.goafanti.demand.service.DemandOrderLogService;
  26. import com.goafanti.demand.service.DemandOrderService;
  27. @RestController
  28. @RequestMapping(value = "/api/admin/portal/order")
  29. public class AdminOrderApiController extends CertifyApiController {
  30. @Resource
  31. private AchievementOrderService achievementOrderService;
  32. @Resource
  33. private DemandOrderService demandOrderService;
  34. @Resource
  35. private DemandOrderLogService demandOrderLogService;
  36. @Resource
  37. private AchievementOrderLogService achievementOrderLogService;
  38. /**
  39. * 科技成果线索单/意向单修改
  40. */
  41. @RequestMapping(value = "/updateAchievementOrder", method = RequestMethod.POST)
  42. public Result updateAchievementOrder(@Valid InputAchievementOrder order, BindingResult bindingResult,
  43. String recordTimeFormattedDate) {
  44. Result res = new Result();
  45. if (bindingResult.hasErrors()) {
  46. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  47. AchievementOrderFields.getFieldDesc(bindingResult.getFieldError().getField())));
  48. return res;
  49. }
  50. if (StringUtils.isBlank(order.getId())) {
  51. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技成果线索单/意向单ID", "科技成果线索单/意向单ID"));
  52. return res;
  53. }
  54. if (StringUtils.isBlank(order.getAchievementId())) {
  55. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技成果ID", "科技成果ID"));
  56. return res;
  57. }
  58. if (null == order.getStatus()) {
  59. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技成果线索单/意向单状态", "科技成果线索单/意向单状态"));
  60. return res;
  61. }
  62. AchievementOrder ao = achievementOrderService.selectByPrimaryKey(order.getId());
  63. if (null == ao) {
  64. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果线索单/意向单ID"));
  65. return res;
  66. }
  67. if (AchievementOrderStatus.CANCELLED.getCode().equals(ao.getStatus())) {
  68. res.getError().add(buildError("", "当前科技成果线索单/意向单已关闭,无法修改!"));
  69. return res;
  70. }
  71. AchievementOrder achievementOrder = new AchievementOrder();
  72. AchievementOrderLog aol = new AchievementOrderLog();
  73. BeanUtils.copyProperties(order, achievementOrder);
  74. BeanUtils.copyProperties(order, aol);
  75. achievementOrderService.updateAchievementOrder(achievementOrder, aol, recordTimeFormattedDate);
  76. return res;
  77. }
  78. /**
  79. * 科技成果线索单/意向单Log
  80. */
  81. @RequestMapping(value = "/achievementOrderLog", method = RequestMethod.GET)
  82. public Result achievementOrderLog(String achievementOrderId) {
  83. Result res = new Result();
  84. if (StringUtils.isEmpty(achievementOrderId)) {
  85. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技成果订单ID"));
  86. return res;
  87. }
  88. res.setData(achievementOrderLogService.selectAdminAchievementOrderLogByAchievementOrderId(achievementOrderId));
  89. return res;
  90. }
  91. /**
  92. * 科技成果线索单/意向单列表(个人用户)
  93. */
  94. @RequestMapping(value = "/userAchievementOrderList", method = RequestMethod.GET)
  95. public Result userAchievementOrderList(String uid, String username, Integer status, String pageNo,
  96. String pageSize) {
  97. Result res = new Result();
  98. Integer pNo = 1;
  99. Integer pSize = 10;
  100. if (StringUtils.isNumeric(pageSize)) {
  101. pSize = Integer.parseInt(pageSize);
  102. }
  103. if (StringUtils.isNumeric(pageNo)) {
  104. pNo = Integer.parseInt(pageNo);
  105. }
  106. res.setData(achievementOrderService.listUserAchievementOrder(uid, username, status, pNo, pSize));
  107. return res;
  108. }
  109. /**
  110. * 科技成果线索单/意向单列表(组织用户)
  111. */
  112. @RequestMapping(value = "/orgAchievementOrderList", method = RequestMethod.GET)
  113. public Result orgAchievementOrderList(String uid, String unitName, Integer status, String pageNo, String pageSize) {
  114. Result res = new Result();
  115. Integer pNo = 1;
  116. Integer pSize = 10;
  117. if (StringUtils.isNumeric(pageSize)) {
  118. pSize = Integer.parseInt(pageSize);
  119. }
  120. if (StringUtils.isNumeric(pageNo)) {
  121. pNo = Integer.parseInt(pageNo);
  122. }
  123. res.setData(achievementOrderService.listOrgAchievementOrder(uid, unitName, status, pNo, pSize));
  124. return res;
  125. }
  126. /**
  127. * 科技需求线索单/意向单列表(个人用户)
  128. */
  129. @RequestMapping(value = "/userDemandOrderList", method = RequestMethod.GET)
  130. public Result userDemandOrderList(String uid, String username, Integer status, String pageNo, String pageSize) {
  131. Result res = new Result();
  132. Integer pNo = 1;
  133. Integer pSize = 10;
  134. if (StringUtils.isNumeric(pageSize)) {
  135. pSize = Integer.parseInt(pageSize);
  136. }
  137. if (StringUtils.isNumeric(pageNo)) {
  138. pNo = Integer.parseInt(pageNo);
  139. }
  140. res.setData(demandOrderService.listUserDemandOrder(uid, username, status, pNo, pSize));
  141. return res;
  142. }
  143. /**
  144. * 科技需求线索单/意向单列表(组织用户)
  145. */
  146. @RequestMapping(value = "/orgDemandOrderList", method = RequestMethod.GET)
  147. public Result orgDemandOrderList(String uid, String unitName, Integer status, String pageNo, String pageSize) {
  148. Result res = new Result();
  149. Integer pNo = 1;
  150. Integer pSize = 10;
  151. if (StringUtils.isNumeric(pageSize)) {
  152. pSize = Integer.parseInt(pageSize);
  153. }
  154. if (StringUtils.isNumeric(pageNo)) {
  155. pNo = Integer.parseInt(pageNo);
  156. }
  157. res.setData(demandOrderService.listOrgDemandOrder(uid, unitName, status, pNo, pSize));
  158. return res;
  159. }
  160. /**
  161. * 科技需求线索单/意向单log
  162. */
  163. @RequestMapping(value = "/demandOrderLog", method = RequestMethod.GET)
  164. public Result demandOrderLog(String demandOrderId) {
  165. Result res = new Result();
  166. if (StringUtils.isEmpty(demandOrderId)) {
  167. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技需求订单ID"));
  168. return res;
  169. }
  170. res.setData(demandOrderLogService.selectAdminDemandOrderLogByDemandOrderId(demandOrderId));
  171. return res;
  172. }
  173. /**
  174. * 科技需求线索单/意向单修改
  175. */
  176. @RequestMapping(value = "/updateDemandOrder", method = RequestMethod.POST)
  177. public Result updateDemandOrder(@Valid InputDemandOrder inputDemandOrder, BindingResult bindingResult,
  178. String recordTimeFormattedDate) {
  179. Result res = new Result();
  180. if (bindingResult.hasErrors()) {
  181. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  182. AchievementOrderFields.getFieldDesc(bindingResult.getFieldError().getField())));
  183. return res;
  184. }
  185. if (StringUtils.isBlank(inputDemandOrder.getId())) {
  186. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技需求线索单/意向单ID", "科技需求线索单/意向单ID"));
  187. return res;
  188. }
  189. if (StringUtils.isBlank(inputDemandOrder.getDemandId())) {
  190. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技需求ID", "科技需求ID"));
  191. return res;
  192. }
  193. if (null == inputDemandOrder.getStatus()) {
  194. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技需求状态", "科技需求状态"));
  195. return res;
  196. }
  197. DemandOrder demandOrder = demandOrderService.selectByPrimaryKey(inputDemandOrder.getId());
  198. if (null == demandOrder) {
  199. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求线索单/意向单ID"));
  200. return res;
  201. }
  202. if (DemandOrderStatus.SHUTDOWN.getCode().equals(demandOrder.getStatus())) {
  203. res.getError().add(buildError("", "当前科技需求线索单/意向单已关闭,无法修改!"));
  204. return res;
  205. }
  206. DemandOrder order = new DemandOrder();
  207. DemandOrderLog dol = new DemandOrderLog();
  208. BeanUtils.copyProperties(inputDemandOrder, order);
  209. BeanUtils.copyProperties(inputDemandOrder, dol);
  210. res.setData(demandOrderService.updateDemandOrder(order, dol, recordTimeFormattedDate));
  211. return res;
  212. }
  213. /**
  214. * 下载科技需求线索单/意向单文件
  215. */
  216. @RequestMapping(value = "/downloadDemandOrder", method = RequestMethod.GET)
  217. public Result download(HttpServletResponse response, String id) {
  218. Result res = new Result();
  219. if (StringUtils.isEmpty(id)) {
  220. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求订单ID"));
  221. return res;
  222. }
  223. DemandOrder order = demandOrderService.selectByPrimaryKey(id);
  224. if (null == order) {
  225. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求订单ID"));
  226. return res;
  227. }
  228. downloadUnPrivateFile(response, order.getEnclosureDownloadFileName(), order.getEnclosureUrl());
  229. return res;
  230. }
  231. }