ProjectController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395
  1. package com.uas.console.donate.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.uas.console.donate.model.*;
  4. import com.uas.console.donate.service.AttachService;
  5. import com.uas.console.donate.service.ProjectRecodeService;
  6. import com.uas.console.donate.service.ProjectService;
  7. import com.uas.dfs.service.FileClient;
  8. import com.uas.platform.core.model.PageInfo;
  9. import com.uas.platform.core.model.PageParams;
  10. import com.uas.platform.core.web.bind.RequestState;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.data.domain.Page;
  13. import org.springframework.stereotype.Controller;
  14. import org.springframework.ui.ModelMap;
  15. import org.springframework.web.bind.annotation.*;
  16. import org.springframework.web.multipart.MultipartFile;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19. import java.io.IOException;
  20. import java.text.SimpleDateFormat;
  21. import java.util.*;
  22. @Controller
  23. @RequestMapping("/project")
  24. public class ProjectController {
  25. private static final SimpleDateFormat codesdf=new SimpleDateFormat("yyyymmddhhmmsssss");
  26. @Autowired
  27. private ProjectService projectService ;
  28. @Autowired
  29. private ProjectRecodeService projectRecodeService;
  30. @Autowired
  31. private FileClient fileClient;
  32. @Autowired
  33. private AttachService attachService;
  34. /**
  35. * 审核通过项目
  36. */
  37. @RequestMapping(value = "/approve",method = RequestMethod.POST)
  38. @ResponseBody
  39. public ModelMap approve(Long id){
  40. return projectService.approve(id);
  41. }
  42. /**
  43. * 审核驳回项目
  44. */
  45. @RequestMapping(value = "/unapprove",method = RequestMethod.POST)
  46. @ResponseBody
  47. public ModelMap unapprove(Long id,String refuse){
  48. return projectService.unapprove(id,refuse);
  49. }
  50. /**
  51. * 重新申请项目
  52. */
  53. @RequestMapping(value = "/reapply", method = RequestMethod.POST)
  54. @ResponseBody
  55. public ModelMap reapply(Long id){
  56. return projectService.reapply(id);
  57. }
  58. /**
  59. * 获取所有未被活动关联到的项目
  60. */
  61. @RequestMapping(value = "/getProjectQualification",method = RequestMethod.GET)
  62. @ResponseBody
  63. public List<Project> getProjectQualification(){
  64. return projectService.getProjects();
  65. }
  66. /**
  67. * 判断项目中有没有草稿,有,展示到项目填写表单,没有,就新建表单
  68. */
  69. @ResponseBody
  70. @RequestMapping("/show")
  71. public Project show(){
  72. return projectService.show();
  73. }
  74. /**
  75. * 保存项目草稿
  76. */
  77. @ResponseBody
  78. @RequestMapping(value = "/save",method = RequestMethod.POST)
  79. public Project save(@RequestParam(required = false) MultipartFile logo,
  80. @RequestParam(required = false) MultipartFile pcImg,
  81. @RequestParam(required = false) MultipartFile mobileImg,
  82. @RequestParam (required = false) MultipartFile mobileListImg,
  83. @RequestParam String jsonStr, HttpServletRequest request, HttpServletResponse response) throws IOException{
  84. Project project=JSONObject.parseObject(jsonStr,Project.class);
  85. if(logo!=null){
  86. String file1=fileClient.upload(logo.getBytes(),logo.getSize(),"jpg",null);
  87. project.setLogo(file1);
  88. }
  89. if(pcImg!=null){
  90. String file2=fileClient.upload(pcImg.getBytes(),pcImg.getSize(),"jpg",null);
  91. project.setPcImg(file2);
  92. }
  93. if(mobileImg!=null){
  94. String file3=fileClient.upload(mobileImg.getBytes(),mobileImg.getSize(),"jpg",null);
  95. project.setMobileImg(file3);
  96. }
  97. if(mobileListImg!=null){
  98. String file4=fileClient.upload(mobileListImg.getBytes(),mobileListImg.getSize(),"jpg",null);
  99. project.setListImg(file4);
  100. }
  101. return projectService.save(project);
  102. }
  103. /**
  104. * 上传图片
  105. */
  106. @ResponseBody
  107. @RequestMapping(value = "/upload",method = RequestMethod.POST)
  108. public String ueditorUpload(MultipartFile file) throws IOException {
  109. //上传图片
  110. String path=fileClient.upload(file.getBytes(),file.getSize(),"jpg",null);
  111. return path;
  112. }
  113. /**
  114. * 正式提交项目
  115. */
  116. @ResponseBody
  117. @RequestMapping(value = "/submit",method = RequestMethod.POST)
  118. public Project submit(@RequestParam(required = false) MultipartFile logo,
  119. @RequestParam(required = false) MultipartFile pcImg,
  120. @RequestParam(required = false) MultipartFile mobileImg,
  121. @RequestParam (required = false) MultipartFile mobileListImg,
  122. @RequestParam String jsonStr, HttpServletRequest request, HttpServletResponse response)throws IOException{
  123. Project project = JSONObject.parseObject(jsonStr, Project.class);
  124. if(logo!=null){
  125. String file1=fileClient.upload(logo.getBytes(),logo.getSize(),"jpg",null);
  126. project.setLogo(file1);
  127. }
  128. if(pcImg!=null){
  129. String file2=fileClient.upload(pcImg.getBytes(),pcImg.getSize(),"jpg",null);
  130. project.setPcImg(file2);
  131. }
  132. if(mobileImg!=null){
  133. String file3=fileClient.upload(mobileImg.getBytes(),mobileImg.getSize(),"jpg",null);
  134. project.setMobileImg(file3);
  135. }
  136. if(mobileListImg!=null){
  137. String file4=fileClient.upload(mobileListImg.getBytes(),mobileListImg.getSize(),"jpg",null);
  138. project.setListImg(file4);
  139. }
  140. Date date=new Date();
  141. //设置项目提交时间
  142. project.setSubmitTime(date);
  143. //设置项目编号
  144. project.setCode(codesdf.format(date));
  145. //设置项目默认参与人数
  146. project.setJoinAmount(0L);
  147. //设置默认项目已筹集总金额
  148. project.setTotalAmount(0.00);
  149. return projectService.submit(project);
  150. }
  151. // /**
  152. // * 取出某项目的,以及该项目对应机构的具体信息
  153. // * @param id
  154. // * @return
  155. // */
  156. // @ResponseBody
  157. // @RequestMapping("/detail/{id}")
  158. // public List<Object> detail(@PathVariable("id") Long id){
  159. // Org org=projectService.findOrgInfo(id);
  160. // Project project=projectService.findOne(id);
  161. // //项目进度
  162. //
  163. // //捐款信息
  164. // List<ProjectRecode> projectRecodeList=projectRecodeService.findProjectDetail(id);
  165. // //财务披露
  166. //
  167. // List<Object> list=new ArrayList<>();
  168. // list.add(org);
  169. // list.add(project);
  170. // list.add(projectRecodeList);
  171. // return list;
  172. // }
  173. /**
  174. *项目列表搜索框查询
  175. * @param search
  176. * @return
  177. */
  178. @ResponseBody
  179. @RequestMapping(value = "/search",method = RequestMethod.GET)
  180. public List<Project> search(String search){
  181. return projectService.search(search);
  182. }
  183. /**
  184. * 获取项目列表 (全部)
  185. * @return
  186. */
  187. @RequestMapping(method = RequestMethod.GET)
  188. @ResponseBody
  189. public Page<Project> getAllProjects(PageParams params, String searchFilter){
  190. PageInfo pageInfo = new PageInfo(params);
  191. SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
  192. return projectService.getAllProjects(pageInfo, filter);
  193. }
  194. /**
  195. * 获取项目列表 (已审核)
  196. * @return
  197. */
  198. @RequestMapping(params = RequestState.DONE, method = RequestMethod.GET)
  199. @ResponseBody
  200. public Page<Project> getAuditedProjects(PageParams params, String searchFilter){
  201. PageInfo pageInfo = new PageInfo(params);
  202. SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
  203. return projectService.getAuditedProjects(pageInfo, filter);
  204. }
  205. /**
  206. * 获取项目列表 (未审核)
  207. * @return
  208. */
  209. @RequestMapping(params = RequestState.TODO, method = RequestMethod.GET)
  210. @ResponseBody
  211. public Page<Project> getUnauditedProjects(PageParams params, String searchFilter){
  212. PageInfo pageInfo = new PageInfo(params);
  213. SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
  214. return projectService.getUnauditedProjects(pageInfo, filter);
  215. }
  216. /**
  217. * 获取项目列表 (未通过)
  218. * @return
  219. */
  220. @RequestMapping(params = RequestState.REFUSED, method = RequestMethod.GET)
  221. @ResponseBody
  222. public Page<Project> getDisagreedProjects(PageParams params, String searchFilter){
  223. PageInfo pageInfo = new PageInfo(params);
  224. SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
  225. return projectService.getDisagreedProjects(pageInfo, filter);
  226. }
  227. /**
  228. * 获取项目列表 (未结项)
  229. * @return
  230. */
  231. @RequestMapping(params = RequestState.WAITING, method = RequestMethod.GET)
  232. @ResponseBody
  233. public Page<Project> getNotEndProjects(PageParams params, String searchFilter){
  234. PageInfo pageInfo = new PageInfo(params);
  235. SearchFilter filter = JSONObject.parseObject(searchFilter, SearchFilter.class);
  236. return projectService.getNotEndProjects(pageInfo, filter);
  237. }
  238. /**
  239. * 获取项目详情
  240. * @param id 项目id
  241. * @return
  242. */
  243. @RequestMapping(value = "/detail/{id}", method = RequestMethod.GET)
  244. @ResponseBody
  245. public Project getProjectDetail(@PathVariable("id") Long id) {
  246. return projectService.findOne(id);
  247. }
  248. /**
  249. * 保存基本信息
  250. * @param json
  251. * @return
  252. */
  253. @RequestMapping(value = "/save/baseInfo", method = RequestMethod.POST)
  254. @ResponseBody
  255. public Project saveBaseInfo(@RequestBody String json) {
  256. Project project = JSONObject.parseObject(json, Project.class);
  257. return projectService.saveBaseInfo(project);
  258. }
  259. /**
  260. * 保存财务信息
  261. * @param json
  262. * @return
  263. */
  264. @RequestMapping(value = "/save/finance/{id}", method = RequestMethod.POST)
  265. @ResponseBody
  266. public ModelMap saveFinance(String json, @PathVariable("id") Long id ,MultipartFile img) throws IOException {
  267. ProjectFinance finance = JSONObject.parseObject(json, ProjectFinance.class);
  268. if (img != null) {
  269. String path = fileClient.upload(img.getBytes(), img.getSize(), "jpg", null);
  270. if (null != path) {
  271. finance.setPath(path);
  272. }
  273. }
  274. return projectService.saveFinance(finance, id);
  275. }
  276. /**
  277. * 保存进度报告
  278. * @param json
  279. * @return
  280. */
  281. @RequestMapping(value = "/save/report/{id}", method = RequestMethod.POST)
  282. @ResponseBody
  283. public ModelMap saveReport(String json, @PathVariable("id") Long id ,MultipartFile img) throws IOException {
  284. ProjectReport report = JSONObject.parseObject(json, ProjectReport.class);
  285. if (img != null) {
  286. String path = fileClient.upload(img.getBytes(), img.getSize(), "jpg", null);
  287. if (null != path) {
  288. report.setPath(path);
  289. }
  290. }
  291. return projectService.saveReport(report, id);
  292. }
  293. /**
  294. * 获取项目执行日期和更新次数
  295. * @param id
  296. * @return
  297. */
  298. @RequestMapping(value = "/getConclude/{id}", method = RequestMethod.GET)
  299. @ResponseBody
  300. public ModelMap getConcludeData(@PathVariable("id") Long id) {
  301. ModelMap map = new ModelMap();
  302. map.put("executeDays", projectService.getExecuteDaysById(id));
  303. map.put("updateTimes", projectService.getUpdateTimesById(id));
  304. return map;
  305. }
  306. /**
  307. * 保存结项报告
  308. * @param json
  309. * @return
  310. */
  311. @RequestMapping(value = "/save/conclude/{id}", method = RequestMethod.POST)
  312. @ResponseBody
  313. public ModelMap saveConclude(String json, @PathVariable("id") Long id ,MultipartFile img) throws IOException {
  314. ProjectConclude conclude = JSONObject.parseObject(json, ProjectConclude.class);
  315. if (img != null) {
  316. String path = fileClient.upload(img.getBytes(), img.getSize(), "jpg", null);
  317. if (null != path) {
  318. conclude.setPath(path);
  319. }
  320. }
  321. return projectService.saveConclude(conclude, id);
  322. }
  323. /**
  324. * 获取已保存的项目草稿
  325. * @return
  326. */
  327. @RequestMapping(value = "/getSavedProject", method = RequestMethod.GET)
  328. @ResponseBody
  329. public Project getSavedProject() {
  330. return projectService.getSavedProject();
  331. }
  332. /**
  333. * 获取各类项目数量
  334. * @return
  335. */
  336. @RequestMapping(value="/getProjectsNum", method = RequestMethod.GET)
  337. @ResponseBody
  338. public ModelMap getProjectsNum(){
  339. return projectService.getProjectsNum();
  340. }
  341. /**
  342. * 编辑器删除图片
  343. */
  344. @RequestMapping(value = "/delete", method = RequestMethod.DELETE)
  345. @ResponseBody
  346. public void deletePrizeImg(@RequestParam String path) {
  347. try {
  348. fileClient.delete(path);
  349. } catch (RuntimeException e) {
  350. e.printStackTrace();
  351. }
  352. }
  353. }