From 469357d1d9aa83648130e4e78ef567bf317da3fd Mon Sep 17 00:00:00 2001 From: Mlxa0324 <mlx950324@163.com> Date: Sat, 15 Oct 2022 00:12:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E9=99=A2=E6=A0=A1=E6=97=B6?= =?UTF-8?q?=E5=80=99=EF=BC=8C=E5=88=9B=E5=BB=BA=E9=99=A2=E6=A0=A1=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ibeetl/admin/core/enums/MenuEnums.java | 3 +- .../admin/core/service/CoreUserService.java | 38 +++++++++++++++++-- .../jlw/entity/UniversitiesColleges.java | 6 +-- .../ibeetl/jlw/entity/dto/CreateUserDTO.java | 33 ++++++++++++++++ .../service/UniversitiesCollegesService.java | 34 +++++++++++++++++ .../web/UniversitiesCollegesController.java | 6 ++- .../jlw/universitiesColleges/add.html | 2 +- 7 files changed, 112 insertions(+), 10 deletions(-) create mode 100644 web/src/main/java/com/ibeetl/jlw/entity/dto/CreateUserDTO.java diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/enums/MenuEnums.java b/admin-core/src/main/java/com/ibeetl/admin/core/enums/MenuEnums.java index 2d4f99d7..a562786e 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/enums/MenuEnums.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/enums/MenuEnums.java @@ -7,12 +7,13 @@ package com.ibeetl.admin.core.enums; public enum MenuEnums { // 岗位类型 - JT_01("操作岗位"), + JT_01("管理岗位"), JT_02("操作岗位"), // 管理岗位子类型 JT_S_01("系统管理员"), JT_S_02("教师"), + JT_S_04("院校管理员"), // 操作岗位子类型 JT_S_03("学生"); diff --git a/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreUserService.java b/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreUserService.java index 732e99ab..5df824f7 100644 --- a/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreUserService.java +++ b/admin-core/src/main/java/com/ibeetl/admin/core/service/CoreUserService.java @@ -1,24 +1,29 @@ package com.ibeetl.admin.core.service; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; import com.ibeetl.admin.core.conf.PasswordConfig.PasswordEncryptService; import com.ibeetl.admin.core.dao.CoreOrgDao; import com.ibeetl.admin.core.dao.CoreUserDao; import com.ibeetl.admin.core.entity.CoreOrg; import com.ibeetl.admin.core.entity.CoreUser; +import com.ibeetl.admin.core.enums.MenuEnums; import com.ibeetl.admin.core.rbac.UserLoginInfo; import com.ibeetl.admin.core.util.PlatformException; import com.ibeetl.admin.core.util.enums.DelFlagEnum; -import com.ibeetl.admin.core.util.enums.GeneralStateEnum; import org.beetl.sql.core.SQLManager; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.lang.reflect.Method; +import java.util.Date; import java.util.List; import java.util.function.Consumer; +import static com.ibeetl.admin.core.util.enums.GeneralStateEnum.ENABLE; + @Service @Transactional public class CoreUserService { @@ -37,13 +42,13 @@ public class CoreUserService { CoreUser query = new CoreUser(); query.setCode(userName); query.setPassword(passwordEncryptService.password(password)); - query.setState(GeneralStateEnum.ENABLE.getValue()); + query.setState(ENABLE.getValue()); CoreUser user =userDao.createLambdaQuery().andEq(CoreUser::getCode,userName). andEq(CoreUser::getPassword, passwordEncryptService.password(password)).single(); if(user==null) { throw new PlatformException("用户"+userName+"不存在或者密码错误"); } - if(!user.getState().equals(GeneralStateEnum.ENABLE.getValue())){ + if(!user.getState().equals(ENABLE.getValue())){ throw new PlatformException("用户"+userName+"已经失效"); } if(user.getDelFlag()==DelFlagEnum.DELETED.getValue()) { @@ -57,6 +62,33 @@ public class CoreUserService { return loginInfo; } + + /** + * 新增用户 (指定权限) + * + * @param userCode 用户Code + * @param password 登录密码(明文传入) + * @param orgId 组织ID + * @param jobType0 岗位 + * @param jobType1 岗位子类型 + */ + public Long createUserBySomeParams(String userCode, String password, Long orgId, MenuEnums jobType0, MenuEnums jobType1 ) { + Assert.isTrue(ObjectUtil.isAllNotEmpty(userCode, password, orgId, jobType0, jobType1), "所有参数均为必传!"); + + CoreUser user = new CoreUser(); + user.setName(userCode); + user.setCode(userCode); + user.setPassword(passwordEncryptService.password(password)); + user.setState(ENABLE.getValue()); + user.setCreateTime(new Date()); + user.setDelFlag(0); + user.setJobType0(jobType0.name()); + user.setJobType1(jobType1.name()); + user.setState(ENABLE.getValue()); + user.setOrgId(orgId); + userDao.insert(user); + return user.getId(); + } public List<CoreOrg> getUserOrg(long userId,long orgId){ List<CoreOrg> orgs = orgDao.queryOrgByUser(userId); diff --git a/web/src/main/java/com/ibeetl/jlw/entity/UniversitiesColleges.java b/web/src/main/java/com/ibeetl/jlw/entity/UniversitiesColleges.java index 735b108d..f0609f47 100644 --- a/web/src/main/java/com/ibeetl/jlw/entity/UniversitiesColleges.java +++ b/web/src/main/java/com/ibeetl/jlw/entity/UniversitiesColleges.java @@ -70,7 +70,7 @@ public class UniversitiesColleges extends BaseEntity{ // 院校默认管理员用户ID @Dict(type = "core_user.CODE.1=1") - private String universitiesCdollegesDefaultAdminUserId; + private Long universitiesCdollegesDefaultAdminUserId; // @FetchSql("select * from core_user where id = #universitiesCdollegesDefaultAdminUserId# ") // private CoreUser defaultAdminUser; @@ -263,11 +263,11 @@ public class UniversitiesColleges extends BaseEntity{ this.universitiesCollegesAuthCode = universitiesCollegesAuthCode; } - public String getUniversitiesCdollegesDefaultAdminUserId() { + public Long getUniversitiesCdollegesDefaultAdminUserId() { return universitiesCdollegesDefaultAdminUserId; } - public void setUniversitiesCdollegesDefaultAdminUserId(String universitiesCdollegesDefaultAdminUserId) { + public void setUniversitiesCdollegesDefaultAdminUserId(Long universitiesCdollegesDefaultAdminUserId) { this.universitiesCdollegesDefaultAdminUserId = universitiesCdollegesDefaultAdminUserId; } diff --git a/web/src/main/java/com/ibeetl/jlw/entity/dto/CreateUserDTO.java b/web/src/main/java/com/ibeetl/jlw/entity/dto/CreateUserDTO.java new file mode 100644 index 00000000..474773da --- /dev/null +++ b/web/src/main/java/com/ibeetl/jlw/entity/dto/CreateUserDTO.java @@ -0,0 +1,33 @@ +package com.ibeetl.jlw.entity.dto; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * <p> + * + * </p> + * + * @author mlx + * @date 2022/10/14 + * @modified + */ +@Data +public class CreateUserDTO { + + @NotBlank(message = "用户Code不能为空!") + private String userCode; + + @NotBlank(message = "用户密码不能为空!") + private String password; + +// @NotNull(message = "用户机构ID不能为空!") +// private Long orgId; + +// @NotNull(message = "岗位不能为空!") +// private MenuEnums jobType0; +// +// @NotNull(message = "子岗位不能为空!") +// private MenuEnums jobType1; +} diff --git a/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java b/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java index 5c97fc73..b9644a6a 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/UniversitiesCollegesService.java @@ -5,15 +5,18 @@ import cn.hutool.core.util.RandomUtil; import com.ibeetl.admin.console.service.OrgConsoleService; import com.ibeetl.admin.core.entity.CoreOrg; import com.ibeetl.admin.core.service.CoreBaseService; +import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.jlw.dao.UniversitiesCollegesDao; import com.ibeetl.jlw.entity.SchoolClass; import com.ibeetl.jlw.entity.UniversitiesColleges; +import com.ibeetl.jlw.entity.dto.CreateUserDTO; import com.ibeetl.jlw.web.query.SchoolClassQuery; import com.ibeetl.jlw.web.query.UniversitiesCollegesQuery; import org.beetl.sql.core.SqlId; import org.beetl.sql.core.engine.PageQuery; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.util.Date; @@ -21,12 +24,16 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import static com.ibeetl.admin.core.enums.MenuEnums.JT_01; +import static com.ibeetl.admin.core.enums.MenuEnums.JT_S_04; + /** * UniversitiesColleges Service */ @Service @Transactional +@Validated public class UniversitiesCollegesService extends CoreBaseService<UniversitiesColleges>{ @Resource private UniversitiesCollegesDao universitiesCollegesDao; @@ -34,6 +41,7 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol @Resource private SchoolClassService schoolClassService; @Resource private OrgConsoleService orgConsoleService; + @Resource private CoreUserService coreUserService; public PageQuery<UniversitiesColleges>queryByCondition(PageQuery query){ PageQuery ret = universitiesCollegesDao.queryByCondition(query); @@ -69,6 +77,9 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol coreOrg.setCreateTime(new Date()); orgConsoleService.insert(coreOrg); + // 机构ID + universitiesColleges.setOrgId(coreOrg.getId()); + UniversitiesColleges u = new UniversitiesColleges(); u.setUniversitiesCollegesId(universitiesColleges.getUniversitiesCollegesId()); u.setOrgId(coreOrg.getId()); @@ -79,6 +90,29 @@ public class UniversitiesCollegesService extends CoreBaseService<UniversitiesCol return true; } + /** + * 添加院校信息,添加机构信息,修改院校的授权码 + * 默认创建院校管理员权限的用户 + * + * @param universitiesColleges + * @param dto + */ + public void addAndCreateCoreUser(UniversitiesColleges universitiesColleges, @Validated CreateUserDTO dto) { + // 添加院校信息,添加机构信息,修改院校的授权码 + add(universitiesColleges); + + // 默认创建院校管理员权限的用户 + Long defaultAdminUserId = coreUserService.createUserBySomeParams( + dto.getUserCode(), dto.getPassword(), universitiesColleges.getOrgId(), JT_01, JT_S_04); + + // 用户添加成功后,将用户ID 回传给该学校的默认管理员字段 + UniversitiesColleges u = new UniversitiesColleges(); + u.setUniversitiesCollegesId(universitiesColleges.getUniversitiesCollegesId()); + u.setUniversitiesCdollegesDefaultAdminUserId(defaultAdminUserId); + universitiesCollegesDao.updateTemplateById(u); + + } + public boolean edit(UniversitiesColleges universitiesColleges){ universitiesCollegesDao.updateTemplateById(universitiesColleges); diff --git a/web/src/main/java/com/ibeetl/jlw/web/UniversitiesCollegesController.java b/web/src/main/java/com/ibeetl/jlw/web/UniversitiesCollegesController.java index f57d165d..fff2b237 100644 --- a/web/src/main/java/com/ibeetl/jlw/web/UniversitiesCollegesController.java +++ b/web/src/main/java/com/ibeetl/jlw/web/UniversitiesCollegesController.java @@ -10,6 +10,7 @@ import com.ibeetl.admin.core.service.CoreUserService; import com.ibeetl.admin.core.util.HttpRequestLocal; import com.ibeetl.admin.core.web.JsonResult; import com.ibeetl.jlw.entity.UniversitiesColleges; +import com.ibeetl.jlw.entity.dto.CreateUserDTO; import com.ibeetl.jlw.service.UniversitiesCollegesService; import com.ibeetl.jlw.web.query.UniversitiesCollegesQuery; import org.apache.commons.logging.Log; @@ -110,13 +111,14 @@ public class UniversitiesCollegesController{ @PostMapping(MODEL + "/add.json") @Function("universitiesColleges.add") @ResponseBody - public JsonResult add(@Validated(ValidateConfig.ADD.class)UniversitiesColleges universitiesColleges, BindingResult result){ + public JsonResult add(@Validated(ValidateConfig.ADD.class)UniversitiesColleges universitiesColleges, + @Validated CreateUserDTO createUserDTO, BindingResult result){ if(result.hasErrors()){ return JsonResult.failMessage(result); }else{ universitiesColleges.setAddTime(new Date()); universitiesColleges.setUniversitiesCollegesStatus(1); - universitiesCollegesService.add(universitiesColleges); + universitiesCollegesService.addAndCreateCoreUser(universitiesColleges, createUserDTO); platformService.clearOrgCache(); return JsonResult.success(); } diff --git a/web/src/main/resources/templates/jlw/universitiesColleges/add.html b/web/src/main/resources/templates/jlw/universitiesColleges/add.html index 9d141f44..315f182b 100644 --- a/web/src/main/resources/templates/jlw/universitiesColleges/add.html +++ b/web/src/main/resources/templates/jlw/universitiesColleges/add.html @@ -95,7 +95,7 @@ <div class="layui-inline"> <label class="layui-form-label"><span class="req">*</span>用户名:</label> <div class="layui-input-inline"> - <input type="text" name="userName" value="${universitiesColleges.universitiesCdollegesDefaultAdminUserIdText!}" class="layui-input" > + <input type="text" name="userCode" value="${universitiesColleges.universitiesCdollegesDefaultAdminUserIdText!}" class="layui-input" > </div> </div> <div class="layui-inline">