Browse Source

个人用户--需求修改(管理端)

Antiloveg 8 years ago
parent
commit
5fc3095d43

+ 69 - 28
src/main/java/com/goafanti/admin/controller/AdminDemandApiController.java

@@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
 import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
+import com.goafanti.common.enums.DemandDataCategory;
 import com.goafanti.common.enums.DemandFields;
 import com.goafanti.common.enums.DemandReleaseStatus;
 import com.goafanti.common.model.Demand;
@@ -61,11 +62,79 @@ public class AdminDemandApiController extends CertifyApiController {
 					DemandFields.getFieldDesc(bindingResult.getFieldError().getField())));
 			return res;
 		}
+		res = disposeDemand(res, demand);
+		if (!res.getError().isEmpty()){
+			return res;
+		}
+		
+		Demand d = new Demand();
+		BeanUtils.copyProperties(demand, d);
+		demandService.saveUserDemandByManager(d, validityPeriodFormattedDate);
+		return res;
+	}
+	
+	/**
+	 * 修改个人用户需求
+	 */
+	@RequestMapping(value = "/userUpdate", method = RequestMethod.POST)
+	public Result updateUser(@Valid InputDemand demand, BindingResult bindingResult, String validityPeriodFormattedDate){
+		Result res = new Result();
+		if (bindingResult.hasErrors()) {
+			res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
+					DemandFields.getFieldDesc(bindingResult.getFieldError().getField())));
+			return res;
+		}
+		
+		if (StringUtils.isBlank(demand.getId())){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求ID", "需求ID"));
+			return res;
+		}
+		
+		res = disposeDemand(res, demand);
+		if (!res.getError().isEmpty()){
+			return res;
+		}
+		
+		Demand d = new Demand();
+		BeanUtils.copyProperties(demand, d);
+		res.setData(demandService.updateUserDemandByManager(d, validityPeriodFormattedDate));
+		return res;
+	}
 
+	/**
+	 * 组织用户--需求列表
+	 */
+	@RequestMapping(value = "/orgList", method = RequestMethod.GET)
+	public Result orgList(String province, Integer serialNumber, String name, String keyword, Integer infoSources,
+			Integer demandType, String validityPeriodStartDate, String validityPeriodEndDate, String username,
+			Integer status, Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate,
+			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(demandService.selectOrgDemandManageList(province, serialNumber, name, keyword, infoSources,
+				demandType, validityPeriodStartDate, validityPeriodEndDate, username, status, releaseStatus,
+				releaseDateStartDate, releaseDateEndDate, pNo, pSize));
+		return res;
+	}
+	
+	private Result disposeDemand(Result res, InputDemand demand){
 		if (StringUtils.isBlank(demand.getName())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到需求名称", "需求名称"));
 			return res;
 		}
+		
+		if (!DemandDataCategory.USERDEMAND.getCode().equals(demand.getDataCategory())){
+			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "数据类型"));
+			return res;
+		}
 
 		if (StringUtils.isBlank(demand.getEmployerId())) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到雇主ID", "雇主ID"));
@@ -107,34 +176,6 @@ public class AdminDemandApiController extends CertifyApiController {
 			res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "是否发布"));
 			return res;
 		}
-		
-		Demand d = new Demand();
-		BeanUtils.copyProperties(demand, d);
-		demandService.saveUserDemandByManager(d, validityPeriodFormattedDate);
-		return res;
-	}
-
-	/**
-	 * 组织用户--需求列表
-	 */
-	@RequestMapping(value = "/orgList", method = RequestMethod.GET)
-	public Result orgList(String province, Integer serialNumber, String name, String keyword, Integer infoSources,
-			Integer demandType, String validityPeriodStartDate, String validityPeriodEndDate, String username,
-			Integer status, Integer releaseStatus, String releaseDateStartDate, String releaseDateEndDate,
-			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(demandService.selectOrgDemandManageList(province, serialNumber, name, keyword, infoSources,
-				demandType, validityPeriodStartDate, validityPeriodEndDate, username, status, releaseStatus,
-				releaseDateStartDate, releaseDateEndDate, pNo, pSize));
 		return res;
 	}
 }

+ 3 - 3
src/main/java/com/goafanti/common/enums/DemandReleaseStatus.java

@@ -7,9 +7,9 @@ import org.apache.commons.lang3.StringUtils;
 
 public enum DemandReleaseStatus {
 	
-	UNRELEASE(0, "需求未发布"),
-	RELEASED(1, "需求已发布"),
-	OTHER(2, "其他");
+	UNRELEASE(1, "需求未发布"),
+	RELEASED(2, "需求已发布"),
+	OTHER(3, "其他");
 
 	private DemandReleaseStatus(Integer code, String desc) {
 		this.code = code;

+ 5 - 5
src/main/java/com/goafanti/common/enums/DemandStatus.java

@@ -6,11 +6,11 @@ import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 
 public enum DemandStatus {
-	
-	ONGOING(0, "进行中"),
-	UNRESOLVED(1,"未解决"),
-	SOLVED(2,"已解决"),
-	OTHER(3, "其他");
+	CREATE(0, "草稿"),
+	ONGOING(1, "进行中"),
+	UNRESOLVED(2,"未解决"),
+	SOLVED(3,"已解决"),
+	OTHER(4, "其他");
 
 	private DemandStatus(Integer code, String desc) {
 		this.code = code;

+ 2 - 0
src/main/java/com/goafanti/demand/service/DemandService.java

@@ -18,4 +18,6 @@ public interface DemandService {
 
 	void saveUserDemandByManager(Demand d, String validityPeriodFormattedDate);
 
+	int updateUserDemandByManager(Demand d, String validityPeriodFormattedDate);
+
 }

+ 82 - 24
src/main/java/com/goafanti/demand/service/impl/DemandServiceImpl.java

@@ -30,16 +30,16 @@ import com.goafanti.demand.service.DemandService;
 @Service
 public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements DemandService {
 	@Autowired
-	private DemandMapper demandMapper;
+	private DemandMapper	demandMapper;
 	@Autowired
-	private DemandLogMapper demandLogMapper;
+	private DemandLogMapper	demandLogMapper;
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<DemandManageListBo> selectUserDemandManageList(String province, Integer serialNumber, String name, String keyword,
-			Integer infoSources, Integer demandType, String validityPeriodStartDate, String validityPeriodEndDate,
-			String username, Integer status, Integer releaseStatus, String releaseDateStartDate,
-			String releaseDateEndDate, Integer pNo, Integer pSize) {
+	public Pagination<DemandManageListBo> selectUserDemandManageList(String province, Integer serialNumber, String name,
+			String keyword, Integer infoSources, Integer demandType, String validityPeriodStartDate,
+			String validityPeriodEndDate, String username, Integer status, Integer releaseStatus,
+			String releaseDateStartDate, String releaseDateEndDate, Integer pNo, Integer pSize) {
 		Map<String, Object> params = new HashMap<>();
 		Date vStart = null;
 		Date vEnd = null;
@@ -89,8 +89,8 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		if (null != rEnd) {
 			params.put("rEnd", rEnd);
 		}
-		
-		if (!StringUtils.isBlank(province)){
+
+		if (!StringUtils.isBlank(province)) {
 			params.put("province", province);
 		}
 
@@ -137,8 +137,8 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		if (TokenManager.hasRole(AFTConstants.SALESMANAGERADMIN) || TokenManager.hasRole(AFTConstants.SALESMANADMIN)) {
 			params.put("principal", TokenManager.getAdminId());
 		}
-		
-		if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)){
+
+		if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
 			params.put("mid", TokenManager.getAdminId());
 		}
 
@@ -151,8 +151,8 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 	@Override
 	public Pagination<DemandManageListBo> selectOrgDemandManageList(String province, Integer serialNumber, String name,
 			String keyword, Integer infoSources, Integer demandType, String validityPeriodStartDate,
-			String validityPeriodEndDate, String username, Integer status, Integer releaseStatus, String releaseDateStartDate,
-			String releaseDateEndDate, Integer pNo, Integer pSize) {
+			String validityPeriodEndDate, String username, Integer status, Integer releaseStatus,
+			String releaseDateStartDate, String releaseDateEndDate, Integer pNo, Integer pSize) {
 		Map<String, Object> params = new HashMap<>();
 		Date vStart = null;
 		Date vEnd = null;
@@ -202,8 +202,8 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		if (null != rEnd) {
 			params.put("rEnd", rEnd);
 		}
-		
-		if (!StringUtils.isBlank(province)){
+
+		if (!StringUtils.isBlank(province)) {
 			params.put("province", province);
 		}
 
@@ -250,8 +250,8 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 		if (TokenManager.hasRole(AFTConstants.SALESMANAGERADMIN) || TokenManager.hasRole(AFTConstants.SALESMANADMIN)) {
 			params.put("principal", TokenManager.getAdminId());
 		}
-		
-		if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)){
+
+		if (TokenManager.hasRole(AFTConstants.MANAGERADMIN)) {
 			params.put("mid", TokenManager.getAdminId());
 		}
 
@@ -262,24 +262,23 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 	@Override
 	public void saveUserDemandByManager(Demand d, String validityPeriodFormattedDate) {
 		Date validityPeriod = null;
-		if (!StringUtils.isBlank(validityPeriodFormattedDate)){
+		if (!StringUtils.isBlank(validityPeriodFormattedDate)) {
 			try {
 				validityPeriod = DateUtils.parseDate(validityPeriodFormattedDate, AFTConstants.YYYYMMDD);
 			} catch (ParseException e) {
 			}
 		}
-		
+
 		d.setValidityPeriod(validityPeriod);
 		d.setId(UUID.randomUUID().toString());
-		
+
 		d.setDataCategory(DemandDataCategory.USERDEMAND.getCode());
 		d.setDeletedSign(DeleteStatus.UNDELETE.getCode());
-		
+
 		Calendar now = Calendar.getInstance();
 		now.set(Calendar.MILLISECOND, 0);
-		
-		
-		if (DemandReleaseStatus.RELEASED.getCode().equals(d.getReleaseStatus())){
+
+		if (DemandReleaseStatus.RELEASED.getCode().equals(d.getReleaseStatus())) {
 			d.setReleaseDate(now.getTime());
 			d.setStatus(DemandStatus.ONGOING.getCode());
 			DemandLog log = new DemandLog();
@@ -290,8 +289,67 @@ public class DemandServiceImpl extends BaseMybatisDao<DemandMapper> implements D
 			log.setOperator(TokenManager.getAdminId());
 			demandLogMapper.insert(log);
 		}
-		
+		d.setStatus(DemandStatus.CREATE.getCode());
 		d.setCreateTime(now.getTime());
 		demandMapper.insert(d);
 	}
+
+	@Override
+	public int updateUserDemandByManager(Demand d, String validityPeriodFormattedDate) {
+
+		Date validityPeriod = null;
+		if (!StringUtils.isBlank(validityPeriodFormattedDate)) {
+			try {
+				validityPeriod = DateUtils.parseDate(validityPeriodFormattedDate, AFTConstants.YYYYMMDD);
+			} catch (ParseException e) {
+			}
+		}
+		d.setValidityPeriod(validityPeriod);
+
+		Calendar now = Calendar.getInstance();
+		now.set(Calendar.MILLISECOND, 0);
+
+		Demand demand = demandMapper.selectByPrimaryKey(d.getId());
+		if (DemandReleaseStatus.RELEASED.getCode().equals(d.getReleaseStatus())
+				&& DemandReleaseStatus.UNRELEASE.getCode().equals(demand.getReleaseStatus())) {
+			d.setReleaseDate(now.getTime());
+			d.setStatus(DemandStatus.ONGOING.getCode());
+			DemandLog log = new DemandLog();
+			log.setId(UUID.randomUUID().toString());
+			log.setDemandId(d.getId());
+			log.setStatus(d.getStatus());
+			log.setRecoredTime(now.getTime());
+			log.setOperator(TokenManager.getAdminId());
+			demandLogMapper.insert(log);
+		}
+
+		if (DemandReleaseStatus.UNRELEASE.getCode().equals(d.getReleaseStatus())
+				&& DemandReleaseStatus.RELEASED.getCode().equals(demand.getReleaseStatus())) {
+			d.setReleaseDate(now.getTime());
+			d.setStatus(DemandStatus.CREATE.getCode());
+			DemandLog log = new DemandLog();
+			log.setId(UUID.randomUUID().toString());
+			log.setDemandId(d.getId());
+			log.setStatus(d.getStatus());
+			log.setRecoredTime(now.getTime());
+			log.setOperator(TokenManager.getAdminId());
+			demandLogMapper.insert(log);
+		}
+
+		if (DemandReleaseStatus.RELEASED.getCode().equals(d.getReleaseStatus())
+				&& (DemandStatus.SOLVED.equals(d.getStatus()) || DemandStatus.UNRESOLVED.equals(d.getStatus()))) {
+			DemandLog log = new DemandLog();
+			log.setId(UUID.randomUUID().toString());
+			log.setDemandId(d.getId());
+			log.setStatus(d.getStatus());
+			log.setRecoredTime(now.getTime());
+			log.setOperator(TokenManager.getAdminId());
+			demandLogMapper.insert(log);
+		}
+		
+		if (!DemandStatus.SOLVED.equals(d.getStatus()) && !DemandStatus.UNRESOLVED.equals(d.getStatus())){
+			d.setStatus(null);
+		}
+		return demandMapper.updateByPrimaryKeySelective(d);
+	}
 }