package com.goafanti.admin.controller; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; 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.RestController; import com.goafanti.achievement.bo.InputAchievementOrder; import com.goafanti.achievement.service.AchievementOrderLogService; import com.goafanti.achievement.service.AchievementOrderService; import com.goafanti.common.bo.Result; import com.goafanti.common.constant.ErrorConstants; import com.goafanti.common.controller.CertifyApiController; import com.goafanti.common.enums.AchievementOrderFields; import com.goafanti.common.enums.AchievementOrderStatus; import com.goafanti.common.enums.DemandOrderStatus; import com.goafanti.common.model.AchievementOrder; import com.goafanti.common.model.AchievementOrderLog; import com.goafanti.common.model.DemandOrder; import com.goafanti.common.model.DemandOrderLog; import com.goafanti.demand.bo.InputDemandOrder; import com.goafanti.demand.service.DemandOrderLogService; import com.goafanti.demand.service.DemandOrderService; @RestController @RequestMapping(value = "/api/admin/portal/order") public class AdminOrderApiController extends CertifyApiController { @Resource private AchievementOrderService achievementOrderService; @Resource private DemandOrderService demandOrderService; @Resource private DemandOrderLogService demandOrderLogService; @Resource private AchievementOrderLogService achievementOrderLogService; /** * 科技成果线索单/意向单修改 */ @RequestMapping(value = "/updateAchievementOrder", method = RequestMethod.POST) public Result updateAchievementOrder(@Valid InputAchievementOrder order, BindingResult bindingResult, String recordTimeFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), AchievementOrderFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(order.getId())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技成果线索单/意向单ID", "科技成果线索单/意向单ID")); return res; } if (StringUtils.isBlank(order.getAchievementId())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技成果ID", "科技成果ID")); return res; } if (null == order.getStatus()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技成果线索单/意向单状态", "科技成果线索单/意向单状态")); return res; } AchievementOrder ao = achievementOrderService.selectByPrimaryKey(order.getId()); if (null == ao) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果线索单/意向单ID")); return res; } if (AchievementOrderStatus.CANCELLED.getCode().equals(ao.getStatus())) { res.getError().add(buildError("", "当前科技成果线索单/意向单已关闭,无法修改!")); return res; } AchievementOrder achievementOrder = new AchievementOrder(); AchievementOrderLog aol = new AchievementOrderLog(); BeanUtils.copyProperties(order, achievementOrder); BeanUtils.copyProperties(order, aol); achievementOrderService.updateAchievementOrder(achievementOrder, aol, recordTimeFormattedDate); return res; } /** * 科技成果线索单/意向单Log */ @RequestMapping(value = "/achievementOrderLog", method = RequestMethod.GET) public Result achievementOrderLog(String achievementOrderId) { Result res = new Result(); if (StringUtils.isEmpty(achievementOrderId)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技成果订单ID")); return res; } res.setData(achievementOrderLogService.selectAdminAchievementOrderLogByAchievementOrderId(achievementOrderId)); return res; } /** * 科技成果线索单/意向单列表(个人用户) */ @RequestMapping(value = "/userAchievementOrderList", method = RequestMethod.GET) public Result userAchievementOrderList(String uid, String username, Integer status, String pageNo, String pageSize) { Result res = new Result(); Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(achievementOrderService.listUserAchievementOrder(uid, username, status, pNo, pSize)); return res; } /** * 科技成果线索单/意向单列表(组织用户) */ @RequestMapping(value = "/orgAchievementOrderList", method = RequestMethod.GET) public Result orgAchievementOrderList(String uid, String unitName, Integer status, String pageNo, String pageSize) { Result res = new Result(); Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(achievementOrderService.listOrgAchievementOrder(uid, unitName, status, pNo, pSize)); return res; } /** * 科技需求线索单/意向单列表(个人用户) */ @RequestMapping(value = "/userDemandOrderList", method = RequestMethod.GET) public Result userDemandOrderList(String uid, String username, Integer status, String pageNo, String pageSize) { Result res = new Result(); Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(demandOrderService.listUserDemandOrder(uid, username, status, pNo, pSize)); return res; } /** * 科技需求线索单/意向单列表(组织用户) */ @RequestMapping(value = "/orgDemandOrderList", method = RequestMethod.GET) public Result orgDemandOrderList(String uid, String unitName, Integer status, String pageNo, String pageSize) { Result res = new Result(); Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(demandOrderService.listOrgDemandOrder(uid, unitName, status, pNo, pSize)); return res; } /** * 科技需求线索单/意向单log */ @RequestMapping(value = "/demandOrderLog", method = RequestMethod.GET) public Result demandOrderLog(String demandOrderId) { Result res = new Result(); if (StringUtils.isEmpty(demandOrderId)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "科技需求订单ID")); return res; } res.setData(demandOrderLogService.selectAdminDemandOrderLogByDemandOrderId(demandOrderId)); return res; } /** * 科技需求线索单/意向单修改 */ @RequestMapping(value = "/updateDemandOrder", method = RequestMethod.POST) public Result updateDemandOrder(@Valid InputDemandOrder inputDemandOrder, BindingResult bindingResult, String recordTimeFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), AchievementOrderFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(inputDemandOrder.getId())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技需求线索单/意向单ID", "科技需求线索单/意向单ID")); return res; } if (StringUtils.isBlank(inputDemandOrder.getDemandId())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技需求ID", "科技需求ID")); return res; } if (null == inputDemandOrder.getStatus()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到科技需求状态", "科技需求状态")); return res; } DemandOrder demandOrder = demandOrderService.selectByPrimaryKey(inputDemandOrder.getId()); if (null == demandOrder) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求线索单/意向单ID")); return res; } if (DemandOrderStatus.SHUTDOWN.getCode().equals(demandOrder.getStatus())) { res.getError().add(buildError("", "当前科技需求线索单/意向单已关闭,无法修改!")); return res; } DemandOrder order = new DemandOrder(); DemandOrderLog dol = new DemandOrderLog(); BeanUtils.copyProperties(inputDemandOrder, order); BeanUtils.copyProperties(inputDemandOrder, dol); res.setData(demandOrderService.updateDemandOrder(order, dol, recordTimeFormattedDate)); return res; } /** * 下载科技需求线索单/意向单文件 */ @RequestMapping(value = "/downloadDemandOrder", method = RequestMethod.GET) public Result download(HttpServletResponse response, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求订单ID")); return res; } DemandOrder order = demandOrderService.selectByPrimaryKey(id); if (null == order) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技需求订单ID")); return res; } downloadUnPrivateFile(response, order.getEnclosureDownloadFileName(), order.getEnclosureUrl()); return res; } }