From 2c78ee9ff7f93736c5b75c43bed6b3e6aae3dea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E4=BA=AE?= Date: Mon, 2 Feb 2026 19:19:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8E=A5=E5=8F=A3=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bonus-business/pom.xml | 2 +- .../job/controller/PmTaskController.java | 14 +++++---- .../com/bonus/job/mapper/WorkerJobMapper.java | 3 ++ .../bonus/job/service/PmTaskServiceImpl.java | 28 ++++++++++++------ .../bonus/job/service/SysJobServiceImpl.java | 5 +++- .../com/bonus/job/task/WorkerSendMsgTask.java | 18 +++++++++-- .../message/controller/WorkerController.java | 7 +++++ .../java/com/bonus/message/dao/WorkerVo.java | 6 ++++ .../service/impl/WorkerServiceImpl.java | 7 ++--- .../src/main/resources/application-druid.yml | 2 +- .../src/main/resources/application.yml | 14 ++++----- .../main/resources/download/人员导入模板.xlsx | Bin 10265 -> 10358 bytes .../resources/mapper/job/PmTaskMapper.xml | 4 ++- .../resources/mapper/job/WorkerJobMapper.xml | 9 ++++++ .../framework/config/SecurityConfig.java | 2 +- 15 files changed, 88 insertions(+), 33 deletions(-) diff --git a/bonus-business/pom.xml b/bonus-business/pom.xml index cd6bd85..5885f3d 100644 --- a/bonus-business/pom.xml +++ b/bonus-business/pom.xml @@ -9,7 +9,7 @@ 4.0.0 jar - bonus-business + yn-message-gadget web服务入口 diff --git a/bonus-business/src/main/java/com/bonus/job/controller/PmTaskController.java b/bonus-business/src/main/java/com/bonus/job/controller/PmTaskController.java index b08724c..1e6e7e0 100644 --- a/bonus-business/src/main/java/com/bonus/job/controller/PmTaskController.java +++ b/bonus-business/src/main/java/com/bonus/job/controller/PmTaskController.java @@ -159,12 +159,16 @@ public class PmTaskController extends BaseController /** * 短信平台回执 */ - @Log(title = "短信平台回执", businessType = BusinessType.DELETE) +// @Log(title = "短信平台回执", businessType = BusinessType.UPDATE) @PostMapping("msgSendStatus") - public AjaxResult msgSendStatus(String msg) + public AjaxResult msgSendStatus(String param) { try { - return service.msgSendStatus(msg); + log.error("短信平台回执:{}", param); + if(StringUtils.isEmpty(param)){ + return AjaxResult.error("数据格式异常"); + } + return service.msgSendStatus(param); } catch (Exception e) { log.error(e.getMessage()); return AjaxResult.error("数据格式异常"); @@ -191,7 +195,7 @@ public class PmTaskController extends BaseController /** - * 查询短信循环次数 + * 查询单次短信循环详细数据 */ @Log(title = "查询单次短信循环详细数据", businessType = BusinessType.OTHER) @GetMapping("getOneLoopMsgData") @@ -240,7 +244,7 @@ public class PmTaskController extends BaseController * 立即执行一次任务,不管其他状态 */ @Log(title = "立即执行一次任务", businessType = BusinessType.OTHER) - @GetMapping("executeOnceJob") + @PostMapping("executeOnceJob") public AjaxResult executeOnceJob(@RequestBody PmTask o) { try { diff --git a/bonus-business/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java b/bonus-business/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java index c3ea798..991e1f8 100644 --- a/bonus-business/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java +++ b/bonus-business/src/main/java/com/bonus/job/mapper/WorkerJobMapper.java @@ -35,4 +35,7 @@ public interface WorkerJobMapper { * @return */ List getHappyBirthDayWorkerByJobId(String jobId); + + SysJob getJobByJobId(String jobId); + } diff --git a/bonus-business/src/main/java/com/bonus/job/service/PmTaskServiceImpl.java b/bonus-business/src/main/java/com/bonus/job/service/PmTaskServiceImpl.java index a1d3b7a..c93a467 100644 --- a/bonus-business/src/main/java/com/bonus/job/service/PmTaskServiceImpl.java +++ b/bonus-business/src/main/java/com/bonus/job/service/PmTaskServiceImpl.java @@ -3,6 +3,7 @@ package com.bonus.job.service; import com.bonus.common.constant.Constants; import com.bonus.common.core.domain.AjaxResult; import com.bonus.common.exception.job.TaskException; +import com.bonus.common.utils.DateUtils; import com.bonus.common.utils.SecurityUtils; import com.bonus.common.utils.StringUtils; import com.bonus.job.domain.SysJob; @@ -10,6 +11,7 @@ import com.bonus.job.util.CronUtils; import com.bonus.job.util.MessageSendUtil; import com.bonus.job.util.ScheduleUtils; import com.bonus.message.dao.WorkerVo; +import lombok.extern.slf4j.Slf4j; import org.quartz.SchedulerException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -22,6 +24,7 @@ import java.time.LocalDate; import java.util.ArrayList; import java.util.List; +@Slf4j @Service public class PmTaskServiceImpl implements PmTaskService{ @@ -104,7 +107,7 @@ public class PmTaskServiceImpl implements PmTaskService{ byId.setWorkerList(list); //分组 List groupList = mapper.getGroupByTaskId(task.getId()); - byId.setGroupList(list); + byId.setGroupList(groupList); //按性别群发 Integer sex = mapper.getWorkerSexByTaskId(task.getId()); byId.setSex(sex); @@ -128,12 +131,20 @@ public class PmTaskServiceImpl implements PmTaskService{ job.setRelationType("短信"); job.setUpdateBy(SecurityUtils.getUsername()); //验证job数据 - AjaxResult ajaxResult = verifyJob(job); + AjaxResult ajaxResult; + try{ + ajaxResult = verifyJob(job); + }catch (Exception e){ + log.error("修改失败",e); + return AjaxResult.error("校验job数据失败"); + } if(!ajaxResult.isSuccess()){ return ajaxResult; } int update = mapper.update(task); if(update > 0){ + //修改时不该任务,默认原任务,不然会影响生日等特殊任务 + job.setInvokeTarget(null); int i = jobService.updateJob(job); List allList = new ArrayList<>(); List workerList = task.getWorkerList(); @@ -179,9 +190,6 @@ public class PmTaskServiceImpl implements PmTaskService{ @Override public AjaxResult msgSendStatus(String msg) { - if (msg == null) { - return AjaxResult.error("参数错误"); - } String[] split = msg.split(";"); List list = new ArrayList<>(); for (String s : split) { @@ -193,11 +201,14 @@ public class PmTaskServiceImpl implements PmTaskService{ if("1".equals(splitStatus[2])){ bean.setSendStatus("发送成功"); }else{ - bean.setReason("发送失败"); + bean.setSendStatus("发送失败"); } list.add(bean); } } + if (list.isEmpty()){ + return AjaxResult.error("数据为空"); + } int i = mapper.msgSendStatus(list); return i > 0 ? AjaxResult.success("更新成功") : AjaxResult.error("更新失败"); } @@ -237,7 +248,7 @@ public class PmTaskServiceImpl implements PmTaskService{ } // 在设置发送时间时使用时分秒格式 // 只要年月日 → 用 LocalDate - o.setSendTime(LocalDate.now().toString()); // 简洁且安全 + o.setSendTime(DateUtils.getTime()); // 简洁且安全 int i = mapper.updateOneWorkerData(o); return i > 0 ? AjaxResult.success("更新成功") : AjaxResult.error("更新失败"); } @@ -310,8 +321,7 @@ public class PmTaskServiceImpl implements PmTaskService{ { return AjaxResult.error("处理任务'" + job.getJobName() + "'失败,目标字符串存在违规"); } - else if (!ScheduleUtils.whiteList(job.getInvokeTarget())) - { + else if (!ScheduleUtils.whiteList(job.getInvokeTarget())){ return AjaxResult.error("处理任务'" + job.getJobName() + "'失败,目标字符串不在白名单内"); } return AjaxResult.success(); diff --git a/bonus-business/src/main/java/com/bonus/job/service/SysJobServiceImpl.java b/bonus-business/src/main/java/com/bonus/job/service/SysJobServiceImpl.java index 6badb71..56ce754 100644 --- a/bonus-business/src/main/java/com/bonus/job/service/SysJobServiceImpl.java +++ b/bonus-business/src/main/java/com/bonus/job/service/SysJobServiceImpl.java @@ -6,6 +6,7 @@ import com.bonus.job.domain.SysJob; import com.bonus.job.mapper.SysJobMapper; import com.bonus.job.util.CronUtils; import com.bonus.job.util.ScheduleUtils; +import org.hibernate.validator.internal.util.StringHelper; import org.quartz.JobDataMap; import org.quartz.JobKey; import org.quartz.Scheduler; @@ -201,7 +202,9 @@ public class SysJobServiceImpl implements ISysJobService @Transactional(rollbackFor = Exception.class) public int insertJob(SysJob job) throws SchedulerException, TaskException { - job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); + if(StringHelper.isNullOrEmptyString(job.getStatus())){ + job.setStatus(ScheduleConstants.Status.PAUSE.getValue()); + } int rows = jobMapper.insertJob(job); if (rows > 0) { diff --git a/bonus-business/src/main/java/com/bonus/job/task/WorkerSendMsgTask.java b/bonus-business/src/main/java/com/bonus/job/task/WorkerSendMsgTask.java index f4e8111..7928225 100644 --- a/bonus-business/src/main/java/com/bonus/job/task/WorkerSendMsgTask.java +++ b/bonus-business/src/main/java/com/bonus/job/task/WorkerSendMsgTask.java @@ -1,12 +1,17 @@ package com.bonus.job.task; +import com.bonus.common.utils.DateUtils; +import com.bonus.job.domain.SysJob; import com.bonus.job.mapper.WorkerJobMapper; +import com.bonus.job.service.ISysJobService; import com.bonus.job.util.HttpRequestHelper; import com.bonus.job.util.MessageSendUtil; import com.bonus.job.util.SnowflakeIdGenerator; import com.bonus.message.dao.WorkerVo; +import org.quartz.Job; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -31,6 +36,9 @@ public class WorkerSendMsgTask{ @Resource private WorkerJobMapper mapper; + @Autowired + private ISysJobService jobService; + SnowflakeIdGenerator idGen = new SnowflakeIdGenerator(1, 1); /** @@ -42,6 +50,12 @@ public class WorkerSendMsgTask{ //查询任务发送人人员信息 List list = mapper.getWorkerByJobId(jobId); sendInBatches(list); + //如果任务是指执行一次,就将任务status停掉 + SysJob job = mapper.getJobByJobId(jobId); + if ("2".equals(job.getMisfirePolicy())){ + job.setStatus("1"); + int i = jobService.changeStatus(job); + } }catch (Exception e){ logger.error("人员短信调度,{}",e.getMessage()); } @@ -97,7 +111,7 @@ public class WorkerSendMsgTask{ user.setSubmitStatus(split[0]); user.setBatchNumber(split[1]); // 在设置发送时间时使用时分秒格式 - user.setSendTime(LocalDate.now().toString()); // 简洁且安全 + user.setSendTime(DateUtils.getTime()); // 简洁且安全 }); } else { @@ -108,7 +122,7 @@ public class WorkerSendMsgTask{ user.setSubmitStatus(split[0]); user.setReason(split[1]); // 在设置发送时间时使用时分秒格式 - user.setSendTime(LocalDate.now().toString()); // 简洁且安全 + user.setSendTime(DateUtils.getTime()); // 简洁且安全 }); } mapper.insertTaskRecord(userList); diff --git a/bonus-business/src/main/java/com/bonus/message/controller/WorkerController.java b/bonus-business/src/main/java/com/bonus/message/controller/WorkerController.java index f81cc72..8793cf0 100644 --- a/bonus-business/src/main/java/com/bonus/message/controller/WorkerController.java +++ b/bonus-business/src/main/java/com/bonus/message/controller/WorkerController.java @@ -3,6 +3,7 @@ package com.bonus.message.controller; import com.bonus.common.core.controller.BaseController; import com.bonus.common.core.domain.AjaxResult; import com.bonus.common.core.page.TableDataInfo; +import com.bonus.common.utils.AesUtil; import com.bonus.common.utils.poi.ExcelUtil; import com.bonus.message.dao.WorkerVo; import com.bonus.message.service.WorkerService; @@ -42,6 +43,9 @@ public class WorkerController extends BaseController { try { startPage(); List list = workerService.getWorkerList(workerVo); + for (WorkerVo worker : list) { + workerVo.setPhone(AesUtil.encrypt(worker.getPhone())); + } return getDataTable(list); } catch (Exception e) { log.error(e.getMessage()); @@ -150,6 +154,9 @@ public class WorkerController extends BaseController { try { ExcelUtil util = new ExcelUtil(WorkerVo.class); List workerList = util.importExcel(file.getInputStream()); + if (workerList.isEmpty()){ + return AjaxResult.error("文件为空或者模版有问题,请按照模版导入数据"); + } String message = workerService.importWorker(workerList); if ("导入成功".equals(message)) { return success(message); diff --git a/bonus-business/src/main/java/com/bonus/message/dao/WorkerVo.java b/bonus-business/src/main/java/com/bonus/message/dao/WorkerVo.java index 025981c..df278f4 100644 --- a/bonus-business/src/main/java/com/bonus/message/dao/WorkerVo.java +++ b/bonus-business/src/main/java/com/bonus/message/dao/WorkerVo.java @@ -41,6 +41,12 @@ public class WorkerVo { @Excel(name = "性别") private String sex; + /** + * 生日 + */ + @Excel(name = "生日") + private String birthday; + /** * 电话 */ diff --git a/bonus-business/src/main/java/com/bonus/message/service/impl/WorkerServiceImpl.java b/bonus-business/src/main/java/com/bonus/message/service/impl/WorkerServiceImpl.java index 0087fef..a7f2f7d 100644 --- a/bonus-business/src/main/java/com/bonus/message/service/impl/WorkerServiceImpl.java +++ b/bonus-business/src/main/java/com/bonus/message/service/impl/WorkerServiceImpl.java @@ -31,11 +31,7 @@ public class WorkerServiceImpl implements WorkerService { */ @Override public List getWorkerList(WorkerVo workerVo) { - List workerList = workerMapper.getWorkerList(workerVo); - for (WorkerVo worker : workerList) { - workerVo.setPhone(AesUtil.encrypt(worker.getPhone())); - } - return workerList; + return workerMapper.getWorkerList(workerVo); } /** @@ -96,6 +92,7 @@ public class WorkerServiceImpl implements WorkerService { || StringUtils.isEmpty(workerVo.getOrgName()) || StringUtils.isEmpty(workerVo.getWorkerName()) || StringUtils.isEmpty(workerVo.getSex()) + || StringUtils.isEmpty(workerVo.getBirthday()) ){ return "缺少必填项"; } diff --git a/bonus-business/src/main/resources/application-druid.yml b/bonus-business/src/main/resources/application-druid.yml index 4da569f..f8641f7 100644 --- a/bonus-business/src/main/resources/application-druid.yml +++ b/bonus-business/src/main/resources/application-druid.yml @@ -6,7 +6,7 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://192.168.0.14:4418/yn_message_gadget?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://192.168.0.14:4418/yn_message_gadget?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: Bonus@admin123! # 从库数据源 diff --git a/bonus-business/src/main/resources/application.yml b/bonus-business/src/main/resources/application.yml index 1e601c2..114379c 100644 --- a/bonus-business/src/main/resources/application.yml +++ b/bonus-business/src/main/resources/application.yml @@ -68,14 +68,14 @@ spring: # redis 配置 redis: # 地址 -# host: 192.168.0.14 -# port: 2004 -# database: 6 -# password: Plzbns@Redis123! - host: 127.0.0.1 - port: 6379 + host: 192.168.0.14 + port: 2004 database: 6 - password: + password: Plzbns@Redis123! +# host: 127.0.0.1 +# port: 6379 +# database: 6 +# password: # 连接超时时间 timeout: 10s lettuce: diff --git a/bonus-business/src/main/resources/download/人员导入模板.xlsx b/bonus-business/src/main/resources/download/人员导入模板.xlsx index 6d3710b7ec625d5ac920d7d23cecb1017008e3ee..41a8b94b48b37fe2ed6418d17cf1c1aa17363584 100644 GIT binary patch delta 4212 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 delta 4115 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 diff --git a/bonus-business/src/main/resources/mapper/job/PmTaskMapper.xml b/bonus-business/src/main/resources/mapper/job/PmTaskMapper.xml index bc0c4c2..6370c88 100644 --- a/bonus-business/src/main/resources/mapper/job/PmTaskMapper.xml +++ b/bonus-business/src/main/resources/mapper/job/PmTaskMapper.xml @@ -96,7 +96,7 @@ - + update bm_task_record set send_status = #{item.sendStatus} where batch_number = #{item.batchNumber} and phone = #{item.phone} @@ -122,6 +122,8 @@ GROUP BY btw.loop_id + order by + btw.create_time DESC + + diff --git a/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java b/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java index bae11a3..b46ffe4 100644 --- a/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java +++ b/bonus-framework/src/main/java/com/bonus/framework/config/SecurityConfig.java @@ -111,7 +111,7 @@ public class SecurityConfig .authorizeHttpRequests((requests) -> { permitAllUrl.getUrls().forEach(url -> requests.antMatchers(url).permitAll()); // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - requests.antMatchers("/login", "/register", "/captchaImage").permitAll() + requests.antMatchers("/login", "/register", "/captchaImage", "/msgJob/msgSendStatus").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()