UserJtBusinessController.java 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. package com.goafanti.business.controller;
  2. import java.util.Base64;
  3. import java.util.Date;
  4. import javax.annotation.Resource;
  5. import javax.servlet.http.HttpServletRequest;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.RequestMethod;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import com.goafanti.business.service.JtBusinessService;
  10. import com.goafanti.business.service.JtBusinessServiceWithCategoryMapper;
  11. import com.goafanti.business.service.JtTagService;
  12. import com.goafanti.common.bo.Result;
  13. import com.goafanti.common.constant.ErrorConstants;
  14. import com.goafanti.common.controller.CertifyApiController;
  15. import com.goafanti.common.enums.AttachmentType;
  16. import com.goafanti.common.enums.ProjectAuditStatus;
  17. import com.goafanti.common.model.JtBusinessCategory;
  18. import com.goafanti.common.model.JtBusinessProject;
  19. import com.goafanti.common.model.JtTag;
  20. import com.goafanti.common.utils.StringUtils;
  21. import com.goafanti.core.shiro.token.TokenManager;
  22. @RestController
  23. @RequestMapping(value = "/api/user/jtBusiness")
  24. public class UserJtBusinessController extends CertifyApiController{
  25. @Resource
  26. private JtBusinessService jtBusinessService;
  27. @Resource JtBusinessServiceWithCategoryMapper JtBusinessServiceWithCategoryMapper;
  28. @Resource
  29. private JtTagService jtTagService;
  30. /*
  31. *
  32. * 新增项目
  33. *
  34. * */
  35. @RequestMapping(value="/project/apply",method=RequestMethod.POST)
  36. private Result insertJtBusinessProject(JtBusinessProject jtBusinessProject) {
  37. Result result=new Result();
  38. disposeProjectParam(result, jtBusinessProject);
  39. if(result.getError().size()<=0) {
  40. result.setData(jtBusinessService.insertProject(jtBusinessProject));
  41. }
  42. return result;
  43. }
  44. private void disposeProjectParam(Result result,JtBusinessProject jtBusinessProject ) {
  45. if(jtBusinessProject.getName() == null) {
  46. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "名称不可为空", "名称"));
  47. return ;
  48. }
  49. if(jtBusinessProject.getCategoryId() == null) {
  50. result.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "品类"));
  51. return ;
  52. }
  53. //todo 判断品类是否存在
  54. JtBusinessCategory jtBusinessCategory=jtBusinessService.getCategoryById(jtBusinessProject.getCategoryId());
  55. if(jtBusinessCategory==null ||jtBusinessCategory.getLayer()!=2) {
  56. result.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "二级品类未找到"));
  57. return ;
  58. }
  59. if(jtBusinessProject.getProvince()==null)
  60. {
  61. result.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "省份"));
  62. return ;
  63. }
  64. // if(jtBusinessProject.getCity()==null)
  65. // {
  66. // result.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "城市"));
  67. // return ;
  68. // }
  69. // if(jtBusinessProject.getPrice()==null)
  70. // {
  71. // result.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "价格"));
  72. // return ;
  73. // }
  74. return ;
  75. }
  76. /*
  77. * 项目详情
  78. *
  79. * */
  80. @RequestMapping(value="/project/detail",method=RequestMethod.GET)
  81. private Result getProjectDetail(String id) {
  82. Result result=new Result();
  83. if(id == null) {
  84. result.getError().add(buildError(ErrorConstants.PARAM_ERROR,"","id不能为空,"));
  85. return result;
  86. }
  87. result.setData(jtBusinessService.getBusinessProjectDetail(id));
  88. return result;
  89. }
  90. /*
  91. * 删除项目
  92. * */
  93. @RequestMapping(value="/project/delete",method=RequestMethod.GET)
  94. private Result deleteProjecById(String id) {
  95. Result result=new Result();
  96. if(id == null) {
  97. result.getError().add(buildError(ErrorConstants.PARAM_ERROR,"","id不能为空,"));
  98. return result;
  99. }
  100. result.setData(jtBusinessService.deleteProjectById(id));
  101. return result;
  102. }
  103. @RequestMapping(value="/project/update",method=RequestMethod.POST)
  104. private Result updateProject(JtBusinessProject jtBusinessProject) {
  105. Result result=new Result();
  106. jtBusinessProject.setCreateTime(null);
  107. jtBusinessProject.setNumber(null);
  108. disposeProjectParam(result, jtBusinessProject);
  109. if(jtBusinessProject.getPrice()==null) {
  110. result.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "价格不可为空,"));
  111. }
  112. //判断各项数据长度
  113. if(StringUtils.isNotBlank(jtBusinessProject.getName()) && jtBusinessProject.getName().length() > 16){
  114. result.getError().add(buildError("16", "项目名称字数不能超过16"));
  115. }
  116. if(StringUtils.isNotBlank(jtBusinessProject.getAdvertisement()) && jtBusinessProject.getAdvertisement().length() > 128){
  117. result.getError().add(buildError("128", "项目营销说明字数不能超过128"));
  118. }
  119. if(StringUtils.isNotBlank(jtBusinessProject.getValue()) && jtBusinessProject.getValue().length() > 1024){
  120. result.getError().add(buildError("1024", "业务项目价值及作用字数不能超过1024"));
  121. }
  122. if(StringUtils.isNotBlank(jtBusinessProject.getApplyConditions()) && jtBusinessProject.getApplyConditions().length() > 512){
  123. result.getError().add(buildError("512", "项目客户条件字数不能超过512"));
  124. }
  125. if(result.getError().size()>0) {
  126. return result;
  127. }
  128. jtBusinessService.updateProject(jtBusinessProject);
  129. return result;
  130. }
  131. @RequestMapping(value = "/project/uploadPicture", method = RequestMethod.POST)
  132. public Result uploadProjectPicture(HttpServletRequest req, String sign) {
  133. Result res = new Result();
  134. AttachmentType attachmentType = AttachmentType.getField(sign);
  135. if (attachmentType == AttachmentType.JT_PROJECT_PICTURE
  136. ) {
  137. res.setData(handleFiles(res, "/jtProjects/", false, req, sign, ""));
  138. } else {
  139. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "图片"));
  140. }
  141. return res;
  142. }
  143. @RequestMapping(value = "/project/uploadPicture64", method = RequestMethod.POST)
  144. public Result uploadProjectPicture64(String picturebase, String filename,String sign) {
  145. Result res = new Result();
  146. byte[] bs=Base64.getDecoder().decode(picturebase);
  147. AttachmentType attachmentType = AttachmentType.getField(sign);
  148. if (attachmentType == AttachmentType.JT_PROJECT_PICTURE) {
  149. //res.setData(handleFiles(res, "/jtProjects/", false, req, sign, ""));
  150. res.setData(handleBaseFiles(res, "/jtProjects/", false,bs, sign, TokenManager.getUserId(),filename));
  151. } else {
  152. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "图片"));
  153. }
  154. return res;
  155. }
  156. /*
  157. * 查询品类
  158. *
  159. * */
  160. @RequestMapping(value="/category/list",method=RequestMethod.GET)
  161. private Result getCategoryList(JtBusinessCategory jtBusinessCategory,Integer pageNo,Integer pageSize) {
  162. Result result=new Result();
  163. result.setData(JtBusinessServiceWithCategoryMapper.getCategoryListByCondition(jtBusinessCategory,pageNo,pageSize));
  164. return result;
  165. }
  166. /**
  167. * 发布项目
  168. * @param id
  169. * @param auditStatus
  170. * @return
  171. */
  172. @RequestMapping(value = "/project/publish",method=RequestMethod.GET)
  173. public Result publishProject(String id,Integer auditStatus){
  174. Result res = new Result();
  175. JtBusinessProject currentP=jtBusinessService.getBusinessProjectDetail(id);
  176. Integer audit=currentP.getAuditStatus();
  177. // if(audit != ProjectAuditStatus.CREATE.getCode() && audit !=ProjectAuditStatus.REVOKE.getCode()&& audit!=ProjectAuditStatus.UNAUDITED.getCode()){
  178. // res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "当前状态无法发布"));
  179. // return res;
  180. // }
  181. JtBusinessProject jtBusinessProject = new JtBusinessProject();
  182. jtBusinessProject.setId(id);
  183. jtBusinessProject.setAuditStatus(ProjectAuditStatus.SUBMIT.getCode());
  184. jtBusinessProject.setReleaseDate(new Date());
  185. jtBusinessService.updateProject(jtBusinessProject);
  186. return res;
  187. }
  188. /**
  189. * 撤销发布
  190. * @param id
  191. * @param auditStatus
  192. * @return
  193. */
  194. @RequestMapping(value = "/project/offShelf",method=RequestMethod.GET)
  195. public Result offShelf(String id,Integer auditStatus){
  196. Result res = new Result();
  197. if(auditStatus != ProjectAuditStatus.AUDITED.getCode()){
  198. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "当前状态无法撤销发布"));
  199. return res;
  200. }
  201. JtBusinessProject jtBusinessProject = new JtBusinessProject();
  202. jtBusinessProject.setId(id);
  203. jtBusinessProject.setAuditStatus(ProjectAuditStatus.REVOKE.getCode());
  204. jtBusinessService.updateJtCollectSearch(id);
  205. jtBusinessService.updateByPrimaryKeySelective(jtBusinessProject);
  206. return res;
  207. }
  208. /**
  209. * 刷新发布时间
  210. * @param id
  211. * @param auditStatus
  212. * @return
  213. */
  214. @RequestMapping(value = "/project/refreshPublish",method=RequestMethod.GET)
  215. public Result refreshPublish(String id,Integer auditStatus){
  216. Result res = new Result();
  217. if(auditStatus != ProjectAuditStatus.AUDITED.getCode()){
  218. res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "当前状态无法刷新发布"));
  219. }
  220. JtBusinessProject jtBusinessProject = new JtBusinessProject();
  221. jtBusinessProject.setId(id);
  222. jtBusinessProject.setReleaseDate(new Date());
  223. jtBusinessService.updateProject(jtBusinessProject);
  224. return res;
  225. }
  226. /*
  227. * 标签列表
  228. * */
  229. @RequestMapping(value="/tag/list",method=RequestMethod.GET)
  230. private Result detailJtTag(JtTag a,Integer pageNo,Integer pageSize) {
  231. Result result=new Result();
  232. result.data(jtTagService.selectListJtTag(a,pageNo,pageSize));
  233. return result;
  234. }
  235. }