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


    我们上一篇文章讲了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。

  • 相关阅读:
    DIV 模拟模式窗体
    存储过程传递参数时出现类型转换错误!如:varchar转换为int时出错
    数据库改名附加
    VC++动态链接库(DLL)编程深入浅出
    JS获取各种宽度,高度解释
    IE6 中的最大最小寬度和高度 css 高度 控制(兼容版本)
    CSS浏览器兼容大总结
    js获取屏幕宽度高度
    FF下文本无法撑开容器的高度解决办法
    浏览器兼容手册(JS+CSS)
  • 原文地址:https://www.cnblogs.com/shenxiaoquan/p/6129947.html
Copyright © 2020-2023  润新知