Browse Source

分期逾期卖家直接取消订单功能修改

zengchao 8 years ago
parent
commit
d555869826

+ 0 - 13
src/main/java/com/uas/platform/b2c/trade/order/controller/OrderController.java

@@ -576,19 +576,6 @@ public class OrderController {
 		return orderService.releaseOrder(orderid, reason);
 	}
 
-	/**
-	 * 卖家取消订单 释放库存
-	 *
-	 * @param orderid the orderid
-	 * @param reason  the reason
-	 * @return the string
-	 */
-	@RequestMapping(value = "simpleinfo/ones/{orderid}/releaseByVendor", method = RequestMethod.PUT)
-	public String releaseOrderByVendor(@PathVariable String orderid, @RequestBody String reason) {
-		logger.log("卖家订单管理", "取消订单", "根据订单号: " + orderid + "取消订单,释放库存");
-		return orderService.releaseByVendor(orderid);
-	}
-
 	/**
 	 * 失效订单 (因确认是订单批次库存不足)
 	 *

+ 13 - 0
src/main/java/com/uas/platform/b2c/trade/order/controller/PurchaseController.java

@@ -597,4 +597,17 @@ public class PurchaseController {
 	public String findOrderIdByPuId(@PathVariable("purchaseId") String purchaseId){
 		return purchaseService.findOrderIdByPuId(purchaseId);
 	}
+
+	/**
+	 * 卖家取消订单 释放库存
+	 *
+	 * @param orderid the orderid
+	 * @param reason  the reason
+	 * @return the string
+	 */
+	@RequestMapping(value = "simpleinfo/ones/{orderid}/releaseByVendor", method = RequestMethod.PUT)
+	public String releaseOrderByVendor(@PathVariable String orderid, @RequestBody String reason) {
+		logger.log("卖家订单管理", "取消订单", "根据订单号: " + orderid + "取消订单,释放库存");
+		return purchaseService.releaseByVendor(orderid);
+	}
 }

+ 0 - 7
src/main/java/com/uas/platform/b2c/trade/order/service/OrderService.java

@@ -399,13 +399,6 @@ public interface OrderService {
 	 */
 	String releaseOrder(String orderid, String reason);
 
-	/**
-	 * 卖家取消订单,释放库存
-	 *
-	 * @param orderid the orderid
-	 * @return string string
-	 */
-	String releaseByVendor(String orderid);
 	/**
 	 * 失效订单 (因确认是订单批次库存不足)
 	 *

+ 8 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/PurchaseService.java

@@ -399,4 +399,12 @@ public interface PurchaseService {
 	 * @return Logistics
 	 */
 	Logistics findByLgtId(Long lgtId);
+
+	/**
+	 * 卖家取消订单,释放库存
+	 *
+	 * @param orderid the orderid
+	 * @return string string
+	 */
+	String releaseByVendor(String orderid);
 }

+ 0 - 77
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java

@@ -2151,83 +2151,6 @@ public class OrderServiceImpl implements OrderService {
         return "success";
     }
 
-    /**
-     * 卖家取消订单,释放库存
-     *
-     * @param orderid
-     * @return string string
-     */
-    @Transactional
-    @Override
-    public String releaseByVendor(String orderid) {
-        Order order = orderDao.findByOrderid(orderid);
-        if (order == null) {
-            throw new IllegalOperatorException("此订单不存在");
-        }
-        Long installmentId = order.getInstallmentId();
-        if (installmentId != null) {
-            Installment installment = installmentDao.findOne(installmentId);
-            if (installment == null) {
-                throw new IllegalOperatorException("订单:" + order.getOrderid() + "分期信息有误,请重新确认或联系客服");
-            }
-            order.setInstallment(installment);
-        }
-        if (SystemSession.getUser().getUserUU() == null) {
-            throw new IllegalOperatorException("您当前的账号不存在或未登录!请重新登录");
-        }
-        if (SystemSession.getUser().getUserUU() != order.getInstallment().getSellerenuu()) {
-            throw new IllegalOperatorException("您当前的账号登录异常!请重新登录");
-        }
-        Set<Integer> status = new HashSet<>();
-        Collections.addAll(status, Status.TOBECONFIRMED.value(), Status.TOBEPAID.value(), Status.CONFIRMED.value());
-        if (!status.contains(order.getStatus())) {
-            throw new IllegalOperatorException("此订单已付款,不可取消订单");
-        }
-        Date dateDeadline = order.getInstallment().getInstallmentDetails().get(0).getDeadline();
-        Date datePaidData = order.getInstallment().getInstallmentDetails().get(0).getPaidDate();
-        Date newDate = new Date();
-        if (dateDeadline.after(datePaidData) && datePaidData != null) {
-            throw new IllegalOperatorException("买家已付款且付款日期没有超过截止期限,不可取消订单");
-        }
-        if (dateDeadline.after(newDate) && datePaidData == null) {
-            throw new IllegalOperatorException("没有超过付款截止日期,不可取消订单");
-        }
-        Set<String> uuids = new HashSet<>();
-        Long uu = SystemSession.getUser().getUserUU();
-        order.setStatusUnAvailablePersonal(uu);
-        order.setUnavailableTime(new Date());
-        Set<OrderDetail> orderDetails = order.getOrderDetails();
-        for (OrderDetail orderDetail : orderDetails) {
-            if (orderDetail.getStatus().equals(Status.CONFIRMED.value())
-                    || orderDetail.getStatus().equals(Status.TOBEPAID.value())) {
-                uuids.add(orderDetail.getUuid());
-                orderDetail.setStatusUnAvailablePersonal(uu);
-                goodsService.releaseReserve(orderDetail.getBatchCode(), orderDetail.getNumber());
-            }
-        }
-        List<Purchase> purchases = purchaseDao.findByOrderid(order.getOrderid());
-        if (!CollectionUtils.isEmpty(purchases)) {
-            for (Purchase purchase : purchases) {
-                int puStatus = purchase.getStatus().intValue();
-                purchase.setStatusUnAvailablePersonal(uu);
-                purchase.setUnavailableTime(new Date());
-                for (PurchaseDetail detail : purchase.getPurchaseDetails()) {
-                    if (puStatus == detail.getStatus().intValue()) {
-                        detail.setStatusUnAvailablePersonal(uu);
-                        detail.setUnavailableTime(new Date());
-                    }
-                }
-            }
-        }
-        purchaseDao.save(purchases);
-        orderDao.save(order);
-        for (String uuid : uuids) {
-            goodsService.updateComponentTradeInfos(uuid);
-        }
-        return "success";
-    }
-
-
     // TODO 查询接口 支持类型 :现货
     @Override
     public ModelMap findUserVenderByCode(String orderid) {

+ 76 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/PurchaseServiceImpl.java

@@ -1575,4 +1575,80 @@ public class PurchaseServiceImpl implements PurchaseService {
 	public Logistics findByLgtId(Long lgtId) {
 		return logisticsDao.findOne(lgtId);
 	}
+
+	/**
+	 * 卖家取消订单,释放库存
+	 *
+	 * @param orderid
+	 * @return string string
+	 */
+	@Transactional
+	@Override
+	public String releaseByVendor(String orderid) {
+		Order order = orderDao.findByOrderid(orderid);
+		if (order == null) {
+			throw new IllegalOperatorException("此订单不存在");
+		}
+		Long installmentId = order.getInstallmentId();
+		if (installmentId != null) {
+			Installment installment = installmentDao.findOne(installmentId);
+			if (installment == null) {
+				throw new IllegalOperatorException("订单:" + order.getOrderid() + "分期信息有误,请重新确认或联系客服");
+			}
+			order.setInstallment(installment);
+		}
+		if (SystemSession.getUser().getUserUU() == null) {
+			throw new IllegalOperatorException("您当前的账号不存在或未登录!请重新登录");
+		}
+		if (SystemSession.getUser().getUserUU() != order.getInstallment().getSellerenuu()) {
+			throw new IllegalOperatorException("您当前的账号登录异常!请重新登录");
+		}
+		Set<Integer> status = new HashSet<>();
+		Collections.addAll(status, Status.TOBECONFIRMED.value(), Status.TOBEPAID.value(), Status.CONFIRMED.value());
+		if (!status.contains(order.getStatus())) {
+			throw new IllegalOperatorException("此订单已付款,不可取消订单");
+		}
+		Date dateDeadline = order.getInstallment().getInstallmentDetails().get(0).getDeadline();
+		Date datePaidData = order.getInstallment().getInstallmentDetails().get(0).getPaidDate();
+		Date newDate = new Date();
+		if (dateDeadline.after(datePaidData) && datePaidData != null) {
+			throw new IllegalOperatorException("买家已付款且付款日期没有超过截止期限,不可取消订单");
+		}
+		if (dateDeadline.after(newDate) && datePaidData == null) {
+			throw new IllegalOperatorException("没有超过付款截止日期,不可取消订单");
+		}
+		Set<String> uuids = new HashSet<>();
+		Long uu = SystemSession.getUser().getUserUU();
+		order.setStatusUnAvailablePersonal(uu);
+		order.setUnavailableTime(new Date());
+		Set<OrderDetail> orderDetails = order.getOrderDetails();
+		for (OrderDetail orderDetail : orderDetails) {
+			if (orderDetail.getStatus().equals(Status.CONFIRMED.value())
+					|| orderDetail.getStatus().equals(Status.TOBEPAID.value())) {
+				uuids.add(orderDetail.getUuid());
+				orderDetail.setStatusUnAvailablePersonal(uu);
+				goodsService.releaseReserve(orderDetail.getBatchCode(), orderDetail.getNumber());
+			}
+		}
+		List<Purchase> purchases = purchaseDao.findByOrderid(order.getOrderid());
+		if (!org.springframework.util.CollectionUtils.isEmpty(purchases)) {
+			for (Purchase purchase : purchases) {
+				int puStatus = purchase.getStatus().intValue();
+				purchase.setStatusUnAvailablePersonal(uu);
+				purchase.setUnavailableTime(new Date());
+				for (PurchaseDetail detail : purchase.getPurchaseDetails()) {
+					if (puStatus == detail.getStatus().intValue()) {
+						detail.setStatusUnAvailablePersonal(uu);
+						detail.setUnavailableTime(new Date());
+					}
+				}
+			}
+		}
+		purchaseDao.save(purchases);
+		orderDao.save(order);
+		for (String uuid : uuids) {
+			goodsService.updateComponentTradeInfos(uuid);
+		}
+		return "success";
+	}
 }