commit
This commit is contained in:
+19
-2
@@ -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")
|
||||
|
||||
+8
-10
@@ -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<TrainSignUpActivity> trainSignUpActivities = trainSignUpActivityService.query(cnd);
|
||||
Map<String, String> 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<TrainSignUpUser> 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<NutMap> 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;
|
||||
}
|
||||
|
||||
+2
-9
@@ -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);
|
||||
|
||||
+2
-2
@@ -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;
|
||||
|
||||
+7
-7
@@ -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());
|
||||
|
||||
+2
-5
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
+95
-7
@@ -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<NutMap> 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<Boolean, String> 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<Boolean, String> childNumber = this.getChildNumber(activity, null);
|
||||
if (childNumber.containsKey(false)) {
|
||||
return Result.error(childNumber.get(false));
|
||||
}
|
||||
|
||||
if(course.getReserveMode() == 2 && currentFamilyNumber == null) {
|
||||
//课程已报人数
|
||||
List<TrainSignUpUser> signUpUsers = dao.query(TrainSignUpUser.class, Cnd.where("courseId", "=", courseId));
|
||||
@@ -250,6 +282,62 @@ public class MTrainSignUpActivityController {
|
||||
}
|
||||
}
|
||||
|
||||
private Map<Boolean, String> getChildNumber(TrainSignUpActivity activity, TrainSignUpUser trainSignUpUser) {
|
||||
//临时活动的逻辑
|
||||
List<String> stringList = List.of("06aaf4fd9db94bf9be2a27a1ab486a20", "6faec5acb6264bb6a4395aee03804269", "f9c532d86c89474f9d61c8374539e521");
|
||||
if(stringList.contains(activity.getId())) {
|
||||
List<TrainSignUpUser> 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<NutMap> 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<NutMap> mobileColumnsValue = trainSignUpUser.getMobileColumnsValue();
|
||||
|
||||
//判断孩子姓名有没有重复
|
||||
List<String> hasSignName = new ArrayList<>();
|
||||
childList.forEach(o -> {
|
||||
if(o.getString("columnCode").contains("NM") && StrUtil.isNotBlank(o.getString("columnValue"))) {
|
||||
hasSignName.add(o.getString("columnValue"));
|
||||
}
|
||||
});
|
||||
List<String> 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
|
||||
|
||||
+9
-1
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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<TrainMobileSignColumn> trainMobileSignColumnList;
|
||||
}
|
||||
|
||||
+2
@@ -33,6 +33,8 @@ public interface TrainSignUpActivityStatisticsService extends ViService<TrainSig
|
||||
*/
|
||||
List<NutMap> registerUserList(String courseId);
|
||||
|
||||
List<NutMap> getTaleColumnInfo(String courseId);
|
||||
|
||||
/**
|
||||
* 该课程下的报名人员信息
|
||||
*
|
||||
|
||||
+46
-53
@@ -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<TrainSignUpAct
|
||||
@Inject
|
||||
private MatchConditionStructureService matchConditionStructureService;
|
||||
|
||||
@Inject
|
||||
private MsgApi msgApi;
|
||||
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void add(TrainSignUpActivity activity, TrainSignUpCourse course) {
|
||||
@@ -69,7 +64,6 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl<TrainSignUpAct
|
||||
activity.setConditionStructureId(null);
|
||||
activity.setConditionStructure(null);
|
||||
}
|
||||
|
||||
dao().insert(activity);
|
||||
List<TrainSignUpCourse> courseList = activity.getCourseList();
|
||||
courseList.forEach(v -> {
|
||||
@@ -132,6 +126,7 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl<TrainSignUpAct
|
||||
//原来的上课时间
|
||||
List<TrainSignUpActivityCourse> oldActCourseTimeList = dao().query(TrainSignUpActivityCourse.class, Cnd.where("activityId", "=", activity.getId()));
|
||||
|
||||
|
||||
update(activity);
|
||||
|
||||
List<TrainSignUpTypeLimit> typeLimits = activity.getTypeLimits();
|
||||
@@ -154,7 +149,7 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl<TrainSignUpAct
|
||||
dao().insertOrUpdate(v);
|
||||
|
||||
List<TrainSignUpActivityCourse> 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<TrainSignUpAct
|
||||
//现在的上课时间
|
||||
List<String> 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<TrainSignUpAct
|
||||
List<TrainSignUpCourse> 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<TrainSignUpUser> signUpUsers = dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", c.getId()));
|
||||
signUpUsers.forEach(item -> {
|
||||
hasRegisterNum.getAndIncrement();
|
||||
if (type.getIsBringFamily() && type.getIsAddFamily()) {
|
||||
List<NutMap> 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<TrainSignUpUser> signUpUsers = dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", c.getId()));
|
||||
signUpUsers.forEach(item -> {
|
||||
if(type.getSelfAddFamily()) {
|
||||
hasRegisterNum.getAndIncrement();
|
||||
}
|
||||
if(type.getIsBringFamily() && type.getIsAddFamily()) {
|
||||
List<NutMap> 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<TrainSignUpAct
|
||||
// case 3 -> 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<TrainSignUpAct
|
||||
@Override
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
public void doSignUp(TrainSignUpUser trainSignUpUser) throws Exception {
|
||||
String userId = (String) ShiroUtil.getPrincipalProperty("id");
|
||||
|
||||
//查询课程
|
||||
TrainSignUpCourse course = dao().fetch(TrainSignUpCourse.class, trainSignUpUser.getCourseId());
|
||||
//查询活动
|
||||
TrainSignUpActivity activity = dao().fetch(TrainSignUpActivity.class, Cnd.where("id", "=", course.getActivityId()));
|
||||
|
||||
//如果这个课程的预留名额方式为报名人数不变
|
||||
if (course.getReserveMode() == 2) {
|
||||
if(course.getReserveMode() == 2) {
|
||||
//如果当前报名+已报小于这个课程限制人数
|
||||
//课程已报人数
|
||||
List<TrainSignUpUser> signUpUsers = dao().query(TrainSignUpUser.class, Cnd.where("courseId", "=", trainSignUpUser.getCourseId()));
|
||||
int hasRegisterNum = signUpUsers.size() + 1;//+1是算自己
|
||||
if (hasRegisterNum > course.getCoursePeopleNumber()) {
|
||||
if(hasRegisterNum > course.getCoursePeopleNumber()) {
|
||||
trainSignUpUser.setState(2);
|
||||
} else {
|
||||
trainSignUpUser.setState(1);
|
||||
@@ -348,17 +345,12 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl<TrainSignUpAct
|
||||
}
|
||||
|
||||
if(StrUtil.isBlank(trainSignUpUser.getUserId())) {
|
||||
trainSignUpUser.setUserId((String) ShiroUtil.getPrincipalProperty("id"));
|
||||
trainSignUpUser.setUserId(userId);
|
||||
}
|
||||
trainSignUpUser.setSignUpTime(new Date());
|
||||
|
||||
dao().insert(trainSignUpUser);
|
||||
asyncInsertUserCourse(trainSignUpUser.getActivityId(), trainSignUpUser.getCourseId(), trainSignUpUser.getUserId());
|
||||
|
||||
String username = ShiroUtil.getPlatformUsername();
|
||||
String description = username + "老师您好,您已成功报名(" + activity.getActivityName() + course.getCourseName() +"),请您按时参加";
|
||||
// msgApi.sendWxMsg("活动报名通知", "", "text", description, List.of(ShiroUtil.getPlatformLoginname()), null);
|
||||
// msgApi.sendWxMsg("");
|
||||
asyncInsertUserCourse(trainSignUpUser.getActivityId(), trainSignUpUser.getCourseId(), userId);
|
||||
}
|
||||
|
||||
@Async
|
||||
@@ -419,18 +411,18 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl<TrainSignUpAct
|
||||
sql.setCondition(cnd);
|
||||
//已经报名人数,这是教职工的
|
||||
List<NutMap> 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<NutMap> 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<TrainSignUpAct
|
||||
int coursePeopleNumber = course.getCoursePeopleNumber();
|
||||
//课程已报人数
|
||||
List<TrainSignUpUser> 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<NutMap> 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<TrainSignUpAct
|
||||
hasFamilyNum = num.get() + (currentFamilyNumber != null ? currentFamilyNumber : 0);//currentFamilyNumber是当前报名时填的家属人数
|
||||
}
|
||||
//如果预留名额模式是报名人数减少
|
||||
if (course.getReserveMode() == 1) {
|
||||
if(course.getReserveMode() == 1) {
|
||||
//如果已报人数+预留人数+当前报名(自己)+家属 > 总人数
|
||||
return (hasRegisterNum + course.getCourseReservedNumber() + hasFamilyNum) > coursePeopleNumber;
|
||||
} else {//如果预留名额模式是报名人数不变
|
||||
}else {//如果预留名额模式是报名人数不变
|
||||
//如果已报人数+当前报名(自己)+家属 > 总人数+预留人数
|
||||
return (hasRegisterNum + hasFamilyNum) > (coursePeopleNumber + course.getCourseReservedNumber());
|
||||
}
|
||||
@@ -506,7 +499,7 @@ public class TrainSignUpActivityServiceImpl extends ViServiceImpl<TrainSignUpAct
|
||||
return true;
|
||||
} else if (activity.getRestrictLimit() == 2) {
|
||||
TrainSignUpTypeLimit trainSignUpTypeLimit = dao().fetch(TrainSignUpTypeLimit.class, Cnd.where("typeId", "=", courseType).and("activityId", "=", activityId));
|
||||
if (trainSignUpTypeLimit == null) {
|
||||
if(trainSignUpTypeLimit == null) {
|
||||
return true;
|
||||
}
|
||||
//此类型的班最多可报几项
|
||||
|
||||
+63
-4
@@ -1,23 +1,31 @@
|
||||
package io.v.nutz.zhgh.trainSignUp.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.wizzer.framework.page.Pagination;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.base.dao.CndPlus;
|
||||
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.zhgh.trainSignUp.models.TrainMobileSignColumn;
|
||||
import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpCourse;
|
||||
import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpType;
|
||||
import io.v.nutz.zhgh.trainSignUp.models.TrainSignUpUser;
|
||||
import io.v.nutz.zhgh.trainSignUp.service.TrainSignUpActivityStatisticsService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -42,6 +50,9 @@ public class TrainSignUpActivityStatisticsServiceImpl extends ViServiceImpl<Trai
|
||||
tsuc.coursePeopleNumber,
|
||||
tsuc.courseReservedNumber,
|
||||
type.lxname as courseType,
|
||||
type.isBringFamily,
|
||||
type.isAddFamily,
|
||||
type.selfAddFamily,
|
||||
tsuc.courseLocation,
|
||||
tsuc.courseInstructor,
|
||||
tsuc.reserveMode,
|
||||
@@ -56,7 +67,32 @@ public class TrainSignUpActivityStatisticsServiceImpl extends ViServiceImpl<Trai
|
||||
ORDER BY tsuc.orderNum
|
||||
""");
|
||||
sql.setParam("activityId", activityId);
|
||||
return list(pageForm, sql);
|
||||
|
||||
Pagination list = list(pageForm, sql);
|
||||
List<NutMap> listMap = list.getList(NutMap.class);
|
||||
|
||||
//找活动报的人
|
||||
List<TrainSignUpUser> upUsers = dao().query(TrainSignUpUser.class, Cnd.where("activityId", "=", activityId));
|
||||
Map<String, List<TrainSignUpUser>> signUsers = upUsers.stream().collect(Collectors.groupingBy(TrainSignUpUser::getCourseId));
|
||||
|
||||
for (NutMap item : listMap) {
|
||||
AtomicReference<Integer> familyCount = new AtomicReference<>(0);
|
||||
List<TrainSignUpUser> users = signUsers.get(item.getString("id"));
|
||||
if (Lang.isNotEmpty(users)) {
|
||||
users.forEach(u -> {
|
||||
List<NutMap> 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<Trai
|
||||
u.sex,
|
||||
u.mobile,
|
||||
tsuu.signUpTime,
|
||||
tsuu.state
|
||||
tsuu.state,
|
||||
tsuu.mobileColumnsValue
|
||||
FROM
|
||||
train_sign_up_user tsuu
|
||||
LEFT JOIN `user` u ON u.id = tsuu.userId
|
||||
@@ -80,7 +117,29 @@ public class TrainSignUpActivityStatisticsServiceImpl extends ViServiceImpl<Trai
|
||||
CndPlus cnd = new CndPlus();
|
||||
cnd.andEx("tsuu.courseId", "=", courseId);
|
||||
sql.setCondition(cnd);
|
||||
return listMap(sql);
|
||||
List<NutMap> list = listMap(sql);
|
||||
list.forEach(o -> {
|
||||
if(StrUtil.isNotBlank(o.getString("mobileColumnsValue"))) {
|
||||
List<NutMap> 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<NutMap> 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<TrainMobileSignColumn> columnList = upType.getTrainMobileSignColumnList();
|
||||
List<NutMap> columnTableList = columnList.stream().map(o -> NutMap.NEW().setv("label", o.getColumnName()).setv("prop", o.getColumnCode())).collect(Collectors.toList());
|
||||
return columnTableList;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user