This commit is contained in:
2025-09-13 14:42:21 +08:00
parent efc7f9ceb2
commit b0e7aa89c2
11 changed files with 818 additions and 266 deletions
@@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_user;
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolApply;
import com.budwk.app.zhgh.activity.sports.param.ActivitySportsApplyUserPageParam;
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsApplyUserService;
@@ -13,6 +14,7 @@ import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.Sqls;
import org.nutz.dao.sql.Sql;
import org.nutz.dao.util.cri.SqlExpressionGroup;
import org.nutz.ioc.aop.Aop;
import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
@@ -222,4 +224,23 @@ public class ActivitySportsApplyUserController {
return Result.success(applyList);
}
@At
@SaCheckPermission("activity.apply")
public Result getSysUser(String queryString,String[] loginnames){
Cnd cnd = Cnd.NEW();
cnd.andEX("loginname", "not in", loginnames);
if (StrUtil.isNotBlank(queryString)) {
SqlExpressionGroup group = new SqlExpressionGroup();
group.andLike("username", queryString).orLike("loginname", queryString);
cnd.and(group);
}
Sql sql = Sqls.create("select id,loginname,username,sex,mobile,unitId,birthday,idcard from `vw_user` $condition LIMIT 30");
sql.setCondition(cnd);
sql.setCallback(Sqls.callback.entities());
sql.setEntity(activitySportsApplyUserService.getEntity());
List<Sys_user> list = dao.execute(sql).getList(Sys_user.class);
return Result.success(list);
}
}
@@ -1,17 +1,34 @@
package com.budwk.app.zhgh.activity.sports.h5Controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.views.View_user;
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
import com.budwk.app.zhgh.activity.basic.models.ActivityBasicUnion;
import com.budwk.app.zhgh.activity.basic.models.ActivityBasicUnit;
import com.budwk.app.zhgh.activity.basic.models.ActivityEvent;
import com.budwk.app.zhgh.activity.basic.models.ActivityUserScope;
import com.budwk.app.zhgh.activity.sports.models.ActivitySchool;
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolApply;
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolEvent;
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolTeam;
import com.budwk.app.zhgh.activity.sports.param.ActivitySportsApplyUserPageParam;
import com.budwk.app.zhgh.activity.sports.service.ActivitySportsApplyUserService;
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.lang.Lang;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import javax.validation.Valid;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
* @ClassName H5ActivitySportsApplyUserController
@@ -21,12 +38,15 @@ import javax.validation.Valid;
*/
@IocBean
@Ok("json:full")
@At("/platform/h5/activity/apply")
@At("/platform/activity/apply/h5")
public class H5ActivitySportsApplyUserController {
@Inject
private ActivitySportsApplyUserService activitySportsApplyUserService;
@At("/applyUser")
@Inject
private Dao dao;
@At("/index")
@Ok("beetl:platform/zhghh5/activity/sports/applyUser.html")
@SaCheckPermission("h5.activity.sports.applyUser")
public void applyUserIndex() {
@@ -60,5 +80,142 @@ public class H5ActivitySportsApplyUserController {
}
@At
@SaCheckPermission("h5.activity.sports.applyUser")
public Result signUpUser(@Valid String activityId, @Valid String eventId, @Valid String schoolEventId, @Valid String teamId) {
View_user user = dao.fetch(View_user.class, Cnd.where(View_user::getId, "=", SecurityUtil.getUserId()));
ActivitySchoolEvent schoolEvent = dao.fetch(ActivitySchoolEvent.class, schoolEventId);
ActivityEvent activityEvent = dao.fetch(ActivityEvent.class, eventId);
ActivitySchool activitySchool = dao.fetch(ActivitySchool.class, activityId);
ActivitySchoolTeam schoolTeam = dao.fetch(ActivitySchoolTeam.class, teamId);
ActivityBasicUnit basicUnit = dao.fetch(ActivityBasicUnit.class, Cnd.where("id", "=", SecurityUtil.getUnitId()));
ActivityBasicUnion basicUnion = dao.fetch(ActivityBasicUnion.class, Cnd.where("id", "=", basicUnit.getUnionId()));
if (Lang.isEmpty(basicUnion)) {
return Result.error("请先设置活动工会");
}
//判断是否在活动组别内
int count = dao.count(ActivityUserScope.class,
Cnd.where(ActivityUserScope::getGroupId, "=", activitySchool.getActivityGroupId())
.and(ActivityUserScope::getUserId, "=", SecurityUtil.getUserId()));
if (count == 0) {
return Result.error("您没有权限参与该活动");
}
//如果不等于空代表是个人项目
if (ObjectUtil.isNotEmpty(activityEvent.getIsMenWomen())) {
if (activityEvent.getIsMenWomen() == 1 && !user.getSex().equals("")) {
return Result.error("当前项目只能男性能报名!");
}
if (activityEvent.getIsMenWomen() == 2 && !user.getSex().equals("")) {
return Result.error("当前项目只能女性能报名!");
}
}
List<ActivitySchoolApply> schoolApplyList = dao.query(ActivitySchoolApply.class,
Cnd.where(ActivitySchoolApply::getActivityId, "=", activityId)
.and(ActivitySchoolApply::getEventId, "=", eventId)
.and(ActivitySchoolApply::getActivityUnionId, "=", basicUnit.getId())
.and(ActivitySchoolApply::getApplyUser, "!=", SecurityUtil.getUserId()));
if (ObjectUtil.isNotEmpty(schoolEvent.getRestrictGirlNum()) && user.getSex().equals("")) {
if (schoolEvent.getRestrictGirlNum() == 0) {
return Result.error("当前项目女性没有报名名额!");
}
//找出当前工会女性报名的数量
int size = schoolApplyList.stream().filter(girl -> girl.getSex().equals("")).toList().size();
//数量加上自己如果大于配置的
if (size + 1 > schoolEvent.getRestrictGirlNum()) {
return Result.error("当前项目女性只能报名" + schoolEvent.getRestrictGirlNum() + "人!");
}
}
if (ObjectUtil.isNotEmpty(schoolEvent.getRestrictBoyNum()) && user.getSex().equals("")) {
if (schoolEvent.getRestrictBoyNum() == 0) {
return Result.error("当前项目男性没有报名名额!");
}
//找出当前工会男性报名的数量
int size = schoolApplyList.stream().filter(girl -> girl.getSex().equals("")).toList().size();
//数量加上自己如果大于配置的
if (size + 1 > schoolEvent.getRestrictBoyNum()) {
return Result.error("当前项目男性只能报名" + schoolEvent.getRestrictGirlNum() + "人!");
}
}
if (ObjectUtil.isNotEmpty(schoolEvent.getStartAgeDate()) && ObjectUtil.isNotEmpty(schoolEvent.getEndAgeDate())) {
//如果年龄做了判断
try {
if (ObjectUtil.isEmpty(user.getBirthday())) {
return Result.error("请先完善您的出生日期");
}
// 需要先将字符串转换为日期进行比较
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date startAgeDate = sdf.parse(schoolEvent.getStartAgeDate());
Date endAgeDate = sdf.parse(schoolEvent.getEndAgeDate());
if (user.getBirthday().getTime() < startAgeDate.getTime() || user.getBirthday().getTime() > endAgeDate.getTime()) {
return Result.error("您年龄不在报名时间段内");
}
} catch (Exception e) {
return Result.error("年龄格式解析错误");
}
}
ActivitySchoolApply schoolApply = new ActivitySchoolApply();
schoolApply.setActivityId(activityId);
schoolApply.setEventId(eventId);
schoolApply.setUnionname(user.getUnionName());
schoolApply.setAwardsMode(activityEvent.getProjectType());
schoolApply.setUnitId(user.getUnitId());
schoolApply.setUnionId(user.getUnionId());
schoolApply.setActivityUnionId(basicUnion.getId());
schoolApply.setActivityUnionName(basicUnion.getName());
schoolApply.setUserId(SecurityUtil.getUserId());
schoolApply.setApplyUser(SecurityUtil.getUserId());
schoolApply.setBirthday(ObjectUtil.isNotEmpty(user.getBirthday()) ? String.valueOf(user.getBirthday()) : null);
schoolApply.setApplyDate(DateUtil.now());
schoolApply.setIdentity(List.of("1"));
if (activitySchool.getApplyWay().size() == 2 && activitySchool.getApplyWay().contains(1)) {
schoolApply.setStatus(0);
} else if (activitySchool.getApplyWay().size() == 1 && activitySchool.getApplyWay().contains(1)) {
schoolApply.setStatus(2);
}
schoolApply.setUnitname(user.getUnitName());
schoolApply.setTeamId(schoolTeam.getId());
schoolApply.setTeam(schoolTeam.getName());
schoolApply.setLoginname(user.getLoginname());
schoolApply.setUsername(user.getUsername());
schoolApply.setMobile(user.getMobile());
schoolApply.setSex(user.getSex());
dao.insert(schoolApply);
return Result.success();
}
@At
@SaCheckPermission("h5.activity.sports.applyUser")
public Result cancelApply(@Valid String activityId, @Valid String eventId, @Valid String schoolEventId) {
int count = dao.count(ActivitySchoolApply.class,
Cnd.where(ActivitySchoolApply::getUserId, "=", SecurityUtil.getUserId())
.and(ActivitySchoolApply::getActivityId, "=", activityId)
.and(ActivitySchoolApply::getEventId, "=", eventId).and(ActivitySchoolApply::getStatus, "=", 2));
if (count > 0) {
return Result.error("您已报名成功无法取消,请联系管理员取消!");
}
dao.clear(ActivitySchoolApply.class, Cnd.where(ActivitySchoolApply::getUserId, "=", SecurityUtil.getUserId())
.and(ActivitySchoolApply::getActivityId, "=", activityId).and(ActivitySchoolApply::getEventId, "=", eventId));
return Result.success();
}
@At
@SaCheckPermission("h5.activity.sports.applyUser")
public Result listTeamList(@Valid String activityId, @Valid String eventId) {
return Result.success(dao.query(ActivitySchoolTeam.class, Cnd.where(ActivitySchoolTeam::getActivityId, "=", activityId)
.and(ActivitySchoolTeam::getEventId, "=", eventId).asc(ActivitySchoolTeam::getLocation)));
}
}
@@ -77,8 +77,10 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl<Activity
eve.projectType eveProjectType,
eve.isMenWomen,
apply.`status`,
apply2.`status` status2,
IF (sum(apply.`status`=2) IS NULL, 0, sum(apply.`status`=2)) AS successUserApply,
count(apply.id) userApply,
count(apply2.id) userApply2,
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
@@ -92,6 +94,7 @@ public class ActivitySportsApplyUserServiceImpl extends BaseServiceImpl<Activity
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)
LEFT JOIN activity_school_apply apply2 ON apply2.activityId=ase.activityId AND apply2.eventId=ase.eventId AND apply2.userId=@userId
$condition
""").setParam("unionId", pageParam.getUnionId()).setParam("userId", SecurityUtil.getUserId());
@@ -1,5 +1,6 @@
package com.budwk.app.zhgh.dayofficework.asset.controller;
import cn.dev33.satoken.annotation.SaCheckLogin;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.page.Pagination;
@@ -78,7 +79,7 @@ public class AssetStocktakingPlanController {
@At
@ApiOperation("按年度查询资产盘点计划")
@SaCheckPermission("asset.stocktakingPlan")
@SaCheckLogin
public Result queryStocktakingPlan(Integer year) {
List<AssetStocktakingPlan> planList = baseService.dao().query(AssetStocktakingPlan.class, Cnd.NEW().andEX(AssetStocktakingPlan::getYear, "=", year));
return Result.success(planList);