commit
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
package com.budwk.app.sys.services.impl;
|
||||
|
||||
import cn.hutool.core.thread.ThreadUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HtmlUtil;
|
||||
import com.budwk.app.base.constant.RedisConstant;
|
||||
import com.budwk.app.base.service.impl.BaseServiceImpl;
|
||||
import com.budwk.app.base.sms.SmsService;
|
||||
@@ -102,11 +100,10 @@ public class SysMsgServiceImpl extends BaseServiceImpl<Sys_msg> implements SysMs
|
||||
});
|
||||
|
||||
//发送学校平台消息
|
||||
// for (String loginName : loginNames) {
|
||||
// smsService.send(loginName, sysMsg.getTitle(), sysMsg.getNote());
|
||||
// }
|
||||
smsService.massSendMessage(loginNames, sysMsg.getNote());
|
||||
|
||||
ThreadUtil.execute(() -> {
|
||||
//smsService.massSend(loginNames, sysMsg.getTitle(), HtmlUtil.cleanHtmlTag(StrUtil.blankToDefault(sysMsg.getNote(),"")), sysMsg.getUrl());
|
||||
// smsService.massSend(loginNames, sysMsg.getTitle(), HtmlUtil.cleanHtmlTag(StrUtil.blankToDefault(sysMsg.getNote(),"")), sysMsg.getUrl());
|
||||
});
|
||||
|
||||
return sysMsg;
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
package com.budwk.app.task.job;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.budwk.app.base.param.ConditionGroup;
|
||||
import com.budwk.app.sys.enums.SysDataUpdateMode;
|
||||
import com.budwk.app.sys.models.Sys_user_source;
|
||||
import com.budwk.app.sys.param.SysDataUserUpdateParam;
|
||||
import com.budwk.app.sys.services.SysDataUserPullService;
|
||||
import com.budwk.app.sys.services.SysDataUserUpdateService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nutz.dao.Cnd;
|
||||
import org.nutz.dao.Dao;
|
||||
import org.nutz.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
@@ -57,6 +54,6 @@ public class SysUserAllRenewJob implements Job {
|
||||
param.setUpdateMode(SysDataUpdateMode.ALL.name());
|
||||
param.setConditionGroup(conditionGroup);
|
||||
|
||||
// sysDataUserUpdateService.update(param);
|
||||
sysDataUserUpdateService.update(param);
|
||||
}
|
||||
}
|
||||
|
||||
+30
@@ -10,6 +10,9 @@ 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_unit;
|
||||
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.smartbenefits.models.*;
|
||||
import com.budwk.app.zhgh.activity.smartbenefits.service.SmartBenefitsActivityService;
|
||||
import com.budwk.app.zhgh.club.model.SysClub;
|
||||
@@ -50,6 +53,8 @@ public class SmartBenefitsManageController {
|
||||
@Inject
|
||||
private SmartBenefitsActivityService smartBenefitsActivityManageService;
|
||||
@Inject
|
||||
private SysMsgService sysMsgService;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@At("")
|
||||
@@ -235,4 +240,29 @@ public class SmartBenefitsManageController {
|
||||
}
|
||||
return Result.success(result);
|
||||
}
|
||||
|
||||
@At
|
||||
@Ok("json:full")
|
||||
@ApiOperation("通知报名人员")
|
||||
@SaCheckPermission("smartbenefits.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<SmartBenefitsUser> userList = dao.query(SmartBenefitsUser.class, Cnd.where("activityId", "=", activityId).and("state", "=", 1));
|
||||
if (userList.isEmpty()) {
|
||||
return Result.error("该活动暂无报名人员");
|
||||
}
|
||||
// 获取所有报名人员的userId
|
||||
List<String> userIds = userList.stream().map(SmartBenefitsUser::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("通知发送成功");
|
||||
}
|
||||
}
|
||||
|
||||
+30
@@ -10,8 +10,11 @@ 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_unit;
|
||||
import com.budwk.app.web.commons.auth.utils.SecurityUtil;
|
||||
import com.budwk.app.zhgh.activity.trainSignUp.models.*;
|
||||
import com.budwk.app.zhgh.activity.trainSignUp.service.TrainSignUpActivityService;
|
||||
import com.budwk.app.sys.models.Sys_user;
|
||||
import com.budwk.app.sys.services.SysMsgService;
|
||||
import com.budwk.app.zhgh.club.model.SysClub;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -50,6 +53,8 @@ public class TrainSignUpManageController {
|
||||
@Inject
|
||||
private TrainSignUpActivityService trainSignUpActivityManageService;
|
||||
@Inject
|
||||
private SysMsgService sysMsgService;
|
||||
@Inject
|
||||
private Dao dao;
|
||||
|
||||
@At("")
|
||||
@@ -235,4 +240,29 @@ public class TrainSignUpManageController {
|
||||
}
|
||||
return Result.success(result);
|
||||
}
|
||||
|
||||
@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<TrainSignUpUser> userList = dao.query(TrainSignUpUser.class, Cnd.where("activityId", "=", activityId).and("state", "=", 1));
|
||||
if (userList.isEmpty()) {
|
||||
return Result.error("该活动暂无报名人员");
|
||||
}
|
||||
// 获取所有报名人员的userId
|
||||
List<String> userIds = userList.stream().map(TrainSignUpUser::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("通知发送成功");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ layout("/layouts/platform.html"){
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item @click.native="openActivityCode(row.id)">活动二维码</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="makeCode(row)">签到二维码</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="openNotifyDialog(row)">通知报名人员</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="onView(row)">查看</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="openEdit(row)">编辑</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="onDelete(row)">删除</el-dropdown-item>
|
||||
@@ -123,6 +124,23 @@ layout("/layouts/platform.html"){
|
||||
<el-button @click="codeDialogVisible = false" type="primary">关 闭</el-button>
|
||||
</span>
|
||||
</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>
|
||||
</div>
|
||||
|
||||
@@ -154,6 +172,9 @@ layout("/layouts/platform.html"){
|
||||
],
|
||||
codeDialogVisible: false,
|
||||
activityUrl: '',
|
||||
notifyDialogVisible: false,
|
||||
notifyContent: '',
|
||||
notifyActivityId: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -182,6 +203,27 @@ layout("/layouts/platform.html"){
|
||||
makeCode(row) {
|
||||
this.$refs.codeRef.initData(row)
|
||||
},
|
||||
openNotifyDialog(row) {
|
||||
this.notifyActivityId = row.id
|
||||
this.notifyContent = ''
|
||||
this.notifyDialogVisible = true
|
||||
},
|
||||
async sendNotify() {
|
||||
if (!this.notifyContent.trim()) {
|
||||
this.$message.warning('请输入通知内容')
|
||||
return
|
||||
}
|
||||
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)
|
||||
}
|
||||
},
|
||||
async activityStatusChange(notice, val, id) {
|
||||
const resp = await this.$axios.post(loc() + "/activityStatusChange", { notice: notice, isDisabled: val, id })
|
||||
if (resp.code === 0) {
|
||||
|
||||
@@ -90,6 +90,7 @@ layout("/layouts/platform.html"){
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item @click.native="openActivityCode(row.id)">活动二维码</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="makeCode(row)">签到二维码</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="openNotifyDialog(row)">通知报名人员</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="onView(row)">查看</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="openEdit(row)">编辑</el-dropdown-item>
|
||||
<el-dropdown-item @click.native="onDelete(row)">删除</el-dropdown-item>
|
||||
@@ -123,6 +124,23 @@ layout("/layouts/platform.html"){
|
||||
<el-button @click="codeDialogVisible = false" type="primary">关 闭</el-button>
|
||||
</span>
|
||||
</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>
|
||||
</div>
|
||||
|
||||
@@ -154,6 +172,9 @@ layout("/layouts/platform.html"){
|
||||
],
|
||||
codeDialogVisible: false,
|
||||
activityUrl: '',
|
||||
notifyDialogVisible: false,
|
||||
notifyContent: '',
|
||||
notifyActivityId: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -182,6 +203,27 @@ layout("/layouts/platform.html"){
|
||||
makeCode(row) {
|
||||
this.$refs.codeRef.initData(row)
|
||||
},
|
||||
openNotifyDialog(row) {
|
||||
this.notifyActivityId = row.id
|
||||
this.notifyContent = ''
|
||||
this.notifyDialogVisible = true
|
||||
},
|
||||
async sendNotify() {
|
||||
if (!this.notifyContent.trim()) {
|
||||
this.$message.warning('请输入通知内容')
|
||||
return
|
||||
}
|
||||
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)
|
||||
}
|
||||
},
|
||||
async activityStatusChange(notice, val, id) {
|
||||
const resp = await this.$axios.post(loc() + "/activityStatusChange", { notice: notice, isDisabled: val, id })
|
||||
if (resp.code === 0) {
|
||||
|
||||
Reference in New Issue
Block a user