CopyrightApiController.java 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package com.goafanti.copyright.controller;
  2. import javax.annotation.Resource;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. import javax.validation.Valid;
  6. import org.apache.commons.lang3.StringUtils;
  7. import org.springframework.beans.BeanUtils;
  8. import org.springframework.validation.BindingResult;
  9. import org.springframework.validation.FieldError;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestMethod;
  12. import org.springframework.web.bind.annotation.RequestParam;
  13. import org.springframework.web.bind.annotation.RestController;
  14. import com.goafanti.common.bo.Result;
  15. import com.goafanti.common.constant.AFTConstants;
  16. import com.goafanti.common.constant.ErrorConstants;
  17. import com.goafanti.common.controller.CertifyApiController;
  18. import com.goafanti.common.enums.AttachmentType;
  19. import com.goafanti.common.enums.CopyrightFields;
  20. import com.goafanti.common.enums.CopyrightStatus;
  21. import com.goafanti.common.model.CopyrightInfo;
  22. import com.goafanti.common.model.CopyrightLog;
  23. import com.goafanti.common.model.User;
  24. import com.goafanti.copyright.bo.CopyrightInfoDetail;
  25. import com.goafanti.copyright.bo.InputCopyright;
  26. import com.goafanti.copyright.service.CopyrightInfoService;
  27. import com.goafanti.core.shiro.token.TokenManager;
  28. @RestController
  29. @RequestMapping(value = "/techservice/copyright")
  30. public class CopyrightApiController extends CertifyApiController {
  31. @Resource
  32. private CopyrightInfoService copyrightInfoService;
  33. @RequestMapping(value = "/apply", method = RequestMethod.POST)
  34. public Result newApply(@Valid InputCopyright inputInfo, BindingResult bindingResult) {
  35. Result res = new Result();
  36. if (handleBindingError(res, bindingResult)) {
  37. return res;
  38. }
  39. if (!checkUserLogin(res)) {
  40. return res;
  41. }
  42. User curUser = TokenManager.getUserToken();
  43. if (!checkCertify(res, curUser)) {
  44. return res;
  45. }
  46. CopyrightInfo ci = new CopyrightInfo();
  47. BeanUtils.copyProperties(inputInfo, ci);
  48. ci.setUid(curUser.getId());
  49. if (StringUtils.isBlank(ci.getPrincipal())) {
  50. ci.setStatus(CopyrightStatus.CREATE.getCode());
  51. ci.setPrincipal(curUser.getAid());
  52. } else {
  53. ci.setStatus(CopyrightStatus.DELIVERD.getCode());
  54. }
  55. copyrightInfoService.insert(ci);
  56. res.setData(ci);
  57. return res;
  58. }
  59. @RequestMapping(value = "/modify", method = RequestMethod.POST)
  60. public Result modify(String id, @Valid InputCopyright inputInfo, BindingResult bindingResult) {
  61. Result res = new Result();
  62. if (handleBindingError(res, bindingResult)) {
  63. return res;
  64. }
  65. if (!checkUserLogin(res)) {
  66. return res;
  67. }
  68. User curUser = TokenManager.getUserToken();
  69. if (!checkCertify(res, curUser)) {
  70. return res;
  71. }
  72. if (StringUtils.isBlank(id)) {
  73. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到软著", "软著申请id"));
  74. return res;
  75. }
  76. CopyrightInfo oci = copyrightInfoService.selectByPrimaryKey(id);
  77. if (oci == null || !oci.getUid().equals(curUser.getId())) {
  78. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "找不到软著", "软著申请"));
  79. return res;
  80. }
  81. CopyrightInfo ci = new CopyrightInfo();
  82. CopyrightLog cl = new CopyrightLog();
  83. BeanUtils.copyProperties(oci, ci);
  84. BeanUtils.copyProperties(inputInfo, ci);
  85. ci.setId(oci.getId());
  86. ci.setUid(oci.getUid());
  87. copyrightInfoService.updateByPrimaryKeySelective(ci, cl);
  88. res.setData(1);
  89. return res;
  90. }
  91. @RequestMapping(value = "/upload", method = RequestMethod.POST)
  92. public Result upload(String id, String sign, HttpServletRequest req) {
  93. Result res = new Result();
  94. if (!checkUserLogin(res)) {
  95. return res;
  96. }
  97. User curUser = TokenManager.getUserToken();
  98. if (!checkCertify(res, curUser)) {
  99. return res;
  100. }
  101. if (StringUtils.isEmpty(id)) {
  102. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "软著id"));
  103. return res;
  104. }
  105. CopyrightInfo ci = copyrightInfoService.selectByPrimaryKey(id);
  106. if (ci == null || !curUser.getId().equals(ci.getUid())) {
  107. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "软著id"));
  108. return res;
  109. }
  110. AttachmentType attachmentType = AttachmentType.getField(sign);
  111. if (attachmentType == AttachmentType.COPYRIGHT_APPLY || attachmentType == AttachmentType.COPYRIGHT_AUTH) {
  112. String filePath = handleFile(res, true, req, attachmentType.getCode(), ci.getUid(), ci.getId());
  113. if (attachmentType == AttachmentType.COPYRIGHT_APPLY) {
  114. ci.setApplicationUrl(filePath);
  115. } else if (attachmentType == AttachmentType.COPYRIGHT_AUTH) {
  116. ci.setCertificateUrl(filePath);
  117. }
  118. copyrightInfoService.updateByPrimaryKey(ci);
  119. res.setData(filePath);
  120. } else {
  121. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示"));
  122. }
  123. return res;
  124. }
  125. @RequestMapping(value = "/list", method = RequestMethod.GET)
  126. public Result list(String province, String unitName, String copyrightName, String status, String pageNo,
  127. String pageSize, @RequestParam(name = "createTime[]", required = false) String[] createTime,
  128. @RequestParam(name = "acceptTime[]", required = false) String[] acceptTime,
  129. @RequestParam(name = "authTime[]", required = false) String[] authTime) {
  130. Result res = new Result();
  131. if (!checkUserLogin(res)) {
  132. return res;
  133. }
  134. res.setData(copyrightInfoService.listMyCopyrightInfo(province, unitName, copyrightName,
  135. CopyrightStatus.getStatus(status), createTime, acceptTime, authTime, getPageNo(pageNo),
  136. getPageSize(pageSize), TokenManager.getUserId()));
  137. return res;
  138. }
  139. @RequestMapping(value = "/detail", method = RequestMethod.GET)
  140. public Result detail(String id) {
  141. Result res = new Result();
  142. if (!checkUserLogin(res)) {
  143. return res;
  144. }
  145. if (StringUtils.isBlank(id)) {
  146. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "公司"));
  147. } else {
  148. CopyrightInfoDetail cid = copyrightInfoService.findByPrimaryKey(id);
  149. if (cid.getUid().equals(TokenManager.getUserId())) {
  150. res.setData(cid);
  151. } else {
  152. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "公司"));
  153. }
  154. }
  155. return res;
  156. }
  157. @RequestMapping(value = "/download", method = RequestMethod.GET)
  158. public Result download(String id, String sign, HttpServletResponse response) {
  159. Result res = new Result();
  160. if (!checkUserLogin(res)) {
  161. return res;
  162. }
  163. User curUser = TokenManager.getUserToken();
  164. if (!checkCertify(res, curUser)) {
  165. return res;
  166. }
  167. if (StringUtils.isEmpty(id)) {
  168. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "软著id"));
  169. return res;
  170. }
  171. CopyrightInfoDetail ci = copyrightInfoService.findByPrimaryKey(id);
  172. if (ci == null || !curUser.getId().equals(ci.getUid())) {
  173. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "软著id"));
  174. return res;
  175. }
  176. AttachmentType attachmentType = AttachmentType.getField(sign);
  177. if (attachmentType == AttachmentType.COPYRIGHT_APPLY || attachmentType == AttachmentType.COPYRIGHT_AUTH) {
  178. if (attachmentType == AttachmentType.COPYRIGHT_APPLY) {
  179. downloadFile(response, ci.getApplicationUrlDownloadFileName(), ci.getApplicationUrl());
  180. } else if (attachmentType == AttachmentType.COPYRIGHT_AUTH) {
  181. downloadFile(response, ci.getCertificateUrlDownloadFileName(), ci.getCertificateUrl());
  182. }
  183. } else {
  184. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示"));
  185. }
  186. return res;
  187. }
  188. @RequestMapping(value = "/logs", method = RequestMethod.GET)
  189. public Result logs(String id) {
  190. Result res = new Result();
  191. if (!checkUserLogin(res)) {
  192. return res;
  193. }
  194. if (StringUtils.isBlank(id)) {
  195. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "软著申请id"));
  196. return res;
  197. }
  198. CopyrightInfo oci = copyrightInfoService.selectByPrimaryKey(id);
  199. if (oci == null || !oci.getUid().equals(TokenManager.getUserId())) {
  200. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "软著申请id"));
  201. return res;
  202. }
  203. res.setData(copyrightInfoService.findLogsByPrimaryKey(id));
  204. return res;
  205. }
  206. private boolean handleBindingError(Result res, BindingResult bindingResult) {
  207. if (bindingResult.hasErrors()) {
  208. for (FieldError fe : bindingResult.getFieldErrors()) {
  209. Class<?> clazz = bindingResult.getFieldType(fe.getField());
  210. if (clazz != null && "java.util.Date".equals(clazz.getName())) {
  211. res.getError()
  212. .add(buildError(ErrorConstants.PARAM_PATTERN_ERROR, "日期格式错误",
  213. CopyrightFields.getFieldDesc(fe.getField()), AFTConstants.YYYYMMDDHHMMSS)
  214. .buildField(fe.getField()));
  215. } else {
  216. res.getError()
  217. .add(buildErrorByMsg(fe.getDefaultMessage(), CopyrightFields.getFieldDesc(fe.getField()))
  218. .buildField(fe.getField()));
  219. }
  220. }
  221. return true;
  222. }
  223. return false;
  224. }
  225. }