commit
This commit is contained in:
+4
-1
@@ -154,6 +154,7 @@ public class FamilyActivityStatisticsController {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
ts.*,
|
||||
CONCAT(DATE_FORMAT(ac.courseStartTime, '%H:%i:%s'),'至',DATE_FORMAT(ac.courseEndTime, '%H:%i:%s')) AS courseTime,
|
||||
u.username,
|
||||
u.loginname,
|
||||
u.sex,
|
||||
@@ -162,6 +163,7 @@ public class FamilyActivityStatisticsController {
|
||||
tsc.courseName
|
||||
FROM
|
||||
family_user ts
|
||||
left join family_activity_course ac on ts.activityCourseId = ac.id
|
||||
left join `vw_user` u on u.id = ts. userId
|
||||
left join family_course tsc on tsc.id = ts.courseId
|
||||
WHERE
|
||||
@@ -183,7 +185,8 @@ public class FamilyActivityStatisticsController {
|
||||
Map.of("name", "单位", "key", "unitName"),
|
||||
Map.of("name", "分工会", "key", "unionName"),
|
||||
Map.of("name", "性别", "key", "sex"),
|
||||
Map.of("name", "手机号", "key", "newMobile")
|
||||
Map.of("name", "手机号", "key", "newMobile"),
|
||||
Map.of("name", "报名时段", "key", "courseTime")
|
||||
);
|
||||
|
||||
List<ExcelExportEntity> excelCommonExportEntity = basicEntity.stream().map(entity -> {
|
||||
|
||||
@@ -71,6 +71,11 @@ public class FamilyUser implements Serializable {
|
||||
@Comment("报名时间")
|
||||
private Date signUpTime;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Comment("活动课程时段id")
|
||||
private String activityCourseId;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
@Comment("手机端报名字段和值")
|
||||
|
||||
+18
-1
@@ -13,6 +13,8 @@ import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.activity.family.models.*;
|
||||
import com.budwk.app.zhgh.activity.family.service.FamilyActivityService;
|
||||
import com.budwk.app.zhgh.activity.family.service.FamilyActivityStatisticsService;
|
||||
import com.budwk.app.zhgh.activity.trainSignUp.models.TrainSignUpActivityCourse;
|
||||
import com.budwk.app.zhgh.activity.trainSignUp.models.TrainSignUpUserCourse;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.aop.interceptor.async.Async;
|
||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||
@@ -273,7 +275,22 @@ public class FamilyActivityServiceImpl extends BaseServiceImpl<FamilyActivity> i
|
||||
familyUser.setSignUpTime(new Date());
|
||||
|
||||
dao().insert(familyUser);
|
||||
asyncInsertUserCourse(familyUser.getActivityId(), familyUser.getCourseId(), userId);
|
||||
|
||||
if (StrUtil.isNotBlank(familyUser.getActivityCourseId())) {
|
||||
TrainSignUpActivityCourse fetch = dao().fetch(TrainSignUpActivityCourse.class, familyUser.getActivityCourseId());
|
||||
TrainSignUpUserCourse userCourse = new TrainSignUpUserCourse();
|
||||
userCourse.setActivityId(familyUser.getActivityId());
|
||||
userCourse.setCourseId(familyUser.getCourseId());
|
||||
userCourse.setUserId(familyUser.getUserId());
|
||||
userCourse.setCourseStartTime(fetch.getCourseStartTime());
|
||||
userCourse.setCourseEndTime(fetch.getCourseEndTime());
|
||||
userCourse.setAttend(false);
|
||||
userCourse.setAttendTime(null);
|
||||
userCourse.setActivityCourseId(fetch.getId());
|
||||
dao().insert(userCourse);
|
||||
} else {
|
||||
asyncInsertUserCourse(familyUser.getActivityId(), familyUser.getCourseId(), userId);
|
||||
}
|
||||
}
|
||||
|
||||
@Async
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ public class FamilyActivityStatisticsServiceImpl extends BaseServiceImpl<FamilyU
|
||||
u.unitname,
|
||||
u.unionname,
|
||||
u.sex,
|
||||
u.mobile,
|
||||
ifnull(tsuu.mobile, u.mobile) as mobile,
|
||||
tsuu.signUpTime,
|
||||
tsuu.state
|
||||
FROM
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ public class FamilyUserServiceImpl extends BaseServiceImpl<FamilyBlackList> impl
|
||||
u.id AS userId,
|
||||
u.username,
|
||||
u.loginname,
|
||||
u.mobile,
|
||||
ifnull(tsuu.mobile, u.mobile) as mobile,
|
||||
u.unitname,
|
||||
u.unionname,
|
||||
tsuc.courseName,
|
||||
|
||||
+77
@@ -1,12 +1,17 @@
|
||||
package com.budwk.app.zhgh.activity.planSummary.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.util.URLUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.models.Sys_file;
|
||||
import com.budwk.app.sys.models.Sys_union;
|
||||
import com.budwk.app.sys.utils.SysFileMinIoUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.activity.basic.models.ActivityBasicSettings;
|
||||
@@ -21,13 +26,23 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
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.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
/**
|
||||
* @ClassName YearPlanController
|
||||
@@ -139,4 +154,66 @@ public class YearPlanController {
|
||||
List<SysClub> list = dao.query(SysClub.class, cnd);
|
||||
return Result.success(list);
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("planSummary.yearPlan.manage")
|
||||
public void downloadFiles(PageForm pageForm,
|
||||
@Param(value = "year") Integer year,
|
||||
@Param(value = "tissueIdByUnion") String tissueIdByUnion,
|
||||
@Param(value = "tissueIdByClub") String tissueIdByClub,
|
||||
@Param(value = "planName") String planName,
|
||||
HttpServletResponse response) throws IOException {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
|
||||
cnd.andEX("YEAR(yp.planTime)", "=", year);
|
||||
cnd.andEX("yp.tissueId", "=", tissueIdByUnion);
|
||||
cnd.andEX("yp.tissueId", "=", tissueIdByClub);
|
||||
cnd.and(Cnd.likeEX("yp.planName", planName));
|
||||
|
||||
List<NutMap> listMap = yearPlanService.queryData(cnd);
|
||||
|
||||
List<String> urlList = new ArrayList<>();
|
||||
for (NutMap map : listMap) {
|
||||
if(StrUtil.isNotBlank(map.getString("files"))) {
|
||||
List<JSONObject> files = Json.fromJsonAsList(JSONObject.class, map.getString("files"));
|
||||
ArrayList<String> list = files.stream().map(o -> o.getStr("url")).collect(Collectors.toCollection(ArrayList::new));
|
||||
urlList.addAll(list);
|
||||
}
|
||||
}
|
||||
|
||||
response.setContentType("application/zip");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + URLUtil.encode("文件汇总.zip"));
|
||||
|
||||
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
||||
for (String url : urlList) {
|
||||
String fileId = extractFileId(url);
|
||||
if(StrUtil.isNotBlank(fileId)) {
|
||||
Sys_file file = dao.fetch(Sys_file.class, fileId);
|
||||
byte[] bytes = SysFileMinIoUtil.getFileBytes(file.getBucket(), file.getStoragePath());
|
||||
if(bytes == null || bytes.length == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
String entryName = file.getName();
|
||||
zos.putNextEntry(new ZipEntry(entryName));
|
||||
zos.write(bytes);
|
||||
zos.closeEntry();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "生成ZIP文件失败");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static String extractFileId(String url) {
|
||||
if (url == null) return null;
|
||||
Pattern pattern = Pattern.compile("[?&]id=([^&]*)");
|
||||
Matcher matcher = pattern.matcher(url);
|
||||
if (matcher.find()) {
|
||||
return matcher.group(1);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+78
@@ -2,13 +2,18 @@ package com.budwk.app.zhgh.activity.planSummary.controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.core.util.URLUtil;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.annotation.SLog;
|
||||
import com.budwk.app.base.constant.RoleConstant;
|
||||
import com.budwk.app.base.page.Pagination;
|
||||
import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.result.Result;
|
||||
import com.budwk.app.sys.models.Sys_dict;
|
||||
import com.budwk.app.sys.models.Sys_file;
|
||||
import com.budwk.app.sys.models.Sys_union;
|
||||
import com.budwk.app.sys.utils.SysFileMinIoUtil;
|
||||
import com.budwk.app.sys.views.View_user;
|
||||
import com.budwk.app.web.commons.auth.utils.AuthUtil;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
@@ -26,13 +31,22 @@ import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
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.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
/**
|
||||
* @ClassName YearSummaryController
|
||||
@@ -119,4 +133,68 @@ public class YearSummaryController {
|
||||
yearSummaryService.delete(id);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("void")
|
||||
@SaCheckPermission("planSummary.yearPlan.manage")
|
||||
public void downloadFiles(PageForm pageForm,
|
||||
@Param(value = "year") Integer year,
|
||||
@Param(value = "tissueIdByUnion") String tissueIdByUnion,
|
||||
@Param(value = "tissueIdByClub") String tissueIdByClub,
|
||||
@Param(value = "summaryType") String summaryType,
|
||||
@Param(value = "summaryFrom") String summaryFrom,
|
||||
HttpServletResponse response) throws IOException {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
|
||||
cnd.andEX("YEAR(ys.cTime)", "=", year);
|
||||
cnd.andEX("ys.tissueId", "=", tissueIdByUnion);
|
||||
cnd.andEX("ys.tissueId", "=", tissueIdByClub);
|
||||
cnd.andEX("ys.summaryType", "=", summaryType);
|
||||
cnd.andEX("ys.summaryFrom", "=", summaryFrom);
|
||||
|
||||
List<NutMap> listMap = yearSummaryService.queryData(cnd);
|
||||
|
||||
List<String> urlList = new ArrayList<>();
|
||||
for (NutMap map : listMap) {
|
||||
if(StrUtil.isNotBlank(map.getString("files"))) {
|
||||
List<JSONObject> files = Json.fromJsonAsList(JSONObject.class, map.getString("files"));
|
||||
ArrayList<String> list = files.stream().map(o -> o.getStr("url")).collect(Collectors.toCollection(ArrayList::new));
|
||||
urlList.addAll(list);
|
||||
}
|
||||
}
|
||||
|
||||
response.setContentType("application/zip");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + URLUtil.encode("文件汇总.zip"));
|
||||
|
||||
try (ZipOutputStream zos = new ZipOutputStream(response.getOutputStream())) {
|
||||
for (String url : urlList) {
|
||||
String fileId = extractFileId(url);
|
||||
if(StrUtil.isNotBlank(fileId)) {
|
||||
Sys_file file = dao.fetch(Sys_file.class, fileId);
|
||||
byte[] bytes = SysFileMinIoUtil.getFileBytes(file.getBucket(), file.getStoragePath());
|
||||
if(bytes == null || bytes.length == 0){
|
||||
continue;
|
||||
}
|
||||
|
||||
String entryName = file.getName();
|
||||
zos.putNextEntry(new ZipEntry(entryName));
|
||||
zos.write(bytes);
|
||||
zos.closeEntry();
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "生成ZIP文件失败");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static String extractFileId(String url) {
|
||||
if (url == null) return null;
|
||||
Pattern pattern = Pattern.compile("[?&]id=([^&]*)");
|
||||
Matcher matcher = pattern.matcher(url);
|
||||
if (matcher.find()) {
|
||||
return matcher.group(1);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.budwk.app.zhgh.activity.planSummary.model;
|
||||
|
||||
import cn.hutool.json.JSONObject;
|
||||
import com.budwk.app.base.model.BaseModel;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -7,6 +8,8 @@ import lombok.experimental.Accessors;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
import org.nutz.dao.interceptor.annotation.PrevInsert;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName Plan
|
||||
* @Author JyuHsin
|
||||
@@ -66,4 +69,9 @@ public class YearPlan extends BaseModel {
|
||||
@Comment("活动类型")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String activityType;
|
||||
|
||||
@Column
|
||||
@Comment("附件")
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
private List<JSONObject> files;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@ import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.activity.planSummary.model.YearPlan;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName YearPlanService
|
||||
@@ -16,4 +19,6 @@ import org.nutz.dao.Cnd;
|
||||
public interface YearPlanService extends BaseService<YearPlan> {
|
||||
|
||||
Pagination pageData(PageForm pageForm, Cnd cnd);
|
||||
|
||||
List<NutMap> queryData(Cnd cnd);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,9 @@ import com.budwk.app.base.param.PageForm;
|
||||
import com.budwk.app.base.service.BaseService;
|
||||
import com.budwk.app.zhgh.activity.planSummary.model.YearSummary;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName YearSummaryService
|
||||
@@ -16,4 +19,6 @@ import org.nutz.dao.Cnd;
|
||||
public interface YearSummaryService extends BaseService<YearSummary> {
|
||||
|
||||
Pagination pageData(PageForm pageForm, Cnd cnd);
|
||||
|
||||
List<NutMap> queryData(Cnd cnd);
|
||||
}
|
||||
|
||||
+13
-1
@@ -20,6 +20,7 @@ import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
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 java.util.List;
|
||||
|
||||
@@ -43,6 +44,17 @@ public class YearPlanServiceImpl extends BaseServiceImpl<YearPlan> implements Ye
|
||||
|
||||
@Override
|
||||
public Pagination pageData(PageForm pageForm, Cnd cnd) {
|
||||
Sql sql = buildSql(cnd);
|
||||
return this.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NutMap> queryData(Cnd cnd) {
|
||||
Sql sql = buildSql(cnd);
|
||||
return this.listMap(sql);
|
||||
}
|
||||
|
||||
private Sql buildSql(Cnd cnd) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
yp.*,
|
||||
@@ -68,6 +80,6 @@ public class YearPlanServiceImpl extends BaseServiceImpl<YearPlan> implements Ye
|
||||
}
|
||||
cnd.desc("yp.planTime");
|
||||
sql.setCondition(cnd);
|
||||
return this.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
|
||||
+13
-1
@@ -19,6 +19,7 @@ import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -42,6 +43,17 @@ public class YearSummaryServiceImpl extends BaseServiceImpl<YearSummary> impleme
|
||||
|
||||
@Override
|
||||
public Pagination pageData(PageForm pageForm, Cnd cnd) {
|
||||
Sql sql = buildSql(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NutMap> queryData(Cnd cnd) {
|
||||
Sql sql = buildSql(cnd);
|
||||
return this.listMap(sql);
|
||||
}
|
||||
|
||||
private Sql buildSql(Cnd cnd) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
ys.*,
|
||||
@@ -66,6 +78,6 @@ public class YearSummaryServiceImpl extends BaseServiceImpl<YearSummary> impleme
|
||||
}
|
||||
cnd.desc("ys.cTime");
|
||||
sql.setCondition(cnd);
|
||||
return listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql);
|
||||
return sql;
|
||||
}
|
||||
}
|
||||
|
||||
+3
@@ -15,6 +15,7 @@ import com.budwk.app.zhgh.activity.family.models.FamilyCourse;
|
||||
import com.budwk.app.zhgh.activity.family.models.FamilyUser;
|
||||
import com.budwk.app.zhgh.activity.trainSignUp.models.*;
|
||||
import com.budwk.app.zhgh.activity.trainSignUp.service.TrainSignUpActivityService;
|
||||
import com.budwk.app.zhgh.activity.trainSignUp.service.TrainSignUpActivityStatisticsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.nutz.dao.Chain;
|
||||
@@ -53,6 +54,8 @@ public class MTrainSignUpActivityController {
|
||||
private TrainSignUpActivityService trainSignUpActivityService;
|
||||
@Inject
|
||||
private RedisService redisService;
|
||||
@Inject
|
||||
private TrainSignUpActivityStatisticsService statisticsService;
|
||||
|
||||
@At("/trainList")
|
||||
@Ok("beetl:/platform/zhghh5/activity/trainSignUp/trainList/index.html")
|
||||
|
||||
+7
-6
@@ -152,16 +152,16 @@ public class TrainSignUpActivityStatisticsController {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
ts.*,
|
||||
CONCAT(DATE_FORMAT(ac.courseStartTime, '%H:%i:%s'),'至',DATE_FORMAT(ac.courseEndTime, '%H:%i:%s')) AS courseTime,
|
||||
u.username,
|
||||
u.loginname,
|
||||
u.unitname,
|
||||
u.unionname,
|
||||
u.sex,
|
||||
u.mobile,
|
||||
ifnull(ts.mobile, u.mobile) as mobile,
|
||||
u.birthday,
|
||||
tsc.courseName
|
||||
FROM
|
||||
train_sign_up_user ts
|
||||
train_sign_up_user ts
|
||||
left join train_sign_up_activity_course ac on ts.activityCourseId = ac.id
|
||||
left join `vw_user` u on u.id = ts. userId
|
||||
left join train_sign_up_course tsc on tsc.id = ts.courseId
|
||||
WHERE
|
||||
@@ -180,11 +180,12 @@ public class TrainSignUpActivityStatisticsController {
|
||||
List<ExcelExportEntity> excelCommonExportEntity = new ArrayList<>();
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("姓名", "username", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("工号", "loginname", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("单位", "unitname", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("分工会", "unionname", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("单位", "unitName", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("分工会", "unionName", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("性别", "sex", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("手机号", "mobile", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("生日", "birthday", 20));
|
||||
excelCommonExportEntity.add(new ExcelExportEntity("报名时段", "courseTime", 20));
|
||||
|
||||
for (TrainSignUpCourse c : courseList) {
|
||||
String k = c.getCourseName();
|
||||
|
||||
@@ -132,6 +132,5 @@ public class TrainSignUpActivity extends BaseModel implements Serializable, SysH
|
||||
sysHomeActivity.setEnable(!this.isDisabled());
|
||||
sysHomeActivity.setClassPath(this.getClass().getPackageName() + this.getClass().getName());
|
||||
return sysHomeActivity;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,6 +70,11 @@ public class TrainSignUpUser implements Serializable {
|
||||
@Comment("报名时间")
|
||||
private Date signUpTime;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
@Comment("活动课程时段id")
|
||||
private String activityCourseId;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.MYSQL_JSON)
|
||||
@Comment("手机端报名字段和值")
|
||||
|
||||
+16
-1
@@ -278,7 +278,22 @@ public class TrainSignUpActivityServiceImpl extends BaseServiceImpl<TrainSignUpA
|
||||
trainSignUpUser.setSignUpTime(new Date());
|
||||
|
||||
dao().insert(trainSignUpUser);
|
||||
asyncInsertUserCourse(trainSignUpUser.getActivityId(), trainSignUpUser.getCourseId(), userId);
|
||||
|
||||
if (StrUtil.isNotBlank(trainSignUpUser.getActivityCourseId())) {
|
||||
TrainSignUpActivityCourse fetch = dao().fetch(TrainSignUpActivityCourse.class, trainSignUpUser.getActivityCourseId());
|
||||
TrainSignUpUserCourse userCourse = new TrainSignUpUserCourse();
|
||||
userCourse.setActivityId(trainSignUpUser.getActivityId());
|
||||
userCourse.setCourseId(trainSignUpUser.getCourseId());
|
||||
userCourse.setUserId(trainSignUpUser.getUserId());
|
||||
userCourse.setCourseStartTime(fetch.getCourseStartTime());
|
||||
userCourse.setCourseEndTime(fetch.getCourseEndTime());
|
||||
userCourse.setAttend(false);
|
||||
userCourse.setAttendTime(null);
|
||||
userCourse.setActivityCourseId(fetch.getId());
|
||||
dao().insert(userCourse);
|
||||
} else {
|
||||
asyncInsertUserCourse(trainSignUpUser.getActivityId(), trainSignUpUser.getCourseId(), trainSignUpUser.getUserId());
|
||||
}
|
||||
}
|
||||
|
||||
@Async
|
||||
|
||||
+14
-3
@@ -18,6 +18,7 @@ import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.json.Json;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
@@ -90,7 +91,8 @@ public class TrainSignUpActivityStatisticsServiceImpl extends BaseServiceImpl<Tr
|
||||
tsuu.unitName,
|
||||
ifnull(tsuu.mobile, u.mobile) as mobile,
|
||||
tsuu.signUpTime,
|
||||
tsuu.state
|
||||
tsuu.state,
|
||||
tsuu.mobileColumnsValue
|
||||
FROM
|
||||
train_sign_up_user tsuu
|
||||
LEFT JOIN `vw_user` u ON u.id = tsuu.userId
|
||||
@@ -100,7 +102,16 @@ public class TrainSignUpActivityStatisticsServiceImpl extends BaseServiceImpl<Tr
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("tsuu.courseId", "=", courseId);
|
||||
sql.setCondition(cnd);
|
||||
return listMap(sql);
|
||||
List<NutMap> list = listMap(sql);
|
||||
list.forEach(o -> {
|
||||
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
|
||||
@@ -125,7 +136,7 @@ public class TrainSignUpActivityStatisticsServiceImpl extends BaseServiceImpl<Tr
|
||||
u.unitname,
|
||||
u.unionname,
|
||||
u.sex,
|
||||
u.mobile,
|
||||
ifnull(tsuu.mobile, u.mobile) as mobile,
|
||||
tsuu.signUpTime,
|
||||
tsuu.state
|
||||
FROM
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ public class TrainSignUpUserServiceImpl extends BaseServiceImpl<TrainSignUpBlack
|
||||
u.id AS userId,
|
||||
u.username,
|
||||
u.loginname,
|
||||
u.mobile,
|
||||
ifnull(tsuu.mobile, u.mobile) as mobile,
|
||||
u.unitname,
|
||||
u.unionname,
|
||||
tsuc.courseName,
|
||||
|
||||
Reference in New Issue
Block a user