commit
This commit is contained in:
+93
-74
@@ -19,6 +19,7 @@ import io.v.nutz.zhgh.activity.services.ActivitySchoolTeamService;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.nutz.aop.interceptor.async.Async;
|
||||
import org.nutz.dao.Chain;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.entity.Record;
|
||||
@@ -27,6 +28,7 @@ import org.nutz.dao.util.cri.SqlExpressionGroup;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
@@ -81,25 +83,23 @@ public class ActivityApplyController {
|
||||
Cnd cnd = CndPlus.create();
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
apply.*,team.`name`,acts.name actsname,ev.allName
|
||||
apply.*,
|
||||
team.`name`,
|
||||
acts.NAME actsname,
|
||||
ev.allName,
|
||||
us.username applyUserName
|
||||
FROM
|
||||
Activity_School_Apply apply LEFT JOIN activity_school_team team ON apply.teamId=team.id
|
||||
LEFT JOIN activity_school acts ON acts.id=apply.activityId
|
||||
LEFT JOIN activity_event ev ON ev.id = apply.eventId $condition
|
||||
Activity_School_Apply apply
|
||||
LEFT JOIN sys_user us ON us.id = apply.applyUser
|
||||
LEFT JOIN activity_school_team team ON apply.teamId = team.id
|
||||
LEFT JOIN activity_school acts ON acts.id = apply.activityId
|
||||
LEFT JOIN activity_event ev ON ev.id = apply.eventId
|
||||
$condition
|
||||
""");
|
||||
cnd.and("apply.activityUnionId", "=", getUnionId());
|
||||
/* if (!ShiroUtil.hasAnyRoles("A06,sysadmin")) {
|
||||
SqlExpressionGroup group = new SqlExpressionGroup();
|
||||
if (ShiroUtil.hasAnyRoles("H01")) {
|
||||
group.or("applyUser", "=", ShiroUtil.getPrincipalProperty("id"));
|
||||
}
|
||||
if (ShiroUtil.hasAnyRoles("H04")) {
|
||||
group.or("unionId", "=", getUnionId());
|
||||
}
|
||||
cnd.and(group);
|
||||
}*/
|
||||
Vi.cndPlus(cnd, "apply.activityId", "=", activityId);
|
||||
Vi.cndPlus(cnd, "apply.eventId", "=", eventId);
|
||||
cnd.asc("apply.applyUser");
|
||||
cnd.asc("team.`name`");
|
||||
cnd.desc("apply.identity");
|
||||
sql.setCondition(cnd);
|
||||
@@ -130,6 +130,11 @@ public class ActivityApplyController {
|
||||
school.personType,
|
||||
school.activityLevel,
|
||||
school.applyType,
|
||||
school.athleteQualification,
|
||||
school.registrationMethod,
|
||||
school.competitionMethod,
|
||||
school.rewardMethod,
|
||||
school.precautions,
|
||||
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND app.`status` = 2 ) apply_num,
|
||||
(SELECT count( 1 ) FROM activity_school_apply app WHERE app.activityId = school.id AND ( app.applyUser = @userid OR app.userId = @userid )) > 0 applyed,
|
||||
(SELECT COUNT(1) FROM activity_school_apply app WHERE app.activityId=school.id AND app.unionId=@unionId AND app.unionLeader=TRUE) LeaderCount,
|
||||
@@ -146,9 +151,10 @@ public class ActivityApplyController {
|
||||
|
||||
cnd.and("school.isSave", "!=", true);
|
||||
|
||||
switch (isActivity){
|
||||
switch (isActivity) {
|
||||
//报名中
|
||||
case 2 -> cnd.and(new Static("now() > school.applyStartTime and now() < school.applyEndTime"));
|
||||
case 2 ->
|
||||
cnd.and(new Static("now() > school.applyStartTime and now() < school.applyEndTime"));
|
||||
//已结束
|
||||
case 3 -> cnd.and(new Static("now() > school.applyEndTime"));
|
||||
//进行中
|
||||
@@ -156,7 +162,7 @@ public class ActivityApplyController {
|
||||
//未开始
|
||||
case 5 -> cnd.and(new Static("now() < school.applyStartTime"));
|
||||
}
|
||||
cnd.and("isDisabled","=",1);
|
||||
cnd.and("isDisabled", "=", 1);
|
||||
|
||||
// //查询报名中
|
||||
// if (isActivity == 2) {
|
||||
@@ -370,43 +376,27 @@ public class ActivityApplyController {
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.apply")
|
||||
public Object doApply(@Param(value = "data",required = false) ActivitySchoolApply[] applies,
|
||||
@Param(value = "appliedData3",required = false) ActivitySchoolApply[] applies2,
|
||||
@Param(value = "eventId",required = false) String eventId,
|
||||
@Param(value = "pass",required = false)boolean pass) {
|
||||
public Object doApply(@Param(value = "data", required = false) ActivitySchoolApply[] applies,
|
||||
@Param(value = "appliedData3", required = false) ActivitySchoolApply[] applies2,
|
||||
@Param(value = "projectType", required = false) Integer projectType,
|
||||
@Param(value = "eventId", required = false) String eventId,
|
||||
@Param(value = "activityId") String activityId,
|
||||
@Param(value = "pass", required = false) boolean pass) {
|
||||
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
|
||||
Sys_unit unit = user.getUnit();
|
||||
String activityId = "";
|
||||
ActivityBasicUnit basicUnit = activitySchoolService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", unit.getId()));
|
||||
ActivityBasicUnion basicUnion = activitySchoolService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid()));
|
||||
for (ActivitySchoolApply apply : applies) {
|
||||
activityId = applies[0].getActivityId();
|
||||
apply.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
|
||||
apply.setStatus(pass ? 2 : 0);
|
||||
apply.setAwardsMode("2");
|
||||
apply.setAwardsMode(projectType == 1 ? "1" : "2");
|
||||
apply.setApplyDate(DateUtil.getDate());
|
||||
apply.setUnionId(unit.getUnionid());
|
||||
apply.setActivityUnionId(basicUnit.getUnionid());
|
||||
apply.setActivityUnionName(basicUnion.getUnionname());
|
||||
apply.setApplyUnitId(basicUnit.getId());
|
||||
}
|
||||
|
||||
for (ActivitySchoolApply apply2 : applies2) {
|
||||
activityId = applies2[0].getActivityId();
|
||||
apply2.setApplyUser(ShiroUtil.getPrincipalProperty("id").toString());
|
||||
apply2.setStatus(pass ? 2 : 0);
|
||||
apply2.setAwardsMode("1");
|
||||
apply2.setApplyDate(DateUtil.getDate());
|
||||
apply2.setUnionId(unit.getUnionid());
|
||||
apply2.setActivityUnionId(basicUnit.getUnionid());
|
||||
apply2.setActivityUnionName(basicUnion.getUnionname());
|
||||
}
|
||||
if (applies.length > 0) {
|
||||
activitySchoolApplyService.doApplies(activityId, basicUnit.getUnionid(), eventId, Arrays.asList(applies));
|
||||
}
|
||||
if (applies2.length > 0) {
|
||||
activitySchoolApplyService.doApplies(activityId, basicUnit.getUnionid(), eventId, Arrays.asList(applies2));
|
||||
}
|
||||
|
||||
activitySchoolApplyService.doApplies(activityId, basicUnit.getUnionid(), eventId, Arrays.asList(applies));
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -627,7 +617,7 @@ public class ActivityApplyController {
|
||||
@Param(value = "isMenWomen", required = false) String[] isMenWomen) {
|
||||
Cnd cnd = CndPlus.create();
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
SELECT
|
||||
ase.*,
|
||||
school.`name`,
|
||||
school.applyWay,
|
||||
@@ -639,15 +629,22 @@ public class ActivityApplyController {
|
||||
eve.isInterest,
|
||||
eve.projectType,
|
||||
eve.isMenWomen,
|
||||
(SELECT ast.`name` FROM activity_school_apply app LEFT JOIN activity_school_team ast ON ast.id = app.teamId WHERE app.eventId = ase.eventId AND app.activityId = ase.activityId AND app.userId = @userId) activityTeamName,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2 and activityUnionId=@unionId) applyNum,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId = ase.eventId AND activityId = ase.activityId AND userId=@userId) userApply,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2) totalApplyNum
|
||||
apply.`status`,
|
||||
IF (sum(apply.`status`=2) IS NULL, 0, sum(apply.`status`=2)) AS successUserApply,
|
||||
count(apply.id) userApply,
|
||||
apply.applyUser,
|
||||
(SELECT ast.`name` FROM activity_school_apply app LEFT JOIN activity_school_team ast ON ast.id = app.teamId WHERE app.eventId = ase.eventId AND app.activityId = ase.activityId AND app.userId = @userId) activityTeamName,
|
||||
(select GROUP_CONCAT(username) FROM activity_school_apply WHERE status=2 and eventId = ase.eventId
|
||||
AND activityId = ase.activityId AND applyUser AND (applyUser=@userId or userId=@userId)) userApplyNames,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2 and activityUnionId=@unionId) totalApplyNum,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=0 and activityUnionId=@unionId) apply_num_bc,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=1 and activityUnionId=@unionId) apply_num_dsh
|
||||
FROM
|
||||
activity_school_event ase
|
||||
LEFT JOIN activity_school school ON ase.activityId = school.id
|
||||
LEFT JOIN activity_event eve ON ase.eventId=eve.id
|
||||
LEFT JOIN activity_basic_settings abs ON abs.id=eve.competitionCategory
|
||||
LEFT JOIN activity_school_apply apply ON apply.activityId=ase.activityId AND apply.eventId=ase.eventId AND (applyUser=@userId or userId=@userId)
|
||||
$condition
|
||||
""").setParam("unionId", getUnionId()).setParam("userId", ShiroUtil.getUserId());
|
||||
|
||||
@@ -655,31 +652,17 @@ public class ActivityApplyController {
|
||||
if (!ShiroUtil.hasAnyRoles("H04,sysadmin")) {
|
||||
cnd.where().andLike("school.applyWay ", "1");
|
||||
cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=school.activityGroupId AND userId='%s') >0".formatted(ShiroUtil.getUserId())));
|
||||
|
||||
}
|
||||
Vi.cndPlus(cnd, "abs.`name`", "=", groupName);
|
||||
//如果不是超级管理员就按男女查询,isMenWomen 1是男2是女projectType 2是团体
|
||||
/* if (!ShiroUtil.hasAnyRoles("sysadmin,H04,A06")) {
|
||||
if (StrUtil.isNotBlank(applyType)) {
|
||||
if (!applyType.equals("1")) {
|
||||
if (ShiroUtil.getPrincipalProperty("sex").equals("男")) {
|
||||
cnd.and(new Static("(eve.isMenWomen =1 OR eve.isMenWomen IS NULL )"));
|
||||
} else {
|
||||
cnd.and(new Static("(eve.isMenWomen =2 OR eve.isMenWomen IS NULL)"));
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
if (Strings.isNotBlank(isAudit)) {
|
||||
cnd.and(new Static("(SELECT COUNT(1) FROM activity_school_apply WHERE eventId = ase.eventId AND activityId = ase.activityId AND userId='%s')%s0".formatted(ShiroUtil.getUserId(), (isAudit.equals("true") ? ">" : "="))));
|
||||
}
|
||||
|
||||
Vi.cndPlus(cnd, "ase.activityId", "=", activityId);
|
||||
Vi.cndPlus(cnd, "ase.eventId", "=", eventId);
|
||||
|
||||
|
||||
Vi.cndPlus(cnd, "YEAR(school.applyStartTime)", "=", year);
|
||||
cnd.asc("eve.projectType").desc("eve.allName");
|
||||
cnd.andEX("ase.activityId", "=", activityId);
|
||||
cnd.andEX("ase.eventId", "=", eventId);
|
||||
cnd.andEX("YEAR(school.applyStartTime)", "=", year);
|
||||
cnd.groupBy("ase.id");
|
||||
cnd.asc("abs.`code`");
|
||||
sql.setCondition(cnd);
|
||||
return activitySchoolEventViService.listPageMap(page.getPageNumber(), page.getPageSize(), sql);
|
||||
}
|
||||
@@ -694,6 +677,7 @@ public class ActivityApplyController {
|
||||
*/
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.apply")
|
||||
public Object doLeaderCoachHead(@Param(value = "staffData", required = false) ActivitySchoolApply staffData,
|
||||
@Param(value = "LeaderData", required = false) ActivitySchoolApply LeaderData,
|
||||
@Param(value = "CoachData", required = false) ActivitySchoolApply CoachData,
|
||||
@@ -752,6 +736,7 @@ public class ActivityApplyController {
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.apply")
|
||||
public Object getUnionCoachLeaderHead(@Param(value = "activityId", required = false) String activityId) {
|
||||
Map result = new HashMap();
|
||||
Sql sql = Sqls.create("""
|
||||
@@ -809,6 +794,7 @@ public class ActivityApplyController {
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.apply")
|
||||
public Object doDeleteApply(@Param(value = "activityId", required = false) String activityId,
|
||||
@Param(value = "userId", required = false) String userId,
|
||||
@Param(value = "eventId", required = false) String eventId) {
|
||||
@@ -816,19 +802,52 @@ public class ActivityApplyController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除报名人员
|
||||
* 查询待审核人员
|
||||
*
|
||||
* @param activityId 活动
|
||||
* @param userId 用户
|
||||
* @return ?
|
||||
*/
|
||||
@At
|
||||
@Async
|
||||
public Object doDeleteActivityRegister(
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.apply")
|
||||
public Object dshApplyUserList(
|
||||
@Param(value = "activityId", required = false) String activityId,
|
||||
@Param(value = "userId", required = false) String userId) {
|
||||
Cnd cnd = Cnd.where("tissueId", "=", activityId).and("userId", "=", userId);
|
||||
simpleService.dao().clear(ActivityTissuePerson.class, cnd);
|
||||
@Param(value = "eventId", required = false) String eventId) {
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
asa.id,
|
||||
asa.username,
|
||||
asa.loginname,
|
||||
asa.sex,
|
||||
asa.identity,
|
||||
asa.`status`,
|
||||
us.username applyUserName
|
||||
FROM
|
||||
`activity_school_apply` asa
|
||||
LEFT JOIN sys_user us ON asa.applyUser = us.id
|
||||
WHERE asa.activityId=@activityId and asa.eventId=@eventId and asa.activityUnionId=@activityUnionId
|
||||
ORDER BY asa.applyUser
|
||||
""").setParam("activityId",activityId).setParam("eventId", eventId).setParam("activityUnionId", getUnionId());
|
||||
return activitySchoolApplyService.listMap(sql);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresPermissions("activity.apply")
|
||||
public Result doAuditApplyUser(
|
||||
@Param(value = "dshSelectionIds", required = false) String[] dshSelectionIds,
|
||||
Integer status, String activityId, String eventId) {
|
||||
if (Lang.isEmpty(dshSelectionIds) || Lang.isEmpty(status)) {
|
||||
return Result.error();
|
||||
}
|
||||
if (status == 2) {
|
||||
int appCount = activitySchoolApplyService.dao().count(ActivitySchoolApply.class, Cnd.where("activityId", "=", activityId).and("eventId", "=", eventId).and("status", "=", 2));
|
||||
ActivitySchoolEvent schoolEvent = activitySchoolApplyService.dao().fetch(ActivitySchoolEvent.class, Cnd.where("activityId", "=", activityId).and("eventId", "=", eventId));
|
||||
if (appCount + dshSelectionIds.length > schoolEvent.getAthletesMaxNum()) {
|
||||
return Result.error("当前项目限报【" + schoolEvent.getAthletesMaxNum() + "】人,目前已报【" + appCount + "】人,请检查报名人数!");
|
||||
}
|
||||
}
|
||||
activitySchoolApplyService.dao().update(ActivitySchoolApply.class, Chain.make("status", status), Cnd.where("id", "in", dshSelectionIds));
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
|
||||
+16
-1
@@ -2,6 +2,7 @@ package io.v.nutz.zhgh.activity.controller.school;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
|
||||
import com.deepoove.poi.XWPFTemplate;
|
||||
import com.deepoove.poi.config.Configure;
|
||||
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
|
||||
@@ -282,6 +283,7 @@ public class ActivityCommonController {
|
||||
app.activityUnionName unionname,
|
||||
app.sex,
|
||||
app.mobile,
|
||||
app.unitname,
|
||||
u.idCard,
|
||||
u.userState,
|
||||
ev.allName,
|
||||
@@ -296,13 +298,16 @@ public class ActivityCommonController {
|
||||
activityId = @id
|
||||
$cnd
|
||||
ORDER BY
|
||||
app.applyUser DESC,
|
||||
ev.allName DESC,
|
||||
u.unionname DESC,
|
||||
app.`team` asc
|
||||
""").setParam("id", id);
|
||||
|
||||
if (Strings.isNotBlank(unionId)) {
|
||||
sql.setVar("cnd", "and u.unionid='" + unionId + "'");
|
||||
}
|
||||
|
||||
List<Record> list = activitySchoolApplyService.list(sql);
|
||||
String activityName = list.get(0).getString("activityName");
|
||||
|
||||
@@ -314,9 +319,19 @@ public class ActivityCommonController {
|
||||
schoolApply.setSf(s);
|
||||
excels.add(schoolApply);
|
||||
});
|
||||
List<ExcelExportEntity> exportEntities = new ArrayList<>();
|
||||
exportEntities.add(new ExcelExportEntity("小队名称", "team", 20));
|
||||
exportEntities.add(new ExcelExportEntity("项目名称", "allName", 20));
|
||||
exportEntities.add(new ExcelExportEntity("工号", "loginname", 20));
|
||||
exportEntities.add(new ExcelExportEntity("姓名", "username", 20));
|
||||
exportEntities.add(new ExcelExportEntity("性别", "sex", 20));
|
||||
exportEntities.add(new ExcelExportEntity("手机号码", "mobile", 20));
|
||||
exportEntities.add(new ExcelExportEntity("所在单位", "unitname", 20));
|
||||
exportEntities.add(new ExcelExportEntity("身份", "sf", 20));
|
||||
|
||||
response.setContentType("application/octet-stream");
|
||||
response.setHeader("Content-Disposition", "attachment;filename=" + new String((activityName + "报名表.xls").getBytes("utf-8"), "ISO8859-1"));
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), ActivitySchoolApply.class, excels);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), exportEntities, excels);
|
||||
workbook.write(response.getOutputStream());
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -119,9 +119,11 @@ public class ActivityReadingController {
|
||||
unit.`name` unitname,
|
||||
ev.allName,
|
||||
ev.id evid,
|
||||
ev.projectType
|
||||
ev.projectType,
|
||||
us.username applyUserName
|
||||
FROM
|
||||
activity_school_apply app
|
||||
LEFT JOIN sys_user us ON us.id = app.applyUser
|
||||
LEFT JOIN activity_school school ON school.id = app.activityId
|
||||
LEFT JOIN activity_school_team team ON app.teamId = team.id
|
||||
LEFT JOIN activity_event ev ON ev.id = app.eventId
|
||||
@@ -141,7 +143,7 @@ public class ActivityReadingController {
|
||||
cnd.and("school.belongClubId", "in", vi.getMangeClubStr());
|
||||
}
|
||||
}
|
||||
cnd.desc("ev.allName").asc("ev.projectType").asc("team.`name`");
|
||||
cnd.desc("ev.allName").asc("ev.projectType").asc("app.applyUser").asc("team.`name`");
|
||||
List<NutMap> applies = activitySchoolApplyService.listMap(sql);
|
||||
|
||||
List<NutMap> apply = new ArrayList();
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package io.v.nutz.zhgh.activity.models;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ActivityMobileSignUpParam {
|
||||
|
||||
private String activityId;
|
||||
|
||||
private String eventId;
|
||||
|
||||
private String teamId;
|
||||
|
||||
private String teamName;
|
||||
|
||||
private List<String> userIds;
|
||||
|
||||
}
|
||||
@@ -56,11 +56,22 @@ public class ActivitySchoolApply implements Serializable {
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unitId;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("报名所属单位")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String applyUnitId;
|
||||
|
||||
@Column
|
||||
@Comment("所属工会")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unionId;
|
||||
|
||||
@Column
|
||||
@Comment("所属工会名称")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
private String unionName;
|
||||
|
||||
@Column
|
||||
@Comment("所属活动工会")
|
||||
@ColDefine(type = ColType.VARCHAR, width = 32)
|
||||
|
||||
@@ -146,4 +146,11 @@ public class ActivitySchoolEvent {
|
||||
@Comment("报名人数限制模式")
|
||||
@ColDefine(type = ColType.INT)
|
||||
private Integer applyUserModel;
|
||||
|
||||
|
||||
@Column
|
||||
@Comment("是否组队报名")
|
||||
@ColDefine(type = ColType.BOOLEAN)
|
||||
@Default("0")
|
||||
private Boolean isTeamSignUp;
|
||||
}
|
||||
|
||||
+180
-3
@@ -1,23 +1,34 @@
|
||||
package io.v.nutz.zhgh.mobile.activity.Sports;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import io.v.nutz.base.annontation.ViReturn;
|
||||
import io.v.nutz.base.dao.CndPlus;
|
||||
import io.v.nutz.base.query.PageForm;
|
||||
import io.v.nutz.base.service.BaseService;
|
||||
import io.v.nutz.base.utils.DateUtil;
|
||||
import io.v.nutz.base.utils.Vi;
|
||||
import io.v.nutz.sys.models.Sys_unit;
|
||||
import io.v.nutz.sys.models.Sys_user;
|
||||
import io.v.nutz.sys.models.User;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.activity.models.*;
|
||||
import io.v.nutz.zhgh.mobile.activity.Sports.service.MobileActivityApplyService;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.dao.sql.Sql;
|
||||
import org.nutz.dao.util.cri.Static;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.Strings;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhf
|
||||
* @date 2022/1/6 9:22
|
||||
@@ -31,6 +42,8 @@ public class mobileActivityListController {
|
||||
|
||||
@Inject
|
||||
private BaseService baseService;
|
||||
@Inject
|
||||
private MobileActivityApplyService mobileActivityApplyService;
|
||||
|
||||
@At("/activityList")
|
||||
@Ok("beetl:/mobile/activity/Sports/activityList.html")
|
||||
@@ -54,8 +67,6 @@ public class mobileActivityListController {
|
||||
@Param(value = "teamName", required = false) String teamName) {
|
||||
|
||||
User user = baseService.dao().fetch(User.class, Cnd.where("id", "=", ShiroUtil.getUserId()));
|
||||
int i = cn.hutool.core.date.DateUtil.ageOfNow(user.getBirthday());
|
||||
ActivitySchool activitySchool = baseService.dao().fetch(ActivitySchool.class, activityId);
|
||||
ActivityBasicUnit basicUnit = baseService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", user.getUnitid()));
|
||||
ActivityBasicUnion basicUnion = baseService.dao().fetch(ActivityBasicUnion.class, basicUnit.getUnionid());
|
||||
ActivityEvent event = baseService.dao().fetch(ActivityEvent.class, Cnd.where("id", "=", eventId));
|
||||
@@ -66,7 +77,7 @@ public class mobileActivityListController {
|
||||
schoolApply.setApplyDate(DateUtil.getDate());
|
||||
schoolApply.setIdentity(Lang.list("1"));
|
||||
schoolApply.setDivisionLevelLeadership(false);
|
||||
schoolApply.setStatus(2);
|
||||
schoolApply.setStatus(1);
|
||||
schoolApply.setTeamId(teamId);
|
||||
schoolApply.setTeam(teamName);
|
||||
schoolApply.setApplyUser(user.getId());
|
||||
@@ -123,5 +134,171 @@ public class mobileActivityListController {
|
||||
return baseService.dao().count(ActivityUserScope.class, Cnd.where("groupId", "=", activityGroupId).and("userId", "=", ShiroUtil.getUserId()));
|
||||
}
|
||||
|
||||
private String getUnionId() {
|
||||
Sys_user user = (Sys_user) ShiroUtil.getPrincipal();
|
||||
Sys_unit unit = user.getUnit();
|
||||
ActivityBasicUnit basicUnit = baseService.dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", unit.getId()));
|
||||
ActivityBasicUnion basicUnion = baseService.dao().fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionid()));
|
||||
|
||||
return unit == null ? "" : basicUnion.getId();
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object pageData(@Param(value = "applyType", required = false) String applyType,
|
||||
@Param(value = "isAudit", required = false) String isAudit,
|
||||
@Param(value = "groupName", required = false) String groupName,
|
||||
@Param(value = "activityId", required = false) String activityId,
|
||||
@Param(value = "eventId", required = false) String eventId,
|
||||
@Param(value = "year", required = false) Integer year, PageForm page,
|
||||
@Param(value = "isMenWomen", required = false) String[] isMenWomen) {
|
||||
Cnd cnd = CndPlus.create();
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
ase.*,
|
||||
school.`name`,
|
||||
school.applyWay,
|
||||
school.applyStartTime,
|
||||
school.applyEndTime,
|
||||
school.applyType,
|
||||
school.activityGroupId,
|
||||
eve.allName,
|
||||
eve.isInterest,
|
||||
eve.projectType,
|
||||
eve.isMenWomen,
|
||||
apply.`status`,
|
||||
IF (sum(apply.`status`=2) IS NULL, 0, sum(apply.`status`=2)) AS successUserApply,
|
||||
count(apply.id) userApply,
|
||||
apply.applyUser,
|
||||
(SELECT ast.`name` FROM activity_school_apply app LEFT JOIN activity_school_team ast ON ast.id = app.teamId WHERE app.eventId = ase.eventId AND app.activityId = ase.activityId AND app.userId = @userId) activityTeamName,
|
||||
(select GROUP_CONCAT(username) FROM activity_school_apply WHERE status=2 and eventId = ase.eventId
|
||||
AND activityId = ase.activityId AND applyUser AND (applyUser=@userId or userId=@userId)) userApplyNames,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=2 and activityUnionId=@unionId) totalApplyNum,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=0 and activityUnionId=@unionId) apply_num_bc,
|
||||
(SELECT COUNT(1) FROM activity_school_apply WHERE eventId=ase.eventId AND activityId=ase.activityId and status=1 and activityUnionId=@unionId) apply_num_dsh
|
||||
FROM
|
||||
activity_school_event ase
|
||||
LEFT JOIN activity_school school ON ase.activityId = school.id
|
||||
LEFT JOIN activity_event eve ON ase.eventId=eve.id
|
||||
LEFT JOIN activity_basic_settings abs ON abs.id=eve.competitionCategory
|
||||
LEFT JOIN activity_school_apply apply ON apply.activityId=ase.activityId AND apply.eventId=ase.eventId AND (applyUser=@userId or userId=@userId)
|
||||
$condition
|
||||
""").setParam("unionId", getUnionId()).setParam("userId", ShiroUtil.getUserId());
|
||||
cnd.where().andLike("school.applyWay ", "1");
|
||||
cnd.and(new Static("(SELECT COUNT(1) FROM activity_user_scope WHERE groupId=school.activityGroupId AND userId='%s') >0".formatted(ShiroUtil.getUserId())));
|
||||
Vi.cndPlus(cnd, "abs.`name`", "=", groupName);
|
||||
//如果不是超级管理员就按男女查询,isMenWomen 1是男2是女projectType 2是团体
|
||||
if (StrUtil.isNotBlank(applyType)) {
|
||||
if (!applyType.equals("1")) {
|
||||
if (ShiroUtil.getPrincipalProperty("sex").equals("男")) {
|
||||
cnd.and(new Static("(eve.isMenWomen =1 OR eve.isMenWomen IS NULL )"));
|
||||
} else {
|
||||
cnd.and(new Static("(eve.isMenWomen =2 OR eve.isMenWomen IS NULL)"));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Strings.isNotBlank(isAudit)) {
|
||||
cnd.and(new Static("(SELECT COUNT(1) FROM activity_school_apply WHERE eventId = ase.eventId AND activityId = ase.activityId AND userId='%s')%s0".formatted(ShiroUtil.getUserId(), (isAudit.equals("true") ? ">" : "="))));
|
||||
}
|
||||
|
||||
cnd.andEX("ase.activityId", "=", activityId);
|
||||
cnd.andEX("ase.eventId", "=", eventId);
|
||||
cnd.andEX("YEAR(school.applyStartTime)", "=", year);
|
||||
cnd.groupBy("ase.id");
|
||||
cnd.asc("abs.`code`");
|
||||
sql.setCondition(cnd);
|
||||
return baseService.listPageMap(page.getPageNumber(), page.getPageSize(), sql);
|
||||
}
|
||||
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object searchNoRegisterUser(String searchKey,
|
||||
String activityId,
|
||||
Boolean isTeamSignUp,
|
||||
String isMenWomen,
|
||||
String eventId) {
|
||||
|
||||
ActivitySchool activitySchool = baseService.dao().fetch(ActivitySchool.class, Cnd.where("id", "=", activityId));
|
||||
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
id,
|
||||
loginname loginName,
|
||||
username userName,
|
||||
sex,
|
||||
unitname AS unitName,
|
||||
unionname AS unionName
|
||||
FROM
|
||||
`user`
|
||||
$condition
|
||||
""");
|
||||
Cnd cnd = Cnd.NEW();
|
||||
cnd.andEX("unionId", "=", getUnionId());
|
||||
if (StrUtil.isNotBlank(isMenWomen)) {
|
||||
cnd.andEX("sex", "=", isMenWomen.equals("1") ? "男" : "女");
|
||||
}
|
||||
if (Lang.isNotEmpty(searchKey)) {
|
||||
cnd.and(Cnd.exps(Cnd.likeEX("username", searchKey.trim())).or(Cnd.likeEX("loginname", searchKey.trim())));
|
||||
}
|
||||
|
||||
cnd.and(new Static("""
|
||||
id not in (SELECT userId FROM activity_school_apply WHERE activityId = '%s' and eventId='%s')
|
||||
""".formatted(activityId, eventId)));
|
||||
if (activitySchool.getActivityGroupId() != null) {
|
||||
cnd.and(new Static("""
|
||||
id IN ( SELECT userId FROM activity_user_scope WHERE groupId IN ( SELECT activityGroupId FROM activity_school WHERE id = '%s' AND activityGroupId IS NOT NULL ) )
|
||||
""".formatted(activityId)));
|
||||
}
|
||||
|
||||
sql.setCondition(cnd);
|
||||
|
||||
return baseService.listPageMap(1, 10, sql);
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object doTeamSignUp(ActivityMobileSignUpParam param) {
|
||||
mobileActivityApplyService.doTeamSignUp(param.getActivityId(), param.getUserIds(), param.getEventId(), param.getTeamId(), param.getTeamName());
|
||||
return null;
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object selectRegisterList(String activityId) {
|
||||
Cnd cnd = Cnd.NEW();
|
||||
Sql sql = Sqls.create("""
|
||||
SELECT
|
||||
userId AS id,
|
||||
username userName,
|
||||
loginname loginName,
|
||||
unitname unitName,
|
||||
sex,
|
||||
activityUnionName unionName,
|
||||
activityUnionId unionId,
|
||||
eventId,
|
||||
applyUser
|
||||
FROM
|
||||
activity_school_apply
|
||||
$condition
|
||||
""");
|
||||
cnd.and("activityId", "=", activityId);
|
||||
sql.setCondition(cnd);
|
||||
List<NutMap> list = mobileActivityApplyService.listMap(sql);
|
||||
return list;
|
||||
}
|
||||
|
||||
@At
|
||||
@ViReturn
|
||||
@RequiresAuthentication
|
||||
public Object doDeleteApply(String activityId, String eventId) {
|
||||
mobileActivityApplyService.doDeleteApply(activityId, eventId);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package io.v.nutz.zhgh.mobile.activity.Sports.service;
|
||||
|
||||
import io.v.nutz.base.service.BaseService;
|
||||
import io.v.nutz.zhgh.activity.models.ActivitySchoolApply;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface MobileActivityApplyService extends BaseService<ActivitySchoolApply> {
|
||||
void doDeleteApply(String activityId, String eventId);
|
||||
void doTeamSignUp(String activityId, List<String> userIds, String eventId, String teamId, String teamName);
|
||||
}
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
package io.v.nutz.zhgh.mobile.activity.Sports.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import io.v.nutz.base.service.impl.BaseServiceImpl;
|
||||
import io.v.nutz.sys.models.User;
|
||||
import io.v.nutz.web.commons.utils.ShiroUtil;
|
||||
import io.v.nutz.zhgh.activity.models.*;
|
||||
import io.v.nutz.zhgh.mobile.activity.Sports.service.MobileActivityApplyService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.shiro.web.filter.mgt.DefaultFilter;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.dao.Sqls;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.lang.Lang;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static org.apache.shiro.web.filter.mgt.DefaultFilter.user;
|
||||
|
||||
/**
|
||||
* @ClassName ActivitySchoolApplyServiceImpl
|
||||
* @Description TODO
|
||||
* @Author zhf
|
||||
* @Date 2025/4/2 下午4:46
|
||||
*/
|
||||
@IocBean(args = {"refer:dao"})
|
||||
@Slf4j
|
||||
public class MobileActivityApplyServiceImpl extends BaseServiceImpl<ActivitySchoolApply> implements MobileActivityApplyService {
|
||||
public MobileActivityApplyServiceImpl(Dao dao) {
|
||||
super(dao);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doDeleteApply(String activityId, String eventId) {
|
||||
clear(Cnd.where("activityId", "=", activityId).and("eventId", "=", eventId).and("applyUser", "=", ShiroUtil.getUserId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doTeamSignUp(String activityId, List<String> userIds, String eventId, String teamId, String teamName) {
|
||||
List<ActivitySchoolApply> schoolApplyArrayList = new ArrayList<>();
|
||||
userIds.forEach(i -> {
|
||||
ActivitySchoolApply schoolApply = getApply(activityId, eventId, i, teamId, teamName);
|
||||
schoolApplyArrayList.add(schoolApply);
|
||||
});
|
||||
insert(schoolApplyArrayList);
|
||||
}
|
||||
|
||||
public ActivitySchoolApply getApply(String activityId, String eventId, String userId, String teamId, String teamName) {
|
||||
ActivitySchool activitySchool = dao().fetch(ActivitySchool.class, activityId);
|
||||
User user = dao().fetch(User.class, Cnd.where("id", "=", userId));
|
||||
ActivityBasicUnit basicUnit = dao().fetch(ActivityBasicUnit.class, Cnd.where("id", "=", user.getUnitid()));
|
||||
ActivityBasicUnion basicUnion = dao().fetch(ActivityBasicUnion.class, basicUnit.getUnionid());
|
||||
ActivityEvent event = dao().fetch(ActivityEvent.class, Cnd.where("id", "=", eventId));
|
||||
ActivitySchoolApply schoolApply = new ActivitySchoolApply();
|
||||
schoolApply.setActivityId(activityId);
|
||||
schoolApply.setEventId(eventId);
|
||||
schoolApply.setAwardsMode(event.getProjectType());
|
||||
schoolApply.setApplyDate(DateUtil.now());
|
||||
schoolApply.setIdentity(Lang.list("1"));
|
||||
schoolApply.setDivisionLevelLeadership(false);
|
||||
if (activitySchool.getApplyWay().size() == 2) {
|
||||
schoolApply.setStatus(1);
|
||||
} else {
|
||||
schoolApply.setStatus(2);
|
||||
}
|
||||
schoolApply.setTeamId(teamId);
|
||||
schoolApply.setTeam(teamName);
|
||||
schoolApply.setApplyUser(ShiroUtil.getUserId());
|
||||
schoolApply.setUserId(userId);
|
||||
schoolApply.setMobile(user.getMobile());
|
||||
schoolApply.setSex(user.getSex());
|
||||
schoolApply.setUnitId(user.getUnitid());
|
||||
schoolApply.setUnionId(user.getUnionid());
|
||||
schoolApply.setUnionName(user.getUnionname());
|
||||
schoolApply.setActivityUnionId(basicUnion.getId());
|
||||
schoolApply.setActivityUnionName(basicUnion.getUnionname());
|
||||
schoolApply.setUnitname(user.getUnitname());
|
||||
schoolApply.setLoginname(user.getLoginname());
|
||||
schoolApply.setUsername(user.getUsername());
|
||||
schoolApply.setBirthday(user.getBirthday());
|
||||
schoolApply.setApplyUnitId(basicUnit.getId());
|
||||
return schoolApply;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user