This commit is contained in:
2026-05-28 19:52:36 +08:00
112 changed files with 9837 additions and 273 deletions
@@ -5,9 +5,12 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.util.ObjectUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
import com.budwk.app.sys.models.Sys_home_activity;
import com.budwk.app.sys.models.Sys_home_template;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.zhgh.activity.culture.models.ActivityTissue;
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
@@ -86,11 +89,56 @@ public class ActivityCultureInfoManageController {
return Result.success();
}
@At
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("activity.culture.infoManage.school")
public Result setTemplate(@Valid String id) {
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
return Result.error("无权操作");
}
ActivityTissue tissue = activityCultureService.fetch(id);
if (tissue == null) {
return Result.error("活动不存在");
}
if (tissue.getActivity_type() == null || tissue.getActivity_type() != 40001) {
return Result.error("仅校工会文化活动可设为模板");
}
Sys_home_template oldHomeTemplate = activityCultureService.dao().fetch(Sys_home_template.class, id);
Sys_home_template sysHomeTemplate = tissue.covertToSysHomeTemplate();
if (oldHomeTemplate != null) {
sysHomeTemplate.setTop(oldHomeTemplate.getTop());
sysHomeTemplate.setPush(oldHomeTemplate.getPush());
sysHomeTemplate.setSortNo(oldHomeTemplate.getSortNo());
if (oldHomeTemplate.getTemplateName() != null) {
sysHomeTemplate.setTemplateName(oldHomeTemplate.getTemplateName());
}
if (oldHomeTemplate.getTemplateIcon() != null) {
sysHomeTemplate.setTemplateIcon(oldHomeTemplate.getTemplateIcon());
}
}
activityCultureService.dao().insertOrUpdate(sysHomeTemplate);
return Result.success();
}
@At
@Aop(TransAop.READ_COMMITTED)
@SaCheckPermission("activity.culture.infoManage.school")
public Result cancelTemplate(@Valid String id) {
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
return Result.error("无权操作");
}
activityCultureService.dao().delete(Sys_home_template.class, id);
return Result.success();
}
@At
@Aop(TransAop.READ_COMMITTED)
@SLog(tag = "文化活动", msg = "删除了一条活动")
@SaCheckPermission(value = {"activity.culture.infoManage.school", "activity.culture.infoManage.union", "activity.culture.infoManage.club"}, mode = SaMode.OR)
public Result doDelete(@Valid String id) {
if (activityCultureService.dao().fetch(Sys_home_template.class, id) != null) {
return Result.error("该活动已设为模板,请先取消模板后再删除");
}
activityCultureService.delete(id);
activityCultureService.dao().clear(ActivityTissuePerson.class, Cnd.where(ActivityTissuePerson::getTissueId, "=", id));
activityCultureService.dao().delete(Sys_home_activity.class, id);
@@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject;
import com.budwk.app.base.model.BaseModel;
import com.budwk.app.base.model.CustomFormField;
import com.budwk.app.sys.models.Sys_home_activity;
import com.budwk.app.sys.models.Sys_home_template;
import com.budwk.app.sys.services.SysHomeConvert;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -291,4 +292,29 @@ public class ActivityTissue extends BaseModel implements Serializable, SysHomeCo
sysHomeActivity.setClassPath(this.getClass().getPackageName() + this.getClass().getName());
return sysHomeActivity;
}
public Sys_home_template covertToSysHomeTemplate() {
Sys_home_template sysHomeTemplate = new Sys_home_template();
sysHomeTemplate.setId(this.getId());
sysHomeTemplate.setName(this.getName());
sysHomeTemplate.setTemplateName(this.getName());
sysHomeTemplate.setCover(this.getCover());
sysHomeTemplate.setContent(this.getActivityContent());
if (this.getActivity_type() == 40001) {
sysHomeTemplate.setUrl("/platform/activity/culture/applyActivity/school?mode=edit&id=" + this.getId());
} else if (this.getActivity_type() == 40002) {
sysHomeTemplate.setUrl("/platform/activity/culture/applyActivity/union?mode=edit&id=" + this.getId());
} else {
sysHomeTemplate.setUrl("/platform/activity/culture/applyActivity/club?mode=edit&id=" + this.getId());
}
sysHomeTemplate.setH5Url("");
if (Lang.isNotEmpty(this.getApplyStartTime())) {
sysHomeTemplate.setStartDate(DateUtil.parseDate(this.getApplyStartTime()));
sysHomeTemplate.setEndDate(DateUtil.parseDate(this.getApplyEndTime()));
}
sysHomeTemplate.setAllowUserGroupId(this.getGroupId());
sysHomeTemplate.setEnable(this.getIsUnseal());
sysHomeTemplate.setClassPath(this.getClass().getPackageName() + this.getClass().getName());
return sysHomeTemplate;
}
}
@@ -109,7 +109,8 @@ public class ActivityCultureServiceImpl extends BaseServiceImpl<ActivityTissue>
t.taskParentId,
t.variable taskVariable,
IF((SELECT taskName FROM wf_process_task tt WHERE tt.id = t.taskParentId) = 'startTask', 1, 0) canRevoke,
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId
(select MAX(id) from wf_process_task where processInstanceId = ins.id and taskName = 'startTask') AS startTaskId,
IF(sht.id IS NULL, 0, 1) AS isTemplate
FROM
activity_tissue tissue
LEFT JOIN sys_union uni ON uni.id = tissue.unionId
@@ -118,6 +119,7 @@ public class ActivityCultureServiceImpl extends BaseServiceImpl<ActivityTissue>
LEFT JOIN `wf_process_instance` ins ON ins.businessNo = tissue.id
LEFT JOIN wf_process_task t ON t.processInstanceId = ins.id AND t.taskState = 10
LEFT JOIN wf_process_task_actor ta ON ta.processTaskId = t.id
LEFT JOIN sys_home_template sht ON sht.id = tissue.id
$condition
""");
@@ -1,6 +1,7 @@
package com.budwk.app.zhgh.activity.sports.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.util.StrUtil;
import com.budwk.app.base.annotation.SLog;
import com.budwk.app.base.constant.RoleConstant;
@@ -9,6 +10,7 @@ import com.budwk.app.base.param.PageForm;
import com.budwk.app.base.result.Result;
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.service.ActivityBasicScopeService;
import com.budwk.app.zhgh.activity.basic.models.ActivityEvent;
import com.budwk.app.zhgh.activity.sports.models.ActivitySchool;
import com.budwk.app.zhgh.activity.sports.models.ActivitySchoolEvent;
@@ -51,6 +53,9 @@ public class ActivitySportsInfoManageController {
@Inject
private Dao dao;
@Inject
private ActivityBasicScopeService activityBasicScopeService;
@At
@SaCheckPermission("activity.sports.info")
public Object pageData(PageForm page,
@@ -128,7 +133,7 @@ public class ActivitySportsInfoManageController {
@At
@SaCheckPermission("activity.sports.info")
@SaCheckPermission(value = {"activity.sports.info", "activity.sports.new"}, mode = SaMode.OR)
public Object getEventApply(@Param(value = "activityId") String activityId,
@Param(value = "eventId") String[] eventId) {
Cnd cnd = Cnd.NEW();
@@ -149,7 +154,7 @@ public class ActivitySportsInfoManageController {
@At
@SLog(tag = "体育活动", msg = "修改活动")
@SaCheckPermission("activity.sports.info")
@SaCheckPermission(value = {"activity.sports.info", "activity.sports.new"}, mode = SaMode.OR)
public Result doEdit(@Param(value = "data") ActivitySchool activitySchool,
@Param(value = "events") ActivitySchoolEvent[] events) {
activitySportsService.doEdit(activitySchool, events);
@@ -160,7 +165,7 @@ public class ActivitySportsInfoManageController {
@At
@SLog(tag = "体育活动", msg = "添加活动")
@SaCheckPermission("activity.sports.info")
@SaCheckPermission(value = {"activity.sports.info", "activity.sports.new"}, mode = SaMode.OR)
public Result doAdd(@Param(value = "data") ActivitySchool activitySchool,
@Param(value = "events") ActivitySchoolEvent[] events) {
String id = activitySportsService.doAdd(activitySchool, events);
@@ -170,7 +175,7 @@ public class ActivitySportsInfoManageController {
}
@At
@SaCheckPermission("activity.sports.info")
@SaCheckPermission(value = {"activity.sports.info", "activity.sports.new"}, mode = SaMode.OR)
public Result findOne(String id) {
NutMap nutMap = (NutMap) dao.execute(Sqls.create("SELECT * FROM `activity_school` WHERE id = @id").setParam("id", id)
.setCallback(Sqls.callback.map())).getResult();
@@ -199,7 +204,7 @@ public class ActivitySportsInfoManageController {
@At
@ApiOperation("根据比赛项目基础表统一赋年龄限制")
@SaCheckPermission("activity.sports.info")
@SaCheckPermission(value = {"activity.sports.info", "activity.sports.new"}, mode = SaMode.OR)
public Object doAssignmentDate(ActivitySchoolEvent[] events) {
for (ActivitySchoolEvent event : events) {
ActivityEvent activityEvent = dao.fetch(ActivityEvent.class,event.getEventId());
@@ -212,6 +217,28 @@ public class ActivitySportsInfoManageController {
return Result.success(events);
}
@At
@ApiOperation("获取分工会人数限制")
@SaCheckPermission(value = {"activity.sports.info", "activity.sports.new"}, mode = SaMode.OR)
public Result getUnionLimit(@Param(value = "activityScopeId") String activityScopeId) {
Sql sql = Sqls.create("""
SELECT
gh.id,
gh.name,
gh.unioncode,
(select count(1) from `vw_user` where unionid = gh.id $cnd) as teacherCount,
NULL as ratio,
NULL as limitCount
FROM
sys_union gh
order by gh.unioncode
""");
if (StrUtil.isNotBlank(activityScopeId)) {
sql.setVar("cnd", "AND id in (" + activityBasicScopeService.buildGroupUserIdSubSqlText(Integer.valueOf(activityScopeId)) + ")");
}
return Result.success(activitySportsService.listMap(sql));
}
@At
@Ok("void")
@@ -0,0 +1,21 @@
package com.budwk.app.zhgh.activity.sports.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import io.swagger.annotations.Api;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
@IocBean
@At("/platform/activity/sports/new")
@Ok("json:full")
@Api(tags = "新建体育活动")
public class ActivitySportsNewController {
@At("")
@Ok("beetl:platform/zhgh/activity/sports/new/index.html")
@SaCheckPermission(value = {"activity.sports.info", "activity.sports.new"}, mode = SaMode.OR)
public void index() {
}
}
@@ -0,0 +1,20 @@
package com.budwk.app.zhgh.activity.trainSignUp.controller.manage;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.annotations.Api;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
@IocBean
@At("/platform/trainSignUp/applyActivity")
@Ok("json:full")
@Api(tags = "品牌活动新建活动")
public class TrainSignUpApplyActivityController {
@At("")
@Ok("beetl:/platform/zhgh/activity/trainSignUp/applyActivity/index.html")
@SaCheckPermission("trainSignUp.applyActivity")
public void index() {
}
}
@@ -1,16 +1,21 @@
package com.budwk.app.zhgh.activity.trainSignUp.controller.manage;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaMode;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
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.flow.entity.ProcessInstance;
import com.budwk.app.flow.enums.ProcessInstanceStateEnum;
import com.budwk.app.sys.models.Sys_home_activity;
import com.budwk.app.sys.models.Sys_home_template;
import com.budwk.app.sys.models.Sys_union;
import com.budwk.app.sys.models.Sys_unit;
import com.budwk.app.web.commons.auth.utils.AuthUtil;
import com.budwk.app.zhgh.activity.basic.service.ActivityBasicScopeService;
import com.budwk.app.zhgh.activity.trainSignUp.models.*;
import com.budwk.app.zhgh.activity.trainSignUp.service.TrainSignUpActivityService;
@@ -72,7 +77,54 @@ public class TrainSignUpManageController {
cnd.andEX("year", "=", year);
cnd.and(Cnd.likeEX("activityName", activityName));
cnd.orderBy("createdAt", "desc");
return Result.success().addData(trainSignUpActivityManageService.pageData(pageForm, cnd));
Pagination<TrainSignUpActivity> pagination = trainSignUpActivityManageService.pageData(pageForm, cnd);
List<TrainSignUpActivity> list = pagination.getList(TrainSignUpActivity.class);
if (list != null && !list.isEmpty()) {
List<String> ids = list.stream().map(TrainSignUpActivity::getId).toList();
List<Sys_home_template> templateList = dao.query(Sys_home_template.class, Cnd.where("id", "in", ids));
List<String> templateIds = templateList.stream().map(Sys_home_template::getId).toList();
list.forEach(activity -> activity.setIsTemplate(templateIds.contains(activity.getId())));
}
return Result.success().addData(pagination);
}
@At
@ApiOperation("设为模板")
@SaCheckPermission("trainSignUp.manage")
public Result setTemplate(String id) {
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
return Result.error("无权操作");
}
TrainSignUpActivity activity = trainSignUpActivityManageService.fetch(id);
if (activity == null) {
return Result.error("活动不存在");
}
Sys_home_template oldHomeTemplate = dao.fetch(Sys_home_template.class, id);
Sys_home_template sysHomeTemplate = activity.covertToSysHomeTemplate();
if (oldHomeTemplate != null) {
sysHomeTemplate.setTop(oldHomeTemplate.getTop());
sysHomeTemplate.setPush(oldHomeTemplate.getPush());
sysHomeTemplate.setSortNo(oldHomeTemplate.getSortNo());
if (oldHomeTemplate.getTemplateName() != null) {
sysHomeTemplate.setTemplateName(oldHomeTemplate.getTemplateName());
}
if (oldHomeTemplate.getTemplateIcon() != null) {
sysHomeTemplate.setTemplateIcon(oldHomeTemplate.getTemplateIcon());
}
}
dao.insertOrUpdate(sysHomeTemplate);
return Result.success();
}
@At
@ApiOperation("取消模板")
@SaCheckPermission("trainSignUp.manage")
public Result cancelTemplate(String id) {
if (!AuthUtil.hasRoleOr(RoleConstant.SYSADMIN.name(), RoleConstant.SCHOOL_UNION_ADMIN.name())) {
return Result.error("无权操作");
}
dao.delete(Sys_home_template.class, id);
return Result.success();
}
@At
@@ -80,6 +132,9 @@ public class TrainSignUpManageController {
@SaCheckPermission("trainSignUp.manage")
@SLog(tag = "品牌活动-活动管理", msg = "删除活动")
public Result onDelete(String id) {
if (dao.fetch(Sys_home_template.class, id) != null) {
return Result.error("该活动已设为模板,请先取消模板后再删除");
}
Trans.exec(() -> {
trainSignUpActivityManageService.delete(id);
dao.clear(TrainSignUpCourse.class, Cnd.where("activityId", "=", id));
@@ -106,7 +161,7 @@ public class TrainSignUpManageController {
@At
@ApiOperation("查询单个活动")
@SaCheckPermission("trainSignUp")
@SaCheckPermission(value = {"trainSignUp", "trainSignUp.manage", "trainSignUp.applyActivity", "h5.trainSignUp.apply"}, mode = SaMode.OR)
public Result findOne(@Param("id") @NotNull String id) {
NutMap dataMap = trainSignUpActivityManageService.findOne(id, null, "");
String activityStartTime = dataMap.getString("activityStartTime");
@@ -154,7 +209,7 @@ public class TrainSignUpManageController {
@At
@Ok("json:full")
@ApiOperation("品牌活动新增/修改")
@SaCheckPermission("trainSignUp.manage")
@SaCheckPermission(value = {"trainSignUp.manage", "trainSignUp.applyActivity"}, mode = SaMode.OR)
@SLog(tag = "品牌活动-活动管理", msg = "新增/修改活动")
public Result doHandle(TrainSignUpActivity activity) {
if (StrUtil.isBlank(activity.getId())) {
@@ -168,7 +223,7 @@ public class TrainSignUpManageController {
@At
@Ok("json:full")
@ApiOperation("获取分工会人数限制")
@SaCheckPermission("trainSignUp.manage")
@SaCheckPermission(value = {"trainSignUp.manage", "trainSignUp.applyActivity"}, mode = SaMode.OR)
public Result getUnionLimit(@Param(value = "activityScopeId") String activityScopeId) {
Sql sql = Sqls.create("""
SELECT
@@ -192,7 +247,7 @@ public class TrainSignUpManageController {
@At
@Ok("json:full")
@ApiOperation("获取报名人员数量")
@SaCheckPermission("trainSignUp.manage")
@SaCheckPermission(value = {"trainSignUp.manage", "trainSignUp.applyActivity"}, mode = SaMode.OR)
public Result getRegisterUserCount(@Param(value = "courseId") String courseId) {
return Result.success().addData(dao.count(TrainSignUpUser.class, Cnd.where("courseId", "=", courseId)));
}
@@ -200,7 +255,7 @@ public class TrainSignUpManageController {
@At
@Ok("json:full")
@ApiOperation("获取历史活动列表")
@SaCheckPermission("trainSignUp.manage")
@SaCheckPermission(value = {"trainSignUp.manage", "trainSignUp.applyActivity"}, mode = SaMode.OR)
public Result getHistoricalActList() {
List<TrainSignUpActivity> query = dao.query(TrainSignUpActivity.class, Cnd.NEW().desc("activityStartTime"));
return Result.success().addData(query);
@@ -209,7 +264,7 @@ public class TrainSignUpManageController {
@At
@Ok("json:full")
@ApiOperation("查询分工会和社团")
@SaCheckPermission("trainSignUp.manage")
@SaCheckPermission(value = {"trainSignUp.manage", "trainSignUp.applyActivity"}, mode = SaMode.OR)
public Result selectUnitAndClub() {
List<NutMap> result = new ArrayList<>();
List<Sys_unit> unitList = dao.query(Sys_unit.class, Cnd.NEW().asc(Sys_unit::getUnitcode));
@@ -2,6 +2,7 @@ package com.budwk.app.zhgh.activity.trainSignUp.models;
import com.budwk.app.base.model.BaseModel;
import com.budwk.app.sys.models.Sys_home_activity;
import com.budwk.app.sys.models.Sys_home_template;
import com.budwk.app.sys.services.SysHomeConvert;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -109,6 +110,8 @@ public class TrainSignUpActivity extends BaseModel implements Serializable, SysH
@Many(field = "activityId")
private List<TrainSignUpTypeLimit> typeLimits;
private Boolean isTemplate;
@Column
@Comment("活动类型")
@ColDefine(type = ColType.VARCHAR, width = 20)
@@ -141,4 +144,23 @@ public class TrainSignUpActivity extends BaseModel implements Serializable, SysH
sysHomeActivity.setClassPath(this.getClass().getPackageName() + this.getClass().getName());
return sysHomeActivity;
}
public Sys_home_template covertToSysHomeTemplate() {
Sys_home_template sysHomeTemplate = new Sys_home_template();
sysHomeTemplate.setId(this.getId());
sysHomeTemplate.setName(this.getActivityName());
sysHomeTemplate.setTemplateName(this.getActivityName());
sysHomeTemplate.setCover(this.getCover());
sysHomeTemplate.setContent(this.getIntroduce());
sysHomeTemplate.setUrl("/platform/trainSignUp/applyActivity?mode=edit&id=" + this.getId());
sysHomeTemplate.setH5Url("");
if (Lang.isNotEmpty(this.getActivitySignUpStartTime())) {
sysHomeTemplate.setStartDate(this.getActivitySignUpStartTime());
sysHomeTemplate.setEndDate(this.getActivitySignUpEndTime());
}
sysHomeTemplate.setAllowUserGroupId(this.getActivityGroupId());
sysHomeTemplate.setEnable(!this.isDisabled());
sysHomeTemplate.setClassPath(this.getClass().getPackageName() + this.getClass().getName());
return sysHomeTemplate;
}
}