123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- package com.ruoyi.system.service.impl;
- import com.ruoyi.common.core.domain.AjaxResult;
- import com.ruoyi.common.core.domain.entity.FormalTeacherClass;
- import com.ruoyi.common.core.domain.entity.SysRole;
- import com.ruoyi.common.core.domain.entity.SysUser;
- import com.ruoyi.common.core.redis.RedisCache;
- import com.ruoyi.common.utils.SecurityUtils;
- import com.ruoyi.system.domain.SysConfig;
- import com.ruoyi.system.domain.XiakeConfig;
- import com.ruoyi.system.mapper.SysConfigMapper;
- import com.ruoyi.system.mapper.XiakeConfigMapper;
- import com.ruoyi.system.service.IAppletService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * @Author: tjf
- * @Date: 2023/5/25 11:48
- * @Describe:
- */
- @Service
- public class AppletServiceImpl implements IAppletService {
- @Autowired
- private RedisCache redisCache;
- @Autowired
- private XiakeConfigMapper xiakeConfigMapper;
- /**
- * 老师准备下课按钮
- *
- * @param formalTeacherClass
- */
- @Override
- public AjaxResult xiake(FormalTeacherClass formalTeacherClass) {
- String key = formalTeacherClass.getSchoolId() + ":" + formalTeacherClass.getClassId();
- //key = 学校id:班级id
- //Redis根据key键,查询对应的值
- String value = redisCache.getCacheObject(key);
- if ("2".equals(formalTeacherClass.getType())) {
- if (value.contains("time")) {
- return AjaxResult.error("未准备放学,请勿点击延迟放学");
- } else {
- //延迟放学
- String[] split = value.split(":");
- //下课时间
- String xiakeTime = split[1];
- //获取参数中默认下课时间
- XiakeConfig config = new XiakeConfig();
- config.setConfigKey(formalTeacherClass.getClassId()+":2");
- XiakeConfig retConfig = xiakeConfigMapper.selectConfig(config);
- //延迟下课的默认值
- String configValue = retConfig.getConfigValue();
- SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date date = null;
- try {
- date = sdf.parse(xiakeTime);
- Calendar calendar = Calendar.getInstance();
- calendar.setTime(date);
- calendar.add(Calendar.MINUTE, Integer.parseInt(configValue));
- redisCache.setCacheObject(key, value);
- return AjaxResult.success("延迟放学成功");
- } catch (ParseException e) {
- return AjaxResult.error("延迟放学失败");
- }
- }
- }
- if ("1".equals(formalTeacherClass.getType())) {
- if (!value.contains("time")) {
- return AjaxResult.error("请勿重复点击");
- }
- //value = 班级名称:放学时间
- //获取当前时间
- Calendar nowTime = Calendar.getInstance();
- //获取参数中默认下课时间
- XiakeConfig config = new XiakeConfig();
- config.setConfigKey(formalTeacherClass.getClassId()+":1");
- XiakeConfig retConfig = xiakeConfigMapper.selectConfig(config);
- String configValue = retConfig.getConfigValue();
- nowTime.add(Calendar.MINUTE, Integer.parseInt(configValue));
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- value = value.replace("time", sdf.format(nowTime.getTime()));
- redisCache.setCacheObject(key, value);
- }
- return AjaxResult.success();
- }
- @Override
- public AjaxResult index(FormalTeacherClass formalTeacherClass) {
- Map<String, Object> map = new HashMap<>(3);
- map.put("all", 0);
- Collection<String> keys = redisCache.keys(formalTeacherClass.getSchoolId() + "*");
- if (keys != null && keys.size() > 0) {
- map.put("all", keys.size());
- map.put("n", 0);
- map.put("y", 0);
- int n = 0;
- for (String key : keys) {
- //Redis根据key键,查询对应的值
- String value = redisCache.getCacheObject(key);
- //value = 班级名称:放学时间
- //判断有多少放学时间是time,占位符
- String[] split = value.split(":");
- String time = split[1];
- if ("time".equals(time)) {
- n = n + 1;
- }
- }
- if (n > 0) {
- map.put("n", n);
- int y = keys.size() - n;
- map.put("y", Math.max(y, 0));
- }
- }
- return AjaxResult.success(map);
- }
- @Override
- public AjaxResult indexList(FormalTeacherClass formalTeacherClass) {
- List<Map<String, Object>> list = new ArrayList<>();
- Collection<String> keys = redisCache.keys(formalTeacherClass.getSchoolId() + "*");
- if (keys != null && keys.size() > 0) {
- for (String key : keys) {
- String value = redisCache.getCacheObject(key);
- //value = 班级名称:放学时间
- String[] split = value.split(":");
- Map<String, Object> map = new HashMap<>();
- map.put("className", split[0]);
- map.put("time", split[1]);
- list.add(map);
- }
- }
- return AjaxResult.success(list);
- }
- @Override
- public AjaxResult pcStatistics() {
- Map<String, Object> map = new HashMap<>();
- SysUser user = SecurityUtils.getLoginUser().getUser();
- List<SysRole> roles = user.getRoles();
- boolean blt = false;
- boolean bls = false;
- for (SysRole role : roles) {
- if ("teacher".equals(role.getRoleKey())) {
- blt = true;
- }
- if ("school".equals(role.getRoleKey())) {
- bls = true;
- }
- }
- //老师
- if (blt) {
- //查询本月家长的审核数据
- }
- //学校
- if (bls) {
- }
- //两个都有
- if (blt && bls) {
- }
- return null;
- }
- }
|