|
|
@@ -23,6 +23,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.goafanti.achievement.bo.AchievementImportBo;
|
|
|
import com.goafanti.achievement.bo.InputAchievement;
|
|
|
+import com.goafanti.achievement.service.AchievementOrderService;
|
|
|
import com.goafanti.achievement.service.AchievementService;
|
|
|
import com.goafanti.admin.service.AftFileService;
|
|
|
import com.goafanti.common.bo.Result;
|
|
|
@@ -32,10 +33,12 @@ import com.goafanti.common.controller.CertifyApiController;
|
|
|
import com.goafanti.common.enums.AchievementAuditStatus;
|
|
|
import com.goafanti.common.enums.AchievementFields;
|
|
|
import com.goafanti.common.enums.AchievementImportFields;
|
|
|
+import com.goafanti.common.enums.AchievementOrderStatus;
|
|
|
import com.goafanti.common.enums.AchievementReleaseStatus;
|
|
|
import com.goafanti.common.enums.AttachmentType;
|
|
|
import com.goafanti.common.enums.DeleteStatus;
|
|
|
import com.goafanti.common.model.Achievement;
|
|
|
+import com.goafanti.common.model.AchievementOrder;
|
|
|
import com.goafanti.common.model.AftFile;
|
|
|
import com.goafanti.common.utils.LoggerUtils;
|
|
|
import com.goafanti.common.utils.StringUtils;
|
|
|
@@ -46,12 +49,14 @@ import com.goafanti.user.service.UserService;
|
|
|
@RequestMapping(value = "/api/admin/achievement")
|
|
|
public class AdminAchievementApiController extends CertifyApiController {
|
|
|
@Resource
|
|
|
- private AchievementService achievementService;
|
|
|
+ private AchievementService achievementService;
|
|
|
@Resource
|
|
|
- private UserService userService;
|
|
|
+ private UserService userService;
|
|
|
@Resource
|
|
|
- private AftFileService aftFileService;
|
|
|
-
|
|
|
+ private AftFileService aftFileService;
|
|
|
+ @Resource
|
|
|
+ private AchievementOrderService achievementOrderService;
|
|
|
+
|
|
|
/**
|
|
|
* 个人成果列表
|
|
|
*/
|
|
|
@@ -94,7 +99,7 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
category, status, releaseDateStartDate, releaseDateEndDate, releaseStatus, pNo, pSize));
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 个人成果所有人列表
|
|
|
*/
|
|
|
@@ -120,7 +125,7 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
res.setData(userService.selectAchievementOrgOwner(name));
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 个人成果详情详情
|
|
|
*/
|
|
|
@@ -149,7 +154,6 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 新增成果
|
|
|
*/
|
|
|
@@ -210,22 +214,22 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
achievementService.updateAchievement(a, keywords);
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 科技成果匹配科技需求
|
|
|
*/
|
|
|
@RequestMapping(value = "/matchDemand", method = RequestMethod.POST)
|
|
|
- public Result matchDemand(String id){
|
|
|
+ public Result matchDemand(String id) {
|
|
|
Result res = new Result();
|
|
|
if (StringUtils.isBlank(id)) {
|
|
|
res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果ID", "成果ID"));
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
Achievement a = achievementService.selectByPrimaryKey(id);
|
|
|
if (null == a || !AchievementAuditStatus.AUDITED.getCode().equals(a.getAuditStatus())
|
|
|
|| !DeleteStatus.UNDELETE.getCode().equals(a.getDeletedSign())
|
|
|
- || !AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())){
|
|
|
+ || !AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())) {
|
|
|
res.getError().add(buildError("", "当前状态无法匹配!"));
|
|
|
return res;
|
|
|
}
|
|
|
@@ -238,14 +242,14 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
*/
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@RequestMapping(value = "/importAchievement", method = RequestMethod.POST)
|
|
|
- public Result importAchievement(@RequestParam(name = "data", required = false)String d) {
|
|
|
+ public Result importAchievement(@RequestParam(name = "data", required = false) String d) {
|
|
|
Result res = new Result();
|
|
|
List<AchievementImportBo> data = JSON.parseArray(d, AchievementImportBo.class);
|
|
|
if (data == null || data.isEmpty()) {
|
|
|
res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "导入数据"));
|
|
|
return res;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
if (data.size() > AFTConstants.IMPORTMAXLENTH) {
|
|
|
res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "导入数据量"));
|
|
|
return res;
|
|
|
@@ -337,8 +341,6 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
/**
|
|
|
* 成果撤消发布(下架)
|
|
|
*/
|
|
|
@@ -436,15 +438,21 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
@RequestMapping(value = "/delete", method = RequestMethod.POST)
|
|
|
private Result delete(@RequestParam(name = "ids[]", required = false) String[] ids) {
|
|
|
Result res = new Result();
|
|
|
- if (ids == null || ids.length < 1) {
|
|
|
+ if (ids == null || ids.length != 1) {
|
|
|
res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", ""));
|
|
|
} else {
|
|
|
+ List<AchievementOrder> list = achievementOrderService.selectAchievementOrderByAchievementId(ids[0]);
|
|
|
+ for (AchievementOrder order : list) {
|
|
|
+ if (!AchievementOrderStatus.CREATE.getCode().equals(order.getStatus())) {
|
|
|
+ res.getError().add(buildError("", "当前科技成果有订单,无法删除!"));
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ }
|
|
|
res.setData(achievementService.deleteByPrimaryKey(Arrays.asList(ids)));
|
|
|
}
|
|
|
return res;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private Result disposeInputAchievement(Result res, InputAchievement ia, String[] keywords) {
|
|
|
if (StringUtils.isBlank(ia.getName())) {
|
|
|
res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到成果名称", "成果名称"));
|
|
|
@@ -505,13 +513,13 @@ public class AdminAchievementApiController extends CertifyApiController {
|
|
|
|
|
|
private Result disposeImportAchievement(Result res, List<AchievementImportBo> data) {
|
|
|
Field[] field = AchievementImportBo.class.getDeclaredFields();
|
|
|
- for (AchievementImportBo bo: data) {
|
|
|
+ for (AchievementImportBo bo : data) {
|
|
|
for (Field f : field) {
|
|
|
f.setAccessible(true);
|
|
|
try {
|
|
|
if (!f.getName().equals("keywords") && (f.get(bo) == null || "".equals(f.get(bo)))) {
|
|
|
- res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", AchievementImportFields
|
|
|
- .getFieldDesc(f.getName())));
|
|
|
+ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "",
|
|
|
+ AchievementImportFields.getFieldDesc(f.getName())));
|
|
|
return res;
|
|
|
}
|
|
|
} catch (IllegalArgumentException | IllegalAccessException e) {
|