標籤:str data 設定 att conf row turn blog body
我們上一篇文章講了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{ @AutowiredGysypmlMapperCustom 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。
032醫學項目-模組三:藥品供應商目錄模組——Service層和Action層和調試