黑马程序员技术交流社区

标题: 【郑州校区】Java之品优购课程讲义_day19(7) [打印本页]

作者: 谷粒姐姐    时间: 2018-11-2 14:35
标题: 【郑州校区】Java之品优购课程讲义_day19(7)
前端代码
4.3.1 前端服务层
pinyougou-seckill-web 的 seckillGoodsService.js
[AppleScript] 纯文本查看 复制代码
//提交订单 
this.submitOrder=function(seckillId){
  return $http.get('seckillOrder/submitOrder.do?seckillId='+seckillId);
}

前端控制层
pinyougou-seckill-web 的 seckillGoodsController.js
[AppleScript] 纯文本查看 复制代码
//提交订单 
$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
[AppleScript] 纯文本查看 复制代码
<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
[AppleScript] 纯文本查看 复制代码
/** 
  * 根据用户名查询秒杀订单
  * @param userId
  */
public TbSeckillOrder searchOrderFromRedisByUserId(String userId);

(3)修改 pinyougou-seckill-service 的 SeckillOrderServiceImpl.java
[AppleScript] 纯文本查看 复制代码
@Override 
public TbSeckillOrder  searchOrderFromRedisByUserId(String userId) {   
  return (TbSeckillOrder)
redisTemplate.boundHashOps("seckillOrder").get(userId);
}

(1)在 pinyougou-seckill-web 新建 PayController.java  
[AppleScript] 纯文本查看 复制代码
/** 
* 支付控制层
* @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 暂时注释对查询的调用。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2