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 暂时注释对查询的调用。

猜你喜欢

转载自blog.51cto.com/13517854/2312273