Browse Source

Merge remote-tracking branch 'origin/master'

Administrator 1 year ago
parent
commit
8110bc3cc0

+ 10 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/common/AppletController.java

@@ -75,6 +75,16 @@ public class AppletController extends BaseController {
         return  appletService.fangXueStatistics();
     }
 
+    /**
+     *首页班级人数统计
+     * 老师返回自己所带的班级,学校返回所有班级
+     */
+    @GetMapping("/pc/classStudentNum")
+    public AjaxResult pcClassStudentNum()
+    {
+        return  appletService.pcClassStudentNum();
+    }
+
     @SaIgnore
     @GetMapping("/pc/afterClass")
     public AjaxResult afterClass()

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/FormalParentsStudentBo.java

@@ -1,5 +1,6 @@
 package org.dromara.system.domain.bo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import org.dromara.system.domain.FormalParentsStudent;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
@@ -9,6 +10,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 
+import java.util.List;
+
 /**
  * 家长-学生(审核通过之后数据)业务对象 formal_parents_student
  *
@@ -78,5 +81,9 @@ public class FormalParentsStudentBo extends BaseEntity {
     //@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
+    @TableField(exist = false)
+    private List<Long> classIds;
+
+
 
 }

+ 4 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/vo/SysDeptVo.java

@@ -2,6 +2,7 @@ package org.dromara.system.domain.vo;
 
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
 import org.dromara.common.excel.annotation.ExcelDictFormat;
 import org.dromara.common.excel.convert.ExcelDictConvert;
 import org.dromara.system.domain.SysDept;
@@ -95,4 +96,7 @@ public class SysDeptVo implements Serializable {
     @ExcelProperty(value = "创建时间")
     private Date createTime;
 
+    @TableField(exist = false)
+    private int studentNum;
+
 }

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java

@@ -1,5 +1,6 @@
 package org.dromara.system.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.system.domain.SysUserRole;
 
@@ -14,4 +15,5 @@ public interface SysUserRoleMapper extends BaseMapperPlus<SysUserRole, SysUserRo
 
     List<Long> selectUserIdsByRoleId(Long roleId);
 
+    SysUserRole selectUserRole(@Param("userId") Long userId, @Param("roleId")int roleId);
 }

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/common/IAppletService.java

@@ -15,6 +15,8 @@ public interface IAppletService {
     public AjaxResult indexList(FormalTeacherClass formalTeacherClass);
 
     AjaxResult pcStatistics();
+
+    AjaxResult pcClassStudentNum();
     /**
      *首页统计今日准时放学/延迟放学/本周发布文章
      */

+ 2 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/FormalParentsStudentServiceImpl.java

@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.system.domain.CourseChange;
 import org.springframework.stereotype.Service;
 import org.dromara.system.domain.bo.FormalParentsStudentBo;
 import org.dromara.system.domain.vo.FormalParentsStudentVo;
@@ -78,6 +79,7 @@ public class FormalParentsStudentServiceImpl implements IFormalParentsStudentSer
         lqw.like(StringUtils.isNotBlank(bo.getStudentName()), FormalParentsStudent::getStudentName, bo.getStudentName());
         lqw.eq(StringUtils.isNotBlank(bo.getStudentNumber()), FormalParentsStudent::getStudentNumber, bo.getStudentNumber());
         lqw.eq(StringUtils.isNotBlank(bo.getIsDel()), FormalParentsStudent::getIsDel, bo.getIsDel());
+        lqw.in((bo.getClassIds()!=null && bo.getClassIds().size()>0), FormalParentsStudent::getClassId,bo.getClassIds());
         return lqw;
     }
 

+ 5 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/ZhxyShyjServiceImpl.java

@@ -75,6 +75,8 @@ public class ZhxyShyjServiceImpl implements IZhxyShyjService {
     private final SysMenuMapper sysMenuMapper;
     private final SysRoleMenuMapper roleMenuMapper;
 
+    private final SysUserRoleMapper userRoleMapper;
+
     /**
      * 查询智慧校园_审核意见
      */
@@ -342,10 +344,9 @@ public class ZhxyShyjServiceImpl implements IZhxyShyjService {
                     Long[] roleIds = {5L};
                     sysUserServiceImpl.insertUserRoleNoTenantId(sysUser.getUserId(), roleIds,false);
                 } else {
-                    FormalParentsStudentBo parentsStudent = new FormalParentsStudentBo();
-                    parentsStudent.setParentsId(sysUser.getUserId());
-                    List<FormalParentsStudentVo> parentsStudentList = formalParentsStudentService.queryList(parentsStudent);
-                    if (parentsStudentList == null || parentsStudentList.size() <= 0) {
+                    //账号存在
+                    SysUserRole userRole = userRoleMapper.selectUserRole(sysUser.getUserId(),5);
+                    if(userRole==null){
                         //新增用户与角色管理
                         Long[] roleIds = {5L};
                         sysUserServiceImpl.insertUserRoleNoTenantId(sysUser.getUserId(), roleIds,false);

+ 73 - 15
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/common/AppletServiceImpl.java

@@ -14,6 +14,8 @@ import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.redis.utils.RedisUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.system.domain.*;
+import org.dromara.system.domain.bo.FormalParentsStudentBo;
+import org.dromara.system.domain.bo.FormalTeacherClassBo;
 import org.dromara.system.domain.bo.SysDeptBo;
 import org.dromara.system.domain.bo.XiaoyuanInfoBo;
 import org.dromara.system.domain.info.XiaoyuanInfo;
@@ -28,6 +30,8 @@ import org.dromara.system.mapper.*;
 import org.dromara.system.mapper.info.XiaoyuanInfoMapper;
 import org.dromara.system.mapper.notice.XiaoyuanNoticeMapper;
 import org.dromara.system.mapper.xiake.XiakeConfigMapper;
+import org.dromara.system.service.IFormalParentsStudentService;
+import org.dromara.system.service.ISysDeptService;
 import org.dromara.system.service.common.IAppletService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -59,6 +63,8 @@ public class AppletServiceImpl implements IAppletService {
 
     private final FormalTeacherClassMapper formalTeacherClassMapper;
 
+    private final IFormalParentsStudentService formalParentsStudentServicel;
+
 
     private final RegisterTeacherMapper registerTeacherMapper;
 
@@ -68,6 +74,7 @@ public class AppletServiceImpl implements IAppletService {
     private final XiaoyuanNoticeMapper xiaoyuanNoticeMapper;
 
     private final XiaoyuanInfoMapper xiaoyuanInfoMapper;
+    private final ISysDeptService deptService;
 
     @Override
     public R<Void> xiake(FormalTeacherClass formalTeacherClass) {
@@ -197,26 +204,12 @@ public class AppletServiceImpl implements IAppletService {
         for (SysDeptVo sysDept : fSysDeptList) {
             for (SysDeptVo dept : pSysDeptList) {
                 if (sysDept.getDeptId().equals(dept.getParentId())) {
-                    String key = DateUtils.getDate() + ":" + sysDept.getDeptId() + ":" + dept.getDeptId();
+                    String key = sysDept.getDeptId() + ":" + dept.getDeptId();
                     String value = dept.getDeptName() + ":time";
                     RedisUtils.setCacheObject(key, value);
                 }
             }
         }
-
-        //设置昨日延迟放学数量 = TODAY_YAN_CHI + formalTeacherClass.getSchoolId() + ":" + DateUtils.getDate()
-        Object num = RedisUtils.getCacheObject(TODAY_YAN_CHI + ":" + pSysDeptList.get(0).getDeptId() + ":" + DateUtils.getDateByDays(-1));
-        if (ObjectUtils.isEmpty(num)) {
-            //设置昨日延迟放学数量 = 0
-            RedisUtils.setCacheObject(LAST_DAY_YAN_CHI + ":" + pSysDeptList.get(0).getDeptId() + ":" + DateUtils.getDateByDays(-1), 0);
-            //设置昨日准时放学数量 = pSysDeptList.size() - 昨日延迟放学数量
-            RedisUtils.setCacheObject(LAST_DAY_ZHUN_SHI + ":" + pSysDeptList.get(0).getDeptId() + ":" + DateUtils.getDateByDays(-1), pSysDeptList.size());
-        } else {
-            RedisUtils.setCacheObject(LAST_DAY_YAN_CHI + ":" + pSysDeptList.get(0).getDeptId() + ":" + DateUtils.getDateByDays(-1), num);
-            RedisUtils.setCacheObject(LAST_DAY_ZHUN_SHI + ":" + pSysDeptList.get(0).getDeptId() + ":" + DateUtils.getDateByDays(-1), pSysDeptList.size() - (int) num);
-        }
-        //设置今日延迟放学数量
-        RedisUtils.setCacheObject(TODAY_YAN_CHI + ":" + pSysDeptList.get(0).getDeptId() + ":" + DateUtils.getDate(), 0);
     }
 
     @Override
@@ -384,6 +377,71 @@ public class AppletServiceImpl implements IAppletService {
         return AjaxResult.success(map);
     }
 
+    @Override
+    public AjaxResult pcClassStudentNum() {
+        List<Map<String,Object>> mapList = new ArrayList<>();
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        List<RoleDTO> roles = loginUser.getRoles();
+        boolean bls = false;
+        for (RoleDTO role : roles) {
+            if ("school".equals(role.getRoleKey())) {
+                bls = true;
+                break;
+            }
+        }
+        if("admin".equals(loginUser.getUsername())){
+            bls = true;
+        }
+        //查看所有班级
+        if(bls){
+            List<SysDeptVo> sysDeptVos = deptService.selectDeptList(new SysDeptBo());
+            //查询所有班级的学生
+            List<Long> deptIdList = sysDeptVos.stream().map(SysDeptVo::getDeptId).collect(Collectors.toList());
+            FormalParentsStudentBo sbo = new FormalParentsStudentBo();
+            sbo.setClassIds(deptIdList);
+            List<FormalParentsStudentVo> formalParentsStudent = formalParentsStudentServicel.queryList(sbo);
+            Map<Long, List<FormalParentsStudentVo>> studentMap = formalParentsStudent.stream().collect(Collectors.groupingBy(FormalParentsStudentVo::getClassId));
+            for (SysDeptVo sysDeptVo : sysDeptVos) {
+                if(sysDeptVo.getParentId()!=0L && studentMap.get(sysDeptVo.getParentId())!=null){
+                    Map<String,Object> cMap = new HashMap<>();
+                    sysDeptVo.setStudentNum(studentMap.get(sysDeptVo.getParentId()).size());
+                    cMap.put("className",sysDeptVo.getDeptName());
+                    cMap.put("value",sysDeptVo);
+                    mapList.add(cMap);
+                }
+            }
+
+        }else{
+            //老师,查询自己的班级
+            FormalTeacherClassBo formalTeacherClass = new FormalTeacherClassBo();
+            formalTeacherClass.setTeacherId(loginUser.getUserId());
+            List<FormalTeacherClassVo> formalTeacherClassList = formalTeacherClassMapper.queryMapperList(formalTeacherClass);
+            List<Long> classIds = formalTeacherClassList.stream().map(FormalTeacherClassVo::getClassId).collect(Collectors.toList());
+            FormalParentsStudentBo sbo = new FormalParentsStudentBo();
+            sbo.setClassIds(classIds);
+            List<FormalParentsStudentVo> formalParentsStudent = formalParentsStudentServicel.queryList(sbo);
+            Map<Long, List<FormalParentsStudentVo>> studentMap = formalParentsStudent.stream().collect(Collectors.groupingBy(FormalParentsStudentVo::getClassId));
+            for (FormalTeacherClassVo formalTeacherClassVo : formalTeacherClassList) {
+                //查询部门
+                SysDeptVo sysDeptVo = sysDeptMapper.selectDeptById(formalTeacherClassVo.getClassId());
+                if(sysDeptVo!=null){
+                    int index = 0;
+                    if(studentMap.get(formalTeacherClassVo.getClassId())!=null){
+                        index = studentMap.get(formalTeacherClassVo.getClassId()).size();
+                    }
+                    sysDeptVo.setStudentNum(index);
+                    Map<String,Object> tMap = new HashMap<>();
+                    tMap.put("className",sysDeptVo.getDeptName());
+                    tMap.put("value",sysDeptVo);
+                    mapList.add(tMap);
+                }
+
+            }
+        }
+
+        return AjaxResult.success(mapList);
+    }
+
     /**
      * 首页统计今日准时放学/延迟放学/本周发布文章
      */

+ 4 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml

@@ -9,5 +9,9 @@
         inner join sys_user_role sur
             on u.user_id = sur.user_id and sur.role_id = #{roleId}
     </select>
+    <select id="selectUserRole" resultType="org.dromara.system.domain.SysUserRole">
+        select user_id as userId, role_id as roleId from sys_user_role
+        where user_id = #{userId} and role_id = #{roleId}
+    </select>
 
 </mapper>