Przeglądaj źródła

1.登录加入身份判断
2.用户信息返回身份标识
3.用户角色功能加入内置相关标识
4.用户课程关联加入真删接口

honorfire 7 miesięcy temu
rodzic
commit
e5030af948
15 zmienionych plików z 85 dodań i 5 usunięć
  1. 4 0
      snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/core/pojo/SaBaseLoginUser.java
  2. 6 1
      snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/enums/AuthExceptionEnum.java
  3. 6 0
      snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/param/AuthAccountPasswordLoginParam.java
  4. 5 0
      snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/param/AuthPhoneValidCodeLoginParam.java
  5. 11 0
      snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java
  6. 3 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseStudentRelateController.java
  7. 3 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseStudentRelateMapper.java
  8. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotesMapper.xml
  9. 8 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseStudentRelateMapper.xml
  10. 5 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseStudentRelateService.java
  11. 7 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseStudentRelateServiceImpl.java
  12. 5 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/role/entity/SysRole.java
  13. 4 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/role/param/SysRolePageParam.java
  14. 6 2
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java
  15. 11 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

+ 4 - 0
snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-api/src/main/java/vip/xiaonuo/auth/core/pojo/SaBaseLoginUser.java

@@ -251,6 +251,10 @@ public abstract class SaBaseLoginUser {
     @ApiModelProperty(value = "用户密码hash值", position = 55)
     private String password;
 
+    /** 教育身份 */
+    @ApiModelProperty(value = "教育身份", position = 7)
+    private String eduIdentity;
+
     /** 是否可登录,由继承类实现 */
     public abstract Boolean getEnabled();
 

+ 6 - 1
snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/enums/AuthExceptionEnum.java

@@ -76,7 +76,12 @@ public enum AuthExceptionEnum {
     /**
      * 密码解密失败,请检查前端公钥
      */
-    PWD_DECRYPT_ERROR("密码解密失败,请检查前端公钥");
+    PWD_DECRYPT_ERROR("密码解密失败,请检查前端公钥"),
+
+    /**
+     * 用户教育身份与所登录平台不符,请返回
+     */
+    EDU_IDENTITY_ERROR("用户教育身份与所登录平台不符,请返回");
 
     private final String value;
 

+ 6 - 0
snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/param/AuthAccountPasswordLoginParam.java

@@ -49,4 +49,10 @@ public class AuthAccountPasswordLoginParam {
     /** 验证码请求号 */
     @ApiModelProperty(value = "验证码请求号", position = 5)
     private String validCodeReqNo;
+
+    /** 教育身份 */
+    @ApiModelProperty(value = "教育身份", position = 7)
+    @NotBlank(message = "教育身份不能为空")
+    private String eduIdentity;
+
 }

+ 5 - 0
snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/param/AuthPhoneValidCodeLoginParam.java

@@ -46,4 +46,9 @@ public class AuthPhoneValidCodeLoginParam {
     /** 设备 */
     @ApiModelProperty(value = "设备", position = 4)
     private String device;
+
+    /** 教育身份 */
+    @ApiModelProperty(value = "教育身份", position = 7)
+    @NotBlank(message = "教育身份不能为空")
+    private String eduIdentity;
 }

+ 11 - 0
snowy-plugin/snowy-plugin-auth/snowy-plugin-auth-func/src/main/java/vip/xiaonuo/auth/modular/login/service/impl/AuthServiceImpl.java

@@ -241,6 +241,12 @@ public class AuthServiceImpl implements AuthService {
             if(ObjectUtil.isEmpty(saBaseLoginUser)) {
                 throw new CommonException(AuthExceptionEnum.ACCOUNT_ERROR.getValue());
             }
+            //校验用户的教育身份在所处端是否有权限登录
+            if(saBaseLoginUser.getEduIdentity().equals(authAccountPasswordLoginParam.getEduIdentity()))
+            {
+                throw new CommonException(AuthExceptionEnum.EDU_IDENTITY_ERROR.getValue());
+            }
+
             if (!saBaseLoginUser.getPassword().equals(passwordHash)) {
                 // 记录登录次数 和 过期时间
                 saveLoginTimes(account);
@@ -283,6 +289,11 @@ public class AuthServiceImpl implements AuthService {
             if(ObjectUtil.isEmpty(saBaseLoginUser)) {
                 throw new CommonException(AuthExceptionEnum.ACCOUNT_ERROR.getValue());
             }
+            //校验用户的教育身份在所处端是否有权限登录
+            if(saBaseLoginUser.getEduIdentity().equals(authPhoneValidCodeLoginParam.getEduIdentity()))
+            {
+                throw new CommonException(AuthExceptionEnum.EDU_IDENTITY_ERROR.getValue());
+            }
             // 执行B端登录
             return execLoginB(saBaseLoginUser, device);
         } else {

+ 3 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseStudentRelateController.java

@@ -203,7 +203,9 @@ public class CourseStudentRelateController {
     @PostMapping("/disk/coursestudentrelate/delete")
     public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
                                                    CommonValidList<CourseStudentRelateIdParam> courseStudentRelateIdParamList) {
-        courseStudentRelateService.delete(courseStudentRelateIdParamList);
+        List<String> wllDelIdList=CollStreamUtil.toList(courseStudentRelateIdParamList, CourseStudentRelateIdParam::getId);
+        courseStudentRelateService.deleteByIdsReal(wllDelIdList);
+//        courseStudentRelateService.delete(courseStudentRelateIdParamList);
         return CommonResult.ok();
     }
 

+ 3 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/CourseStudentRelateMapper.java

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import vip.xiaonuo.disk.domain.CourseStudentRelate;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -38,4 +39,6 @@ public interface CourseStudentRelateMapper extends BaseMapper<CourseStudentRelat
      */
     Page<Map<String,Object>> queryList(@Param("param") Map param, @Param("page") Page<Object> page);
 
+    void deleteByIdsReal(List<String> deleteIdList);
+
 }

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotesMapper.xml

@@ -31,7 +31,7 @@
   </select>
     <select id="queryList" resultType="java.util.Map">
         SELECT
-            cn.NOTE_ID AS notebookId,
+            cn.NOTE_ID AS noteId,
             IFNULL(cn.COURSE_ID,'') AS courseId,
             IFNULL(ci.COURSE_NAME,'') AS courseName,
             IFNULL(cn.USER_ID,'') AS userId,

+ 8 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseStudentRelateMapper.xml

@@ -1,6 +1,14 @@
 <?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="vip.xiaonuo.disk.mapper.CourseStudentRelateMapper">
+    <delete id="deleteByIdsReal">
+        <if test="deleteIdList !=null and deleteIdList.size()>0">
+            DELETE FROM COURSE_STUDENT_RELATE WHERE ID IN
+            <foreach collection=" deleteIdList" close=")" index="index" item="item" open="(" separator=",">
+                #{item}
+            </foreach>
+        </if>
+    </delete>
 
     <select id="queryList" resultType="java.util.Map">
         SELECT

+ 5 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/CourseStudentRelateService.java

@@ -100,6 +100,11 @@ public interface CourseStudentRelateService extends IService<CourseStudentRelate
      */
     void delete(List<CourseStudentRelateIdParam> courseStudentRelateIdParamList);
 
+    /**
+     * 课程学生关联-真实删除
+     */
+    void deleteByIdsReal(List<String> deleteIdList);
+
     /**
      * 获取课程学生关联表详情
      *

+ 7 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseStudentRelateServiceImpl.java

@@ -137,6 +137,13 @@ public class CourseStudentRelateServiceImpl extends ServiceImpl<CourseStudentRel
         this.removeByIds(CollStreamUtil.toList(courseStudentRelateIdParamList, CourseStudentRelateIdParam::getId));
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void deleteByIdsReal(List<String> deleteIdList)
+    {
+        courseStudentRelateMapper.deleteByIdsReal(deleteIdList);
+    }
+
     @Override
     public CourseStudentRelate detail(CourseStudentRelateIdParam courseStudentRelateIdParam) {
         return this.queryEntity(courseStudentRelateIdParam.getId());

+ 5 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/role/entity/SysRole.java

@@ -69,4 +69,9 @@ public class SysRole extends CommonEntity {
     @ApiModelProperty(value = "是否是资源库特殊账号,0否1是")
     @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
     private String isResourceaccount;
+
+    /** 是否是内置账号,0否1是 */
+    @ApiModelProperty(value = "是否是内置账号,0否1是")
+    @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED)
+    private String isBuiltin;
 }

+ 4 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/role/param/SysRolePageParam.java

@@ -53,4 +53,8 @@ public class SysRolePageParam {
     /** 名称关键词 */
     @ApiModelProperty(value = "名称关键词")
     private String searchKey;
+
+    /** 是否是内置账号,0否1是 */
+    @ApiModelProperty(value = "是否是内置账号,0否1是")
+    private String isBuiltin;
 }

+ 6 - 2
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/role/service/impl/SysRoleServiceImpl.java

@@ -103,7 +103,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         QueryWrapper<SysRole> queryWrapper = new QueryWrapper<>();
         // 查询部分字段
         queryWrapper.lambda().select(SysRole::getId, SysRole::getOrgId, SysRole::getName,
-                SysRole::getCategory, SysRole::getSortCode, SysRole::getIsResourceaccount);
+                SysRole::getCategory, SysRole::getSortCode, SysRole::getIsResourceaccount, SysRole::getIsBuiltin);
         if(ObjectUtil.isNotEmpty(sysRolePageParam.getOrgId())) {
             queryWrapper.lambda().eq(SysRole::getOrgId, sysRolePageParam.getOrgId());
         }
@@ -113,6 +113,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         if(ObjectUtil.isNotEmpty(sysRolePageParam.getSearchKey())) {
             queryWrapper.lambda().like(SysRole::getName, sysRolePageParam.getSearchKey());
         }
+        if(ObjectUtil.isNotEmpty(sysRolePageParam.getIsBuiltin())) {
+            queryWrapper.lambda().like(SysRole::getIsBuiltin, sysRolePageParam.getIsBuiltin());
+        }
         if(ObjectUtil.isAllNotEmpty(sysRolePageParam.getSortField(), sysRolePageParam.getSortOrder())) {
             CommonSortOrderEnum.validate(sysRolePageParam.getSortOrder());
             queryWrapper.orderBy(true, sysRolePageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
@@ -120,7 +123,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         } else {
             queryWrapper.lambda().orderByAsc(SysRole::getSortCode);
         }
-        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+        Page<SysRole> page=this.page(CommonPageRequest.defaultPage(), queryWrapper);
+        return page;
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 11 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/service/impl/SysUserServiceImpl.java

@@ -324,6 +324,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUser.setUserStatus(SysUserStatusEnum.ENABLE.getValue());
         this.save(sysUser);
 
+        //判断教育身份,如果是学生或者老师直接关联对应角色
+        String roleId="";
+        if(sysUserAddParam.getEduIdentity().equals("1")||sysUserAddParam.getEduIdentity().equals("2")) {
+            if (sysUserAddParam.getEduIdentity().equals("1")) {
+                roleId = "102";
+            } else if (sysUserAddParam.getEduIdentity().equals("2")) {
+                roleId = "103";
+            }
+        }
+        sysRelationService.saveRelationWithAppend(sysUser.getId(),roleId,SysRelationCategoryEnum.SYS_USER_HAS_ROLE.getValue());
+
         // 发布增加事件
         CommonDataChangeEventCenter.doAddWithData(SysDataTypeEnum.USER.getValue(), JSONUtil.createArray().put(sysUser));
     }