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

Java之品優購課程講義_day19(7)

前端程式碼
4.3.1 前端服務層
pinyougou-seckill-web 的 seckillGoodsService.js

//提交訂單 
 this.submitOrder=function(seckillId){
  return $http.get('seckillOrder/submitOrder.do?seckillId='+seckillId); 
 }

前端控制層 
pinyougou-seckill-web 的 seckillGoodsController.js 

//提交訂單 
 $scope.submitOrder=function(){
  seckillGoodsService.submitOrder($scope.entity.id).success(
   function(response){
    if(response.success){
     alert("下單成功,請在 1 分鐘內完成支付"); 
     location.href="pay.html"; 
    }else{
     alert(response.message); 
    }
   }
  );   
 }

頁面 
修改 seckill-item.html 

<a ng-click="submitOrder()" target="_blank" class="sui-btn  btn-danger addshopcar">
秒殺搶購</a>

品優購-秒殺支付 
5.1 需求分析 
使用者成功下單後,跳轉到支付頁面。支付頁顯示微信支付二維碼。使用者完成支付後,保 存訂單到資料庫。 
5.2 生成支付二維碼 
5.2.1 後端程式碼 
(1)pinyougou-seckill-web 工程引入 pinyougou-pay-interface 依賴 
(2)修改 pinyougou-seckill-interface 的 SeckillOrderService.java

/**
  * 根據使用者名稱查詢秒殺訂單 
  * @param userId 
  */
 public TbSeckillOrder searchOrderFromRedisByUserId(String userId);

(3)修改 pinyougou-seckill-service 的 SeckillOrderServiceImpl.java 

@Override 
 public TbSeckillOrder  searchOrderFromRedisByUserId(String userId) {  
  return (TbSeckillOrder)
redisTemplate.boundHashOps("seckillOrder").get(userId); 
 }

(1)在 pinyougou-seckill-web 新建 PayController.java  

/**
 * 支付控制層 
 * @author Administrator 
 *
 */
@RestController 
@RequestMapping("/pay")
public class PayController {

 @Reference 
 private  WeixinPayService weixinPayService; 

 @Reference 
 private SeckillOrderService seckillOrderService;  

 /**
  * 生成二維碼 
  * @return
  */
 @RequestMapping("/createNative")
 public Map createNative(){
  //獲取當前使用者   
  String 
userId=SecurityContextHolder.getContext().getAuthentication().getName(); 
  //到 redis 查詢秒殺訂單 
TbSeckillOrder seckillOrder =
seckillOrderService.searchOrderFromRedisByUserId(userId); 
  //判斷秒殺訂單存在 
  if(seckillOrder!=null){
   long fen=  (long)(seckillOrder.getMoney().doubleValue()*100);//金額(分)

   return weixinPayService.createNative(seckillOrder.getId()+"",+fen+""); 
  }else{
   return new HashMap(); 
  }  
 }
}

5.2.2 前端程式碼
將pinyougou-cart-web工程的 payService.js payController.js pay.html qrious.min.js 拷貝到 pinyougou-seckill-web 工程 payController.js 暫時註釋對查詢的呼叫。