Java之品優購課程講義_day19(7)
阿新 • • 發佈:2018-11-02
前端程式碼
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 暫時註釋對查詢的呼叫。