AdminPolicyApiController.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234
  1. package com.goafanti.news.controller;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import javax.annotation.Resource;
  8. import javax.validation.Valid;
  9. import org.springframework.beans.BeanUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.validation.BindingResult;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestMethod;
  14. import org.springframework.web.bind.annotation.RestController;
  15. import com.goafanti.common.bo.Result;
  16. import com.goafanti.common.constant.ErrorConstants;
  17. import com.goafanti.common.constant.PageConstants;
  18. import com.goafanti.common.controller.BaseApiController;
  19. import com.goafanti.common.model.News;
  20. import com.goafanti.common.model.Policy;
  21. import com.goafanti.common.utils.StringUtils;
  22. import com.goafanti.core.mybatis.JDBCIdGenerator;
  23. import com.goafanti.news.bo.InputNews;
  24. import com.goafanti.news.bo.newsInterestBo;
  25. import com.goafanti.news.enums.NewsFields;
  26. import com.goafanti.news.service.PolicyService;
  27. @RestController
  28. @RequestMapping(value = "/api/admin/policy")
  29. public class AdminPolicyApiController extends BaseApiController {
  30. @Autowired
  31. private JDBCIdGenerator idGenerator;
  32. @Resource
  33. private PolicyService policyService;
  34. /*
  35. * 新增
  36. *
  37. * */
  38. @RequestMapping(value="/apply",method=RequestMethod.POST)
  39. public Result insertPolicy(@Valid Policy policy,String[]publishPages,BindingResult bindingResult) {
  40. Result result=new Result();
  41. if (bindingResult.hasErrors()) {
  42. result.getError().add(
  43. buildErrorByMsg(bindingResult.getFieldError()
  44. .getDefaultMessage(), NewsFields
  45. .getFieldDesc(bindingResult.getFieldError()
  46. .getField())));
  47. return result;
  48. }
  49. disposePolicyParams(policy,result);
  50. if(result.getError().size()>0)return result;
  51. if(publishPages==null || publishPages.length<1) {
  52. result.getError().add(buildError(ErrorConstants.PARAM_ERROR,"","发布位置"));
  53. return result;
  54. }
  55. List<String>webPages=new ArrayList<>();
  56. List<String>appPages=new ArrayList<>();
  57. PageConstants.putPolicy(publishPages,webPages,appPages);
  58. if(webPages.size()<1 && appPages.size()<1) {
  59. result.getError().add(buildError(ErrorConstants.PARAM_ERROR,"","发布位置"));
  60. return result;
  61. }
  62. policy.setCreateTime(new Date());
  63. policy.setEditTime(new Date());
  64. policy.setId(idGenerator.generateId());
  65. policy.setType(0);
  66. if(policy.getAuditStatus()!=null &&policy.getAuditStatus() == 2) {
  67. policy.setReleaseDate(new Date());
  68. }
  69. result.setData(policyService.saveNewPolicy(policy, webPages, appPages));
  70. return result;
  71. }
  72. private void disposePolicyParams(Policy policy,Result result) {
  73. if(StringUtils.isBlank(policy.getTitle())) {
  74. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","标题"));
  75. return ;
  76. }
  77. if(StringUtils.isBlank(policy.getContent()))
  78. {
  79. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","内容"));
  80. return ;
  81. }
  82. if(StringUtils.isBlank(policy.getSource()))
  83. {
  84. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","来源"));
  85. return ;
  86. }
  87. if(policy.getAuditStatus() == null )
  88. {
  89. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","审核状态"));
  90. return ;
  91. }
  92. }
  93. /*
  94. * 删除
  95. *
  96. * */
  97. @RequestMapping(value="/delete",method=RequestMethod.POST)
  98. public Result deleteById(Long id) {
  99. Result result=new Result();
  100. if(id ==null) {
  101. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","id不可为空,"));return result;
  102. }
  103. int res=policyService.deletePolicyById(id);
  104. result.setData(res);
  105. if(res==-1) {
  106. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","id不可为空"));
  107. }
  108. return result;
  109. }
  110. /*
  111. * 详情
  112. * */
  113. @RequestMapping(value="/detail",method=RequestMethod.GET)
  114. public Result getDetailById(Long id) {
  115. Result result=new Result();
  116. if(id==null) {
  117. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","id不可为空,"));return result;
  118. }
  119. result.setData(policyService.getPolicyDetail(id));
  120. return result;
  121. }
  122. /*
  123. * 修改
  124. *
  125. * */
  126. @RequestMapping(value="/update",method=RequestMethod.POST)
  127. public Result updateNews(@Valid Policy policy,BindingResult bindingResult,String[] publishPages) {
  128. Result result=new Result();
  129. if (bindingResult.hasErrors()) {
  130. result.getError().add(
  131. buildErrorByMsg(bindingResult.getFieldError()
  132. .getDefaultMessage(), NewsFields
  133. .getFieldDesc(bindingResult.getFieldError()
  134. .getField())));
  135. return result;
  136. }
  137. List<String>webPages=new ArrayList<>();
  138. List<String>appPages=new ArrayList<>();
  139. PageConstants.putPolicy(publishPages, webPages, appPages);
  140. if(webPages.size()<1 && appPages.size()<1) {
  141. result.getError().add(buildError(ErrorConstants.PARAM_ERROR,"","发布位置"));
  142. return result;
  143. }
  144. disposePolicyParams(policy, result);
  145. if(result.getError().size()>0) {
  146. return result;
  147. }
  148. if(policy.getAuditStatus()!=null ) {
  149. policy.setReleaseDate(new Date());
  150. if(policy.getAuditStatus() ==2){
  151. policy.setReleaseDate(new Date());
  152. policyService.addJtCollectSearch(policy);
  153. }
  154. if(policy.getAuditStatus()==4) {
  155. policyService.updateJtCollectSearch(policy);
  156. }
  157. }
  158. policy.setEditTime(new Date());
  159. result.setData(policyService.updateSelectively( policy,webPages,appPages));
  160. return result;
  161. }
  162. /*
  163. * 变更发布状态、发布时间
  164. * */
  165. @RequestMapping(value="/updateStatus",method=RequestMethod.POST)
  166. public Result updateStatus(Long id,Integer auditStatus,Integer refresh) {
  167. Result result=new Result();
  168. if(id==null) {
  169. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","未找到该政策,"));
  170. return result;
  171. }
  172. Policy policy=policyService.getPolicyDetail(id);
  173. if(policy==null) {
  174. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","未找到该政策,"));
  175. return result;
  176. }
  177. if(refresh!=null &&refresh==1){
  178. if( auditStatus!=2 && policy.getAuditStatus()!=2) {
  179. result.getError().add(buildError("","","当前未发布"));
  180. return result;
  181. }
  182. policy.setReleaseDate(new Date());}
  183. if(auditStatus!=null) {
  184. policy.setAuditStatus(auditStatus);
  185. if(auditStatus ==2){
  186. policy.setReleaseDate(new Date());
  187. policyService.updateJtCollectSearch(policy);
  188. policyService.addJtCollectSearch(policy);
  189. }
  190. if (auditStatus==4) {
  191. policyService.updateJtCollectSearch(policy);
  192. }
  193. }
  194. result.setData(policyService.updateSelectivelyWithoutPages(policy));
  195. return result;
  196. }
  197. /*
  198. * 政策搜索
  199. * */
  200. @RequestMapping(value="/list",method=RequestMethod.GET)
  201. public Result searchPolicy(String title,Integer auditStatus,String startReleaseDate,String endReleaseDate,String publishPage,Integer pageNo,Integer pageSize) {
  202. Result result=new Result();
  203. if(pageNo==null || pageNo<1)pageNo=1;
  204. if(pageSize==null || pageSize<1)pageSize=10;
  205. result.setData(policyService.searchPolicy(title,auditStatus,startReleaseDate,endReleaseDate,publishPage,pageNo,pageSize,null));
  206. return result;
  207. }
  208. }