SSM框架下打卡签到增加积分功能的实现

  • jsp页面
  • Controller层
  • Service层
    • 目录结构
    • UserService代码
    • UserServiceImpl代码
  • Dao层
    • registeredDao 代码
    • registeredDaoImpl 代码
  • Mapper代码
    • 目录结构
    • 代码

jsp页面

ssm框架在之前的文章里已经介绍过了这里说一下打卡功能的实现

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!-- 首页,用户已登陆 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html lang="en">
<head><meta charset="UTF-8"><title>签到打卡</title>
</head>
<body><div ><style type="text/css">*{margin:0;padding:0;list-style-type:none;}a,img{border:0;text-decoration:none;}/*今日签到*/.singer{border:1px solid #DCDBDB;padding:10px;height:45px;line-height:45px;width:290px;margin:20px auto;}.singer_l_cont, .singer_r_img{float:left;}.singer_l_cont{width:145px;background:url(../../images/sing_per.gif) no-repeat left 12px;text-indent:23px;font-size:12px;}.singer_r_img{display:block;width:114px;height:52px;background:url(../../images/sing_week.gif) right 2px no-repeat;vertical-align:middle;float:right;*margin-bottom:-10px;}.singer_r_img:hover{background-position:right -53px;text-decoration:none;}.singer_r_img span{margin-left:14px;font-size:16px;font-family:'Hiragino Sans GB','Microsoft YaHei',sans-serif !important;font-weight:700;color:#165379;}.singer_r_img.current{background:url(../../images/sing_sing.gif) no-repeat 0 2px;}</style>
<table ><tr><td> <div class="singer"><div class="singer_l_cont"><span>每天签到赢取PK币</span></div><div class="singer_r_r"><a class="singer_r_img" href="#"><span id="sing_for_number"></span></a></div></div><!--singer end--></td><td><div class="tcoin"><span ><font color="#ffd700" id="jingbi">金币:${money}</font></span></div></td></tr>
</table><script type="text/javascript" src="../../js/jquery-1.4.2.min.js"></script><script type="text/javascript">/*签到模块日期捕捉:*/function week(){var objDate= new Date();var week = objDate.getDay();switch(week){case 0:week="周日";break;case 1:week="周一";break;case 2:week="周二";break;case 3:week="周三";break;case 4:week="周四";break;case 5:week="周五";break;case 6:week="周六";break;}$("#sing_for_number").html( week );}$(document).ready(function(){week();$(".singer_r_img").click(function(){$(this).addClass("current");//这里使用了Ajax使得签到后还保持登录状态var url="<%=request.getContextPath()%>/daka.html";  // 请求的url$.post(url,{'name':${name}},function (data){if(data=="true"){alert("已签到,请不要重复签到")}else {location.reload();//刷新页面,因为签到后金币数量改变需要刷新页面才能正确显示alert("签到成功")}});})})</script></div></body>
</html>

Controller层

package com.mooke.controller;import com.mooke.entity.User;
import com.mooke.service.Impl.UserServiceImpl;
import com.mooke.service.UserService;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;import javax.servlet.ServletContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.io.File;
import java.util.UUID;@Controller
public class IndexController {@Autowiredprivate UserServiceImpl userService;//签到验证@RequestMapping("daka.html")@ResponseBodypublic String daka (HttpServletRequest request, HttpServletResponse response, Model model) {// 接收前端输入的用户名String name = request.getParameter("name");User userEntiy = new User();userEntiy.setName(name);//这里将今天的日期和数据库存在的上次签到日期进行比对如果今天日期等于上次签到日期返回ture,使得无法再次签到,如果不等于则可以签到Boolean userName=userService.daka("UsrMapper.daka",userEntiy);if(userName){return "true";}//在比对时间后返回false,此处更新打卡日期及金币数量,此时实体类中金币数量已经更改userService.updatedaka("UsrMapper.updatedaka",userEntiy);return "false";}
}

Service层

目录结构

UserService代码

package com.mooke.service;import com.mooke.entity.User;
import java.util.Map;
import java.util.List;public interface UserService {boolean updatedaka(String id, User userEntity);  boolean daka(String id, User userEntity);
}

UserServiceImpl代码

package com.mooke.service.Impl;import com.mooke.dao.Impl.registeredDaoImpl;
import com.mooke.entity.User;
import com.mooke.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.util.List;
import java.util.Map;@Service
@Transactional
public class UserServiceImpl implements UserService {@Autowiredprivate registeredDaoImpl registeredDao;@Overridepublic boolean daka(String id, User userEntity){return registeredDao.daka(id,userEntity);};@Overridepublic boolean updatedaka(String id, User userEntity){return registeredDao.updatedaka(id,userEntity);};}

Dao层

registeredDao 代码

package com.mooke.dao;import com.mooke.entity.User;import java.util.List;
import java.util.Map;public interface registeredDao {boolean daka(String id, User userEntity);boolean updatedaka(String id, User userEntity);}

registeredDaoImpl 代码

package com.mooke.dao.Impl;import com.mooke.dao.registeredDao;
import com.mooke.entity.User;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.support.SqlSessionDaoSupport;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;import java.util.List;
import java.util.Map;@Repository
public class registeredDaoImpl extends SqlSessionDaoSupport implements registeredDao {@Autowiredpublic void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory){super.setSqlSessionFactory(sqlSessionFactory);}@Overridepublic boolean daka(String id,User userEntity){if(  getSqlSession().selectOne(id, userEntity)!=null) return true;return false;};@Overridepublic boolean updatedaka(String id, User userEntity){if(    getSqlSession().update(id, userEntity)>0)return true;return false;};}

Mapper代码

目录结构

代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="UsrMapper"><select id="daka" parameterType="com.mooke.entity.User" resultType="com.mooke.entity.User">select*from  userwherename =#{name}ANDqiandao = CURDATE()</select><update id="updatedaka" parameterType="com.mooke.entity.User" >update usersetqiandao = CURDATE(),money = money+5wherename = #{name}</update></mapper>

仍有疑问可以加QQ275375496讨论

SSM框架下打卡签到增加积分功能的实现相关推荐

  1. SSM框架下对信息执行修改操作时的信息弹窗回显以及对信息修改后对数据库的更新问题

    SSM框架下对信息执行修改操作时的信息弹窗回显以及对信息修改后的同步问题 概括 主要说一下前端的实现 概括 今天在做实训作业时,有个对数据信息进行修改的操作,要求点击修改按钮后弹出修改框,栏目中需要显 ...

  2. SSM框架下实现验证码图片验证功能(源码)

    SSM框架下实现验证码图片验证功能 背景图片资源路径 https://download.csdn.net/download/hero_qhz/10322064 一.首先,在pom里面加上需要用的资源j ...

  3. SSM框架下实现form表单提交的方式

    实现form表单的提交有多种方式,这里我们主要讲两种常用的. 注:此Demo是在SSM框架下完成的,数据库采用MySQL,关于ssm整合的相关知识,这里不做过多赘述.主要展示表单提交方式,暂不考虑代码 ...

  4. ssm框架下的文件上传和下载

    ssm下的文件上传和下载 1. 文件上传 1.1 文件上传需要的依赖 文件上传需要使用到 commons-fileupload 和 commons-io 两个 jar 包. <dependenc ...

  5. ZUI + SSM框架下数据表格的使用

    完成一个小项目,后端为SSM框架,前端使用了ZUI框架,下面记录了如何使用zui框架下的datagrid组件来实现传统页面下 1.加载数据 2.关键字搜索 3.按照字段排序 4.全选 常用功能的实现, ...

  6. 基于SSM框架的文章管理系统(增加留言回复功能)

    一个简单的文章管理系统(增加留言回复功能) 简单使用百度富文本实现了文章管理的功能,增加了留言回复功能,其实这个小项目只是为了测试怎样实现留言回复功能而提取出来的,并不是很完善,主要实现了对文章的增删 ...

  7. SSM框架下分页的实现(封装page.java和List?)

    之前写过一篇博客  java分页的实现(后台工具类和前台jsp页面),介绍了分页的原理. 今天整合了Spring和SpringMVC和MyBatis,做了增删改查和分页,之前的逻辑都写在了Servle ...

  8. SSM框架下log4j的配置和使用

    2019独角兽企业重金招聘Python工程师标准>>> 一.引入相关包和依赖 我用的是pom文件的引入,我使用的是slf4j+log4j的方式,还有另一种方式为commons-log ...

  9. 浅谈SSM框架下实现简单登录界面

    SSM框架搭建结果 Login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8 ...

  10. SSM框架下后台数据库传送到前端jsp文件中

    SSM框架中后台存储在数据库中的数据,如何传送到前端中使用呢? 前提:SSM框架已经搭好: Category.xml中的SQL语句集已经写好 Category中的GetXX()和SetXX()方法也已 ...

最新文章

  1. tag+标签+php,ZBLOG PHP代码实现侧栏彩色标签TAG关键字样式方法
  2. 如何汉化 OpenERP 6.1 日历视图
  3. 值得一读的《框架设计(第2版):CLR Via C#》
  4. 黑马程序员之《String 类练习》
  5. Linux运行hadoop命令,将hadoop程序打成jar包,在linux下以命令行方式运行(例如单词计算程序)...
  6. linux学习工作记录----配置基于ip的虚拟主机
  7. 管理口SSH服务存在拒绝服务漏洞(CVE-2016-6515)
  8. 用html页面制作开关,利用前端基础制作html开关图标
  9. Dart基础第1篇:Dart环境搭建、Dart开发工具
  10. C语言定义定长整型数组,C语言变长讯息定义:柔性数组
  11. mysql建表语句外键_mysql里面用语句怎么建立表外键的命令
  12. EXCEL数据处理小结(SQL)
  13. Mac Duet使用教程
  14. 发一套最完整的直升机原理(绝对完整,绝对精华)
  15. 2021新版CISSP考试大纲解析
  16. 车牌识别算法实践(一):先验知识
  17. does not have permission to content://包名/external_files/sple/IMG_123123141.jpg
  18. 酒店宾馆wifi无线上网认证,手机认证方式详解
  19. 【数据产品案例】美团外卖O2O的用户画像实践
  20. 多用途通讯录短信定位获取系统(安卓Android+苹果IOS+双端)带视频教程

热门文章

  1. 自然语言处理-聊天机器人
  2. Glide源码分析以及三级缓存原理
  3. 2021年深圳市坪山区贴息贴保资助申请条件及材料,补贴100万元
  4. 计算机网络不可用感叹号,win7网络连接感叹号提示默认网关不可用怎么办
  5. 如何调节桌面亮度计算机,电脑屏幕亮度怎么调,教您调节电脑亮度方法
  6. 百胜中国拟2025年前开1000家Lavazza咖啡店​;别样肉客开始陆续进驻中国山姆会员商店 | 知消...
  7. SEO优化基础知识大全 SEO新手入门必备知识
  8. flask url_for()和redirect的区别
  9. pandas——显示设置
  10. Eclipse下载不了,无法访问此网页,不要慌,2步解决问题5.20