首页 > 技术文章 > 032医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------Service层和Action层和调试

shenxiaoquan 2016-12-03 23:14 原文

我们上一篇文章讲了Dao层代码:

这一篇我们讲解Service层和Action层;

Service层:

分为接口和实现类,我们主要看实现类:GysemplServiceImpl

package yycg.business.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import yycg.business.dao.mapper.GysypmlMapperCustom;
import yycg.business.pojo.vo.GysypmlCustom;
import yycg.business.pojo.vo.GysypmlQueryVo;
import yycg.business.service.GysymplService;

public class GysemplServiceImpl implements GysymplService{
    
    @Autowired
GysypmlMapperCustom gysymplMapperCustom;

    @Override
    public List<GysypmlCustom> findGysymplList(String usergysId,GysypmlQueryVo gysymplQueryVo)
            throws Exception {
        //为了防止bug.这里做一个非空校验,如果传进来不是空,那么就直接把传进来那个赋值给他,如果传进来就是空的
        //那么就新建一个
        gysymplQueryVo=gysymplQueryVo!=null?gysymplQueryVo:new GysypmlQueryVo();
        /**
         * 为什么这里要再得到一个?因为可能在页面上已经传进来一个gysymplCustom.
         * 所以要判断传进来那个是不是空的。
         * 
         * 
         */
        GysypmlCustom gysymplCustom=gysymplQueryVo.getGysymplCustom();
        if(gysymplCustom==null)//如果是空的,那就new一个。反正我们的目的就是把usergysId的值设置进去。
        {
            gysymplCustom=new GysypmlCustom();
            
        }
        //设置数据范围权限
        gysymplCustom.setId(usergysId);
        
        List<GysypmlCustom> listgyGysymplCustoms=gysymplMapperCustom.findGysymplList(gysymplQueryVo);
        return listgyGysymplCustoms;
    }

    @Override
    public int findGysypmlCount(String usergysId,GysypmlQueryVo gysymplQueryVo) throws Exception {
        
        
        //为了防止bug.这里做一个非空校验,如果传进来不是空,那么就直接把传进来那个赋值给他,如果传进来就是空的
        //那么就新建一个
        gysymplQueryVo=gysymplQueryVo!=null?gysymplQueryVo:new GysypmlQueryVo();
        /**
         * 为什么这里要再得到一个?因为可能在页面上已经传进来一个gysymplCustom.
         * 所以要判断传进来那个是不是空的。
         * 
         * 
         */
        GysypmlCustom gysymplCustom=gysymplQueryVo.getGysymplCustom();
        if(gysymplCustom==null)//如果是空的,那就new一个。反正我们的目的就是把usergysId的值设置进去。
        {
            gysymplCustom=new GysypmlCustom();
            
        }
        
        //设置数据范围权限
        gysymplCustom.setId(usergysId);
        int count=gysymplMapperCustom.findGysypmlCount(gysymplQueryVo);
        return count;
    }

}

 

 

再看Action层:

package yycg.business.action;

import java.util.List;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import yycg.base.pojo.vo.ActiveUser;
import yycg.base.pojo.vo.PageQuery;
import yycg.base.process.context.Config;
import yycg.base.process.result.DataGridResultInfo;
import yycg.business.pojo.vo.GysypmlCustom;
import yycg.business.pojo.vo.GysypmlQueryVo;
import yycg.business.service.GysymplService;
@Controller
@RequestMapping("/ypml")
public class GysymplAction {
    @Autowired
  GysymplService gysymplService;
    //去往查询页面
    @RequestMapping("/querygysypml")
    public String querygysypml( Model model) throws Exception
    {
        return "/business/ypml/querygysypml";
    }
    
    
    //查询结果集
    @RequestMapping("/querygysympl_request")
    public @ResponseBody DataGridResultInfo querygysympl_request(HttpSession session,GysypmlQueryVo gysypmlQueryVo,int page,int rows) 

throws Exception { //当前用户信息去 Session中去拿。 ActiveUser activeUser=(ActiveUser)session.getAttribute(Config.ACTIVEUSER_KEY); /** * 刚开始的时候想不通,为什么传的是用户所属的单位id,潜意识里想不是应该传的是用户的id吗, * 后来想想不是啊,怎么可能是用户的id,因为是供应商这么一个大的慨念在提供货物,是以供应商为单位的, * 所以应该是供应商啊,有很多个供应商在供应药品,所以是供应商的id. * * */ //用户所属的单位 String usergysid=activeUser.getSysid();//单位id //列的总数 int total=gysymplService.findGysypmlCount(usergysid, gysypmlQueryVo); //列表 PageQuery pageQuery=new PageQuery(); pageQuery.setPageParams(total, rows, page); //设置分页参数 gysypmlQueryVo.setPageQuery(pageQuery); //分页查询列表 List<GysypmlCustom> list=gysymplService.findGysymplList(usergysid, gysypmlQueryVo); DataGridResultInfo dataGridResultInfo=new DataGridResultInfo(); dataGridResultInfo.setTotal(total); dataGridResultInfo.setRows(list); return dataGridResultInfo; } }

 

 最后调试:

调试的时候我遇到两个问题:

主要归结于两点:

1:GysypmlMapperCustom.xml所在的包路径和名字要与Mapper接口的下的名字一样:

 

 

 Mapper接口:

 

  要一模一样。不然直接报错:

 

 

调试结果:

 

 

 调试ok。

 

推荐阅读