https://www.cnblogs.com/zhuzhuxuan/p/5845629.html ---基本类型知识
http://www.cnblogs.com/qiantuwuliang/archive/2010/03/17/1687946.html -- 简单存储过程
1、准备实体(请求和响应)
controller
@RequestMapping("/getMyTodayUserInfo")
public ModelAndView getMyTodayUserInfo(Model model,UserMgrReq userMgrReq) throws HaBizException{
ModelAndView mav = new ModelAndView();
userMgrReq.setTimePeriod(TimePeriodTypes.TODAY);
userMgrReq.setPartyId("12017120614185501");
//查询数据
List<UserMgrResp> userMgrRespList = new ArrayList<UserMgrResp>();
try {
userMgrRespList = userService.getGameUserInfo(userMgrReq);
userMgrReq.setRows(userService.getGameUserInfoNum(userMgrReq));
} catch (Exception e) {
throw new HaBizException("查询用户出错");
}
model.addAttribute("userMgrReq", userMgrReq);
model.addAttribute("userMgrRespList",userMgrRespList);*/
List<UserMgrResp> userMgrRespList = userService.getGameUserByPartyId(userMgrReq);
if (null != userMgrRespList) {
for (UserMgrResp userMgrResp : userMgrRespList) {
System.out.println(userMgrResp.getPartyId());
}
}
model.addAttribute("userMgrRespList",userMgrRespList);
return new ModelAndView("/myUser/myTodayUser");
}
service
List<UserMgrResp> getGameUserByPartyId(UserMgrReq userMgrReq);
@Override
public List<UserMgrResp> getGameUserByPartyId(UserMgrReq userMgrReq) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("partyId",userMgrReq.getPartyId());
map.put("timePeriod",userMgrReq.getTimePeriod());
return userMapper.getGameUserByPartyId(map);
}
dao
List<UserMgrResp> getGameUserByPartyId(Map<String, Object> paramMap);
xml
<select id="getGameUserByPartyId" statementType="CALLABLE" resultType="UserMgrResp">
call pro_get_user(
#{partyId,jdbcType=VARCHAR,mode=IN},
#{timePeriod,jdbcType=INTEGER,mode=IN}
)
</select>
存储过程
BEGIN
DECLARE l_partyId VARCHAR(32);
DECLARE l_userId BIGINT(10);
DECLARE l_userName VARCHAR(64);
DECLARE l_timePeriod TINYINT(1);
DECLARE l_headImage VARCHAR(128);
DECLARE l_amt INT(11);
DECLARE l_rechargeAmt INT(11);
DECLARE l_consumeAmt INT(11);
DECLARE l_crtTime datetime;
DECLARE l_t_crtTime datetime;
DECLARE l_done INT(1) DEFAULT 0;
/* 获取代理商用户partyId */
declare cur_partyId CURSOR FOR (SELECT DISTINCT a.partyId FROM ha_game_agreement ga
INNER JOIN ha_agreement a ON a.id = ga.id WHERE ga.agentPartyId = p_partyId);
/*设置游标退出标志*/
DECLARE CONTINUE HANDLER FOR NOT FOUND SET l_done=1;
/*删除上次查询记录*/
DELETE FROM ha_temp_agent_user where agentPartyId = p_partyId and timePeriod = p_timePeriod ;
/*打开游标*/
OPEN cur_partyId;
/*循环遍历游标*/
REPEAT
/*获取游标中单个值*/
fetch cur_partyId into l_partyId;
/*判断是否需要结束*/
if not l_done then
/*重新设置变量的初始值,防止错处后,被再次使用*/
SET l_userName = NULL, l_crtTime = NULL, l_headImage = NULL, l_userId = NULL;
/*获取用户的基本信息*/
SELECT u.userName, u.crtTime, u.headImage, u.id
into l_userName,l_crtTime,l_headImage,l_userId
FROM ha_party p
INNER JOIN ha_user_party up ON up.partyId = p.partyId AND up.userType = 1
INNER JOIN ha_user u ON u.id = up.userId AND u.`status` = 1
WHERE p.`status` = 1 AND p.partyId = l_partyId;
/* 解决游标循环失效*/
SET l_done=0;
/*如果用户为空值,进行过滤*/
IF !isnull(l_userId) then
INSERT INTO ha_temp_agent_user(agentPartyId, partyId, userId, userName,
timePeriod, headImage, crtTime, t_crtTime)
VALUES (p_partyId, l_partyId, l_userId,l_userName, p_timePeriod,
l_headImage,l_crtTime,NOW());
end IF;
end if;
UNTIL l_done END REPEAT; /* 结束循环*/
close cur_partyId; /* 关闭游标*/
/*返回存储过程结果数据集*/
SELECT tau.agentPartyId,tau.amt,tau.consumeAmt,tau.crtTime,tau.headImage,tau.partyId,
tau.rechargeAmt,tau.timePeriod,tau.userId,tau.userName
from ha_temp_agent_user tau where tau.agentPartyId = p_partyId and tau.timePeriod = p_timePeriod;
/*SELECT tau.*
from ha_temp_agent_user tau where tau.agentPartyId = p_partyId and tau.timePeriod = p_timePeriod;*/
END
p_partyId和p_timePeriod 为入参
注意