Browse Source

订单管理

wanghui 8 years ago
parent
commit
6f04644797

+ 33 - 0
src/main/java/com/goafanti/app/controller/AppOrderController.java

@@ -220,4 +220,37 @@ public class AppOrderController extends CertifyApiController{
 		orderServiceImpl.updateConfirmIntention(orderNo,confirm);
 		return res;
 	}
+	
+	/**
+	 * 申请退款
+	 * @param orderNo
+	 * @return
+	 */
+	@RequestMapping(value = "/applyForRefund",method = RequestMethod.POST)
+	public Result applyForRefund(String orderNo){
+		Result res = new Result();
+		if(StringUtils.isBlank(orderNo)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
+			return res;
+		}
+		orderServiceImpl.updateApplyForRefund(orderNo);
+		return res;
+	}
+	
+	/**
+	 * 确认退款
+	 * @param orderNo
+	 * @param confirm
+	 * @return
+	 */
+	@RequestMapping(value = "/confirmRefund", method = RequestMethod.POST)
+	public Result confirmRefund(String orderNo,boolean confirm){
+		Result res = new Result();
+		if(StringUtils.isBlank(orderNo)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
+			return res;
+		}
+		orderServiceImpl.updateConfirmRefund(orderNo,confirm);
+		return res;
+	}
 }

+ 0 - 3
src/main/java/com/goafanti/common/mapper/TOrderMapper.xml

@@ -1344,9 +1344,6 @@
 		<if test="financeName != null and financeName != ''">
 			and d.name =  #{financeName,jdbcType=VARCHAR}
 		</if>
-		<if test="page_sql != null">
-			${page_sql}
-		</if>
   </select>
   <select id="selectBillByPage" resultType="com.goafanti.order.bo.BillListBo">
 	select

+ 17 - 0
src/main/java/com/goafanti/order/controller/AdminOrderApiController.java

@@ -570,4 +570,21 @@ public class AdminOrderApiController extends CertifyApiController {
 		res.setData(orderServiceImpl.selectBillByOrderNo(orderNo));
 		return res;
 	}
+	
+	/**
+	 * 确认退款
+	 * @param orderNo
+	 * @param confirm
+	 * @return
+	 */
+	@RequestMapping(value = "/confirmRefund", method = RequestMethod.GET)
+	public Result confirmRefund(String orderNo,boolean confirm){
+		Result res = new Result();
+		if(StringUtils.isBlank(orderNo)){
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"","订单编号"));
+			return res;
+		}
+		orderServiceImpl.updateConfirmRefund(orderNo,confirm);
+		return res;
+	}
 }

+ 14 - 0
src/main/java/com/goafanti/order/service/OrderService.java

@@ -406,4 +406,18 @@ public interface OrderService {
 	 * @return
 	 */
 	List<BillListBo> selectBillByOrderNo(String orderNo);
+
+	/**
+	 * 申请退款(买家)
+	 * @param orderNo
+	 * @return
+	 */
+	int updateApplyForRefund(String orderNo);
+
+	/**
+	 * 确认退款(买家)
+	 * @param orderNo
+	 * @return
+	 */
+	int updateConfirmRefund(String orderNo,boolean confirm);
 }

+ 31 - 14
src/main/java/com/goafanti/order/service/impl/OrderServiceImpl.java

@@ -250,16 +250,16 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 				tOrder.setLiquidationStatus(LiquidationState.ALREADY_PAY.getCode());
 			}
 		}else if(orderAction == OrderAction.APPLY_FOR_WITHDRAW){ //提现申请 
-			if(tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode() 
-					&& tOrder.getLiquidationStatus() == LiquidationState.ALREADY_PAY.getCode()
-					&& tOrder.getActuallyTotalAmount().doubleValue() > 0){
+			if(tOrder.getOrderStatus() != OrderState.ALREADY_SIGN.getCode() 
+					|| tOrder.getLiquidationStatus() != LiquidationState.ALREADY_PAY.getCode()
+					|| tOrder.getActuallyTotalAmount().doubleValue() <= 0){
 				throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"等待提现"));
 			}
 			tOrder.setLiquidationStatus(LiquidationState.WAIT_FOR_WITHDRAW.getCode());
 		}else if(orderAction == OrderAction.CONFIRM_WITHDRAW){ //提现确认 (审核员先审核流水)
-			if(tOrder.getOrderStatus() == OrderState.ALREADY_SIGN.getCode() 
-					&& tOrder.getLiquidationStatus() == LiquidationState.WAIT_FOR_WITHDRAW.getCode()
-					&& tOrder.getActuallyTotalAmount().doubleValue() > 0){
+			if(tOrder.getOrderStatus() != OrderState.ALREADY_SIGN.getCode() 
+					|| tOrder.getLiquidationStatus() != LiquidationState.WAIT_FOR_WITHDRAW.getCode()
+					|| tOrder.getActuallyTotalAmount().doubleValue() <= 0){
 				throw new BusinessException(new Error(ErrorConstants.NOT_ACCORD_WITH_NEXT,"确认提现"));
 			}
 			tOrder.setLiquidationStatus(LiquidationState.ALREADY_WITHDRAW.getCode());
@@ -417,7 +417,6 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 						&& tOrder.getOrderStatus() != OrderState.SELLER_CANCEL_AFTER_SIGN.getCode()){
 					flag = false;
 				}
-				
 				if(tOrder.getLiquidationStatus() == LiquidationState.WAIT_FOR_REFUND_CONFIRM.getCode()
 						|| tOrder.getLiquidationStatus() == LiquidationState.REFUSE_REFUND.getCode()
 						|| tOrder.getLiquidationStatus() == LiquidationState.AGREE_REFUND.getCode()
@@ -749,15 +748,9 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 
 	@Override
 	@Transactional
-	//to update 18
 	public int updateApplyForCancel(String orderNo) {
 		TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
 		setOrderState(OrderAction.APPLY_FOR_CANCEL, new BigDecimal(0), tOrder, false);
-		if(true){ //退款
-			BigDecimal transactionAmount = tOrder.getActuallyTotalAmount().subtract(tOrder.getActuallyBrokerageAmount()); 
-			addFundRecord(orderNo, "平台方", DEFAULT_PLATFORM_ID,TokenManager.getUserId(), "买家取消订单",
-					TransactionSubject.REFUND, PayChannel.UNIONPAY,transactionAmount,TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
-		}
 		tOrder.setUpdateTime(new Date());
 		tOrderMapper.updateByPrimaryKeySelective(tOrder);
 		return 1;
@@ -1294,6 +1287,10 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 					setOrderState(OrderAction.CONFIRM_PAY_FOR_FIRST, bill.getTransactionAmount(), order, false);
 				if(order.getLiquidationStatus() == LiquidationState.WAIT_PAY_LAST_BALANCE.getCode())
 					setOrderState(OrderAction.CONFIRM_PAY_FOR_LAST, bill.getTransactionAmount(), order, false);
+				if(order.getLiquidationStatus() == LiquidationState.AGREE_REFUND.getCode())
+					setOrderState(OrderAction.COMPLETE_REFUND, bill.getTransactionAmount(), order, false);
+				if(order.getLiquidationStatus() == LiquidationState.WAIT_FOR_WITHDRAW.getCode())
+					setOrderState(OrderAction.CONFIRM_WITHDRAW, bill.getTransactionAmount(), order, false);
 				order.setUpdateTime(new Date());
 				tOrderMapper.updateByPrimaryKeySelective(order);
 			}else if(confrim == AFTConstants.NO){
@@ -1503,7 +1500,27 @@ public class OrderServiceImpl extends BaseMybatisDao<TOrderMapper> implements Or
 
 	@Override
 	public List<BillListBo> selectBillByOrderNo(String orderNo) {
-		
 		return tOrderMapper.selectBillByOrderNo(orderNo);
 	}
+
+	@Override
+	public int updateApplyForRefund(String orderNo) {
+		TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
+		setOrderState(OrderAction.APPLY_FOR_REFUND, new BigDecimal(0), tOrder, false);
+		tOrder.setUpdateTime(new Date());
+		return tOrderMapper.updateByPrimaryKey(tOrder);
+	}
+
+	@Override
+	public int updateConfirmRefund(String orderNo,boolean confirm) {
+		TOrder tOrder = tOrderMapper.selectByPrimaryKey(orderNo);
+		setOrderState(OrderAction.CONFIRM_REFUND, new BigDecimal(0), tOrder, confirm);
+		tOrder.setUpdateTime(new Date());
+		if(confirm){ //同意退款生成退款流水
+			BigDecimal transactionAmount = tOrder.getActuallyTotalAmount().subtract(tOrder.getActuallyBrokerageAmount()); 
+			addFundRecord(orderNo, "平台方", DEFAULT_PLATFORM_ID,TokenManager.getUserId(), "同意退款系统生成流水",
+					TransactionSubject.REFUND, PayChannel.UNIONPAY,transactionAmount,TransactionMode.OFFLINE, AuditState.WAIT_AUDIT);
+		}
+		return tOrderMapper.updateByPrimaryKey(tOrder);
+	}
 }