Bootstrap

基于springboot的课堂考勤签到打卡小程序

💖💖作者:IT跃迁谷毕设展
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
Java实战项目集
微信小程序实战项目集
Python实战项目集
安卓Android实战项目集

💕💕文末获取源码

课堂考勤签到打卡小程序-系统简介

尽管随着时代的迁移,计算机技术的发展越来越快,但其核心仍旧不变,其目的都是为了给人们提供更好的生产、生活服务,本文基于高校课堂签到场景,为解决课堂签到时间长,签到准确率不高等问题,设计了一个课堂考勤签到打卡小程序。
相较于传统的课堂考勤签到打卡小程序,小程序签到不仅方便快捷,而且准确率高。本次研究目的是为了做出一个课堂考勤签到打卡小程序,系统的开发主要使用用户为大学教师与学生,使用场景为大学课堂,面向当前大学课堂的日常考勤开发出一个完整的微信小程序,满足学生课堂签到打卡,以及老师查看及管理签到及未签到学生名单,以及课堂补签等基本功能。

课堂考勤签到打卡小程序-技术选型

开发语言:Java
数据库:MySQL
系统架构:B/S
后端框架:SpringBoot(Spring+SpringMVC+Mybatis) / SSM(Spring+SpringMVC+Mybatis)
前端:微信小程序+uniapp+Vue

课堂考勤签到打卡小程序-图片展示

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

课堂考勤签到打卡小程序-代码展示

课堂考勤签到打卡小程序-Controller

/**
 * 课堂考勤签到打卡小程序-签到记录
 */
@RestController
@RequestMapping("/qiandaojilu")
public class QiandaojiluController {
    @Autowired
    private QiandaojiluService qiandaojiluService;

		/**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,QiandaojiluEntity qiandaojilu, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("jiaoshi")) {
			qiandaojilu.setJiaoshigonghao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("xuesheng")) {
			qiandaojilu.setXuehao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<QiandaojiluEntity> ew = new EntityWrapper<QiandaojiluEntity>();
		PageUtils page = qiandaojiluService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qiandaojilu), params), params));
        return R.ok().put("data", page);
    }

		/**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody QiandaojiluEntity qiandaojilu, HttpServletRequest request){
    	qiandaojilu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(qiandaojilu);
    	qiandaojilu.setUserid((Long)request.getSession().getAttribute("userId"));

        qiandaojiluService.insert(qiandaojilu);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody QiandaojiluEntity qiandaojilu, HttpServletRequest request){
        //ValidatorUtils.validateEntity(qiandaojilu);
        qiandaojiluService.updateById(qiandaojilu);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        qiandaojiluService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

课堂考勤签到打卡小程序-Service

/**
 * 课堂考勤签到打卡小程序-签到记录
 */
@Service("qiandaojiluService")
public class QiandaojiluServiceImpl extends ServiceImpl<QiandaojiluDao, QiandaojiluEntity> implements QiandaojiluService {
	

    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<QiandaojiluEntity> page = this.selectPage(
                new Query<QiandaojiluEntity>(params).getPage(),
                new EntityWrapper<QiandaojiluEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<QiandaojiluEntity> wrapper) {
		  Page<QiandaojiluView> page =new Query<QiandaojiluView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<QiandaojiluVO> selectListVO(Wrapper<QiandaojiluEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public QiandaojiluVO selectVO(Wrapper<QiandaojiluEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<QiandaojiluView> selectListView(Wrapper<QiandaojiluEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public QiandaojiluView selectView(Wrapper<QiandaojiluEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}


}

课堂考勤签到打卡小程序-DAO

/**
 * 课堂考勤签到打卡小程序-签到记录
 */
public interface QiandaojiluDao extends BaseMapper<QiandaojiluEntity> {
	
	List<QiandaojiluVO> selectListVO(@Param("ew") Wrapper<QiandaojiluEntity> wrapper);
	
	QiandaojiluVO selectVO(@Param("ew") Wrapper<QiandaojiluEntity> wrapper);
	
	List<QiandaojiluView> selectListView(@Param("ew") Wrapper<QiandaojiluEntity> wrapper);

	List<QiandaojiluView> selectListView(Pagination page,@Param("ew") Wrapper<QiandaojiluEntity> wrapper);
	
	QiandaojiluView selectView(@Param("ew") Wrapper<QiandaojiluEntity> wrapper);
	
}

课堂考勤签到打卡小程序-结语

💕💕
Java实战项目集
微信小程序实战项目集
Python实战项目集
安卓Android实战项目集
💟💟如果大家有任何疑虑,欢迎在下方位置详细交流。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;