commit
This commit is contained in:
+36
-5
@@ -5,7 +5,6 @@ import cn.hutool.core.collection.CollUtil;
|
|||||||
import cn.hutool.core.lang.tree.Tree;
|
import cn.hutool.core.lang.tree.Tree;
|
||||||
import cn.hutool.core.lang.tree.TreeNode;
|
import cn.hutool.core.lang.tree.TreeNode;
|
||||||
import cn.hutool.core.lang.tree.TreeUtil;
|
import cn.hutool.core.lang.tree.TreeUtil;
|
||||||
import cn.hutool.core.util.BooleanUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.constant.RoleConstant;
|
import com.budwk.app.base.constant.RoleConstant;
|
||||||
@@ -35,6 +34,7 @@ import org.nutz.dao.util.cri.SqlExpressionGroup;
|
|||||||
import org.nutz.ioc.aop.Aop;
|
import org.nutz.ioc.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Lang;
|
||||||
import org.nutz.lang.util.NutMap;
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
@@ -42,9 +42,11 @@ import org.nutz.mvc.annotation.POST;
|
|||||||
import org.nutz.mvc.annotation.Param;
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@IocBean
|
@IocBean
|
||||||
@At("/platform/teacherCongress/delegation")
|
@At("/platform/teacherCongress/delegation")
|
||||||
@@ -301,9 +303,36 @@ public class TeacherCongressDelegationController {
|
|||||||
throw new BaseException("参数错误");
|
throw new BaseException("参数错误");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type.equals("TEACHER_CONGRESS_VICE_DELEGATION_HEAD")) {
|
||||||
|
List<Record> recordList = dao.query("sys_user_role", Cnd.where("tcSessionId", "=", sessionId).and("tcDelegationId", "=", delegationId).and("roleId", "=", role.getId()));
|
||||||
|
if (Lang.isEmpty(recordList)) {
|
||||||
|
return Result.success(new ArrayList<>());
|
||||||
|
}
|
||||||
|
List<String> userIdList = recordList.stream().map(record -> record.getString("userId")).toList();
|
||||||
|
String userIds = userIdList.stream()
|
||||||
|
.map(s -> "'" + s + "'") // 给每个元素加上单引号
|
||||||
|
.collect(Collectors.joining(",", "(", ")")); // 用逗号连接,并加上括号
|
||||||
|
Sql sql = Sqls.create("""
|
||||||
|
SELECT
|
||||||
|
u.id as userId,
|
||||||
|
u.loginname as loginName,
|
||||||
|
u.username as userName,
|
||||||
|
u.mobile,
|
||||||
|
n.name as unitName
|
||||||
|
FROM
|
||||||
|
sys_user u
|
||||||
|
LEFT JOIN sys_unit n on n.id = u.unitId
|
||||||
|
WHERE
|
||||||
|
u.id in %s
|
||||||
|
""".formatted(userIds));
|
||||||
|
List<NutMap> listMap = sysRoleService.listMap(sql);
|
||||||
|
return Result.success(listMap);
|
||||||
|
} else {
|
||||||
Record record = dao.fetch("sys_user_role", Cnd.where("tcSessionId", "=", sessionId).and("tcDelegationId", "=", delegationId).and("roleId", "=", role.getId()));
|
Record record = dao.fetch("sys_user_role", Cnd.where("tcSessionId", "=", sessionId).and("tcDelegationId", "=", delegationId).and("roleId", "=", role.getId()));
|
||||||
String userId = Optional.ofNullable(record).map(r -> r.getString("userId")).orElse(null);
|
String userId = Optional.ofNullable(record).map(r -> r.getString("userId")).orElse(null);
|
||||||
|
if (Lang.isEmpty(userId)) {
|
||||||
|
return Result.success(new NutMap());
|
||||||
|
}
|
||||||
Sql sql = Sqls.create("""
|
Sql sql = Sqls.create("""
|
||||||
SELECT
|
SELECT
|
||||||
u.id as userId,
|
u.id as userId,
|
||||||
@@ -323,6 +352,7 @@ public class TeacherCongressDelegationController {
|
|||||||
NutMap user = (NutMap) sql.getResult();
|
NutMap user = (NutMap) sql.getResult();
|
||||||
return Result.success().addData(user);
|
return Result.success().addData(user);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置团长
|
* 设置团长
|
||||||
@@ -330,14 +360,14 @@ public class TeacherCongressDelegationController {
|
|||||||
* @param delegationId 代表团ID
|
* @param delegationId 代表团ID
|
||||||
* @param sessionId 届次ID
|
* @param sessionId 届次ID
|
||||||
* @param userId 团长id
|
* @param userId 团长id
|
||||||
* @param viceUserId 副团长id
|
* @param viceUserIds 副团长id
|
||||||
* @param contactUserId 联络人
|
* @param contactUserId 联络人
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@At
|
@At
|
||||||
@SaCheckPermission("tc.delegation")
|
@SaCheckPermission("tc.delegation")
|
||||||
@Aop(TransAop.READ_COMMITTED)
|
@Aop(TransAop.READ_COMMITTED)
|
||||||
public Result insertHead(@Valid String delegationId, @Valid String sessionId, @Valid String userId, @Valid String viceUserId, String contactUserId) {
|
public Result insertHead(@Valid String delegationId, @Valid String sessionId, @Valid String userId, @Valid @Param("viceUserIds") String[] viceUserIds, String contactUserId) {
|
||||||
// 团长
|
// 团长
|
||||||
Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
|
Sys_role role = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_HEAD);
|
||||||
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role.getId()));
|
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role.getId()));
|
||||||
@@ -346,8 +376,9 @@ public class TeacherCongressDelegationController {
|
|||||||
// 副团长
|
// 副团长
|
||||||
Sys_role role2 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD);
|
Sys_role role2 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_VICE_DELEGATION_HEAD);
|
||||||
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role2.getId()));
|
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role2.getId()));
|
||||||
|
for (String viceUserId : viceUserIds) {
|
||||||
dao.insert("sys_user_role", Chain.make("userId", viceUserId).add("roleId", role2.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId));
|
dao.insert("sys_user_role", Chain.make("userId", viceUserId).add("roleId", role2.getId()).add("tcDelegationId", delegationId).add("tcSessionId", sessionId));
|
||||||
|
}
|
||||||
// 联络人
|
// 联络人
|
||||||
Sys_role role3 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT);
|
Sys_role role3 = sysRoleService.getByCode(RoleConstant.TEACHER_CONGRESS_DELEGATION_CONTACT);
|
||||||
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role3.getId()));
|
dao.clear(Sys_user_role.class, Cnd.where(Sys_user_role::getTcDelegationId, "=", delegationId).and(Sys_user_role::getTcSessionId, "=", sessionId).and(Sys_user_role::getRoleId, "=", role3.getId()));
|
||||||
|
|||||||
+30
-15
@@ -1,10 +1,12 @@
|
|||||||
const HEAD_FORM_TEMPLATE = {
|
const HEAD_FORM_TEMPLATE = {
|
||||||
|
/*language=HTML*/
|
||||||
template: `
|
template: `
|
||||||
<el-dialog title="设置团长" :visible.sync="headDialogFormVisible" width="700px" :close-on-click-modal="false">
|
<el-dialog title="设置团长" :visible.sync="headDialogFormVisible" width="700px" :close-on-click-modal="false">
|
||||||
<el-form :model="formData" ref="headFormRef" size="small" label-width="120px" :rules="formRules">
|
<el-form :model="formData" ref="headFormRef" size="small" label-width="120px" :rules="formRules">
|
||||||
<el-form-item prop="sessionId" label="教代会">
|
<el-form-item prop="sessionId" label="教代会">
|
||||||
<el-select v-model="formData.sessionId" disabled>
|
<el-select v-model="formData.sessionId" disabled>
|
||||||
<el-option v-for="item in sessionOptions" :label="item.fullName" :value="item.id" :key="item.id"></el-option>
|
<el-option v-for="item in sessionOptions" :label="item.fullName" :value="item.id"
|
||||||
|
:key="item.id"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="userId" label="团长">
|
<el-form-item prop="userId" label="团长">
|
||||||
@@ -20,16 +22,15 @@ const HEAD_FORM_TEMPLATE = {
|
|||||||
style="width: 100%"></user-select>
|
style="width: 100%"></user-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="viceUserId" label="副团长">
|
<el-form-item prop="viceUserId" label="副团长">
|
||||||
<user-select v-model="formData.viceUserId"
|
<el-select v-model="formData.viceUserIds" multiple placeholder="请输入工号或者姓名"
|
||||||
v-if="headDialogFormVisible"
|
:remote-method="viceUserSelectUser" remote clearable filterable style="width: 100%">
|
||||||
api="/platform/teacherCongress/delegation/notHeadUser"
|
<el-option
|
||||||
:api_params="{sessionId:formData.sessionId,delegationId:formData.delegationId}"
|
v-for="item in viceHeadOptions"
|
||||||
api_input_key_name="keyWord"
|
:key="item.userId"
|
||||||
:option_list="viceHeadOptions"
|
:label="item.userName + item.loginName + '(' + item.unitName + ')'"
|
||||||
option_value="userId"
|
:value="item.userId">
|
||||||
:option_label_func="(item)=>{return item.userName + item.loginName + '(' + item.unitName + ')'}"
|
</el-option>
|
||||||
placeholder="请输入工号或者姓名"
|
</el-select>
|
||||||
style="width: 100%"></user-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item prop="contactUserId" label="联络人">
|
<el-form-item prop="contactUserId" label="联络人">
|
||||||
<user-select v-model="formData.contactUserId"
|
<user-select v-model="formData.contactUserId"
|
||||||
@@ -64,12 +65,23 @@ const HEAD_FORM_TEMPLATE = {
|
|||||||
name: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
name: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||||
code: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
code: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||||
userId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
userId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||||
viceUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
// viceUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}],
|
||||||
// contactUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}]
|
// contactUserId: [{required: true, message: "必填", trigger: ["change", "blur"]}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
viceUserSelectUser(query) {
|
||||||
|
if (query !== "") {
|
||||||
|
$.get("/platform/teacherCongress/delegation/notHeadUser", {
|
||||||
|
"keyWord": query,
|
||||||
|
"sessionId": this.formData.sessionId,
|
||||||
|
"delegationId": this.formData.delegationId
|
||||||
|
}).then((res) => {
|
||||||
|
this.viceHeadOptions = res.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
onOpen(delegationId, sessionId) {
|
onOpen(delegationId, sessionId) {
|
||||||
if (!delegationId || !sessionId) {
|
if (!delegationId || !sessionId) {
|
||||||
return
|
return
|
||||||
@@ -102,8 +114,9 @@ const HEAD_FORM_TEMPLATE = {
|
|||||||
}).then((res) => {
|
}).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
if (res.data) {
|
if (res.data) {
|
||||||
this.viceHeadOptions = [res.data]
|
this.viceHeadOptions = res.data
|
||||||
this.$set(this.formData, "viceUserId", res.data.userId)
|
|
||||||
|
this.$set(this.formData, "viceUserIds", res.data.map(v=>v.userId))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -123,7 +136,9 @@ const HEAD_FORM_TEMPLATE = {
|
|||||||
doSubmitHead() {
|
doSubmitHead() {
|
||||||
this.$refs.headFormRef.validate((valid) => {
|
this.$refs.headFormRef.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
this.$axios.post("/platform/teacherCongress/delegation/insertHead", this.formData).then((res) => {
|
let formData = clone(this.formData)
|
||||||
|
if (formData.viceUserIds) formData.viceUserIds = JSON.stringify(formData.viceUserIds)
|
||||||
|
this.$axios.post("/platform/teacherCongress/delegation/insertHead", formData).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.headDialogFormVisible = false
|
this.headDialogFormVisible = false
|
||||||
this.$message.success(res.msg)
|
this.$message.success(res.msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user