diff --git a/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java b/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java index 57a6f008..acfd6ddd 100644 --- a/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java +++ b/src/main/java/com/budwk/app/sys/enums/Api2UnitFiledMap.java @@ -18,8 +18,8 @@ public enum Api2UnitFiledMap { JDCJDM("jdcjdm", "unitLevel"), CJ_XYDWH("cj_xydwh", "divisionCollegeCode"), JGLX("jglx", "institutionType"), - BMLB("bmlb", "unitType"); -// SFQY("sfqy", "delFlag"); + BMLB("bmlb", "unitType"), + SFQY("sfqy", "delFlagStr"); public final String apiField; public final String dbColumn; diff --git a/src/main/java/com/budwk/app/sys/models/Sys_unit.java b/src/main/java/com/budwk/app/sys/models/Sys_unit.java index 52845a56..ee0c5171 100644 --- a/src/main/java/com/budwk/app/sys/models/Sys_unit.java +++ b/src/main/java/com/budwk/app/sys/models/Sys_unit.java @@ -130,4 +130,6 @@ public class Sys_unit extends BaseModel implements Serializable { @Comment("部门类别区分(部门类设置 1, 其他设置 0)") @ColDefine(type = ColType.INT) private Integer unitTypeCode; + + private String delFlagStr; } diff --git a/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java b/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java index a1fe1114..1d234c3d 100644 --- a/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java +++ b/src/main/java/com/budwk/app/sys/services/impl/SysDataUnitPullServiceImpl.java @@ -13,6 +13,7 @@ import com.budwk.app.sys.models.Sys_unit; import com.budwk.app.sys.services.SysDataUnitPullService; import com.budwk.app.sys.utils.DataCenterUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Dao; import org.nutz.dao.Sqls; @@ -20,6 +21,7 @@ import org.nutz.dao.sql.Sql; import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.Strings; import java.util.*; import java.util.stream.Collectors; @@ -95,6 +97,14 @@ public class SysDataUnitPullServiceImpl extends BaseServiceImpl implem unit.setUnitcode(unit.getId()); unit.setUnitTypeCode(unit.getUnitType().contains("部门") ? 1 : 0); + if (StringUtils.isNotBlank(unit.getDelFlagStr())) { + if (unit.getDelFlagStr().equals("1")) { + unit.setDelFlag(true); + } else { + unit.setDelFlag(false); + } + } + if (unitIds.contains(unit.getId())) { // 存在则更新 updateList.add(unit); diff --git a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java index b7f3ab57..47d43564 100644 --- a/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java +++ b/src/main/java/com/budwk/app/zhgh/activity/culture/controller/ActivityCultureInfoManageController.java @@ -4,13 +4,18 @@ import cn.dev33.satoken.annotation.SaCheckLogin; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaMode; import cn.hutool.core.util.ObjectUtil; +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_home_activity; +import com.budwk.app.sys.models.Sys_user; +import com.budwk.app.sys.services.SysMsgService; +import com.budwk.app.web.commons.auth.utils.SecurityUtil; 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; +import com.budwk.app.zhgh.activity.trainSignUp.models.TrainSignUpUser; import io.swagger.annotations.ApiOperation; import org.nutz.aop.interceptor.ioc.TransAop; import org.nutz.dao.Chain; @@ -24,8 +29,10 @@ import org.nutz.ioc.loader.annotation.IocBean; import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; +import org.nutz.mvc.annotation.Param; import javax.validation.Valid; +import java.util.List; /** * @ClassName ActivityCultureInfoManageController @@ -42,6 +49,8 @@ public class ActivityCultureInfoManageController { private ActivityCultureService activityCultureService; @Inject private Dao dao; + @Inject + private SysMsgService sysMsgService; @At("/school") @Ok("beetl:platform/zhgh/activity/culture/school/infoManage/index.html") @@ -115,4 +124,28 @@ public class ActivityCultureInfoManageController { return Result.success(tissue); } + @At + @Ok("json:full") + @ApiOperation("通知报名人员") + @SaCheckPermission("trainSignUp.manage") + public Result sendNotify(@Param("activityId") String activityId, @Param("content") String content) { + if (StrUtil.isBlank(activityId) || StrUtil.isBlank(content)) { + return Result.error("参数不完整"); + } + // 查询该活动下所有报名人员(state=1为正常报名) + List userList = dao.query(ActivityTissuePerson.class, Cnd.where("tissueId", "=", activityId).and("state", "=", 1)); + if (userList.isEmpty()) { + return Result.error("该活动暂无报名人员"); + } + // 获取所有报名人员的userId + List userIds = userList.stream().map(ActivityTissuePerson::getUserId).distinct().toList(); + // 查询用户信息获取loginname + List sysUsers = dao.query(Sys_user.class, Cnd.where("id", "in", userIds)); + List loginNames = sysUsers.stream().map(Sys_user::getLoginname).filter(StrUtil::isNotBlank).toList(); + if (loginNames.isEmpty()) { + return Result.error("未找到有效的报名人员"); + } +// sysMsgService.sendMsg(loginNames, "校工会文化活动通知", content, SecurityUtil.getUserId()); + return Result.success("通知发送成功"); + } } diff --git a/src/main/resources/views/platform/zhgh/activity/culture/common/infoMange.js b/src/main/resources/views/platform/zhgh/activity/culture/common/infoMange.js index 8302b555..77a4d19b 100644 --- a/src/main/resources/views/platform/zhgh/activity/culture/common/infoMange.js +++ b/src/main/resources/views/platform/zhgh/activity/culture/common/infoMange.js @@ -119,7 +119,9 @@ const ACTIVITY_CULTURE_INFO_MANAGE = { 二维码 - + + + @@ -150,7 +152,23 @@ const ACTIVITY_CULTURE_INFO_MANAGE = { 关 闭 - + + + + + + 取 消 + 发 送 + + `, props: { @@ -174,7 +192,10 @@ const ACTIVITY_CULTURE_INFO_MANAGE = { {prop: "applyTime", label: "创建时间", sortable: true}, {prop: "isUnseal", label: "是否开启"}, ], - url: "" + url: "", + notifyDialogVisible: false, + notifyContent: '', + notifyActivityId: '', } }, components: { @@ -210,6 +231,10 @@ const ACTIVITY_CULTURE_INFO_MANAGE = { this.codeDialogVisible = true } else if (type === "export") { commonUtil.pjaxPush("/platform/activity/info/mange/export?id=" + row.id) + } else if(type === "notifyMsg") { + this.notifyActivityId = row.id + this.notifyContent = '' + this.notifyDialogVisible = true } }, goBack() { @@ -264,6 +289,28 @@ const ACTIVITY_CULTURE_INFO_MANAGE = { } }) this.tableLoading = false + }, + async sendNotify() { + if (!this.notifyContent.trim()) { + this.$message.warning('请输入通知内容') + return + } + this.$confirm("确认发送通知给所有报名人员吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }).then(async () => { + const resp = await this.$axios.post(loc() + "/sendNotify", { + activityId: this.notifyActivityId, + content: this.notifyContent + }) + if (resp.code === 0) { + this.$message.success(resp.msg) + this.notifyDialogVisible = false + } else { + this.$message.warning(resp.msg) + } + }).catch(() => {}) } }, async created() {