1. 程式人生 > >Java之品優購課程講義_day18(11)

Java之品優購課程講義_day18(11)

修改訂單狀態
5.5.1 服務介面層

在 pinyougou-order-interface 的 OrderService.java 新增方法定義 

/**
  * 修改訂單狀態 
  * @param out_trade_no 支付訂單號 
  * @param transaction_id 微信返回的交易流水號 
  */
 public void updateOrderStatus(String out_trade_no,String transaction_id);

服務實現層
在 pinyougou-order-service 工程 OrderServiceImpl.java 實現該方法.
這個方法主要做三件事:

  1. 修改支付日誌狀態
  2. 修改關聯的訂單的狀態
  3. 清除快取中的支付日誌物件

@Override
public void updateOrderStatus(String out_trade_no, String transaction_id) {
//1.修改支付日誌狀態
TbPayLog payLog = payLogMapper.selectByPrimaryKey(out_trade_no);
payLog.setPayTime(new Date());
payLog.setTradeState("1");//已支付
payLog.setTransactionId(transaction_id);//交易號
payLogMapper.updateByPrimaryKey(payLog);
//2.修改訂單狀態
String orderList = payLog.getOrderList();//獲取訂單號列表
String[] orderIds = orderList.split(",");//獲取訂單號陣列

for(String orderId:orderIds){
TbOrder order =
orderMapper.selectByPrimaryKey( Long.parseLong(orderId) );
if(order!=null){
order.setStatus("2");//已付款
orderMapper.updateByPrimaryKey(order);
}
}
//清除 redis 快取資料
redisTemplate.boundHashOps("payLog").delete(payLog.getUserId());
}

控制層
修改 pinyougou-cart-web 的 PayController.java。在微信支付介面有成功返回狀態時,呼叫修 改狀態的方法

/**

支付日誌顯示(學員實現)
需求:在運營商後臺中,顯示支付日誌列表,實現按日期、狀態、使用者進行查詢。
學員實現。