【实用】每日签到jQuery+Java实现从数据库读取数据并展示

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代码

	
	

 

 

效果图

【实用】每日签到jQuery+Java实现从数据库读取数据并展示_第1张图片

【实用】每日签到jQuery+Java实现从数据库读取数据并展示_第2张图片

【实用】每日签到jQuery+Java实现从数据库读取数据并展示_第3张图片

你可能感兴趣的:(JavaScript,jQuery,Java,签到,每日签到,SSM)