这个是action 里面的代码,就是执行到   boolean isRig=recordService.addHandsel(rule, records); 这里直接跳defaultActionIncocat.classpublic String enter(){
//1.获取当前登录用户的id
        TbPrivUser user=(TbPrivUser)ActionContext.getContext().getSession().get("user");
//2.获取当前用户对应的活动,没有则给出提示
        TbUserActivityRela  tbUserActivityRela=recordService.findShopByUserId(user.getRegisterId());
if(tbUserActivityRela==null){

msg=Mytool.getJson("当前用户没有对应的活动,请联系管理员添加!");
}
else{
//3.根据当前活动查询规则,没有则给出提示
TbActivityRule rule=recordService.findactivityRule(tbUserActivityRela.getTbShopActivity().getId());
if(rule==null){

msg=Mytool.getJson("当前活动没有对应的规则,请联系管理员添加!");
}
else{
//取出链接上的值
    HttpServletRequest request=ServletActionContext.getRequest();
        String  pass=request.getParameter("pass"); 
    String name=request.getParameter("name"); 
    String sex=request.getParameter("sex");
    String iccid=request.getParameter("iccid");
    Double cost=Double.parseDouble(request.getParameter("cost"));
    String card=request.getParameter("card");
    //创建记录对象
    TbExchangeRecords records =new TbExchangeRecords();
 try {
      //获取当前时间
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time= dateFormat.format(new Date());
Timestamp timestamp=new Timestamp(dateFormat.parse(time).getTime());
    records.setCreateDate(timestamp);
    records.setUserIccid(iccid);
    records.setTbShopActivity(rule.getTbShopActivity());
    records.setUserSex(sex);
    records.setUserName(name);
    records.setPassportNum(pass);
    records.setOrderTotal(cost);
    records.setCard(card);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}   
//4.生成兑换记录和赠送记录
        boolean rig=recordService.addRecord(records);
        if(rig){
           boolean isRig=recordService.addHandsel(rule, records);
            if(isRig){
             //流量操作
          TbChannelStream stream=recordService.findStream(records);
            if(stream.getStatus().toString().equals("0")){
          msg=Mytool.getJson("该渠道流量已经锁定,不能使用!");
         }else{ 
          //记录
          boolean  is=recordService.addStream_record(records, stream);
           if(is){msg=Mytool.getJson("增加成功");}
           else{msg=Mytool.getJson("增加失败");}         
           }
         }                      
        }else{
         msg=Mytool.getJson("增加失败");
        }
}
}
return "json";
}
}

解决方案 »

  1.   

    boolean isRig=recordService.addHandsel(rule, records);
    你的rule 和 records 数据都合法吗?怀疑你的这两个参数有不合法的
    试着 跟一下到 addHandse 方法里面去,看能进去不?
      

  2.   

    进不去, 当执行这一步直接跳~~~那个default,  那两个参数是两个对象,我上面已经把action这个方法的代码已经粘贴出来了!
     
      

  3.   

    boolean isRig=recordService.addHandsel(rule, records); 看看recordService里面的addHandsel 方法实现
    在addHandsel 第一行打断点,应该可以进去吧,看看进去后到哪一步跳出去的,然后具体分析问题。
      

  4.   

    大神,   int  prex=(int)(Integer.parseInt(activityRule.getRuleValue())*records.getOrderTotal());   这个方法报错~   哈哈,  已经明确目标了!  谢谢
      

  5.   

     这儿用到了传进来的records参数,刚才都说了,怀疑参数有问题。看看具体什么问题,分析清楚原因,然后着手去修改吧。