From a82c0f6f1a07c13d626188a697ea3e62ab8ef252 Mon Sep 17 00:00:00 2001 From: Paidax Date: Thu, 25 Jul 2024 18:41:32 +0800 Subject: [PATCH] commit --- .../TrainSignUpActivityAddController.java | 21 +++- .../TrainSignUpActivityApplyController.java | 18 ++-- .../manage/TrainSignUpActivityController.java | 11 +- .../manage/TrainSignUpTypeController.java | 4 +- .../TrainSignUpUserAdjustController.java | 14 +-- .../TrainSignUpUserBlackListManage.java | 7 +- .../MTrainSignUpActivityController.java | 102 ++++++++++++++++-- ...ainSignUpActivityStatisticsController.java | 10 +- .../models/TrainSignUpActivity.java | 26 +---- .../trainSignUp/models/TrainSignUpType.java | 6 ++ .../TrainSignUpActivityStatisticsService.java | 2 + .../impl/TrainSignUpActivityServiceImpl.java | 99 ++++++++--------- ...inSignUpActivityStatisticsServiceImpl.java | 67 +++++++++++- .../views/mobile/train/trainInfo.html | 8 +- .../views/mobile/train/trainList.html | 4 +- .../trainSingUp/manage/activity_add.html | 70 +++++++----- .../platform/trainSingUp/manage/apply.html | 31 +++--- .../manage/include_activity_edit.html | 79 +++++--------- .../trainSingUp/manage/trainSignUpType.html | 6 ++ .../trainSingUp/manage/userAdjust.html | 29 +++-- .../trainSingUp/statistics/activity.html | 37 +++++-- 21 files changed, 416 insertions(+), 235 deletions(-) diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityAddController.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityAddController.java index 0f933d0..97d6ffd 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityAddController.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityAddController.java @@ -13,8 +13,10 @@ 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.json.Json; 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 java.util.List; @@ -26,7 +28,7 @@ import java.util.List; */ @Slf4j @IocBean -@At("/platform/trainSingUp/manage/activity/add") +@At("/platform/trainSingUp/manage/activity") public class TrainSignUpActivityAddController { @Inject @@ -35,12 +37,27 @@ public class TrainSignUpActivityAddController { @Inject private Dao dao; - @At("") + @At("/add") @RequiresPermissions("trainSingUp.manage.activity.add") @Ok("beetl:/platform/trainSingUp/manage/activity_add.html") public void add() { } + @At + @ViReturn + @Ok("json:full") + @POST + @RequiresPermissions("trainSingUp.manage.activity.add") + public Object doHandle(@Param(value = "data", required = false) String data) { + TrainSignUpActivity activity = Json.fromJson(TrainSignUpActivity.class, data); + if (StrUtil.isBlank(activity.getId())) { + trainSignUpActivityManageService.add(activity, null); + } else { + trainSignUpActivityManageService.edit(activity); + } + return null; + } + @At @ViReturn @Ok("json:full") diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityApplyController.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityApplyController.java index 7b3e8d4..2a073d5 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityApplyController.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityApplyController.java @@ -6,7 +6,6 @@ import io.v.nutz.base.dao.CndPlus; import io.v.nutz.base.query.PageForm; import io.v.nutz.sys.models.Sys_dict; import io.v.nutz.sys.services.SysDictService; -import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpActivity; import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpActivityCourse; import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpType; @@ -57,19 +56,16 @@ public class TrainSignUpActivityApplyController { public Object activityData(@Param(value = "year", required = false) Integer year, @Param(value = "activityType", required = false) Integer activityType) { CndPlus cnd = CndPlus.create(); + cnd.and("isDisabled", "=", false); cnd.andEX("`year`", "=", year); //查询报名中 if (activityType == 2) { cnd.and(new Static("now() > activitySignUpStartTime and now() < activitySignUpEndTime")); }//查询已结束的 else if (activityType == 3) { - cnd.and(new Static("now() > activityEndTime")); + cnd.and(new Static("now() > activitySignUpEndTime")); } - - if(ShiroUtil.hasRole("H04") && !ShiroUtil.hasAnyRoles("sysadmin, A06")) { - cnd.and("activityMode", "=", 2).and("opBy", "=", ShiroUtil.getPlatformUid()); - } - + cnd.desc("activityStartTime"); List trainSignUpActivities = trainSignUpActivityService.query(cnd); Map trainSignUpTypeMap = dictService.getSubListByCode("trainSignUpType").stream().collect(Collectors.toMap(Sys_dict::getCode, Sys_dict::getName)); trainSignUpActivities.forEach(v->v.setTrainType(trainSignUpTypeMap.get(v.getTrainType()))); @@ -112,7 +108,7 @@ public class TrainSignUpActivityApplyController { CndPlus cnd = CndPlus.create(); cnd.andEX("type.id","=",courseTypeId); cnd.and("tsuc.activityId","=",activityId); - cnd.asc("tsuc.orderNum"); + cnd.asc("type.code"); sql.setCondition(cnd); Pagination pagination = trainSignUpActivityService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); @@ -125,7 +121,9 @@ public class TrainSignUpActivityApplyController { AtomicInteger hasRegisterNum = new AtomicInteger(); List signUpUsers = trainSignUpActivityService.dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", c.getString("id"))); signUpUsers.forEach(item -> { - hasRegisterNum.getAndIncrement(); + if(type.getSelfAddFamily()) { + hasRegisterNum.getAndIncrement(); + } if(type.getIsBringFamily() && type.getIsAddFamily()) { List mapList = item.getMobileColumnsValue(); if(Lang.isNotEmpty(mapList)) { @@ -138,7 +136,7 @@ public class TrainSignUpActivityApplyController { }); c.put("hasRegisterNum",hasRegisterNum.get()); //当前用户是否报过 - c.put("isSign",trainSignUpActivityService.isSignCourseByUser(c.getString("id"), (String) ShiroUtil.getPrincipalProperty("id"))); + c.put("isSign",trainSignUpActivityService.isSignCourseByUser(c.getString("id"), (String) io.v.nutz.web.commons.utils.ShiroUtil.getPrincipalProperty("id"))); }); return pagination; } diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityController.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityController.java index 41878c0..757707a 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityController.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpActivityController.java @@ -2,12 +2,11 @@ package io.v.nutz.zhgh.trainSignUp.controller.manage; import cn.hutool.core.util.StrUtil; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.DateUtil; import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.utils.DateUtil; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.model.MatchConditionStructure; import io.v.nutz.zhgh.data.service.MatchConditionStructureService; -import io.v.nutz.zhgh.mobileHome.service.MobileHomeService; import io.v.nutz.zhgh.trainSignUp.models.*; import io.v.nutz.zhgh.trainSignUp.service.TrainSignUpActivityService; import lombok.extern.slf4j.Slf4j; @@ -44,7 +43,6 @@ public class TrainSignUpActivityController { @Inject private MatchConditionStructureService matchConditionStructureService; - @Inject private Dao dao; @@ -76,7 +74,6 @@ public class TrainSignUpActivityController { @RequiresPermissions("trainSingUp.manage.activity") public Object doDelete(String id) { Trans.exec(() -> { - TrainSignUpActivity activity = trainSignUpActivityManageService.fetch(id); trainSignUpActivityManageService.delete(id); dao.clear(TrainSignUpCourse.class, Cnd.where("activityId", "=", id)); dao.clear(TrainSignUpActivityCourse.class, Cnd.where("activityId", "=", id)); @@ -93,13 +90,9 @@ public class TrainSignUpActivityController { @Ok("json:full") @POST @RequiresPermissions("trainSingUp.manage.activity") - public Object doHandle(@Param("data") String data, @Param("flag") Boolean flag) { + public Object doHandle(@Param("data") String data) { TrainSignUpActivity activity = Json.fromJson(TrainSignUpActivity.class, data); - activity.setActivityMode(ShiroUtil.hasAnyRoles("sysadmin, A06") ? 1 : 2); - activity.setDisabled(!flag); - if (StrUtil.isBlank(activity.getId())) { - activity.setOpBy(ShiroUtil.getPlatformUid()); trainSignUpActivityManageService.add(activity, null); } else { trainSignUpActivityManageService.edit(activity); diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpTypeController.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpTypeController.java index 8f39274..4785216 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpTypeController.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpTypeController.java @@ -3,11 +3,11 @@ package io.v.nutz.zhgh.trainSignUp.controller.manage; import cn.hutool.core.util.EnumUtil; import cn.wizzer.framework.base.Result; import io.v.nutz.base.annontation.ViReturn; +import io.v.nutz.base.dao.CndPlus; import io.v.nutz.base.page.Pagination; +import io.v.nutz.base.query.PageForm; import io.v.nutz.base.service.BaseService; import io.v.nutz.base.utils.PageUtil; -import io.v.nutz.base.dao.CndPlus; -import io.v.nutz.base.query.PageForm; import io.v.nutz.zhgh.trainSignUp.models.TrainMobileSignColumn; import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpType; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserAdjustController.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserAdjustController.java index d8704ed..5b217e5 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserAdjustController.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserAdjustController.java @@ -11,8 +11,8 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.service.BaseService; import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.service.BaseService; import io.v.nutz.base.utils.ViTool; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.web.commons.utils.ShiroUtil; @@ -226,10 +226,10 @@ public class TrainSignUpUserAdjustController { TrainSignUpActivity activity = dao.fetch(TrainSignUpActivity.class, activityId); - if(DateUtil.compare(new Date(), activity.getActivitySignUpStartTime(), "yyyy-MM-dd HH:mm:ss") < 0) { + /*if(DateUtil.compare(new Date(), activity.getActivitySignUpStartTime(), "yyyy-MM-dd HH:mm:ss") < 0) { return Result.error("报名未开始"); } - /*if(DateUtil.compare(new Date(), activity.getActivitySignUpEndTime(), "yyyy-MM-dd HH:mm:ss") > 0) { + if(DateUtil.compare(new Date(), activity.getActivitySignUpEndTime(), "yyyy-MM-dd HH:mm:ss") > 0) { return Result.error("报名已结束"); }*/ @@ -244,11 +244,11 @@ public class TrainSignUpUserAdjustController { for (SignUser sign : signUser) { Sys_user sysUser = dao.fetch(Sys_user.class, Cnd.where("loginname", "=", sign.getLoginname())); if(sysUser != null) { - if(!isSingle && courseMap.get(sign.getCourseName()) == null) { + /*if(!isSingle && courseMap.get(sign.getCourseName()) == null) { sign.setErrMsg("分活动/培训班名称有误"); continue; - } - String courseId = isSingle ? importCourseId : courseMap.get(sign.getCourseName()); + }*/ + String courseId = importCourseId; /*if(StrUtil.isNotBlank(course.getConditionStructureId())) { NutMap nutMap = trainSignUpActivityService.validConditionStructure(course.getConditionStructureId()); if(!nutMap.getBoolean("flag")) { @@ -290,7 +290,7 @@ public class TrainSignUpUserAdjustController { Sys_user sysUser = dao.fetch(Sys_user.class, Cnd.where("loginname", "=", item.getLoginname())); TrainSignUpUser trainSignUpUser = new TrainSignUpUser(); trainSignUpUser.setActivityId(activityId); - trainSignUpUser.setCourseId(isSingle ? importCourseId : courseMap.get(item.getCourseName())); + trainSignUpUser.setCourseId(importCourseId); trainSignUpUser.setUserId(sysUser.getId()); trainSignUpUser.setMobile(sysUser.getMobile()); trainSignUpUser.setSignUpTime(new Date()); diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserBlackListManage.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserBlackListManage.java index 12d22db..826982d 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserBlackListManage.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/manage/TrainSignUpUserBlackListManage.java @@ -6,9 +6,8 @@ import cn.afterturn.easypoi.excel.export.ExcelExportService; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.base.Result; import io.v.nutz.base.annontation.ViReturn; -import io.v.nutz.base.utils.PageUtil; import io.v.nutz.base.query.PageForm; -import io.v.nutz.web.commons.utils.ShiroUtil; +import io.v.nutz.base.utils.PageUtil; import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpActivity; import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpCourse; import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpUser; @@ -71,9 +70,6 @@ public class TrainSignUpUserBlackListManage { cnd.andEX("tsuu.activityId", "=", activityId); cnd.andEX("tsuu.courseId", "=", courseId); cnd.andEX("act.year", "=", year); - if(ShiroUtil.hasRole("H04") && !ShiroUtil.hasAnyRoles("sysadmin, A06")) { - cnd.and("activityMode", "=", 2).and("act.opBy", "=", ShiroUtil.getPlatformUid()); - } if (StrUtil.isNotBlank(userKeyWord)) { SqlExpressionGroup seg = new SqlExpressionGroup(); cnd.and(seg.andLike("u.username", userKeyWord).orLike("u.loginname", userKeyWord)); @@ -81,6 +77,7 @@ public class TrainSignUpUserBlackListManage { if(Strings.isNotBlank(pageForm.getPageOrderName()) && Strings.isNotBlank(pageForm.getPageOrderBy())){ cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); } + return trainSignUpBlackListService.pageData(pageForm, cnd, activityId, courseId); } diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/mobile/MTrainSignUpActivityController.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/mobile/MTrainSignUpActivityController.java index 1e2b279..b843840 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/mobile/MTrainSignUpActivityController.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/mobile/MTrainSignUpActivityController.java @@ -7,10 +7,7 @@ import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.query.PageForm; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.service.MatchConditionStructureService; -import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpActivity; -import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpCourse; -import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpUser; -import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpUserCourse; +import io.v.nutz.zhgh.trainSignUp.models.*; import io.v.nutz.zhgh.trainSignUp.service.TrainSignUpActivityService; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.dao.Chain; @@ -22,8 +19,7 @@ import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.*; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; @@ -105,6 +101,36 @@ public class MTrainSignUpActivityController { public Object doSignUp(TrainSignUpUser trainSignUpUser) { try { lock.lock(); + boolean courseByUser = trainSignUpActivityService.isSignCourseByUser(trainSignUpUser.getCourseId(), ShiroUtil.getPlatformUid()); + if(courseByUser) { + return Result.error("您已报过该活动"); + } + //判断人数 + int number = 0; + TrainSignUpCourse course = trainSignUpActivityService.dao().fetch(TrainSignUpCourse.class, trainSignUpUser.getCourseId()); + TrainSignUpType type = trainSignUpActivityService.dao().fetch(TrainSignUpType.class, course.getCourseType()); + if(type != null) { + if(type.getIsBringFamily() && type.getIsAddFamily()) { + List mobileColumnsValue = trainSignUpUser.getMobileColumnsValue(); + NutMap map = mobileColumnsValue.stream().filter(o -> "xdqsrs".equals(o.getString("columnCode"))).findAny().orElse(null); + number = map != null ? map.getInt("columnValue") : 0; + } + } + boolean signFull = trainSignUpActivityService.isSignFull(trainSignUpUser.getCourseId(), number); + if(signFull) { + return Result.error("当前报名人数已满"); + } + boolean signFullByUnionId = trainSignUpActivityService.isSignFullByUnionId(trainSignUpUser.getCourseId(), number); + if(signFullByUnionId) { + return Result.error("该活动您所在的分工会名额已报满"); + } + + TrainSignUpActivity activity = trainSignUpActivityService.fetch(trainSignUpUser.getActivityId()); + Map childNumber = this.getChildNumber(activity, trainSignUpUser); + if (childNumber.containsKey(false)) { + return Result.error(childNumber.get(false)); + } + trainSignUpActivityService.doSignUp(trainSignUpUser); return Result.success("报名成功"); } catch (Exception e) { @@ -204,7 +230,7 @@ public class MTrainSignUpActivityController { return Result.error("报名未开始"); } if(DateUtil.compare(new Date(), activity.getActivitySignUpEndTime(), "yyyy-MM-dd HH:mm:ss") > 0) { - return Result.error("报名已结束"); + return Result.error("报名已结束,请致电校工会咨询,联系电话:85913629"); } if(StrUtil.isNotBlank(cndId)) { NutMap nutMap = trainSignUpActivityService.validConditionStructure(cndId); @@ -233,6 +259,12 @@ public class MTrainSignUpActivityController { if(signFullByUnionId) { return Result.error("该活动您所在的分工会名额已报满"); } + + Map childNumber = this.getChildNumber(activity, null); + if (childNumber.containsKey(false)) { + return Result.error(childNumber.get(false)); + } + if(course.getReserveMode() == 2 && currentFamilyNumber == null) { //课程已报人数 List signUpUsers = dao.query(TrainSignUpUser.class, Cnd.where("courseId", "=", courseId)); @@ -250,6 +282,62 @@ public class MTrainSignUpActivityController { } } + private Map getChildNumber(TrainSignUpActivity activity, TrainSignUpUser trainSignUpUser) { + //临时活动的逻辑 + List stringList = List.of("06aaf4fd9db94bf9be2a27a1ab486a20", "6faec5acb6264bb6a4395aee03804269", "f9c532d86c89474f9d61c8374539e521"); + if(stringList.contains(activity.getId())) { + List upUsers = trainSignUpActivityService.dao().query(TrainSignUpUser.class, + Cnd.where("activityId", "in", stringList) + .and("userId", "=", ShiroUtil.getPlatformUid())); + if(upUsers.size() >= 2) { + return Map.of(false, "江小娃系列活动只能报2个班"); + } + //孩子数量 + List childList = upUsers.stream() + .flatMap(o -> o.getMobileColumnsValue().stream()) + .collect(Collectors.toList()); + + long count = childList.stream().filter(o -> o.getString("columnCode").contains("NM") && StrUtil.isNotBlank(o.getString("columnValue"))).count(); + if(trainSignUpUser != null) { + + //获取当前填写的孩子数量 + List mobileColumnsValue = trainSignUpUser.getMobileColumnsValue(); + + //判断孩子姓名有没有重复 + List hasSignName = new ArrayList<>(); + childList.forEach(o -> { + if(o.getString("columnCode").contains("NM") && StrUtil.isNotBlank(o.getString("columnValue"))) { + hasSignName.add(o.getString("columnValue")); + } + }); + List currentSignName = mobileColumnsValue.stream().map(o -> { + if (o.getString("columnCode").contains("NM") && StrUtil.isNotBlank(o.getString("columnValue"))) { + return o.getString("columnValue"); + } else { + return ""; + } + }).filter(StrUtil::isNotBlank).collect(Collectors.toList()); + + boolean hasDuplicates = new HashSet<>(currentSignName).size() < currentSignName.size(); + if(hasDuplicates) { + return Map.of(false, "孩子姓名不能重复"); + } + for (String o : currentSignName) { + if(hasSignName.contains(o)) { + return Map.of(false, "不能报名,【" + o + "】已经在其他年级组报名了"); + } + } + + long currentChild = mobileColumnsValue.stream().filter(o -> o.getString("columnCode").contains("NM") && StrUtil.isNotBlank(o.getString("columnValue"))).count(); + count += currentChild; + } + if(count > 2) { + return Map.of(false, "江小娃系列活动只能上报2个孩子"); + } + } + return Map.of(true, ""); + } + @At @Ok("json:full") @ViReturn diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java index 1dd49c2..c1a30fb 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/controller/statistics/TrainSignUpActivityStatisticsController.java @@ -111,6 +111,14 @@ public class TrainSignUpActivityStatisticsController { return trainSignUpActivityStatisticsService.registerUserList(courseId); } + @At + @ViReturn + @Ok("json:full") + @RequiresPermissions("trainSingUp.statistics.activity") + public Object getTaleColumnInfo(@Param(value = "courseId") String courseId) { + return trainSignUpActivityStatisticsService.getTaleColumnInfo(courseId); + } + /** * 培训班上课签到信息 * @@ -194,7 +202,7 @@ public class TrainSignUpActivityStatisticsController { TrainSignUpCourse course = courseMap.get(k); //查询课程类型 TrainSignUpType trainSignUpType = dao.fetch(TrainSignUpType.class, Cnd.where("id", "=", course.getCourseType())); - dao.fetchLinks(trainSignUpType, "^trainMobileSignColumnList$"); + dao.fetchLinks(trainSignUpType, "^trainMobileSignColumnList$", Cnd.NEW().asc("columnIndex")); ExcelExportService service = new ExcelExportService(); ExportParams userExportParams = new ExportParams(); diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpActivity.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpActivity.java index 4c7eae4..b3347de 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpActivity.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpActivity.java @@ -1,6 +1,7 @@ package io.v.nutz.zhgh.trainSignUp.models; import cn.wizzer.framework.base.model.BaseModel; +import io.v.nutz.sys.models.Sys_file; import io.v.nutz.zhgh.data.model.MatchConditionStructure; import lombok.Data; import lombok.experimental.Accessors; @@ -76,14 +77,14 @@ public class TrainSignUpActivity extends BaseModel implements Serializable { private Integer limitNum; @Column - @ColDefine(type = ColType.VARCHAR, width = 50) + @ColDefine(type = ColType.MYSQL_JSON) @Comment("活动封面") - private String cover; + private Sys_file cover; @Column - @ColDefine(type = ColType.VARCHAR, width = 50) + @ColDefine(type = ColType.MYSQL_JSON) @Comment("微信群二维码") - private String wechat; + private Sys_file wechat; @Column @ColDefine(type = ColType.BOOLEAN) @@ -127,21 +128,4 @@ public class TrainSignUpActivity extends BaseModel implements Serializable { @Comment("活动类型") @Default("1") private Integer activityMode; - - @Column - @ColDefine(type = ColType.INT, width = 10) - @Comment("是否推送移动端(0.不推送,1.推送活动列表,2.推送大图)") - @Default("0") - private Integer pushHome; - - - @Column - @Comment("任务id") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String taskId; - - @Column - @Comment("是否启用积分系统") - @ColDefine(type = ColType.BOOLEAN) - private Boolean isIntegral; } diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpType.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpType.java index d806936..f00e0f0 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpType.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/models/TrainSignUpType.java @@ -50,6 +50,12 @@ public class TrainSignUpType extends BaseModel implements Serializable { @ColDefine(type = ColType.BOOLEAN) private Boolean isAddFamily; + @Column + @Comment("本人纳入总人数") + @ColDefine(type = ColType.BOOLEAN) + @Default("1") + private Boolean selfAddFamily; + @Many(field = "typeId") private List trainMobileSignColumnList; } diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/service/TrainSignUpActivityStatisticsService.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/service/TrainSignUpActivityStatisticsService.java index e0873cc..88d3cc6 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/service/TrainSignUpActivityStatisticsService.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/service/TrainSignUpActivityStatisticsService.java @@ -33,6 +33,8 @@ public interface TrainSignUpActivityStatisticsService extends ViService registerUserList(String courseId); + List getTaleColumnInfo(String courseId); + /** * 该课程下的报名人员信息 * diff --git a/src/main/java/io/v/nutz/zhgh/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java b/src/main/java/io/v/nutz/zhgh/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java index e191397..edb9809 100644 --- a/src/main/java/io/v/nutz/zhgh/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java +++ b/src/main/java/io/v/nutz/zhgh/trainSignUp/service/impl/TrainSignUpActivityServiceImpl.java @@ -1,12 +1,10 @@ package io.v.nutz.zhgh.trainSignUp.service.impl; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.wizzer.framework.page.Pagination; -import io.v.nutz.base.service.impl.ViServiceImpl; -import io.v.nutz.base.utils.MsgApi; -import io.v.nutz.base.utils.Vi; import io.v.nutz.base.query.PageForm; +import io.v.nutz.base.service.impl.ViServiceImpl; +import io.v.nutz.base.utils.Vi; import io.v.nutz.sys.models.Sys_user; import io.v.nutz.web.commons.utils.ShiroUtil; import io.v.nutz.zhgh.data.constant.ConditionalOperational; @@ -57,9 +55,6 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl courseList = activity.getCourseList(); courseList.forEach(v -> { @@ -132,6 +126,7 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl oldActCourseTimeList = dao().query(TrainSignUpActivityCourse.class, Cnd.where("activityId", "=", activity.getId())); + update(activity); List typeLimits = activity.getTypeLimits(); @@ -154,7 +149,7 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl courseTimeList = v.getCourseTimeList(); - if (courseTimeList != null) { + if(courseTimeList != null) { courseTimeList.forEach(x -> { x.setActivityId(activity.getId()); x.setCourseId(v.getId()); @@ -184,7 +179,7 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl nowCourseTimeListId = new ArrayList<>(); activity.getCourseList().stream().forEach(v -> { - if (v.getCourseTimeList() != null) { + if(v.getCourseTimeList() != null) { nowCourseTimeListId.addAll(v.getCourseTimeList().stream().map(x -> x.getId()).collect(Collectors.toList())); } }); @@ -251,26 +246,30 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl courseList = activity.getCourseList(); courseList.forEach(c -> { - TrainSignUpType type = dao().fetch(TrainSignUpType.class, StrUtil.isNotBlank(c.getCourseType()) ? c.getCourseType() : ""); - dao().fetchLinks(c, "^(courseTimeList)$", Cnd.NEW().asc("courseStartTime")); - //已报人数 - AtomicInteger hasRegisterNum = new AtomicInteger(); - List signUpUsers = dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", c.getId())); - signUpUsers.forEach(item -> { - hasRegisterNum.getAndIncrement(); - if (type.getIsBringFamily() && type.getIsAddFamily()) { - List mapList = item.getMobileColumnsValue(); - if (Lang.isNotEmpty(mapList)) { - NutMap nutMap = mapList.stream().filter(o -> "xdqsrs".equals(o.getString("columnCode"))).findAny().orElse(null); - if (nutMap != null) { - hasRegisterNum.addAndGet(nutMap.getInt("columnValue")); + if(StrUtil.isNotBlank(c.getCourseType())) { + TrainSignUpType type = dao().fetch(TrainSignUpType.class, c.getCourseType()); + dao().fetchLinks(c, "^(courseTimeList)$", Cnd.NEW().asc("courseStartTime")); + //已报人数 + AtomicInteger hasRegisterNum = new AtomicInteger(); + List signUpUsers = dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", c.getId())); + signUpUsers.forEach(item -> { + if(type.getSelfAddFamily()) { + hasRegisterNum.getAndIncrement(); + } + if(type.getIsBringFamily() && type.getIsAddFamily()) { + List mapList = item.getMobileColumnsValue(); + if(Lang.isNotEmpty(mapList)) { + NutMap nutMap = mapList.stream().filter(o -> "xdqsrs".equals(o.getString("columnCode"))).findAny().orElse(null); + if(nutMap != null) { + hasRegisterNum.addAndGet(nutMap.getInt("columnValue")); + } } } - } - }); - c.setHasRegisterNum(hasRegisterNum.get()); - //当前用户是否报过 - c.setIsSign(isSignCourseByUser(c.getId(), (String) ShiroUtil.getPrincipalProperty("id"))); + }); + c.setHasRegisterNum(hasRegisterNum.get()); + //当前用户是否报过 + c.setIsSign(isSignCourseByUser(c.getId(), (String) ShiroUtil.getPrincipalProperty("id"))); + } }); return Lang.obj2nutmap(activity); } @@ -304,10 +303,10 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl cnd.and(new Static(" ((activityEndTime > '%s' and activityStartTime < '%s') or (activitySignUpEndTime > '%s' and activitySignUpStartTime < '%s'))" // .formatted(dateTime, dateTime, dateTime, dateTime))); } - if ("my".equals(type)) { + if("my".equals(type)) { cnd.and(new Static("id in (select activityId from train_sign_up_user where userId = '%s')".formatted(ShiroUtil.getPrincipalProperty("id")))); } - cnd.and("isDisabled", "=", 0); + cnd.and("isDisabled","=",0); cnd.orderBy("activityEndTime", "desc"); cnd.orderBy("isDisabled", "desc"); Pagination pagination = listPage(pageForm.getPageNumber(), pageForm.getPageSize(), cnd); @@ -326,19 +325,17 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl signUpUsers = listMap(sql); - int hasRegisterNum = signUpUsers.size() + 1;//+1是算自己 + int hasRegisterNum = signUpType.getSelfAddFamily() ? signUpUsers.size() + 1 : 0;//+1是算自己 //课程已报人数(携带的家属) int hasFamilyNum = 0; //如果携带家属,并且纳入人数,则mdzz - if (signUpType.getIsAddFamily() && signUpType.getIsBringFamily()) { + if(signUpType.getIsAddFamily() && signUpType.getIsBringFamily()) { //如果携带家属,已报人数=教职工+每个教职工携带的家属 AtomicInteger num = new AtomicInteger(); signUpUsers.forEach(item -> { List mapList = item.getAsList("", NutMap.class); - if (Lang.isNotEmpty(mapList)) { + if(Lang.isNotEmpty(mapList)) { NutMap nutMap = mapList.stream().filter(o -> "xdqsrs".equals(o.getString("columnCode"))).findAny().orElse(null); - if (nutMap != null) { + if(nutMap != null) { num.addAndGet(nutMap.getInt("columnValue")); } } @@ -451,17 +443,18 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl signUpUsers = dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", courseId)); - int hasRegisterNum = signUpUsers.size() + 1;//+1是算自己 + //如果本人纳入总人数,则正常,但是如果不纳入,统计报名人数的时候就不算 + int hasRegisterNum = type.getSelfAddFamily() ? signUpUsers.size() + 1 : 0;//+1是算自己 //课程已报人数(携带的家属) int hasFamilyNum = 0; //如果这个类型携带家属并且计入总人数 - if (type.getIsBringFamily() && type.getIsAddFamily()) { + if(type.getIsBringFamily() && type.getIsAddFamily()) { AtomicInteger num = new AtomicInteger(); signUpUsers.forEach(item -> { List mapList = item.getMobileColumnsValue(); - if (Lang.isNotEmpty(mapList)) { + if(Lang.isNotEmpty(mapList)) { NutMap nutMap = mapList.stream().filter(o -> "xdqsrs".equals(o.getString("columnCode"))).findAny().orElse(null); - if (nutMap != null) { + if(nutMap != null) { num.addAndGet(nutMap.getInt("columnValue")); } } @@ -469,10 +462,10 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl 总人数 return (hasRegisterNum + course.getCourseReservedNumber() + hasFamilyNum) > coursePeopleNumber; - } else {//如果预留名额模式是报名人数不变 + }else {//如果预留名额模式是报名人数不变 //如果已报人数+当前报名(自己)+家属 > 总人数+预留人数 return (hasRegisterNum + hasFamilyNum) > (coursePeopleNumber + course.getCourseReservedNumber()); } @@ -506,7 +499,7 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl listMap = list.getList(NutMap.class); + + //找活动报的人 + List upUsers = dao().query(TrainSignUpUser.class, Cnd.where("activityId", "=", activityId)); + Map> signUsers = upUsers.stream().collect(Collectors.groupingBy(TrainSignUpUser::getCourseId)); + + for (NutMap item : listMap) { + AtomicReference familyCount = new AtomicReference<>(0); + List users = signUsers.get(item.getString("id")); + if (Lang.isNotEmpty(users)) { + users.forEach(u -> { + List mobileColumnsValue = u.getMobileColumnsValue(); + if (Lang.isNotEmpty(mobileColumnsValue)) { + NutMap nutMap = mobileColumnsValue.stream().filter(o -> "xdqsrs".equals(o.getString("columnCode"))).findFirst().orElse(null); + if (nutMap != null) { + familyCount.updateAndGet(v -> v + (StrUtil.isNotBlank(nutMap.getString("columnValue")) ? nutMap.getInt("columnValue") : 0)); + } + } + }); + } + item.setv("familyCount", familyCount.get()); + } + list.setList(listMap); + return list; } @Override @@ -70,7 +106,8 @@ public class TrainSignUpActivityStatisticsServiceImpl extends ViServiceImpl mobileColumnsValue = Json.fromJsonAsList(NutMap.class, o.getString("mobileColumnsValue")); + if(Lang.isNotEmpty(mobileColumnsValue)) { + mobileColumnsValue.forEach(m -> { + o.put(m.getString("columnCode"), m.getString("columnValue")); + }); + } + } + }); + return list; + } + + @Override + public List getTaleColumnInfo(String courseId) { + TrainSignUpCourse course = dao().fetch(TrainSignUpCourse.class, courseId); + TrainSignUpType upType = dao().fetch(TrainSignUpType.class, course.getCourseType()); + dao().fetchLinks(upType, "trainMobileSignColumnList", Cnd.NEW().asc("columnIndex")); + + List columnList = upType.getTrainMobileSignColumnList(); + List columnTableList = columnList.stream().map(o -> NutMap.NEW().setv("label", o.getColumnName()).setv("prop", o.getColumnCode())).collect(Collectors.toList()); + return columnTableList; } @Override diff --git a/src/main/resources/views/mobile/train/trainInfo.html b/src/main/resources/views/mobile/train/trainInfo.html index 20eca56..f71a49c 100644 --- a/src/main/resources/views/mobile/train/trainInfo.html +++ b/src/main/resources/views/mobile/train/trainInfo.html @@ -241,7 +241,7 @@ layout("/mobile/platform.html"){ style="position: absolute; left: 77%; top: 58%;" src="/assets/mobile/svg/train/sign_up.svg"> -
签到 @@ -528,7 +528,7 @@ layout("/mobile/platform.html"){ cancel(o) { vant.Dialog.confirm({ title: '温馨提示', - message: "您确定要取消【" + o.courseName + "】吗?", + message: "您确定要取消【" + o.courseName + "】吗?\n一旦确认,可不能反悔了哟!", confirmButtonColor: '#1867b0', }).then(async () => { const resp = await $.post('/platform/mobile/trainSignUpActivity/cancelSignUp', { @@ -611,7 +611,7 @@ layout("/mobile/platform.html"){ vant.Dialog.confirm({ title: '温馨提示', - message: '您选择了【' + this.choose.courseName + '】\n的报名,是否确认?', + message: '您选择了【' + this.choose.courseName + '】\n一旦确认,可不能反悔了哟', confirmButtonColor: '#1867b0', }).then(async () => { const toast = vant.Toast.loading({ @@ -632,7 +632,7 @@ layout("/mobile/platform.html"){ const resp = await $.post('/platform/mobile/trainSignUpActivity/doSignUp', this.formData) vant.Toast(resp.msg) if (resp.code === 0) { - this.pageData() + await this.pageData() this.joinPopup = false } toast.clear() diff --git a/src/main/resources/views/mobile/train/trainList.html b/src/main/resources/views/mobile/train/trainList.html index 92416d7..c0a92ca 100644 --- a/src/main/resources/views/mobile/train/trainList.html +++ b/src/main/resources/views/mobile/train/trainList.html @@ -110,9 +110,9 @@ layout("/mobile/platform.html"){
- + v-if="o.cover && o.cover.filepath"> diff --git a/src/main/resources/views/platform/trainSingUp/manage/activity_add.html b/src/main/resources/views/platform/trainSingUp/manage/activity_add.html index 642169f..583f3ab 100644 --- a/src/main/resources/views/platform/trainSingUp/manage/activity_add.html +++ b/src/main/resources/views/platform/trainSingUp/manage/activity_add.html @@ -36,6 +36,7 @@ layout("/layouts/platform.html"){ let map = null let marker = null let geocoder = null + let E = window.wangEditor const vue = new Vue({ el: '#app', components: { @@ -53,7 +54,6 @@ layout("/layouts/platform.html"){ fromEdit: '', formData: { notice: false, - isIntegral: false, courseList: [ {courseName: '1', courseTimeList: [], isMobileSign: false, isReceiveGift: false, reserveMode: 1}, {courseName: '2', courseTimeList: [], isMobileSign: false, isReceiveGift: false, reserveMode: 1} @@ -66,7 +66,6 @@ layout("/layouts/platform.html"){ limitNum: 1, typeLimits: [], activityMode: 1, - pushHome: 0, }, pickerOptions: { disabledDate(time) { @@ -232,7 +231,7 @@ layout("/layouts/platform.html"){ this.unionLimitIndex = index this.setUpUnionLimitDialog = true if (!this.formData.courseList[this.unionLimitIndex].unionLimit || this.formData.courseList[this.unionLimitIndex].unionLimit.length === 0) { - const resp = await $.get('/platform/trainSingUp/manage/activity/add/getUnionLimit', {activityScopeId: this.formData.activityGroupId}) + const resp = await $.get('/platform/trainSingUp/manage/activity/getUnionLimit', {activityScopeId: this.formData.activityGroupId}) if (resp.code === 0) { this.$set(this.formData.courseList[this.unionLimitIndex], 'unionLimit', resp.data) } @@ -396,7 +395,7 @@ layout("/layouts/platform.html"){ const courseValid = this.formData.courseList.some((v, i) => { const basicValid = v.courseName && v.coursePeopleNumber && v.campus && v.courseLocation && v.courseInstructor && v.courseType - const timeValid = v.courseTimeList.length > 0 && v.courseTimeList.every(x => { + const timeValid = v.courseTimeList && v.courseTimeList.length > 0 && v.courseTimeList.every(x => { return x.courseStartTime && x.courseEndTime && (x.courseStartTime < x.courseEndTime) }) @@ -436,13 +435,18 @@ layout("/layouts/platform.html"){ //cloneData.conditionStructure.conditions = cloneData.conditionStructure.conditions.filter(v => v.field && v.fieldObj && v.operational && v.value) - cloneData.activitySignUpStartTime = cloneData.activitySignTime !== undefined ? cloneData.activitySignTime[0] : null - cloneData.activitySignUpEndTime = cloneData.activitySignTime !== undefined ? cloneData.activitySignTime[1] : null - cloneData.activityStartTime = cloneData.activityTime !== undefined ? cloneData.activityTime[0] : null - cloneData.activityEndTime = cloneData.activityTime !== undefined ? cloneData.activityTime[1] : null - if(cloneData.activityStartTime !== undefined && cloneData.activityStartTime !== null) { - cloneData.year = new Date(cloneData.activityStartTime).getFullYear() + if (cloneData.cover && cloneData.cover.length > 0) { + cloneData.cover = cloneData.cover[0] } + if (cloneData.wechat && cloneData.wechat.length > 0) { + cloneData.wechat = cloneData.wechat[0] + } + cloneData.activitySignUpStartTime = cloneData.activitySignTime[0] + cloneData.activitySignUpEndTime = cloneData.activitySignTime[1] + cloneData.activityStartTime = cloneData.activityTime[0] + cloneData.activityEndTime = cloneData.activityTime[1] + cloneData.year = new Date(cloneData.activityStartTime).getFullYear() + /*const limitNumArray = [] this.formData.typeLimits.forEach(item => { limitNumArray.push({ @@ -463,7 +467,7 @@ layout("/layouts/platform.html"){ }) cloneData.typeLimits = limitNumArray - const resp = await $.post('/platform/trainSingUp/manage/activity/doHandle', {data: JSON.stringify(cloneData), flag: flag}) + const resp = await $.post('/platform/trainSingUp/manage/activity/doHandle', {data: JSON.stringify(cloneData)}) if (resp.code === 0) { this.$notify({ title: '成功', @@ -481,9 +485,24 @@ layout("/layouts/platform.html"){ if (id) { const resp = await $.get('/platform/trainSingUp/manage/activity/findOne', {id}) if (resp.code === 0) { + if (resp.data.cover) { + resp.data.cover = [resp.data.cover] + } + if (resp.data.wechat) { + resp.data.wechat = [resp.data.wechat] + } this.formData = resp.data const type = this.trainTypeList.find(o => o.code === this.formData.trainType) this.trainType = type ? type.name : '培训班' + this.$nextTick(() => { + $("#introduce").html("") + var editor = new E("#introduce") + editor.config.onchange = (html) => { + this.formData.introduce = html.replace(/<\/p>/g, '') + } + editor.create() + editor.txt.html(resp.data.introduce) + }) this.formData.courseList.forEach(item => { const type = this.courseTypeList.find(o => o.id === item.courseType) @@ -495,6 +514,15 @@ layout("/layouts/platform.html"){ } }) } + } else { + this.$nextTick(() => { + $("#introduce").html("") + var editor = new E("#introduce") + editor.config.onchange = (html) => { + this.formData.introduce = html.replace(/<\/p>/g, '') + } + editor.create() + }) } }, async initCnd() { @@ -564,7 +592,7 @@ layout("/layouts/platform.html"){ }, //获取培训班报名人数 async getRegisterUserCount(courseId) { - const resp = await $.post('/platform/trainSingUp/manage/activity/add/getRegisterUserCount', {courseId}) + const resp = await $.post('/platform/trainSingUp/manage/activity/getRegisterUserCount', {courseId}) return resp.code === 0 ? resp.data : 0 }, setSignUpCondition() { @@ -656,16 +684,16 @@ layout("/layouts/platform.html"){ this.trainType = type ? type.name : '' }, async getHistoricalActList() { - const resp = await $.post('/platform/trainSingUp/manage/activity/add/getHistoricalActList', {}) + const resp = await $.post('/platform/trainSingUp/manage/activity/getHistoricalActList', {}) return resp.data }, async historicalActChange(val) { const resp = await $.get('/platform/trainSingUp/manage/activity/findOne', {id: val}) if (resp.code === 0) { - // resp.data.cover = [resp.data.cover] - // if (resp.data.wechat) { - // resp.data.wechat = [resp.data.wechat] - // } + resp.data.cover = [resp.data.cover] + if (resp.data.wechat) { + resp.data.wechat = [resp.data.wechat] + } this.formData = resp.data const type = this.trainTypeList.find(o => o.code === this.formData.trainType) this.trainType = type ? type.name : '培训班' @@ -708,15 +736,9 @@ layout("/layouts/platform.html"){ } }, conditionStructure(val) { + console.log(val) this.formData.courseList[this.userScopeIndex].conditionStructure = val }, - 'formData.activityGroupId': { - async handler(newVal, oldVal) { - this.activityGroupList = await getActivityGroup() - this.userScopeDialog = false - }, - deep: true - }, } }) diff --git a/src/main/resources/views/platform/trainSingUp/manage/apply.html b/src/main/resources/views/platform/trainSingUp/manage/apply.html index e7c26f2..790f07d 100644 --- a/src/main/resources/views/platform/trainSingUp/manage/apply.html +++ b/src/main/resources/views/platform/trainSingUp/manage/apply.html @@ -188,15 +188,12 @@ layout("/layouts/platform.html"){
- - - {{item.activityName}} - {{item.activityName.substr(0,10)}}... - +
+ {{item.activityName}} +
- 请选择活动报名 + 报名
@@ -226,14 +223,13 @@ layout("/layouts/platform.html"){
报名时间: - {{moment(item.activitySignUpStartTime) - .format('MM/DD HH:mm')}} 至 - {{moment(item.activitySignUpEndTime).format('MM/DD HH:mm')}} + {{moment(item.activitySignUpStartTime).format('YYYY/MM/DD HH:mm')}} 至 + {{moment(item.activitySignUpEndTime).format('YYYY/MM/DD HH:mm')}}
活动时间: - {{moment(item.activityStartTime).format('MM/DD HH:mm')}} 至 - {{moment(item.activityEndTime).format('MM/DD HH:mm')}} + {{moment(item.activityStartTime).format('YYYY/MM/DD HH:mm')}} 至 + {{moment(item.activityEndTime).format('YYYY/MM/DD HH:mm')}}
@@ -241,7 +237,7 @@ layout("/layouts/platform.html"){ - + @@ -250,7 +246,7 @@ layout("/layouts/platform.html"){