1
This commit is contained in:
@@ -18,8 +18,8 @@ public enum Api2UnitFiledMap {
|
|||||||
JDCJDM("jdcjdm", "unitLevel"),
|
JDCJDM("jdcjdm", "unitLevel"),
|
||||||
CJ_XYDWH("cj_xydwh", "divisionCollegeCode"),
|
CJ_XYDWH("cj_xydwh", "divisionCollegeCode"),
|
||||||
JGLX("jglx", "institutionType"),
|
JGLX("jglx", "institutionType"),
|
||||||
BMLB("bmlb", "unitType");
|
BMLB("bmlb", "unitType"),
|
||||||
// SFQY("sfqy", "delFlag");
|
SFQY("sfqy", "delFlagStr");
|
||||||
|
|
||||||
public final String apiField;
|
public final String apiField;
|
||||||
public final String dbColumn;
|
public final String dbColumn;
|
||||||
|
|||||||
@@ -130,4 +130,6 @@ public class Sys_unit extends BaseModel implements Serializable {
|
|||||||
@Comment("部门类别区分(部门类设置 1, 其他设置 0)")
|
@Comment("部门类别区分(部门类设置 1, 其他设置 0)")
|
||||||
@ColDefine(type = ColType.INT)
|
@ColDefine(type = ColType.INT)
|
||||||
private Integer unitTypeCode;
|
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.services.SysDataUnitPullService;
|
||||||
import com.budwk.app.sys.utils.DataCenterUtil;
|
import com.budwk.app.sys.utils.DataCenterUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
import org.nutz.dao.Dao;
|
import org.nutz.dao.Dao;
|
||||||
import org.nutz.dao.Sqls;
|
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.aop.Aop;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
import org.nutz.lang.Strings;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -95,6 +97,14 @@ public class SysDataUnitPullServiceImpl extends BaseServiceImpl<Sys_unit> implem
|
|||||||
unit.setUnitcode(unit.getId());
|
unit.setUnitcode(unit.getId());
|
||||||
unit.setUnitTypeCode(unit.getUnitType().contains("部门") ? 1 : 0);
|
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())) {
|
if (unitIds.contains(unit.getId())) {
|
||||||
// 存在则更新
|
// 存在则更新
|
||||||
updateList.add(unit);
|
updateList.add(unit);
|
||||||
|
|||||||
+33
@@ -4,13 +4,18 @@ import cn.dev33.satoken.annotation.SaCheckLogin;
|
|||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
import cn.dev33.satoken.annotation.SaMode;
|
import cn.dev33.satoken.annotation.SaMode;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.budwk.app.base.annotation.SLog;
|
import com.budwk.app.base.annotation.SLog;
|
||||||
import com.budwk.app.base.param.PageForm;
|
import com.budwk.app.base.param.PageForm;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
import com.budwk.app.sys.models.Sys_home_activity;
|
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.ActivityTissue;
|
||||||
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
|
import com.budwk.app.zhgh.activity.culture.models.ActivityTissuePerson;
|
||||||
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
|
import com.budwk.app.zhgh.activity.culture.service.ActivityCultureService;
|
||||||
|
import com.budwk.app.zhgh.activity.trainSignUp.models.TrainSignUpUser;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.nutz.aop.interceptor.ioc.TransAop;
|
import org.nutz.aop.interceptor.ioc.TransAop;
|
||||||
import org.nutz.dao.Chain;
|
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.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.mvc.annotation.At;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.Ok;
|
||||||
|
import org.nutz.mvc.annotation.Param;
|
||||||
|
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ClassName ActivityCultureInfoManageController
|
* @ClassName ActivityCultureInfoManageController
|
||||||
@@ -42,6 +49,8 @@ public class ActivityCultureInfoManageController {
|
|||||||
private ActivityCultureService activityCultureService;
|
private ActivityCultureService activityCultureService;
|
||||||
@Inject
|
@Inject
|
||||||
private Dao dao;
|
private Dao dao;
|
||||||
|
@Inject
|
||||||
|
private SysMsgService sysMsgService;
|
||||||
|
|
||||||
@At("/school")
|
@At("/school")
|
||||||
@Ok("beetl:platform/zhgh/activity/culture/school/infoManage/index.html")
|
@Ok("beetl:platform/zhgh/activity/culture/school/infoManage/index.html")
|
||||||
@@ -115,4 +124,28 @@ public class ActivityCultureInfoManageController {
|
|||||||
return Result.success(tissue);
|
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 :command="{type:'openCode',row}">
|
||||||
二维码
|
二维码
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
|
<!-- <el-dropdown-item :command="{type:'notifyMsg',row}">-->
|
||||||
|
<!-- 通知报名人员-->
|
||||||
|
<!-- </el-dropdown-item>-->
|
||||||
</el-dropdown-menu>
|
</el-dropdown-menu>
|
||||||
</el-dropdown>
|
</el-dropdown>
|
||||||
</template>
|
</template>
|
||||||
@@ -150,7 +152,23 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
|
|||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="codeDialogVisible = false" type="primary">关 闭</el-button>
|
<el-button @click="codeDialogVisible = false" type="primary">关 闭</el-button>
|
||||||
</span>
|
</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>
|
</guava>
|
||||||
`,
|
`,
|
||||||
props: {
|
props: {
|
||||||
@@ -174,7 +192,10 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
|
|||||||
{prop: "applyTime", label: "创建时间", sortable: true},
|
{prop: "applyTime", label: "创建时间", sortable: true},
|
||||||
{prop: "isUnseal", label: "是否开启"},
|
{prop: "isUnseal", label: "是否开启"},
|
||||||
],
|
],
|
||||||
url: ""
|
url: "",
|
||||||
|
notifyDialogVisible: false,
|
||||||
|
notifyContent: '',
|
||||||
|
notifyActivityId: '',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
@@ -210,6 +231,10 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
|
|||||||
this.codeDialogVisible = true
|
this.codeDialogVisible = true
|
||||||
} else if (type === "export") {
|
} else if (type === "export") {
|
||||||
commonUtil.pjaxPush("/platform/activity/info/mange/export?id=" + row.id)
|
commonUtil.pjaxPush("/platform/activity/info/mange/export?id=" + row.id)
|
||||||
|
} else if(type === "notifyMsg") {
|
||||||
|
this.notifyActivityId = row.id
|
||||||
|
this.notifyContent = ''
|
||||||
|
this.notifyDialogVisible = true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
goBack() {
|
goBack() {
|
||||||
@@ -264,6 +289,28 @@ const ACTIVITY_CULTURE_INFO_MANAGE = {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.tableLoading = false
|
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() {
|
async created() {
|
||||||
|
|||||||
Reference in New Issue
Block a user