|
|
@@ -1,13 +1,16 @@
|
|
|
package com.goafanti.admin.controller;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
import java.text.ParseException;
|
|
|
-import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.validation.Valid;
|
|
|
|
|
|
+import org.apache.commons.lang3.time.DateUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
@@ -15,8 +18,10 @@ import org.springframework.validation.BindingResult;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import com.goafanti.common.bo.Result;
|
|
|
+import com.goafanti.common.constant.AFTConstants;
|
|
|
import com.goafanti.common.constant.ErrorConstants;
|
|
|
import com.goafanti.common.controller.CertifyApiController;
|
|
|
import com.goafanti.common.enums.CopyrightFields;
|
|
|
@@ -25,10 +30,14 @@ import com.goafanti.common.model.TechProjectLog;
|
|
|
import com.goafanti.common.model.TechWebsite;
|
|
|
import com.goafanti.common.model.User;
|
|
|
import com.goafanti.common.utils.Base64Utils;
|
|
|
-import com.goafanti.common.utils.DateUtils;
|
|
|
+import com.goafanti.common.utils.FileUtils;
|
|
|
+import com.goafanti.common.utils.LoggerUtils;
|
|
|
import com.goafanti.common.utils.StringUtils;
|
|
|
import com.goafanti.core.mybatis.page.Pagination;
|
|
|
+import com.goafanti.core.shiro.token.TokenManager;
|
|
|
import com.goafanti.techproject.bo.InputTechProject;
|
|
|
+import com.goafanti.techproject.bo.InputTechProjectLog;
|
|
|
+import com.goafanti.techproject.bo.InputTechWebsite;
|
|
|
import com.goafanti.techproject.bo.TechProjectManageListBo;
|
|
|
import com.goafanti.techproject.bo.TechWebsiteDetailBo;
|
|
|
import com.goafanti.techproject.bo.TechWebsiteListBo;
|
|
|
@@ -62,6 +71,9 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
@RequestMapping(value = "/listTechProject", method = RequestMethod.POST)
|
|
|
public Result listClientTechProject(String province, String unitName, String pageNo, String pageSize) {
|
|
|
Result res = new Result();
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
Integer pNo = 1;
|
|
|
Integer pSize = 10;
|
|
|
if (StringUtils.isNumeric(pageSize)) {
|
|
|
@@ -70,7 +82,8 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
if (StringUtils.isNumeric(pageNo)) {
|
|
|
pNo = Integer.parseInt(pageNo);
|
|
|
}
|
|
|
- Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, pNo, pSize);
|
|
|
+ Pagination<TechProjectManageListBo> t = techProjectService.listManageTechProject(province, unitName, pNo,
|
|
|
+ pSize);
|
|
|
if (null != t) {
|
|
|
List<TechProjectManageListBo> l = (List<TechProjectManageListBo>) t.getList();
|
|
|
for (TechProjectManageListBo w : l) {
|
|
|
@@ -124,7 +137,14 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
@RequestMapping(value = "/techProjectDetial", method = RequestMethod.POST)
|
|
|
public Result techProjectDetial(String pid) {
|
|
|
Result res = new Result();
|
|
|
- res.setData(techProjectService.selectProjectDetail(pid));
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(pid)) {
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "公司"));
|
|
|
+ } else {
|
|
|
+ res.setData(techProjectService.selectProjectDetail(pid));
|
|
|
+ }
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
@@ -137,7 +157,14 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
@RequestMapping(value = "/techProjectLog", method = RequestMethod.POST)
|
|
|
public Result techProjectLog(String pid) {
|
|
|
Result res = new Result();
|
|
|
- res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(pid)) {
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技项目申报ID"));
|
|
|
+ } else {
|
|
|
+ res.setData(techProjectLogService.selectTechProjectLogByPid(pid));
|
|
|
+ }
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
@@ -151,14 +178,42 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
* @throws ParseException
|
|
|
*/
|
|
|
@RequestMapping(value = "/updateTechProject", method = RequestMethod.POST)
|
|
|
- public Result updateTechProject(TechProject t, TechProjectLog l, String recordTimeFormattedDate)
|
|
|
- throws ParseException {
|
|
|
+ public Result updateTechProject(@Valid InputTechProject techProject, @Valid InputTechProjectLog log, BindingResult bindingResult, String recordTimeFormattedDate) {
|
|
|
Result res = new Result();
|
|
|
+ if (bindingResult.hasErrors()) {
|
|
|
+ res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
|
|
|
+ CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(techProject.getId())) {
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技申报项目", "科技项目申报ID"));
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ TechProject t = techProjectService.selectByPrimaryKey(techProject.getId());
|
|
|
+ if (null == t){
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "找不到申报项目", "科技项目申报"));
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
Date recordTime = null;
|
|
|
if (!StringUtils.isBlank(recordTimeFormattedDate)) {
|
|
|
- recordTime = DateUtils.parseDate(recordTimeFormattedDate, "yyyy-MM-dd");
|
|
|
+ try {
|
|
|
+ recordTime = DateUtils.parseDate(recordTimeFormattedDate, AFTConstants.YYYYMMDD);
|
|
|
+ } catch (ParseException e) {
|
|
|
+ }
|
|
|
}
|
|
|
- res.setData(techProjectService.updateTechProject(t, l, recordTime));
|
|
|
+
|
|
|
+ TechProject tp = new TechProject();
|
|
|
+ TechProjectLog tpl = new TechProjectLog();
|
|
|
+ tp.setId(techProject.getId());
|
|
|
+ BeanUtils.copyProperties(techProject, tp);
|
|
|
+ BeanUtils.copyProperties(log, tpl);
|
|
|
+ res.setData(techProjectService.updateTechProject(tp, tpl, recordTime));
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
@@ -169,33 +224,39 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/deleteTechProject", method = RequestMethod.POST)
|
|
|
- public Result deleteTechProject(@RequestParam(name = "ids[]", required = true) String[] ids) {
|
|
|
+ public Result deleteTechProject(@RequestParam(name = "ids[]", required = false) String[] ids) {
|
|
|
Result res = new Result();
|
|
|
- List<String> id = new ArrayList<String>();
|
|
|
- for (String s : ids) {
|
|
|
- id.add(s);
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (ids == null || ids.length < 1) {
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
|
|
|
+ } else {
|
|
|
+ res.setData(techProjectService.deleteByPrimaryKey(Arrays.asList(ids)));
|
|
|
}
|
|
|
- res.setData(techProjectService.deleteByPrimaryKey(id));
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 删除科技网址记录
|
|
|
+ *
|
|
|
* @param ids
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/deleteTechWebsite", method = RequestMethod.POST)
|
|
|
- public Result deleteTechWebsite(@RequestParam(name = "ids[]", required = true) String[] ids){
|
|
|
+ public Result deleteTechWebsite(@RequestParam(name = "ids[]", required = false) String[] ids) {
|
|
|
Result res = new Result();
|
|
|
- List<String> id = new ArrayList<String>();
|
|
|
- for (String s : ids) {
|
|
|
- id.add(s);
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (ids == null || ids.length < 1) {
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
|
|
|
+ } else {
|
|
|
+ res.setData(techWebsiteService.deleteByPrimaryKey(Arrays.asList(ids)));
|
|
|
}
|
|
|
- res.setData(techWebsiteService.deleteByPrimaryKey(id));
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 科技单位网址管理list
|
|
|
*/
|
|
|
@@ -203,6 +264,9 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
@RequestMapping(value = "/listTechWebsite", method = RequestMethod.POST)
|
|
|
public Result listTechWebsite(String province, String unitName, String pageNo, String pageSize) {
|
|
|
Result res = new Result();
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
Integer pNo = 1;
|
|
|
Integer pSize = 10;
|
|
|
if (StringUtils.isNumeric(pageSize)) {
|
|
|
@@ -235,11 +299,18 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
@RequestMapping(value = "/techWebsiteDetail", method = RequestMethod.POST)
|
|
|
public Result techWebsiteDetail(String id) {
|
|
|
Result res = new Result();
|
|
|
- TechWebsiteDetailBo w = techWebsiteService.selectTechWebsiteDetail(id);
|
|
|
- if (null != w && !StringUtils.isBlank(w.getPassword())) {
|
|
|
- w.setPassword(Base64Utils.decodeData(w.getPassword()));
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (StringUtils.isBlank(id)) {
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "公司"));
|
|
|
+ } else {
|
|
|
+ TechWebsiteDetailBo w = techWebsiteService.selectTechWebsiteDetail(id);
|
|
|
+ if (null != w && !StringUtils.isBlank(w.getPassword())) {
|
|
|
+ w.setPassword(Base64Utils.decodeData(w.getPassword()));
|
|
|
+ }
|
|
|
+ res.setData(w);
|
|
|
}
|
|
|
- res.setData(w);
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
@@ -250,12 +321,80 @@ public class AdminTechProjectController extends CertifyApiController {
|
|
|
* @return
|
|
|
*/
|
|
|
@RequestMapping(value = "/disposeTechWebsite", method = RequestMethod.POST)
|
|
|
- public Result disposeTechWebsite(TechWebsite w) {
|
|
|
+ public Result disposeTechWebsite(@Valid InputTechWebsite w, BindingResult bindingResult) {
|
|
|
Result res = new Result();
|
|
|
+ if (bindingResult.hasErrors()) {
|
|
|
+ res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
|
|
|
+ CopyrightFields.getFieldDesc(bindingResult.getFieldError().getField())));
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(w.getUid())) {
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户"));
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ User curUser = userService.selectByPrimaryKey(w.getUid());
|
|
|
+ if (!checkCertify(res, curUser)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
if (null != w && null != (w.getPassword())) {
|
|
|
w.setPassword(Base64Utils.encodeData(w.getPassword().trim()));
|
|
|
}
|
|
|
- res.setData(techWebsiteService.saveWebsite(w));
|
|
|
+
|
|
|
+ TechWebsite tw = new TechWebsite();
|
|
|
+ BeanUtils.copyProperties(w, tw);
|
|
|
+
|
|
|
+ res.setData(techWebsiteService.saveWebsite(tw));
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 科技项目申报材料上传
|
|
|
+ * @param req
|
|
|
+ * @param uid
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/upload", method = RequestMethod.POST)
|
|
|
+ public Result cognizanceFile(HttpServletRequest req, String uid) {
|
|
|
+ Result res = new Result();
|
|
|
+ if (!checkAdminLogin(res)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ User curUser = userService.selectByPrimaryKey(uid);
|
|
|
+ if (!checkCertify(res, curUser)) {
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ String sign = "tech_project";
|
|
|
+ res.setData(handleFile(res, "/techProject/", true, req, sign, uid));
|
|
|
return res;
|
|
|
}
|
|
|
+
|
|
|
+ private String handleFile(Result res, String path, boolean isPrivate, HttpServletRequest req, String sign,
|
|
|
+ String uid) {
|
|
|
+ List<MultipartFile> files = getFiles(req);
|
|
|
+ MultipartFile mf = files.get(0);
|
|
|
+
|
|
|
+ String fileName = FileUtils.mosaicFileName(mf, isPrivate, sign, path,
|
|
|
+ StringUtils.isBlank(uid) ? TokenManager.getUserId() : uid);
|
|
|
+ if (!files.isEmpty()) {
|
|
|
+ try {
|
|
|
+ mf.transferTo(toPrivateFile(fileName));
|
|
|
+ LoggerUtils.debug(getClass(), fileName + " 文件上传成功");
|
|
|
+ } catch (IllegalStateException | IOException e) {
|
|
|
+ LoggerUtils.error(getClass(), "文件上传失败", e);
|
|
|
+ res.getError().add(buildError("", "文件上传失败!"));
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ res.getError().add(buildError("", "文件上传失败!"));
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ return fileName;
|
|
|
+ }
|
|
|
}
|