拦截器 获取产品id,算出总价放入订单表
1350048638 发布于76月前 1答/1824阅

我的原始需求是:获取产品值menu_num,后台根据这个值从数据库查询产品价格,

然后想根据产品价格和前台传过来的数量,算出总价,把这个订单的总价一起写入到数据库的订单表里。

实现过程中遇到的问题:


   public String addBefore(AopContext ac) throws Exception {         

Integer menu_num = Integer.parseInt(ac.ctrl.getPara("menu_num")); //获取 

     System.out.println(menu_num);    

     String  sql = "select eova_huo_price.price from eova_huo_price where productid = ?";

     price = Db.findFirst(sql,menu_num);  

     System.out.println(price);  //获得的值  {price:0.01}  


//---下面这段代码是错的,不知道怎么写

    Record data = ac.record;

 OrderShua orderShua = RecordUtil.peelModel(OrderShua.class, data);  

 orderShua.set("money", 1000); //这里暂时写 1000,但是报错,

 orderShua.save();

LogKit.info("新增订单信息成功:");    

return super.addBefore(ac);

    }

我觉得这个问题的原因是:

前台有 产品id,产品数量,  拦截器里面想根据产品id 查询到价格, 再把价格和产品数量 算出一个总价格,把这个总价格放里面,

这样 产品id,产品数量,和总价格就一起写到订单表里了。

请各位帮忙解答一下,谢谢。




[沙发] Jieven
@1350048638 你要是配了图这个问题就简单了.下面来挤牙膏:
疑问1: Integer.parseInt(ac.ctrl.getPara("menu_num"));
拦截器里获取当前Form参数应该是:ac.record.getInt("menu_num");

从数据库查询产品价格,这个不用说.

获取数量同疑问1的方式.

算总价,然后 ac.record.set("总价", 总价);

疑问2:RecordUtil.peelModel
因为并没有交代是多表,还是单表,基表联查等情况,而又用了这个语法,不知道是完全懵逼瞎试呢,还是咋回事.

最后建议请系统学习Eova初级+高级教程
http://www.iqiyi.com/u/2016562874
有条件再学习一下项目实战:
http://www.eova.cn/vod


提交评论