Merge remote-tracking branch 'origin/main'

This commit is contained in:
zhengziru
2025-04-03 09:49:34 +08:00
15 changed files with 2100 additions and 836 deletions
@@ -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();
}
@@ -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());
}
@@ -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;
}
@@ -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;
}
}
@@ -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);
}
@@ -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;
}
}