您的位置:首页 > 其它

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

2016-12-03 23:14 651 查看
我们上一篇文章讲了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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐