This commit is contained in:
2026-05-29 11:46:12 +08:00
parent da0ce6d11c
commit 5b37d340af
5 changed files with 97 additions and 5 deletions
@@ -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;
@@ -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;
}
@@ -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<Sys_unit> 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);
@@ -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<ActivityTissuePerson> userList = dao.query(ActivityTissuePerson.class, Cnd.where("tissueId", "=", activityId).and("state", "=", 1));
if (userList.isEmpty()) {
return Result.error("该活动暂无报名人员");
}
// 获取所有报名人员的userId
List<String> userIds = userList.stream().map(ActivityTissuePerson::getUserId).distinct().toList();
// 查询用户信息获取loginname
List<Sys_user> sysUsers = dao.query(Sys_user.class, Cnd.where("id", "in", userIds));
List<String> 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("通知发送成功");
}
}
@@ -119,7 +119,9 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
<el-dropdown-item :command="{type:'openCode',row}">
二维码
</el-dropdown-item>
<!-- <el-dropdown-item :command="{type:'notifyMsg',row}">-->
<!-- 通知报名人员-->
<!-- </el-dropdown-item>-->
</el-dropdown-menu>
</el-dropdown>
</template>
@@ -150,7 +152,23 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
<span slot="footer" class="dialog-footer">
<el-button @click="codeDialogVisible = false" type="primary">关 闭</el-button>
</span>
</el-dialog>
</el-dialog>
<el-dialog
title="通知报名人员"
:visible.sync="notifyDialogVisible"
:close-on-click-modal="false"
width="50%">
<el-input
type="textarea"
:rows="6"
placeholder="请输入通知内容"
v-model="notifyContent">
</el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="notifyDialogVisible = false">取 消</el-button>
<el-button type="primary" @click="sendNotify">发 送</el-button>
</span>
</el-dialog>
</guava>
`,
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() {