package com.awit.cms.action;import java.io.IOException;
import java.net.URLDecoder;
import java.util.List;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import net.sf.json.JSONObject;import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;import com.awit.cms.bean.Company;
import com.awit.cms.bean.OrderEntity;
import com.awit.cms.bean.Orders;
import com.awit.cms.bean.UserRegister;
import com.awit.cms.dao.CompanyDAO;
import com.awit.cms.dao.OrderDAO;
import com.awit.cms.dao.OrderEntityDAO;
import com.awit.cms.dao.UserRegisterDAO;
import com.awit.cms.util.getNowTime;
public class OeAction extends DispatchAction {

private OrderEntityDAO oeDao;

private OrderDAO orderDAO;

private CompanyDAO companyDAO;


private UserRegisterDAO userRegisterDAO;

public UserRegisterDAO getUserRegisterDAO() {
return userRegisterDAO;
} public void setUserRegisterDAO(UserRegisterDAO userRegisterDAO) {
this.userRegisterDAO = userRegisterDAO;
} public CompanyDAO getCompanyDAO() {
return companyDAO;
} public void setCompanyDAO(CompanyDAO companyDAO) {
this.companyDAO = companyDAO;
} public OrderDAO getOrderDAO() {
return orderDAO;
} public void setOrderDAO(OrderDAO orderDAO) {
this.orderDAO = orderDAO;
} public OrderEntityDAO getOeDao() {
return oeDao;
} public void setOeDao(OrderEntityDAO oeDao) {
this.oeDao = oeDao;
}
//查询所有订单基表的列表
public ActionForward findAll(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException{
response = setResponse(response);// 设置相应参数
List<OrderEntity> oeList=oeDao.findAll();
try {
if(oeList.size()>0){
JSONObject object=new JSONObject();
object.put("oeList",oeList);
response.getWriter().print(object.toString());
}
else{
response.getWriter().println("没有找到相关的记录!");
}
} catch (RuntimeException e) {
response.getWriter().println("没有找到相关的记录!");
e.printStackTrace();
}
return null;
}


//根据订单Id查询单个订单对象

public ActionForward findfindById(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException{
response = setResponse(response);// 设置相应参数
Integer oeId=Integer.parseInt(request.getParameter("oeId"));
 OrderEntity orderEntity=oeDao.findById(oeId);
try {
if(orderEntity!=null){
JSONObject object=new JSONObject();
object.put("orderEntity",orderEntity);
response.getWriter().print(object.toString());
}else{
response.getWriter().println("没有找到相关的记录!");
}
} catch (RuntimeException e) {
response.getWriter().println("没有找到相关的记录!");
e.printStackTrace();
}
return null;
}

/**
 * 保存用户购买的订单
 * @param orderEntity
 */
public ActionForward saveBuyOrder(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
response = setResponse(response);// 设置相应参数
String oe_id=URLDecoder.decode(request.getParameter("oe_id"));    
UserRegister user =(UserRegister)request.getSession().getAttribute("user");       //取出登陆用户的对象
        OrderEntity orderEntity=oeDao.findById(Integer.parseInt(oe_id));                                                                          
try{
   if(user!=null){
        //种子购买等级与用户等级进行比较,如果用户等级大于种子的所需等级,才可以购买
       if(Integer.parseInt(user.getUserLevel())>Integer.parseInt(orderEntity.getOrderBuyLevel())){
                Company company=new Company();
                company.setComId(companyDAO.findById(user.getUserId()).getComId());
         Orders order=new Orders();
         order.setOrderName(orderEntity.getOrderName());
         order.setOrderMark(orderEntity.getOrderMark());
         order.setOrderLogo(orderEntity.getOrderLogo());
         order.setOrderType(orderEntity.getOrderType());
         order.setOrderPrice(orderEntity.getOrderPrice());
         order.setOrderSalePrice(orderEntity.getOrderSalePrice());
         order.setOrderYffTime(orderEntity.getOrderYffTime());
         order.setOrderPfTime(orderEntity.getOrderPfTime());
         order.setOrderBuyTime(getNowTime.getNowDate());
         order.setOrderState("入库");
         order.setOrderExper(orderEntity.getOrderExper());
         order.setOrderProNum(orderEntity.getOrderProNum());
         order.setCompany(company);
         boolean flag=orderDAO.saveOrder(order);   //持久化订单实例到数据库
         if(flag){
          user=userRegisterDAO.findById(user.getUserId());
          //订单购买成功的话,就需要扣掉用户的金币
          int leftGold=user.getUserOwnGold()-orderEntity.getOrderGold();
          user.setUserOwnGold(leftGold);
          userRegisterDAO.updateUserGold(user);
          JSONObject object = new JSONObject();
          object.put("orderGold","此订单需要"+ orderEntity.getOrderGold()+"金币!");
          object.put("msg", "订单购买成功!");
          response.getWriter().print(object.toString()); 
         }else{
          response.getWriter().print("购买订单失败!可能是您的等级不够!"); 
         }
       }
       else{
        response.getWriter().println("对不起,您的等级不够!");
       }
   }
   else{
   response.getWriter().println("对不起,您还没有登陆!");
   }
}catch(Exception e){
response.getWriter().print("对不起,您还没有登陆!");
e.printStackTrace();
}
return null;
}

 private HttpServletResponse setResponse(HttpServletResponse response) {
response.setCharacterEncoding("GBK");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache, must-revalidate");
response.setHeader("Cache-Control","no-store"); 
response.setDateHeader("Expires",0);
return response;
}}

解决方案 »

  1.   

     可以,但必须在spring的配置文件中配置好
      

  2.   

    lz这不是已经在OeAction 注入了多个DAO了
      

  3.   

    可以的,比如在你的一个service里,必须要用到多个dao来完成一个业务逻辑
    可以在你的这个service里注入多个dao
    在配置文件里配置好就行了
    还有你的结贴率是0.00%,希望你能把以前的帖子接了。。
      

  4.   

    可以注入多个DAO的,
    DAO类其实也只是一个普通的Bean,只不过是实现了访问数据库的操作
      

  5.   

    可以的,只要在spring 的配置文件中,一个service中配多个DAO
      

  6.   

    可以的,还可以通过bean工厂得到
      

  7.   

    可以啊,不过要在Spring配置文件里配置过,或者使用Spring的注解
      

  8.   

    可是 在spring里注入 类里加相应的set方法。 
      

  9.   

    可以的 ,你这里已经写好了,只需要在spring中配置好道
    Dao的注入就行了