From 6dd08cfa79b6d5dfb2276c1019b7e58722dc0276 Mon Sep 17 00:00:00 2001 From: zhouhefeng Date: Thu, 3 Apr 2025 08:59:19 +0800 Subject: [PATCH] commit --- .../basic/ActivityBasicScopeController.java | 201 +---- .../union/ActivityAuditController.java | 16 +- .../ActivityUnionApplyUserController.java | 197 +++++ .../union/ActivityUnionManageController.java | 114 ++- ...ActivityUnionUserStatisticsController.java | 46 +- .../nutz/activity/models/ActivityTissue.java | 34 +- .../impl/ActivityTissueServiceImpl.java | 28 +- .../controller/QuestionH5Controller.java | 12 +- .../components/activity/school/tissueInfo.vue | 280 +++---- .../unionActivity/common/activityInfo.html | 6 +- .../activity/unionActivity/common/initMap.js | 16 +- .../activity/unionActivity/myActivity.html | 55 +- .../mobile/activity/unionActivity/sign.html | 77 +- .../activity/unionActivity/singleReg.html | 130 ++- .../activity/unionActivity/unionReg.html | 241 +++--- .../activity/union/applyActivity.html | 769 +++++++++++------- .../activity/union/clubActivityApplyUser.html | 12 + .../activity/union/layoutActivity.html | 132 ++- .../activity/union/layoutApplyUser.html | 438 ++++++++++ .../union/layoutStatisticsActivity.html | 92 ++- .../union/schoolActivityApplyUser.html | 12 + .../union/unionActivityApplyUser.html | 12 + .../trainSingUp/statistics/include_view.html | 6 +- 23 files changed, 1957 insertions(+), 969 deletions(-) create mode 100644 src/main/java/io/v/nutz/activity/controller/union/ActivityUnionApplyUserController.java create mode 100644 src/main/resources/views/platform/activity/union/clubActivityApplyUser.html create mode 100644 src/main/resources/views/platform/activity/union/layoutApplyUser.html create mode 100644 src/main/resources/views/platform/activity/union/schoolActivityApplyUser.html create mode 100644 src/main/resources/views/platform/activity/union/unionActivityApplyUser.html diff --git a/src/main/java/io/v/nutz/activity/controller/basic/ActivityBasicScopeController.java b/src/main/java/io/v/nutz/activity/controller/basic/ActivityBasicScopeController.java index 9d627fe..78f11c0 100644 --- a/src/main/java/io/v/nutz/activity/controller/basic/ActivityBasicScopeController.java +++ b/src/main/java/io/v/nutz/activity/controller/basic/ActivityBasicScopeController.java @@ -1,17 +1,13 @@ package io.v.nutz.activity.controller.basic; import cn.afterturn.easypoi.excel.ExcelExportUtil; -import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; -import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; -import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import io.v.nutz.activity.models.ActivityUserCnd; import io.v.nutz.activity.models.ActivityUserScope; import io.v.nutz.activity.services.ActivityBasicScopeService; -import io.v.nutz.activity.template.UserTemp; import io.v.nutz.annontation.ViReturn; import io.v.nutz.base.service.SimpleService; import io.v.nutz.base.utils.Vi; @@ -23,31 +19,27 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.ArrayUtils; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.RequiresPermissions; -import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.dao.util.cri.Static; -import org.nutz.integration.jedis.RedisService; -import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.json.Json; import org.nutz.lang.Lang; import org.nutz.lang.util.NutMap; -import org.nutz.mvc.annotation.*; -import org.nutz.mvc.upload.TempFile; -import org.nutz.mvc.upload.UploadAdaptor; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.POST; +import org.nutz.mvc.annotation.Param; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; /** @@ -63,8 +55,6 @@ public class ActivityBasicScopeController { @Inject private SimpleService simpleService; - @Inject - private RedisService redisService; @Inject private ActivityBasicScopeService activityBasicScopeService; @@ -107,7 +97,6 @@ public class ActivityBasicScopeController { @Param(value = "personTypes", required = false) String[] personTypes, @Param(value = "userStates", required = false) String[] userStates, @Param(value = "memberTypes", required = false) String[] memberTypes, - @Param(value = "maritalTypes", required = false) String[] maritalTypes, @Param(value = "sexTypes", required = false) String[] sexTypes, @Param(value = "age", required = false) String[] age, @Param(value = "teacherMeetingId", required = false) String teacherMeetingId, @@ -116,8 +105,7 @@ public class ActivityBasicScopeController { @Param(value = "clubId", required = false) String clubId, @Param(value = "reverseSelection") boolean reverseSelection, @Param(value = "activityGroupId", required = false) Integer activityGroupId, - @Param(value = "activityUserCnd", required = false) String activityUserCndStr, - @Param(value = "existsLoginNameRedisKey", required = false) String existsLoginNameRedisKey) { + @Param(value = "activityUserCnd", required = false) String activityUserCndStr) { Sql sql = Sqls.create(""" SELECT DISTINCT(u.id) as id, @@ -130,22 +118,16 @@ public class ActivityBasicScopeController { u.userState, u.unitname AS unitName, u.unionname AS unionName, - TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) AS age, - TIMESTAMPDIFF(YEAR, u.schoolTime, CURDATE()) AS teachNum, - su.maritalStatus + TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) AS age FROM `user` u LEFT JOIN sys_user_role sur on sur.userid = u.id LEFT JOIN sys_club_user clubuser ON clubuser.userid=u.id - LEFT JOIN single_user su on su.userId = u.id $condition """); try { - Cnd cnd = getCnd(pageForm, unionId, unitId, personTypes, userStates, memberTypes, maritalTypes, sexTypes, age, teacherMeetingId, roleIds, userId, clubId, reverseSelection, activityGroupId, activityUserCndStr); - if (StrUtil.isNotBlank(existsLoginNameRedisKey)) { - List loginNames = redisService.lrange(existsLoginNameRedisKey, 0, -1); - cnd.andEX("u.loginname", "in", loginNames); - } + Cnd cnd = getCnd(pageForm, unionId, unitId, personTypes, userStates, memberTypes, sexTypes, age, teacherMeetingId, roleIds, userId, clubId, reverseSelection, activityGroupId, activityUserCndStr); + sql.setCondition(cnd); return simpleService.list(pageForm, sql); @@ -169,7 +151,6 @@ public class ActivityBasicScopeController { @At @ViReturn @POST - @Aop(TransAop.READ_COMMITTED) @RequiresPermissions("activity.basic.scope") public Object doSetActivityUser(PageForm pageForm, @Param(value = "unionId", required = false) String unionId, @@ -177,7 +158,6 @@ public class ActivityBasicScopeController { @Param(value = "personTypes", required = false) String[] personTypes, @Param(value = "userStates", required = false) String[] userStates, @Param(value = "memberTypes", required = false) String[] memberTypes, - @Param(value = "maritalTypes", required = false) String[] maritalTypes, @Param(value = "sexTypes", required = false) String[] sexTypes, @Param(value = "age", required = false) String[] age, @Param(value = "activityGroupId", required = false) Integer activityGroupId, @@ -189,8 +169,7 @@ public class ActivityBasicScopeController { @Param(value = "userId", required = false) String[] userId, @Param(value = "clubId", required = false) String clubId, @Param(value = "reverseSelection") boolean reverseSelection, - @Param(value = "activityUserCnd", required = false) String activityUserCndStr, - @Param(value = "existsLoginNameRedisKey", required = false) String existsLoginNameRedisKey) { + @Param(value = "activityUserCnd", required = false) String activityUserCndStr) { Sql sql = Sqls.create(""" SELECT DISTINCT ( u.id ) AS userId @@ -198,14 +177,10 @@ public class ActivityBasicScopeController { `user` u LEFT JOIN sys_user_role sur ON sur.userid = u.id LEFT JOIN sys_club_user clubuser ON clubuser.userid=u.id - LEFT JOIN single_user su on su.userId = u.id $condition """); - Cnd cnd = getCnd(pageForm, unionId, unitId, personTypes, userStates, memberTypes, maritalTypes, sexTypes, age, teacherMeetingId, roleIds, userId, clubId, reverseSelection, activityGroupId, activityUserCndStr); - if (StrUtil.isNotBlank(existsLoginNameRedisKey)) { - List loginNames = redisService.lrange(existsLoginNameRedisKey, 0, -1); - cnd.andEX("u.loginname", "in", loginNames); - } + Cnd cnd = getCnd(pageForm, unionId, unitId, personTypes, userStates, memberTypes, sexTypes, age, teacherMeetingId, roleIds, userId, clubId, reverseSelection, activityGroupId, activityUserCndStr); + sql.setCondition(cnd); sql.setCallback(Sqls.callback.entities()); sql.setEntity(dao.getEntity(ActivityUserScope.class)); @@ -260,11 +235,11 @@ public class ActivityBasicScopeController { $condition """); Cnd cnd = Cnd.NEW(); - if (!ShiroUtil.hasAnyRoles("sysadmin,H06,H10")) { - if (ShiroUtil.hasAnyRoles(new String[]{"H04", "club01"})) { - cnd.and("creator", "=", ShiroUtil.getPrincipalProperty("id")); - } - } +// if (!ShiroUtil.hasAnyRoles("sysadmin,H06,H10")) { +// if (ShiroUtil.hasAnyRoles(new String[]{"H04", "club01"})) { +// cnd.and("creator", "=", ShiroUtil.getPrincipalProperty("id")); +// } +// } cnd.and("groupId", "IS NOT", null); cnd.and("groupName", "IS NOT", null); cnd.groupBy("groupId"); @@ -282,8 +257,8 @@ public class ActivityBasicScopeController { @ViReturn // @RequiresPermissions("activity.basic.scope") public Object getScopeUser(String activityGroupId, @Param(value = "userId", required = false) String userId) { - String userid = StrUtil.isNotBlank(userId) ? userId : io.v.nutz.util.ShiroUtil.getUserId(); - return simpleService.dao().count(ActivityUserScope.class, Cnd.where("groupId", "=", activityGroupId).and("userId", "=", io.v.nutz.util.ShiroUtil.getUserId())); + String userid = StrUtil.isNotBlank(userId) ? userId : ShiroUtil.getUserId(); + return simpleService.dao().count(ActivityUserScope.class, Cnd.where("groupId", "=", activityGroupId).and("userId", "=", userid)); } @At @@ -308,7 +283,7 @@ public class ActivityBasicScopeController { addv("is_A06", ShiroUtil.hasRole("A06")); addv("is_H04", ShiroUtil.hasRole("H04")); addv("is_H02", ShiroUtil.hasRole("club01")); - addv("is_H03", ShiroUtil.hasRole("H03")); + addv("is_H03", ShiroUtil.hasRole("SchoolUnionMemberAdmin")); addv("is_sysadmin", ShiroUtil.hasRole("sysadmin")); addv("unionid", Vi.getUnionId()); }}; @@ -333,10 +308,11 @@ public class ActivityBasicScopeController { COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'sys_user' - AND TABLE_SCHEMA = 'zhgh_jviv' + AND TABLE_SCHEMA = 'zhgh_hmc' """); List sqlDataList = activityBasicScopeService.listMap(sql); - sqlDataList.forEach(v -> v.put("DATA_TYPE", new String((byte[]) v.get("DATA_TYPE")))); +// sqlDataList.forEach(v -> v.put("DATA_TYPE", new String((byte[]) v.get("DATA_TYPE")))); + sqlDataList.forEach(v -> v.put("DATA_TYPE", v.getString("DATA_TYPE"))); return sqlDataList; } catch (Exception e) { e.printStackTrace(); @@ -347,7 +323,6 @@ public class ActivityBasicScopeController { @At @ViReturn - @RequiresPermissions("activity.basic.scope") public void doExportUser(PageForm pageForm, @Param(value = "props", required = false) String props, @@ -356,7 +331,6 @@ public class ActivityBasicScopeController { @Param(value = "personTypes", required = false) String[] personTypes, @Param(value = "userStates", required = false) String[] userStates, @Param(value = "memberTypes", required = false) String[] memberTypes, - @Param(value = "maritalTypes", required = false) String[] maritalTypes, @Param(value = "sexTypes", required = false) String[] sexTypes, @Param(value = "age", required = false) String[] age, @Param(value = "teacherMeetingId", required = false) String teacherMeetingId, @@ -365,39 +339,31 @@ public class ActivityBasicScopeController { @Param(value = "clubId", required = false) String clubId, @Param(value = "reverseSelection") boolean reverseSelection, @Param(value = "activityGroupId", required = false) Integer activityGroupId, - @Param(value = "activityUserCnd", required = false) String activityUserCndStr, - @Param(value = "existsLoginNameRedisKey", required = false) String existsLoginNameRedisKey, - HttpServletResponse response) { + @Param(value = "activityUserCnd", required = false) String activityUserCndStr, HttpServletResponse response) { Sql sql = Sqls.create(""" - SELECT - DISTINCT(u.id) as id, - u.loginname AS loginName, - u.username AS userName, - u.sex, - u.birthday, - u.mobile, - u.personType, - u.userState, - u.unitname AS unitName, - u.unionname AS unionName, - TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) AS age, - TIMESTAMPDIFF(YEAR, u.schoolTime, CURDATE()) AS teachNum, - su.maritalStatus - FROM - `user` u - LEFT JOIN sys_user_role sur on sur.userid = u.id - LEFT JOIN sys_club_user clubuser ON clubuser.userid=u.id - LEFT JOIN single_user su on su.userId = u.id - $condition - """); + SELECT + DISTINCT(u.id) as id, + u.loginname AS loginName, + u.username AS userName, + u.sex, + u.birthday, + u.mobile, + u.personType, + u.userState, + u.unitname AS unitName, + u.unionname AS unionName, + TIMESTAMPDIFF(YEAR, u.birthday, CURDATE()) AS age + FROM + `user` u + LEFT JOIN sys_user_role sur on sur.userid = u.id + LEFT JOIN sys_club_user clubuser ON clubuser.userid=u.id + $condition + """); try { - Cnd cnd = getCnd(pageForm, unionId, unitId, personTypes, userStates, memberTypes, maritalTypes, sexTypes, age, teacherMeetingId, roleIds, userId, clubId, reverseSelection, activityGroupId, activityUserCndStr); - if (StrUtil.isNotBlank(existsLoginNameRedisKey)) { - List loginNames = redisService.lrange(existsLoginNameRedisKey, 0, -1); - cnd.andEX("u.loginname", "in", loginNames); - } + Cnd cnd = getCnd(pageForm, unionId, unitId, personTypes, userStates, memberTypes, sexTypes, age, teacherMeetingId, roleIds, userId, clubId, reverseSelection, activityGroupId, activityUserCndStr); + sql.setCondition(cnd); List map = simpleService.listMap(sql); @@ -426,7 +392,6 @@ public class ActivityBasicScopeController { String[] personTypes, String[] userStates, String[] memberTypes, - String[] maritalTypes, String[] sexTypes, String[] age, String teacherMeetingId, @@ -461,16 +426,6 @@ public class ActivityBasicScopeController { if (ArrayUtils.contains(memberTypes, "基金会员")) { cnd.and(new Static(" u.loginname " + IN_OR_NIN_OP + " (select loginname from sick_fund_member)")); } - if (ArrayUtils.contains(memberTypes, "单身教工")) { - cnd.and(new Static("u.id " + IN_OR_NIN_OP + " (select userId from single_user)")); - } - if (ArrayUtils.contains(memberTypes, "30教龄教工")) { - cnd.and("u.isThirtyTeach", EQ_OR_NEQ_OP, 1); - } - } - - if (Lang.isNotEmpty(maritalTypes)) { - cnd.and("su.maritalStatus", IN_OR_NIN_OP, Arrays.asList(maritalTypes)); } if (!Lang.isEmptyArray(age)) { @@ -507,74 +462,4 @@ public class ActivityBasicScopeController { } - /** - * 清空查询条件 - * - * @param existsLoginNameRedisKey - * @return java.lang.Object - * @author zhf - * @description - */ - @At - @Aop(TransAop.READ_COMMITTED) - @RequiresPermissions("activity.basic.scope") - public Object clearSearchCnd(String existsLoginNameRedisKey) { - if (StrUtil.isNotBlank(existsLoginNameRedisKey)) { - redisService.del(existsLoginNameRedisKey); - } - return null; - } - - @At - @Aop(TransAop.READ_COMMITTED) - @AdaptBy(type = UploadAdaptor.class, args = {"ioc:fileUpload"}) - @RequiresPermissions("activity.basic.scope") - public Object doImport(String groupId, TempFile file) { - String matchUserLoginNamesKey = "ActivityBasicScopeController.doImport.time=" + System.currentTimeMillis(); - - List userImportList = ExcelImportUtil.importExcel(file.getFile(), UserTemp.class, new ImportParams()); - - //判断人员哪些存在哪些不存在 - Sql sql = Sqls.queryString(""" - SELECT - u.loginname - FROM - sys_user u - """); - dao.execute(sql); - String[] sysLoginNames = (String[]) sql.getResult(); - - //存在的工号 - List existsLoginNames = new ArrayList<>(); - - for (UserTemp excelUser : userImportList) { - if (ArrayUtil.contains(sysLoginNames, excelUser.getLoginname())) { - existsLoginNames.add(excelUser.getLoginname()); - } else { - excelUser.setRemarks("系统查不到此人"); - } - } - - //匹配不到的用户 - List errorExcelTempUsers = userImportList.stream().filter(v -> StrUtil.isNotBlank(v.getRemarks())).collect(Collectors.toList()); - - NutMap nutMap = NutMap.NEW(); - nutMap.setv("totalCount", userImportList.size()); - nutMap.setv("successCount", existsLoginNames.size()); - nutMap.setv("errorCount", errorExcelTempUsers.size()); - nutMap.setv("errorList", errorExcelTempUsers.stream().map(v -> { - return new NutMap().addv("工号", v.getLoginname()).addv("姓名", v.getUsername()).addv("错误信息", v.getRemarks()); - })); - nutMap.setv("existsLoginNameRedisKey", matchUserLoginNamesKey); - - //保存存在的工号 - if (Lang.isNotEmpty(existsLoginNames)) { - redisService.lpush(matchUserLoginNamesKey, existsLoginNames.toArray(new String[0])); - redisService.expire(matchUserLoginNamesKey, 60 * 3); - } - - return io.v.nutz.base.result.Result.success(nutMap); - } - - } diff --git a/src/main/java/io/v/nutz/activity/controller/union/ActivityAuditController.java b/src/main/java/io/v/nutz/activity/controller/union/ActivityAuditController.java index 03e83dd..e543918 100644 --- a/src/main/java/io/v/nutz/activity/controller/union/ActivityAuditController.java +++ b/src/main/java/io/v/nutz/activity/controller/union/ActivityAuditController.java @@ -7,9 +7,8 @@ import io.v.nutz.base.service.BaseService; import io.v.nutz.dao.CndPlus; import io.v.nutz.modules.models.Audit; import io.v.nutz.modules.models.PageForm; -import io.v.nutz.util.ShiroUtil; +import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.Logical; -import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; @@ -75,10 +74,10 @@ public class ActivityAuditController { $condition """); - cnd.andExcludeEmpty("YEAR(tissue.startTime)", "=", year); - cnd.andExcludeEmpty("tissue.unionId", "=", unionId); - cnd.andExcludeEmpty("tissue.type", "=", type); - cnd.andExcludeEmpty("tissue.state", state ? ">" : "=", 1); + cnd.andEX("YEAR(tissue.startTime)", "=", year); + cnd.andEX("tissue.unionId", "=", unionId); + cnd.andEX("tissue.type", "=", type); + cnd.andEX("tissue.state", state ? ">" : "=", 1); if (Strings.isNotBlank(name)) { cnd.where().andLike("tissue.name", name); @@ -103,6 +102,11 @@ public class ActivityAuditController { audit.setLoginname(ShiroUtil.getPrincipalProperty("loginname").toString()); baseService.insert(audit); baseService.dao().update(ActivityTissue.class, Chain.make("state", flag ? 3 : 2).add("auditId", audit.getId()), Cnd.where("id", "=", id)); + // 审核通过,修改活动为启动状态,并且还要将这个活动设置成首界面可见 + if (flag) { + baseService.dao().update(ActivityTissue.class, Chain.make("isDisabled", true), Cnd.where("id", "=", id)); + } + return null; } diff --git a/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionApplyUserController.java b/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionApplyUserController.java new file mode 100644 index 0000000..5f5474d --- /dev/null +++ b/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionApplyUserController.java @@ -0,0 +1,197 @@ +package io.v.nutz.activity.controller.union; + +import cn.hutool.core.util.StrUtil; +import io.v.nutz.activity.models.ActivityTissuePerson; +import io.v.nutz.annontation.ViReturn; +import io.v.nutz.base.page.Pagination; +import io.v.nutz.base.service.BaseService; +import io.v.nutz.base.service.SimpleService; +import io.v.nutz.base.utils.Vi; +import io.v.nutz.dao.CndPlus; +import io.v.nutz.modules.models.PageForm; +import io.v.nutz.web.commons.utils.ShiroUtil; +import org.apache.shiro.authz.annotation.Logical; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.dao.Cnd; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.Static; +import org.nutz.ioc.loader.annotation.Inject; +import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Strings; +import org.nutz.lang.util.NutMap; +import org.nutz.mvc.annotation.At; +import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @ClassName ActivityUnionApplyUserController + * @Description pc端活动报名 + * @Author zhf + * @Date 2024/1/12 15:38 + */ +@IocBean +@Ok("json:full") +@At("/platform/activity/applyUser") +public class ActivityUnionApplyUserController { + + @Inject + private SimpleService simpleService; + + @Inject + private BaseService baseService; + + + @At("/union") + @Ok("beetl:platform/activity/union/unionActivityApplyUser.html") + @RequiresPermissions("activity.union.applyUser") + public void unionIndex() { + } + + + @At("/club") + @Ok("beetl:platform/activity/union/clubActivityApplyUser.html") + @RequiresPermissions("activity.club.applyUser") + public void clubIndex() { + } + + + @At("/school") + @Ok("beetl:platform/activity/union/schoolActivityApplyUser.html") + @RequiresPermissions("activity.school.applyUser") + public void schoolIndex() { + } + + + @At + @ViReturn + @RequiresPermissions(value = {"activity.club.applyUser", "activity.union.applyUser", "activity.school.applyUser"}, logical = Logical.OR) + public Object pageData(PageForm page, + @Param(value = "year", required = false) String year, + @Param(value = "name", required = false) String name, + @Param(value = "type", required = false) Integer type) { + CndPlus cnd = CndPlus.create(); + + Sql sql = Sqls.create(""" + SELECT + tissue.*, + uni.unionname , + club.`name` clubName, + abs.`name` projectTypeName + FROM + activity_tissue tissue + LEFT JOIN sys_union uni ON uni.id = tissue.unionId + LEFT JOIN sys_club club ON club.id = tissue.clubId + LEFT JOIN activity_basic_settings abs ON abs.`code`=tissue.projectTypeCode + $condition + """); + if (StrUtil.isNotBlank(year)) { + cnd.andEX("YEAR(tissue.startTime)", "=", year); + } + cnd.andEX("tissue.isDisabled", "=", true); + cnd.andEX("tissue.type", "=", type); + cnd.andEX("tissue.state", "=", 3); + cnd.andEX("tissue.projectTypeCode", "!=", 50004); + cnd.andEX("tissue.signUpMethod", "in", List.of(1, 2, 3)); + + if (Strings.isNotBlank(name)) { + cnd.where().andLike("tissue.name", name); + } + + if (!ShiroUtil.hasAnyRoles("A06,sysadmin")) { + cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=tissue.groupId AND userId='%s') >0".formatted(ShiroUtil.getUserId()))); + } + + + if (StrUtil.isNotBlank(page.getPageOrderName()) && StrUtil.isNotBlank(page.getPageOrderBy())) { + cnd.orderBy(page.getPageOrderName(), page.getPageOrderBy().equalsIgnoreCase("ascending") ? "ASC" : "DESC"); + } else { + cnd.desc("tissue.startTime"); + } + + sql.setCondition(cnd); + Pagination pagination = baseService.listPageMap(page.getPageNumber(), page.getPageSize(), sql); + List list = pagination.getList(); + list.forEach(v -> { + String activityId = v.getString("id"); + // 当前活动已报名人数 + int totalApplyNum = baseService.dao().count(ActivityTissuePerson.class, Cnd.where("tissueId", "=", activityId)); + v.put("totalApplyNum", totalApplyNum); + + int signUpMethod = v.getInt("signUpMethod"); + if (signUpMethod == 1||signUpMethod == 3) { + int count = baseService.dao().count(ActivityTissuePerson.class, + Cnd.where("tissueId", "=", activityId) + .and("applyUserId", "=", ShiroUtil.getUserId())); + v.setv("countUser", count); + } else if (signUpMethod == 2) { + Sql sqlApplyUser = Sqls.create(""" + SELECT + COUNT(*) + FROM + `activity_tissue_person` atp + LEFT JOIN `user` u ON u.id = atp.userId + where atp.tissueId=@tissueId and u.unionid=@unionid + """).setParam("tissueId", activityId).setParam("unionid", Vi.getUnionId()); + int count = baseService.count(sqlApplyUser); + v.setv("countUser", count); + } + }); + pagination.setList(list); + return pagination; + } + + + @At + @ViReturn + @RequiresPermissions(value = {"activity.club.applyUser", "activity.union.applyUser", "activity.school.applyUser"}, logical = Logical.OR) + public Object selfUnionUsers(String groupId) { + Sql sql = Sqls.create(""" + SELECT + u.id, + u.username, + u.loginname, + u.sex, + u.userState, + u.unitname, + u.unionname + FROM + `user` u + LEFT JOIN activity_user_scope aus ON u.id = aus.userId + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and("u.unionId", "=", Vi.getUnionId()); + cnd.and("aus.groupId", "=", groupId); + cnd.groupBy("u.id"); + cnd.asc("u.unitname").asc("u.unionname"); + sql.setCondition(cnd); + List list = baseService.listMap(sql); + return list; + } + + @At + @ViReturn + @RequiresPermissions(value = {"activity.club.applyUser", "activity.union.applyUser", "activity.school.applyUser"}, logical = Logical.OR) + public Object getReportedUser(String tissueId) { + Sql sql = Sqls.create(""" + SELECT + atp.userId + FROM + activity_tissue_person atp + LEFT JOIN `user` u ON atp.userId = u.id + WHERE + atp.tissueId = @tissueId AND u.unionid = @unionId + """); + sql.setParam("tissueId", tissueId); + sql.setParam("unionId", Vi.getUnionId()); + List list = baseService.listMap(sql); + List userIds = list.stream().map(v -> v.getString("userId")).collect(Collectors.toList()); + return userIds; + } + + +} diff --git a/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionManageController.java b/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionManageController.java index 1558455..99310d4 100644 --- a/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionManageController.java +++ b/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionManageController.java @@ -3,6 +3,7 @@ package io.v.nutz.activity.controller.union; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; +import cn.hutool.core.util.StrUtil; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.policy.HackLoopTableRenderPolicy; @@ -19,24 +20,27 @@ import io.v.nutz.modules.models.PageForm; import io.v.nutz.service.ViService; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.sys.services.SysMsgService; -import io.v.nutz.util.ShiroUtil; import io.v.nutz.util.ViTool; +import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.poi.ss.usermodel.Workbook; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.dao.util.cri.SqlExpressionGroup; +import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; import org.nutz.lang.Strings; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; -import org.nutz.trans.Trans; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @@ -95,6 +99,8 @@ public class ActivityUnionManageController { public void schoolIndex() { } + + @At @ViReturn @RequiresAuthentication @@ -130,12 +136,41 @@ public class ActivityUnionManageController { cnd.and(group); } - cnd.limit(1, 30); sql.setCondition(cnd); - return sysUserService.listMap(sql); + return sysUserService.listPageMap(1, 30, sql); } + + @At + @ViReturn + @Aop(TransAop.READ_COMMITTED) + @RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR) + public Object doSave(@Param(value = "tissue") ActivityTissue tissue){ + tissue.setUserId(StrUtil.isNotBlank(tissue.getUserId()) ? tissue.getUserId() : ShiroUtil.getUserId()); + tissue.setApplyTime(StrUtil.isNotBlank(tissue.getApplyTime()) ? tissue.getApplyTime() : DateUtil.getDate()); + tissue.setState(0); + + if (tissue.getType() == 40002) { + tissue.setUnionId(Vi.getUnionId()); + } else if (tissue.getType() == 40003) { + tissue.setClubId(vi.getClubId()); + } + // 如果有商品,则设置商品活动编码和活动id + if (Lang.isNotEmpty(tissue.getGoods())) { + tissue.getGoods().forEach(v -> { + v.setActivityCode(tissue.getActivityCode()); + v.setReid(tissue.getId()); + }); + } + + activityTissueService.insertWith(tissue, "tissuePersonList"); + activitySchoolService.dao().insert(tissue.getGoods()); + + return null; + } + + /** * 校工会添加 * @@ -144,39 +179,31 @@ public class ActivityUnionManageController { */ @At @ViReturn + @Aop(TransAop.READ_COMMITTED) @RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR) public Object doAdd(@Param(value = "tissue") ActivityTissue tissue) { - tissue.setUserId(ShiroUtil.getUserId()); - tissue.setApplyTime(DateUtil.getDate()); - String title = "校工会文化活动"; - String url = "/platform/activity/info/mange/school"; - if (tissue.getType() == 40002) { + tissue.setUserId(StrUtil.isNotBlank(tissue.getUserId()) ? tissue.getUserId() : ShiroUtil.getUserId()); + tissue.setApplyTime(StrUtil.isNotBlank(tissue.getApplyTime()) ? tissue.getApplyTime() : DateUtil.getDate()); + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { tissue.setState(1); - tissue.setUnionId(Vi.getUnionId()); - title = "分工会活动"; - url = "/platform/activity/info/mange/union"; - } else if (tissue.getType() == 40003) { - tissue.setState(1); - tissue.setClubId(vi.getClubId()); - title = "协会活动"; - url = "/platform/activity/info/mange/club"; } else { tissue.setState(3); + tissue.setIsDisabled(true); + tissue.setIsEnrollSystem(true); } - - Trans.exec(() -> { - activityTissueService.insertWith(tissue, "tissuePersonList"); - tissue.getGoods().forEach(v -> { - v.setActivityCode(tissue.getActivityCode()); - v.setReid(tissue.getId()); - }); - activitySchoolService.dao().insert(tissue.getGoods()); - tissue.getCover(); + if (tissue.getType() == 40002) { + tissue.setUnionId(Vi.getUnionId()); + } else if (tissue.getType() == 40003) { + tissue.setClubId(vi.getClubId()); + } + tissue.getGoods().forEach(v -> { + v.setActivityCode(tissue.getActivityCode()); + v.setReid(tissue.getId()); }); - if (tissue.getXlFlag() != null && tissue.getXlFlag()) { - String time = tissue.getStartTime() + "至" + tissue.getEndTime(); - sysMsgService.sendMsgByActivityGroupId(tissue.getId(), tissue.getGroupId(), title, tissue.getName(), url, "/mobile/activity/unionActivity", time); - } +// tissue.getCover(); + + activityTissueService.insertWith(tissue, "tissuePersonList"); + activitySchoolService.dao().insert(tissue.getGoods()); return null; } @@ -185,21 +212,12 @@ public class ActivityUnionManageController { @ViReturn @RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR) public Object doEdit(@Param("tissue") ActivityTissue tissue) { + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + tissue.setState(1); + } else { + tissue.setState(3); + } activityTissueService.doEdit(tissue); - String title = "校工会文化活动"; - String url = "/platform/activity/info/mange/school"; - if (tissue.getType() == 40002) { - title = "分工会活动"; - url = "/platform/activity/info/mange/union"; - } else if (tissue.getType() == 40003) { - title = "协会活动"; - url = "/platform/activity/info/mange/club"; - } - sysMsgService.deleteMsgByActivityId(tissue.getId()); - if (tissue.getXlFlag() != null && tissue.getXlFlag()) { - String time = tissue.getStartTime() + "至" + tissue.getEndTime(); - sysMsgService.sendMsgByActivityGroupId(tissue.getId(), tissue.getGroupId(), title, tissue.getName(), url, "/mobile/activity/unionActivity", time); - } return null; } @@ -208,7 +226,6 @@ public class ActivityUnionManageController { @RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR) public Object doDelete(String id) { activityTissueService.doDelete(id); - return null; } @@ -318,4 +335,11 @@ public class ActivityUnionManageController { } + @At + @ViReturn + @RequiresPermissions(value = {"activity.union.info", "activity.club.info", "activity.school.info2"}, logical = Logical.OR) + public Object activityStatusChange(String id, String isDisabled) { + activityTissueService.update(Chain.make("isDisabled", "1".equals(isDisabled)), Cnd.where("id", "=", id)); + return null; + } } diff --git a/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionUserStatisticsController.java b/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionUserStatisticsController.java index a4d66da..fd586c5 100644 --- a/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionUserStatisticsController.java +++ b/src/main/java/io/v/nutz/activity/controller/union/ActivityUnionUserStatisticsController.java @@ -4,7 +4,9 @@ import cn.hutool.core.util.StrUtil; import io.v.nutz.activity.models.ActivityTissue; import io.v.nutz.annontation.ViReturn; import io.v.nutz.base.service.BaseService; +import io.v.nutz.base.utils.Vi; import io.v.nutz.modules.models.PageForm; +import io.v.nutz.web.commons.utils.ShiroUtil; import org.apache.shiro.authz.annotation.Logical; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.nutz.dao.Cnd; @@ -12,6 +14,7 @@ import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Lang; import org.nutz.lang.Strings; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; @@ -51,13 +54,35 @@ public class ActivityUnionUserStatisticsController { @Inject private BaseService baseService; + @Inject + private Vi vi; + @At @ViReturn @RequiresPermissions(value = {"activity.school.user.statistics", "activity.club.user.statistics", "activity.union.user.statistics"}, logical = Logical.OR) public Object pageData(PageForm page, + @Param(value = "type", required = false) Integer type, @Param(value = "activityId", required = false) String activityId, @Param(value = "unionId", required = false) String unionId) { + ActivityTissue tissue = baseService.dao().fetch(ActivityTissue.class, activityId); + + if (Lang.isEmpty(tissue)){ + return null; + } + + if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { + if (type == 40002) { + if (!Vi.getUnionId().equals(tissue.getUnionId())) { + return null; + } + } else if (type == 40003) { + if (!vi.getClubId().equals(tissue.getClubId())) { + return null; + } + } + + } Sql sql = Sqls.create(""" SELECT @@ -68,6 +93,8 @@ public class ActivityUnionUserStatisticsController { u.unionname, u.sex, u.mobile, + atp.applyUserId, + atp.id atpId , atp.applyDateTime FROM `activity_tissue_person` atp @@ -75,8 +102,17 @@ public class ActivityUnionUserStatisticsController { $condition """); Cnd cnd = Cnd.NEW(); - cnd.and("atp.tissueId", "=", activityId); - cnd.andEX("u.unionId", "=", unionId); + cnd.andEX("atp.tissueId", "=", activityId); +// cnd.andEX("u.unionId", "=", unionId); +// if (!ShiroUtil.hasAnyRoles("sysadmin,A06")) { +// if (!tissue.getUserId().equals(ShiroUtil.getUserId())) { +// if (type == 40002) { +// cnd.and("unionId", "=", Vi.getUnionId()); +// } else if (type == 40003) { +// cnd.and("u.id", "in", " SELECT userid FROM sys_club_user WHERE clubid = '%s' ".formatted(vi.getClubId())); +// } +// } +// } if (Strings.isNotBlank(page.getSearchName()) && Strings.isNotBlank(page.getSearchKeyword())) { cnd.where().andLike(page.getSearchName(), page.getSearchKeyword()); } @@ -95,7 +131,11 @@ public class ActivityUnionUserStatisticsController { @RequiresPermissions(value = {"activity.school.user.statistics", "activity.club.user.statistics", "activity.union.user.statistics"}, logical = Logical.OR) public Object getActivityByYearOrType(@Param(value = "year", required = false) Integer year, @Param(value = "type", required = false) Integer type) { - return baseService.dao().query(ActivityTissue.class, Cnd.where("type", "=", type).andEX("YEAR(startTime)", "=", year).desc("startTime")); + Cnd cnd = Cnd.NEW(); + cnd.and("type", "=", type); + cnd.andEX("YEAR(startTime)", "=", year); + cnd.desc("startTime"); + return baseService.dao().query(ActivityTissue.class, cnd); } diff --git a/src/main/java/io/v/nutz/activity/models/ActivityTissue.java b/src/main/java/io/v/nutz/activity/models/ActivityTissue.java index 86f602e..cb75d82 100644 --- a/src/main/java/io/v/nutz/activity/models/ActivityTissue.java +++ b/src/main/java/io/v/nutz/activity/models/ActivityTissue.java @@ -1,22 +1,28 @@ package io.v.nutz.activity.models; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.StrUtil; +import cn.wizzer.framework.base.model.BaseModel; +import io.v.nutz.activity.models.ActivityTissuePerson; import io.v.nutz.common.models.Goods; import io.v.nutz.sys.models.Sys_file; import lombok.Data; import org.nutz.dao.entity.annotation.*; import org.nutz.lang.util.NutMap; +import java.io.Serializable; import java.util.List; /** * @author: Aaron * @create: 2021-03-09 13:57 - * @description: 社团或分工会活动校工会活动 + * @description: 协会或分工会活动校工会活动 **/ @Data @Table("activity_tissue") -public class ActivityTissue { +@Comment("协会或分工会活动校工会活动") +public class ActivityTissue extends BaseModel implements Serializable { @Column @Name @@ -131,7 +137,7 @@ public class ActivityTissue { private String unionId; @Column - @Comment("创建人所属社团") + @Comment("创建人所属协会") @ColDefine(type = ColType.VARCHAR, width = 32) private String clubId; @@ -210,7 +216,7 @@ public class ActivityTissue { @Column @Comment("是否报名系统") @ColDefine(type = ColType.BOOLEAN) - private boolean isEnrollSystem; + private Boolean isEnrollSystem; @Many(field = "tissueId") private List tissuePersonList; @@ -223,4 +229,24 @@ public class ActivityTissue { @ColDefine(type = ColType.BOOLEAN) private Boolean xlFlag; + @Column + @Comment("是否开启") + @ColDefine(type = ColType.BOOLEAN) + private Boolean isDisabled; + + @Column + @Comment("是否推送移动端首页") + @ColDefine(type = ColType.INT) + private Integer isPushHome; + + @Column + @Comment("签到开始时间") + @ColDefine(type = ColType.VARCHAR, width = 30) + private String signStartTime; + + @Column + @Comment("签到结束时间") + @ColDefine(type = ColType.VARCHAR, width = 30) + private String signEndTime; + } diff --git a/src/main/java/io/v/nutz/activity/services/impl/ActivityTissueServiceImpl.java b/src/main/java/io/v/nutz/activity/services/impl/ActivityTissueServiceImpl.java index 660a46e..8843c14 100644 --- a/src/main/java/io/v/nutz/activity/services/impl/ActivityTissueServiceImpl.java +++ b/src/main/java/io/v/nutz/activity/services/impl/ActivityTissueServiceImpl.java @@ -7,18 +7,18 @@ import io.v.nutz.activity.services.ActivityTissueService; import io.v.nutz.base.utils.Vi; import io.v.nutz.common.models.Goods; import io.v.nutz.dao.CndPlus; -import io.v.nutz.jf.model.ActivityBx; import io.v.nutz.modules.models.Audit; import io.v.nutz.modules.models.PageForm; import io.v.nutz.service.ViService; import io.v.nutz.service.impl.ViServiceImpl; -import io.v.nutz.util.ShiroUtil; +import io.v.nutz.web.commons.utils.ShiroUtil; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; import org.nutz.dao.Cnd; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; import org.nutz.dao.sql.Sql; +import org.nutz.dao.util.cri.SqlExpressionGroup; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; @@ -66,21 +66,26 @@ public class ActivityTissueServiceImpl extends ViServiceImpl imp $condition """); - cnd.andExcludeEmpty("YEAR(tissue.startTime)", "=", year); - cnd.andExcludeEmpty("tissue.projectTypeCode", "!=", "50004"); - cnd.andExcludeEmpty("tissue.unionId", "=", unionId); - cnd.andExcludeEmpty("tissue.type", "=", type); + cnd.andEX("YEAR(tissue.applyTime)", "=", year); + SqlExpressionGroup seg = new SqlExpressionGroup(); + seg.or("tissue.projectTypeCode", "!=", "50004"); + seg.or("tissue.projectTypeCode", "is", null); + cnd.and(seg); +// cnd.andEx("tissue.projectTypeCode", "!=", "50004"); + cnd.andEX("tissue.unionId", "=", unionId); + cnd.andEX("tissue.type", "=", type); if (Strings.isNotBlank(name)) { cnd.where().andLike("tissue.name", name); } if (!ShiroUtil.hasAnyRoles("sysadmin,H10,A06")) { - if (ShiroUtil.hasRole("H04")) { + cnd.and("tissue.userId", "=", ShiroUtil.getUserId()); + /* if (ShiroUtil.hasRole("H04")) { cnd.and("tissue.unionId", "in", vi.getMangeUnionStr()); } else if (ShiroUtil.hasRole("club01")) { cnd.and("tissue.clubId", "in", vi.getMangeClubStr()); - } + }*/ } if (StrUtil.isNotBlank(page.getPageOrderName()) && StrUtil.isNotBlank(page.getPageOrderBy())) { @@ -98,7 +103,7 @@ public class ActivityTissueServiceImpl extends ViServiceImpl imp public void doDelete(String id) { this.delete(id); tissuePersonService.clear(Cnd.where("tissueId", "=", id)); - tissuePersonService.dao().clear(Goods.class, Cnd.where("reid", "=", id)); + dao().clear(Goods.class, Cnd.where("reid", "=", id)); } @Override @@ -132,7 +137,7 @@ public class ActivityTissueServiceImpl extends ViServiceImpl imp }); tissuePersonService.dao().insert(tissue.getGoods()); - if (Lang.isNotEmpty(tissue.getBillFiles())) { + /* if (Lang.isNotEmpty(tissue.getBillFiles())) { tissuePersonService.dao().update(ActivityBx.class, Chain.make("billFiles", tissue.getBillFiles()), Cnd.where("activity_id", "=", tissue.getId())); } @@ -143,7 +148,8 @@ public class ActivityTissueServiceImpl extends ViServiceImpl imp if (Lang.isNotEmpty(tissue.getPhotoFiles())) { tissuePersonService.dao().update(ActivityBx.class, Chain.make("photoFiles", tissue.getPhotoFiles()), Cnd.where("activity_id", "=", tissue.getId())); - } + }*/ + } diff --git a/src/main/java/io/v/nutz/zhgh/question/controller/QuestionH5Controller.java b/src/main/java/io/v/nutz/zhgh/question/controller/QuestionH5Controller.java index ac15eb4..1c2137c 100644 --- a/src/main/java/io/v/nutz/zhgh/question/controller/QuestionH5Controller.java +++ b/src/main/java/io/v/nutz/zhgh/question/controller/QuestionH5Controller.java @@ -24,10 +24,7 @@ import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; import org.springframework.web.bind.annotation.PathVariable; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; /** @@ -301,10 +298,15 @@ public class QuestionH5Controller { } } -// issueCnd.asc("ipxbh"); + issueCnd.asc("ipxbh"); questionService.fetchLinks(question, "issues", issueCnd); +// List issueIds = question.getIssues().stream().map(Question_issue::getIid).collect(Collectors.toList()); +// List wors = dao.query(Question_wor.class, Cnd.where("wiid", "in", issueIds)); + for (Question_issue issue : question.getIssues()) { questionService.fetchLinks(issue, "wors", Cnd.NEW().asc("wpxbh")); +// issue.setWors(wors.stream().filter(v -> v.getWiid().equals(issue.getIid())) +// .sorted(Comparator.comparingInt(Question_wor::getWpxbh)).collect(Collectors.toList())); } if (question.getDisruptingOrder()) { diff --git a/src/main/resources/static/components/activity/school/tissueInfo.vue b/src/main/resources/static/components/activity/school/tissueInfo.vue index 907b99e..4f9e9a5 100644 --- a/src/main/resources/static/components/activity/school/tissueInfo.vue +++ b/src/main/resources/static/components/activity/school/tissueInfo.vue @@ -1,162 +1,119 @@