jQuery+SSM实现每日签到
前台jQuery 后台框架是SSM从数据库读取数据来显示并实现每日签到功能
几乎代码都贴出来比较齐全了,逻辑也不太难,有不懂地方留言,觉得不错点个赞呗
JavaScript代码:
controller代码:
/**
* 获取签到天数、签到积分 list
*
*/
@RequestMapping(value="/getIntegrateList")
@ResponseBody
public Object getIntegrateList(Page page) throws Exception {
PageData pd = new PageData();
pd = this.getPageData();
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
WxUser tempUser = (WxUser) session.getAttribute(Constant.WX_LOGIN_SESSION);
pd.put("WxOpenId", tempUser.getWxOpenId());
try {
List resultList = guessFacade.getIntegrateList(pd);
PageData signNumber = guessFacade.signNumber(pd);
pd.put("signNum", signNumber);
pd.put("info", resultList);
pd.put("flag", true);
pd.put("msg", "签到积分成功!");
} catch (Exception e) {
pd.put("flag", false);
pd.put("msg", "签到积分失败!");
e.printStackTrace();
}
return pd;
}
/**
* 今天签到
*
*/
@RequestMapping(value="/signToday")
@ResponseBody
public Object updateSignToday(Page page) throws Exception {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
PageData pd = new PageData();
pd = this.getPageData();
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
WxUser tempUser = (WxUser) session.getAttribute(Constant.WX_LOGIN_SESSION);
//pd.put("WxOpenId", "oQWlJ1PGwqbWx0IMxGJeZMlnWSjs");
pd.put("WxOpenId", tempUser.getWxOpenId());
try {
//查询当前用户最后签到时间和连续签到多少天
List list = guessFacade.findSignRecord(pd);
if(list.size()>0){
Date today = new Date();
String todays = dateFormat.format(today);
String lastTime = list.get(0).get("lastSignTime").toString();
Date lastSignTime = dateFormat.parse(lastTime);
Date todayTime = dateFormat.parse(todays);
if(UtilsDate.differentDays(lastSignTime,todayTime)>1){
pd.put("signNum", 1);
}else if(UtilsDate.differentDays(lastSignTime,todayTime)==0){
pd.put("flag", false);
pd.put("msg", "今天已经签到过!请勿重复签到!");
return pd;
}
}
guessFacade.updateSignToday(pd);
pd.put("flag", true);
pd.put("msg", "签到成功!");
} catch (Exception e) {
pd.put("flag", false);
pd.put("msg", "签到失败!");
e.printStackTrace();
}
return pd;
}
/**
* 获取签到积分
*
*/
@RequestMapping(value="/GuessManagerController_getUserAnswer")
@ResponseBody
public Object getUserAnswer(Page page) throws Exception {
PageData pd = new PageData();
pd = this.getPageData();
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
WxUser tempUser = (WxUser) session.getAttribute(Constant.WX_LOGIN_SESSION);
//pd.put("WxOpenId", "oQWlJ1PGwqbWx0IMxGJeZMlnWSjs");
pd.put("WxOpenId", tempUser.getWxOpenId());
try {
List result = guessFacade.getUserAnswer(pd);
pd.put("info", result);
pd.put("flag", true);
pd.put("msg", "操作成功!");
} catch (Exception e) {
pd.put("flag", false);
pd.put("msg", "操作失败!");
e.printStackTrace();
}
return pd;
}
/**
* 获取需要签到的相关信息
*
*/
@RequestMapping(value="/getIntegralData")
@ResponseBody
public Object getIntegralData(Page page) throws Exception {
PageData pd = new PageData();
pd = this.getPageData();
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
WxUser tempUser = (WxUser) session.getAttribute(Constant.WX_LOGIN_SESSION);
pd.put("WxOpenId", tempUser.getWxOpenId());
try {
List resultList = guessFacade.getIntegrateData(pd);
pd.put("info", resultList);
pd.put("flag", true);
pd.put("msg", "签到积分成功!");
} catch (Exception e) {
pd.put("flag", false);
pd.put("msg", "签到积分失败!");
e.printStackTrace();
}
return pd;
}
mapper文件代码
update l_integrate_setting
status=1,
updateTime=now()
where id =#{inteId}
update l_user_sign
sign_number=#{signNum},
last_sign_time=now()
where wx_open_id =#{WxOpenId}
delete from l_user_sign
where
wx_open_id = #{ WxOpenId }
insert into
l_user_sign
(
wx_open_id,
last_sign_time,
sign_number,
createTime,
updateTime
)
values
(
#{ WxOpenId },
now(),
#{ signNum },
now(),
now()
)
DAO实现类代码
/**
* 获取签到记录
*/
@SuppressWarnings({ "unchecked", "deprecation" })
@Override
public List findSignRecord(PageData pd) throws Exception {
List result = (List) dao.findForList("GuessMapper.findSignRecord", pd);
return result;
}
/**
* 今日签到
*/
public void updateSignToday(PageData pd) throws Exception {
if (pd.get("signNum").toString().equals("1")) {
dao.delete("GuessMapper.deleteSignToday", pd);// 先删除用户之前记录
dao.save("GuessMapper.insertSignToday", pd);// 插入用户签到
dao.update("GuessMapper.updateSignStatus", pd);//改变是否签到状态
} else {
dao.update("GuessMapper.updateSignToday", pd);// 更新题目
}
pd.put("activeId", "");// id:问题id
pd.put("integrationFlag", "+");// 标记
pd.put("activeName", "签到奖励");// 名称integrationNum
dao.save("GuessMapper.saveIntegration", pd);// 写入表明细
dao.save("GuessMapper.updateSignIntegration", pd);// 更新总
}
HTML代码
效果图