wl
2022-11-11 e1008dbb1fa76874a28c06913b95c16d18acdfa7
短信模块 消息列表
20个文件已修改
6个文件已添加
12 文件已重命名
9个文件已删除
958 ■■■■■ 已修改文件
document/云mas/~$TPS短信接口文档.docx 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/store/StoreInfoController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/task/TaskController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/text/SmsController.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/BaseCaseStatus.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/ChannelCode.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/CheckResult.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/StepName.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/CommonUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/DateUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/DateUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/Md5.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/ParamsMap.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/RandomNumberGenerator.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/RandomStringUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/common/util/UtilNumber.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/entity/message/Message.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/entity/message/SendReq.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/entity/message/SendRes.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/Provider.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/Sender.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/InnerFactory.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/MailFactory.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/SmsFactory.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java 210 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/impl/SmsTemplateServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoInspectionServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/application-dev.yml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/test/java/com/ycl/sccgplatform/SccgPlatformApplicationTests.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
document/ÔÆmas/~$TPS¶ÌÐŽӿÚÎĵµ.docx
Binary files differ
ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java
File was deleted
ycl-platform/src/main/java/com/ycl/config/RestTemplateConfig.java
New file
@@ -0,0 +1,14 @@
package com.ycl.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}
ycl-platform/src/main/java/com/ycl/controller/caseHandler/BaseCaseController.java
@@ -1,14 +1,13 @@
package com.ycl.controller.caseHandler;
import com.alibaba.excel.EasyExcel;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.annotation.LogSave;
import com.ycl.api.CommonResult;
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.common.util.UtilNumber;
import com.ycl.controller.video.common.constant.BaseCaseStatus;
import com.ycl.controller.video.common.util.UtilNumber;
import com.ycl.controller.BaseController;
import com.ycl.dto.caseHandler.QueryForViolationParam;
import com.ycl.dto.casePool.IllegalBuildingParam;
ycl-platform/src/main/java/com/ycl/controller/message/MessageColumnController.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.api.CommonResult;
import com.ycl.bo.AdminUserDetails;
import com.ycl.common.util.UtilNumber;
import com.ycl.controller.video.common.util.UtilNumber;
import com.ycl.dto.message.MessageColumnParam;
import com.ycl.entity.message.MessageColumn;
import com.ycl.service.message.IMessageColumnService;
ycl-platform/src/main/java/com/ycl/controller/message/MessageController.java
@@ -37,12 +37,24 @@
    @ApiOperation(value = "发送消息")
    @RequestMapping(value = "/sendMessage", method = RequestMethod.POST)
    @ResponseBody
    public CommonResult sendMessage(@Validated @RequestBody MessageParam messageParam) {
    public CommonResult sendMessage(@Validated @RequestBody Message message) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        //设置创建人
        messageParam.setCreateUser(user.getUserId());
        return CommonResult.success(iMessageService.sendMessage(messageParam));
        message.setCreateUser(user.getUserId());
        return CommonResult.success(iMessageService.sendMessage(message));
    }
    @ApiOperation(value = "暂存消息")
    @PostMapping("/saveMessage")
    @ResponseBody
    public CommonResult saveMessage(@Validated @RequestBody Message message) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        //设置创建人
        message.setCreateUser(user.getUserId());
        message.setCreateTime(new Date());
        return CommonResult.success(iMessageService.save(message));
    }
    @ApiOperation(value = "获取消息分页查询")
    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
@@ -62,14 +74,11 @@
    @ApiOperation("修改指定消息")
    @RequestMapping(value = "/update/{id}", method = RequestMethod.POST)
    @ResponseBody
    public CommonResult update(@PathVariable Long id, @RequestBody MessageParam messageParam) {
        Message message = new Message();
        message.setId(id);
    public CommonResult update(@RequestBody Message message) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        //设置创建人
        message.setUpdateUser(user.getUserId());
        message.setUpdateTime(new Date());
        BeanUtils.copyProperties(messageParam, message);
        boolean success = iMessageService.updateById(message);
        if (success) {
            return CommonResult.success(null);
ycl-platform/src/main/java/com/ycl/controller/store/StoreInfoController.java
@@ -5,10 +5,9 @@
import com.ycl.annotation.LogSave;
import com.ycl.api.CommonPage;
import com.ycl.api.CommonResult;
import com.ycl.common.util.UtilNumber;
import com.ycl.controller.video.common.util.UtilNumber;
import com.ycl.dto.store.UmsStoreInfoParam;
import com.ycl.entity.store.StoreInfo;
import com.ycl.entity.video.VideoPoint;
import com.ycl.service.store.StoreInfoService;
import com.ycl.service.video.impl.IVideoPointService;
import com.ycl.vo.store.StoreInfoVO;
ycl-platform/src/main/java/com/ycl/controller/task/TaskController.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycl.api.CommonResult;
import com.ycl.bo.AdminUserDetails;
import com.ycl.common.util.UtilNumber;
import com.ycl.controller.video.common.util.UtilNumber;
import com.ycl.entity.task.Task;
import com.ycl.service.task.ITaskService;
import io.swagger.annotations.Api;
ycl-platform/src/main/java/com/ycl/controller/text/SmsController.java
New file
@@ -0,0 +1,41 @@
package com.ycl.controller.text;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ycl.entity.message.SendReq;
import com.ycl.entity.message.SendRes;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.SneakyThrows;
import org.springframework.util.Base64Utils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController()
@Api(tags = "测试SMs")
@RequestMapping("/text")
public class SmsController {
    @PostMapping("/sms_res")
    @ApiOperation(value = "短信测试")
    @SneakyThrows
    public SendRes getSms(@RequestBody String param) {
        SendRes sendRes = new SendRes();
        sendRes.setRspcod("success");
        sendRes.setMgsGroup("SMS123456");
        sendRes.setSuccess("success");
       return sendRes;
    }
    @PostMapping("/sms_res/fail")
    @ApiOperation(value = "短信测试")
    @SneakyThrows
    public SendRes getSmsToFail(@RequestBody String param) {
        SendRes sendRes = new SendRes();
        sendRes.setRspcod("InvalidUsrOrPwd");
        sendRes.setMgsGroup("SMS123456");
        sendRes.setSuccess("success");
        return sendRes;
    }
}
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/BaseCaseStatus.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/BaseCaseStatus.java
@@ -1,4 +1,4 @@
package com.ycl.common.constant;
package com.ycl.controller.video.common.constant;
/**
 * <p>
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/ChannelCode.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/ChannelCode.java
@@ -1,4 +1,4 @@
package com.ycl.common.constant;
package com.ycl.controller.video.common.constant;
/**
 * <p>
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/CheckResult.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/CheckResult.java
@@ -1,4 +1,4 @@
package com.ycl.common.constant;
package com.ycl.controller.video.common.constant;
/**
 * <p>
ycl-platform/src/main/java/com/ycl/controller/video/common/constant/StepName.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/constant/StepName.java
@@ -1,4 +1,4 @@
package com.ycl.common.constant;
package com.ycl.controller.video.common.constant;
public enum StepName {
ycl-platform/src/main/java/com/ycl/controller/video/common/util/CommonUtils.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/CommonUtils.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
ycl-platform/src/main/java/com/ycl/controller/video/common/util/DateUtil.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/DateUtil.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
ycl-platform/src/main/java/com/ycl/controller/video/common/util/DateUtils.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/DateUtils.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
ycl-platform/src/main/java/com/ycl/controller/video/common/util/Md5.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/Md5.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import java.security.MessageDigest;
ycl-platform/src/main/java/com/ycl/controller/video/common/util/ParamsMap.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/ParamsMap.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import lombok.extern.slf4j.Slf4j;
ycl-platform/src/main/java/com/ycl/controller/video/common/util/RandomNumberGenerator.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/RandomNumberGenerator.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import java.text.SimpleDateFormat;
import java.util.Date;
ycl-platform/src/main/java/com/ycl/controller/video/common/util/RandomStringUtil.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/RandomStringUtil.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import java.util.Random;
ycl-platform/src/main/java/com/ycl/controller/video/common/util/UtilNumber.java
File was renamed from ycl-platform/src/main/java/com/ycl/common/util/UtilNumber.java
@@ -1,4 +1,4 @@
package com.ycl.common.util;
package com.ycl.controller.video.common.util;
import com.ycl.mapper.common.GeneratedCodeMapper;
ycl-platform/src/main/java/com/ycl/dto/message/MessageParam.java
@@ -16,12 +16,7 @@
@Data
@ApiModel("消息参数体")
public class MessageParam extends BasePageVO {
    /**
     * ä¸»é”®id
     */
    @ApiModelProperty(value = "主键id")
    private Long id;
    private Byte sort;
    /**
     * æ ‡é¢˜
     */
@@ -32,54 +27,24 @@
     */
    @ApiModelProperty(value = "渠道码01-内站信02-邮件03-短信")
    private String channelCode;
    /**
     * æ¶ˆæ¯ç±»åž‹
     */
    @ApiModelProperty(value = "填充栏目编码")
    private Integer messageType;
    /**
     * æ¶ˆæ¯ä½“
     */
    @ApiModelProperty(value = "消息体")
    private String body;
    /**
     * å‘送者
     */
    @ApiModelProperty(value = "发送者")
    private String targetFrom;
    /**
     * æŽ¥æ”¶è€…
     */
    @ApiModelProperty(value = "接收者")
    private String targetTo;
    /**
     * éšæœºç 
     */
    @ApiModelProperty(value = "随机码")
    private String randomCode;
    /**
     * å‘送时间
     */
    @ApiModelProperty(value = "发送时间")
    private String sendTime;
    @ApiModelProperty(value = "开始时间")
    private String startTime;
    @ApiModelProperty(value = "开始时间")
    private String endTime;
    /**
     * çŠ¶æ€0-未发布1-已发布
     */
    @ApiModelProperty(value = "状态0-未发布1-已发布")
    private Integer status;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注 ps:预留字段")
    private String remark;
    /**
     * åˆ›å»ºäºº
     */
    @ApiModelProperty(value = "创建人")
    private Long createUser;
    /**
     * æ˜¯å¦æ‰«æ0-未扫描1-已扫描
     */
    @ApiModelProperty(value = "是否扫描0-未扫描1-已扫描")
    private Integer isScan;
    @ApiModelProperty(value = "响应结果")
    private String respondResult;
}
ycl-platform/src/main/java/com/ycl/entity/message/Message.java
@@ -14,7 +14,7 @@
/**
 * <p>
 *   æ¶ˆæ¯å®žä½“ç±»
 * æ¶ˆæ¯å®žä½“ç±»
 * </p>
 *
 * @author mg
@@ -167,4 +167,6 @@
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    @ApiModelProperty(value = "响应结果")
    private String respondResult;
}
ycl-platform/src/main/java/com/ycl/entity/message/SendReq.java
New file
@@ -0,0 +1,15 @@
package com.ycl.entity.message;
import lombok.Data;
@Data
public class SendReq {
    private String apId;
    private String ecName;    //集团名称
    private String sign;    //网关签名编码
    private String addSerial;    //拓展码 å¡«ç©º
    private String mac;//请求url
    private String mobiles;
    private String context;
}
ycl-platform/src/main/java/com/ycl/entity/message/SendRes.java
New file
@@ -0,0 +1,10 @@
package com.ycl.entity.message;
import lombok.Data;
@Data
public class SendRes {
    private String rspcod;
    private String mgsGroup;
    private String success;
}
ycl-platform/src/main/java/com/ycl/mapper/message/MessageMapper.java
@@ -1,6 +1,8 @@
package com.ycl.mapper.message;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.dto.message.MessageParam;
import com.ycl.entity.message.Message;
/**
@@ -12,4 +14,5 @@
 * @since 2022-10-08
 */
public interface MessageMapper extends BaseMapper<Message> {
    Page<Message> selectMessagePage(Page<Message> page, MessageParam messageParam);
}
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -8,9 +8,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.bo.AdminUserDetails;
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.common.constant.StepName;
import com.ycl.common.util.DateUtil;
import com.ycl.controller.video.common.constant.BaseCaseStatus;
import com.ycl.controller.video.common.constant.StepName;
import com.ycl.controller.video.common.util.DateUtil;
import com.ycl.dto.caseHandler.QueryForViolationParam;
import com.ycl.dto.casePool.IllegalBuildingParam;
import com.ycl.dto.casePool.ViolationParam;
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/CheckHandleServiceImpl.java
@@ -3,9 +3,9 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.common.constant.CheckResult;
import com.ycl.common.constant.StepName;
import com.ycl.controller.video.common.constant.BaseCaseStatus;
import com.ycl.controller.video.common.constant.CheckResult;
import com.ycl.controller.video.common.constant.StepName;
import com.ycl.dto.caseHandler.ChechParam;
import com.ycl.entity.caseHandler.BaseCase;
import com.ycl.entity.caseHandler.DisposeRecord;
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java
@@ -5,8 +5,8 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.bo.AdminUserDetails;
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.common.constant.StepName;
import com.ycl.controller.video.common.constant.BaseCaseStatus;
import com.ycl.controller.video.common.constant.StepName;
import com.ycl.dto.dispatch.UploadDisposingResultParam;
import com.ycl.entity.caseHandler.*;
import com.ycl.entity.resources.ImageResources;
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/IDispatchHandleServiceImpl.java
@@ -3,8 +3,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.constant.BaseCaseStatus;
import com.ycl.common.constant.StepName;
import com.ycl.controller.video.common.constant.BaseCaseStatus;
import com.ycl.controller.video.common.constant.StepName;
import com.ycl.dto.caseHandler.DispatchInfoParam;
import com.ycl.entity.caseHandler.BaseCase;
import com.ycl.entity.caseHandler.DispatchInfo;
ycl-platform/src/main/java/com/ycl/service/message/IMessageService.java
@@ -1,6 +1,6 @@
package com.ycl.service.message;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ycl.dto.message.MessageParam;
import com.ycl.entity.message.Message;
@@ -9,7 +9,7 @@
/**
 * <p>
 *   æ¶ˆæ¯æœåŠ¡ç±»
 * æ¶ˆæ¯æœåŠ¡ç±»
 * </p>
 *
 * @author mg
@@ -17,8 +17,9 @@
 */
public interface IMessageService extends IService<Message> {
    Message sendMessage(MessageParam messageParam);
    IPage<Message> list(MessageParam messageParam);
    String sendMessage(Message message);
    Page<Message> list(MessageParam messageParam);
    Boolean deleteMessages(List<Long> ids);
}
ycl-platform/src/main/java/com/ycl/service/message/Provider.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/Sender.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/factory/InnerFactory.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/factory/InnerSender.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/factory/MailFactory.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/factory/SmsFactory.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/factory/SmsSender.java
File was deleted
ycl-platform/src/main/java/com/ycl/service/message/impl/MessageServiceImpl.java
@@ -1,26 +1,42 @@
package com.ycl.service.message.impl;
import cn.hutool.core.net.url.UrlBuilder;
import cn.hutool.core.net.url.UrlPath;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.constant.ChannelCode;
import com.ycl.common.util.CommonUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ycl.controller.video.common.constant.ChannelCode;
import com.ycl.controller.video.common.util.CommonUtils;
import com.ycl.dto.message.MessageParam;
import com.ycl.entity.message.Message;
import com.ycl.entity.message.SendReq;
import com.ycl.entity.message.SendRes;
import com.ycl.entity.user.UmsAdmin;
import com.ycl.exception.ApiException;
import com.ycl.mapper.message.MessageMapper;
import com.ycl.mapper.user.UmsAdminMapper;
import com.ycl.service.message.IMessageService;
import com.ycl.service.message.Provider;
import com.ycl.service.message.Sender;
import com.ycl.service.message.factory.InnerFactory;
import com.ycl.service.message.factory.MailFactory;
import com.ycl.service.message.factory.SmsFactory;
import com.ycl.utils.MD5Util;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Base64Utils;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.mail.internet.MimeMessage;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -35,78 +51,162 @@
@Service
public class MessageServiceImpl extends ServiceImpl<MessageMapper, Message> implements IMessageService {
    @Value("${e-mail.sendHost}")
    private String sendHost;
    @Value("${e-mail.username}")
    private String userName;
    @Value("${e-mail.password}")
    private String password;
    @Value(value = "${SMS.ecName}")
    private String ecName;     //集团客户名称
    @Value(value = "${SMS.apId}")
    private String apId;       //用户名
    @Value(value = "${SMS.sign}")
    private String sign;       //网关签名编码,必填,签名编码在中国移动集团开通帐号后分配,可以在云MAS网页端管理子系统-SMS接口管理功能中下载。
    @Value(value = "${SMS.url}")
    private String url;
    @Resource
    private UmsAdminMapper umsAdminMapper;
    @Resource
    private MessageMapper messageMapper;
    @Resource
    RestTemplate restTemplate;
    @Override
    public Message sendMessage(MessageParam messageParam) {
        Message message = null;
        Provider provider = null;
        switch (messageParam.getChannelCode())
        {
            //内站发送
            case ChannelCode.INNER:
                provider = new InnerFactory();
                break;
    @Transactional(rollbackFor = Exception.class)
    public String sendMessage(Message message) {
        Message savedMessage = messageMapper.selectOne(new LambdaQueryWrapper<Message>()
                .eq(Message::getTargetTo, message.getTargetTo())
                .eq(Message::getTargetFrom, message.getTargetFrom()));
        if (savedMessage != null) {
            messageMapper.deleteById(savedMessage);
        }
        ArrayList<Long> ids = new ArrayList<>();
        for (String receive : message.getTargetTo().split(",")) {
            Message sendMessage = new Message();
            BeanUtils.copyProperties(message, sendMessage);
            sendMessage.setCreateTime(new Date());
            sendMessage.setSendTime(new Date());
            sendMessage.setTargetTo(receive);
            sendMessage.setSendTime(new Date());
            this.save(sendMessage);
            ids.add(sendMessage.getId());
        }
        switch (message.getChannelCode()) {
            //邮件发送
            case ChannelCode.SMS:
                provider = new MailFactory();
                sendSMS(message, ids);
                break;
             //短信发送
            //短信发送
            case ChannelCode.MAIL:
                provider = new SmsFactory();
                sendMail(message);
                break;
            default:
                throw new ApiException("未匹配到该类型");
        }
        Sender sender = provider.produce();
        sender.sendMessage(messageParam);
        return message;
        return "send message success!";
    }
    @SneakyThrows
    private void sendSMS(Message message, List<Long> mesIds) {
        String context = "【" + message.getHead() + "】" + message.getBody();
        String addSerial = "";
        SendReq sendReq = new SendReq();
        sendReq.setEcName(ecName);
        sendReq.setApId(apId);
        sendReq.setSign(sign);
        sendReq.setContext(context);
        String[] ids = message.getTargetTo().split(",");
        String[] mobiles = new String[ids.length];
        for (int i = 0; i < ids.length; i++) {
            mobiles[i] = umsAdminMapper.selectById(ids[i]).getMobile();
        }
        sendReq.setMobiles(StringUtils.join(mobiles, ","));
        sendReq.setAddSerial(addSerial);
        StringBuffer mac = new StringBuffer();
        mac.append(ecName);
        mac.append(apId);
        mac.append(sendReq.getMobiles());
        mac.append(context);
        mac.append(sign);
        mac.append(addSerial);
        sendReq.setMac(MD5Util.md5Encrypt32Lower(mac.toString()));
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setContentType(MediaType.APPLICATION_JSON);
        ObjectMapper objectMapper = new ObjectMapper();
        HttpEntity<String> stringHttpEntity = new HttpEntity<>(Base64Utils.encodeToString(objectMapper.writeValueAsBytes(mac)), httpHeaders);
        SendRes sendRes = objectMapper.readValue(restTemplate.postForEntity(url, stringHttpEntity, String.class).getBody(), SendRes.class);
        Message sendedMessage = new Message();
        if (sendRes.getRspcod().equals("success")) {
            for (Long id : mesIds) {
                sendedMessage.setStatus(2);
                sendedMessage.setRespondResult("发送成功");
                sendedMessage.setId(id);
                sendedMessage.setUpdateTime(new Date());
                sendedMessage.setSendTime(new Date());
                messageMapper.updateById(sendedMessage);
            }
        } else {
            for (Long id : mesIds) {
                sendedMessage.setStatus(3);
                sendedMessage.setRespondResult("发送失败");
                sendedMessage.setSendTime(new Date());
                sendedMessage.setId(id);
                sendedMessage.setUpdateTime(new Date());
                messageMapper.updateById(sendedMessage);
            }
        }
    }
    //发送邮件
    @SneakyThrows
    private void sendMail(Message message) {
        JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
        javaMailSender.setHost(sendHost);
        javaMailSender.setUsername(userName);
        javaMailSender.setPassword(password);
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
        helper.setText(message.getBody());
        helper.setSubject(message.getHead());
        helper.setFrom(userName);
        String[] ids = message.getTargetTo().split(",");
        String[] address = new String[ids.length];
        for (int i = 0; i < ids.length; i++) {
            address[i] = umsAdminMapper.selectById(ids[i]).getEmail();
        }
        helper.setTo(address);
        javaMailSender.send(mimeMessage);
    }
    @Override
    public IPage<Message> list(MessageParam messageParam) {
    public Page<Message> list(MessageParam messageParam) {
        Page<Message> page = new Page<>(messageParam.getCurrent(), messageParam.getPageSize());
        LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(Message::getParentId, 0);
        if (!CommonUtils.isEmpty(messageParam.getHead())) {
            queryWrapper.eq(Message::getHead, messageParam.getHead());
        }
        if (!CommonUtils.isEmpty(messageParam.getChannelCode())) {
            queryWrapper.eq(Message::getChannelCode, messageParam.getChannelCode());
        }
        if (!CommonUtils.isEmpty(messageParam.getStatus())) {
            queryWrapper.eq(Message::getStatus, messageParam.getStatus());
        }
        queryWrapper.orderByDesc(Message::getCreateTime);
        Page<Message> result = baseMapper.selectPage(page, queryWrapper);
        List<Message> messages = result.getRecords();
        if (!CommonUtils.isEmpty(messages)) {
            List<Long> ids = messages.stream().map(e -> Long.parseLong(e.getTargetFrom().trim())).collect(Collectors.toList());
            LambdaQueryWrapper<UmsAdmin> queryUSers = new LambdaQueryWrapper<>();
            queryUSers.in(UmsAdmin::getId, ids);
            List<UmsAdmin> users = umsAdminMapper.selectList(queryUSers);
            if (!CommonUtils.isEmpty(users)) {
                for (UmsAdmin user : users) {
                    for (Message message : messages) {
                        if (message.getTargetFrom().equals(user.getId()+"")) {
                            message.setTargetFrom(user.getUsername());
                        }
                    }
                }
            }
        }
        return result;
        return messageMapper.selectMessagePage(page,messageParam);
    }
    @Override
    public Boolean deleteMessages(List<Long> ids) {
        LambdaQueryWrapper<Message> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.in(Message::getId, ids).or().in(Message::getParentId,ids);
        queryWrapper.in(Message::getId, ids).or().in(Message::getParentId, ids);
        List<Message> messages = baseMapper.selectList(queryWrapper);
        if (CommonUtils.isNotEmpty(messages)) {
            List<Long>  deleteIds = messages.stream().map(Message::getId).collect(Collectors.toList());
            List<Long> deleteIds = messages.stream().map(Message::getId).collect(Collectors.toList());
            baseMapper.deleteBatchIds(deleteIds);
        }
        return true;
ycl-platform/src/main/java/com/ycl/service/message/impl/SmsAuditServiceImpl.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.util.CommonUtils;
import com.ycl.controller.video.common.util.CommonUtils;
import com.ycl.dto.message.MessageSmsParam;
import com.ycl.entity.message.Message;
import com.ycl.entity.message.SmsAudit;
@@ -14,7 +14,6 @@
import com.ycl.mapper.message.SmsAuditMapper;
import com.ycl.mapper.user.UmsDepartManageMapper;
import com.ycl.service.message.ISmsAuditService;
import com.ycl.service.message.factory.SmsSender;
import com.ycl.service.user.UmsAdminService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -25,7 +24,7 @@
/**
 * <p>
 *  çŸ­ä¿¡å®¡æ ¸ æœåŠ¡å®žçŽ°ç±»
 * çŸ­ä¿¡å®¡æ ¸ æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author mg
@@ -41,8 +40,6 @@
    @Resource
    private UmsAdminService adminService;
    @Resource
    private SmsSender smsSender;
    @Override
    public IPage<SmsAudit> list(SmsAudit smsAudit) {
@@ -72,18 +69,14 @@
        queryDeptWrapper.in(UmsDepartManage::getUserId, ids);
        List<UmsDepartManage> depts = umsDepartManageMapper.selectList(queryDeptWrapper);
        //部门去重
        List<UmsDepartManage> uniques = depts.stream().collect(
                Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o->o.getDepartId()))),
                        ArrayList::new));
        List<UmsDepartManage> uniques = depts.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getDepartId()))), ArrayList::new));
        List<Long> deptLeadIds = uniques.stream().map(UmsDepartManage::getDepartId).collect(Collectors.toList());
        LambdaQueryWrapper<UmsDepartManage> queryDeptLeadWrapper = new LambdaQueryWrapper<>();
        queryDeptLeadWrapper.in(UmsDepartManage::getDepartId, deptLeadIds).eq(UmsDepartManage::getIsLeader,1);
        queryDeptLeadWrapper.in(UmsDepartManage::getDepartId, deptLeadIds).eq(UmsDepartManage::getIsLeader, 1);
        List<UmsDepartManage> deptLeads = umsDepartManageMapper.selectList(queryDeptLeadWrapper);
        //审核去重
        List<UmsDepartManage> uniqueLeads = deptLeads.stream().collect(
                Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o->o.getUserId()))),
                        ArrayList::new));
        List<UmsDepartManage> uniqueLeads = deptLeads.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getUserId()))), ArrayList::new));
        //添加短信审核
        List<SmsAudit> audits = new ArrayList<>();
        for (UmsDepartManage depart : uniqueLeads) {
@@ -104,8 +97,7 @@
    @Override
    public Boolean checkSms(MessageSmsParam messageSmsParam) {
        switch (messageSmsParam.getStatus())
        {
        switch (messageSmsParam.getStatus()) {
            //未通过
            case 0:
                noPassMethod(messageSmsParam);
@@ -119,6 +111,7 @@
        }
        return true;
    }
    @Transactional
    public void passMethod(MessageSmsParam messageSmsParam) {
        Message message = messageMapper.selectById(messageSmsParam.getMessageId());
@@ -128,8 +121,6 @@
        //id换成手机号
        String targetToPhone = adminService.getTargetTo(message.getTargetTo(), message.getChannelCode());
        message.setTargetTo(targetToPhone);
        //发送短信
        smsSender.sendSms(message);
        Message updateMessage = new Message();
        updateMessage.setSendTime(new Date());
@@ -143,17 +134,20 @@
        //审核短信更新
        updateSmsAudit(messageSmsParam);
    }
    @Transactional
    public void noPassMethod(MessageSmsParam messageSmsParam) {
        //审核短信更新
        updateSmsAudit(messageSmsParam);
    }
    public void updateSmsAudit(MessageSmsParam messageSmsParam) {
        SmsAudit smsAudit = packageData(messageSmsParam);
        LambdaQueryWrapper<SmsAudit> smsAuditUpdate = new LambdaQueryWrapper<>();
        smsAuditUpdate.eq(SmsAudit::getMessageId, messageSmsParam.getMessageId());
        baseMapper.update(smsAudit,smsAuditUpdate);
        baseMapper.update(smsAudit, smsAuditUpdate);
    }
    public SmsAudit packageData(MessageSmsParam messageSmsParam) {
        SmsAudit smsAudit = new SmsAudit();
        smsAudit.setMessageId(messageSmsParam.getMessageId());
ycl-platform/src/main/java/com/ycl/service/message/impl/SmsTemplateServiceImpl.java
@@ -4,7 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.common.util.CommonUtils;
import com.ycl.controller.video.common.util.CommonUtils;
import com.ycl.entity.message.SmsTemplate;
import com.ycl.mapper.message.SmsTemplateMapper;
import com.ycl.service.message.ISmsTemplateService;
ycl-platform/src/main/java/com/ycl/service/video/impl/VideoInspectionServiceImpl.java
@@ -1,8 +1,6 @@
package com.ycl.service.video.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycl.common.util.CommonUtils;
import com.ycl.entity.video.VideoPoint;
import com.ycl.mapper.video.VideoPointMapper;
import com.ycl.service.video.IVideoInspectionService;
import com.ycl.vo.equipment.VideoPointVo;
ycl-platform/src/main/java/com/ycl/vo/message/MessageVO.java
New file
@@ -0,0 +1,91 @@
package com.ycl.vo.message;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
 * <p>
 * æ¶ˆæ¯å®žä½“ç±»
 * </p>
 *
 * @author mg
 * @since 2022-10-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("ums_message")
@ApiModel(value = "消息表")
public class MessageVO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * ä¸»é”®
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * æ ‡é¢˜
     */
    @TableField("head")
    @ApiModelProperty(value = "标题")
    private String head;
    /**
     * æ¶ˆæ¯ç±»åž‹
     */
    @TableField("message_type")
    @ApiModelProperty(value = "填充栏目编码")
    private String messageTypeName;
    /**
     * æ¶ˆæ¯ä½“
     */
    @ApiModelProperty(value = "消息体")
    private String body;
    /**
     * å‘送者
     */
    @ApiModelProperty(value = "发送者")
    private String targetFrom;
    /**
     * å‘送时间
     */
    @ApiModelProperty(value = "发送时间")
    @JsonFormat(timezone = "GMT", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sendTime;
    /**
     * çŠ¶æ€0-未发布1-已发布
     */
    @ApiModelProperty(value = "状态0-未发布1-已发布")
    private Integer status;
    @ApiModelProperty(value = "创建人")
    private String createUser;
    /**
     * åˆ›å»ºæ—¶é—´
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(timezone = "GMT", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty(value = "响应结果")
    private String respondResult;
}
ycl-platform/src/main/resources/application-dev.yml
@@ -11,7 +11,7 @@
  groupName: sczhzf
  soTimeout: 1500
  connectTimeout: 600
  trackerList:            #TrackerList参数,支持多个
  trackerList: #TrackerList参数,支持多个
    - 140.143.152.226:22122
cfg:
@@ -20,10 +20,6 @@
  snow-flake:
    datacenterId: 1
    machineId: 1
mail:
  host: smtp.163.com
  username: maokecheng2015@163.com
  authorizationCode: JOMMIXUTGAJYOSNA
spring:
  redis:
@@ -57,3 +53,14 @@
    testOnReturn: false
    poolPreparedStatements: true
    maxOpenPreparedStatements: 20
e-mail:
  sendHost: smtp.qq.com
  username: 1723292425@qq.com
  password: qizcitupatzoeeij
SMS:
  ecName: ycl
  apId: 1
  sign: sign
  url: http://localhost:8082/sccg/text/sms_res/fail
ycl-platform/src/main/resources/application.yml
@@ -88,3 +88,4 @@
      - /**/system/portal/logo/search
      - /**/unauthorized/**
      - /**/api/**
      - /**/text/**
ycl-platform/src/test/java/com/ycl/sccgplatform/SccgPlatformApplicationTests.java
@@ -1,13 +1,12 @@
package com.ycl.sccgplatform;
import com.ycl.common.util.UtilNumber;
import com.ycl.controller.video.common.util.UtilNumber;
import com.ycl.enums.common.DictTypeEnum;
import com.ycl.service.caseHandler.IBaseCaseService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;