Browse Source

提交:短信推送

pull/7/head
袁强 3 weeks ago
parent
commit
1f3c325641
  1. 11
      dk-api/api-system/src/main/java/org/dromara/system/api/RemoteSubmailConfigService.java
  2. 2
      dk-common/common-mybatis/src/main/resources/common-mybatis.yml
  3. 2
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java
  4. 36
      dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java
  5. 59
      dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java
  6. 57
      dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java
  7. 56
      dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java
  8. 8
      dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java
  9. 16
      dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java
  10. 22
      dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java
  11. 16
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java
  12. 47
      dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java
  13. 11
      dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml
  14. 2
      dk-modules/system/src/main/java/org/dromara/system/DKSystemApplication.java
  15. 10
      dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java
  16. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/SysUser.java
  17. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java
  18. 1
      dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java
  19. 39
      dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteSubmailConfigServiceImpl.java
  20. 4
      dk-modules/system/src/main/java/org/dromara/system/service/ISysSubmailConfigService.java
  21. 1
      dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java
  22. 74
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysSubmailConfigServiceImpl.java
  23. 8
      dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java
  24. 2
      dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml
  25. 4
      dk-visual/nacos/src/main/resources/application.properties

11
dk-api/api-system/src/main/java/org/dromara/system/api/RemoteSubmailConfigService.java

@ -3,6 +3,10 @@ package org.dromara.system.api;
import org.dromara.common.core.domain.R;
import org.dromara.system.api.domain.vo.RemoteClientVo;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 客户端服务
*
@ -17,4 +21,11 @@ public interface RemoteSubmailConfigService {
*/
R<String> remoteCmdSend(String code, String multiParam );
/**
* @param code 编码
* @param alertList 预警信息
* @return 客户端对象
*/
void remoteSend(String code,List<Map<String, Object>> alertList);
}

2
dk-common/common-mybatis/src/main/resources/common-mybatis.yml

@ -23,7 +23,7 @@ mybatis-plus:
dbConfig:
# 主键类型
# AUTO 自增 NONE 空 INPUT 用户输入 ASSIGN_ID 雪花 ASSIGN_UUID 唯一 UUID
idType: ASSIGN_ID
idType: AUTO
# 逻辑已删除值(框架表均使用此值 禁止随意修改)
logicDeleteValue: 2
# 逻辑未删除值

2
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessAlertController.java

@ -157,7 +157,7 @@ public class BusinessAlertController extends BaseController {
/**
* 查询全部预警/待办/已完成/忽略
* 前端视频画框
*/
@Operation(summary ="ai实时流预警保存",description = "ai实时流预警保存")
@PostMapping("/saveAlertList")

36
dk-modules/business/src/main/java/org/dromara/business/controller/BusinessLayerController.java

@ -0,0 +1,36 @@
package org.dromara.business.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.business.service.IBusinessLayerService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@Tag(name = "图层模块")
@RequestMapping("/layer")
public class BusinessLayerController {
private final IBusinessLayerService businessLayerService;
/**
* 图层模块列表
*/
@SaCheckPermission("business:task:list")
@GetMapping("/list")
public TableDataInfo<BusinessLayerVo> list(BusinessLayerBo bo, PageQuery pageQuery) {
return businessLayerService.queryPageList(bo, pageQuery);
}
}

59
dk-modules/business/src/main/java/org/dromara/business/domain/BusinessLayer.java

@ -0,0 +1,59 @@
package org.dromara.business.domain;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@EqualsAndHashCode
@TableName("business_layer")
public class BusinessLayer {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName;
//租户id
private String tenantId;
//部门id
private Long deptId;
//部门名称
private String deptName;
//备注
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

57
dk-modules/business/src/main/java/org/dromara/business/domain/bo/BusinessLayerBo.java

@ -0,0 +1,57 @@
package org.dromara.business.domain.bo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusinessLayer.class,reverseConvertGenerate = false)
public class BusinessLayerBo {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
@NotNull(message = "图层名称不能为空", groups = { AddGroup.class})
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
@NotNull(message = "图层类型不能为空", groups = { AddGroup.class})
private Integer layerType;
private String tenantId;
@NotNull(message = "部门id不能为空", groups = { AddGroup.class})
private Long deptId;
@NotNull(message = "部门名称不能为空", groups = { AddGroup.class})
private String deptName;
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

56
dk-modules/business/src/main/java/org/dromara/business/domain/vo/BusinessLayerVo.java

@ -0,0 +1,56 @@
package org.dromara.business.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.BusinessTask;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import java.io.Serial;
import java.util.Date;
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BusinessLayer.class)
public class BusinessLayerVo {
@Serial
private static final long serialVersionUID = 1L;
/**
* id
*/
private Long id;
private String layerName;
/*0:禁用 1:启用*/
private Boolean enable;
/**
* 时间
* */
private Date createTime;
private Integer layerType;
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "layerType", other = "layer_type")
private String layerTypeName;
private String tenantId;
private Long deptId;
private String deptName;
private String remark;
//排序
private Integer sort;
//父部门id
private Integer parentId;
}

8
dk-modules/business/src/main/java/org/dromara/business/dubbo/RemoteBusinessAlertServiceImpl.java

@ -1,6 +1,7 @@
package org.dromara.business.dubbo;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.business.api.RemoteBusinessAlertService;
import org.dromara.business.api.domain.bo.RemoteBusinessAlertBo;
@ -9,6 +10,8 @@ import org.dromara.business.domain.vo.BusinessAlertVo;
import org.dromara.business.service.IBusinessAlertService;
import org.dromara.business.utils.MinioUntil;
import org.dromara.business.utils.constants.MinIOConstants;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.RemoteUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -26,7 +29,8 @@ import java.util.stream.Collectors;
public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertService {
private final IBusinessAlertService businessAlertService;
@DubboReference(timeout = 30000)
private RemoteSubmailConfigService remoteSubmailConfigService;
@Override
public Boolean saveBusinessAlert(List<RemoteBusinessAlertVo> alertVoList, String activeProfile) {
@ -84,5 +88,7 @@ public class RemoteBusinessAlertServiceImpl implements RemoteBusinessAlertServic
}).toList();
businessAlertService.batchUpdateDept(alertVoList);
//短信推送
remoteSubmailConfigService.remoteSend("smsMultixsend", alertList);
}
}

16
dk-modules/business/src/main/java/org/dromara/business/mapper/BusinessLayerMapper.java

@ -0,0 +1,16 @@
package org.dromara.business.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.bo.BusinessTaskBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
public interface BusinessLayerMapper extends BaseMapperPlus<BusinessLayer, BusinessLayerVo> {
Page<BusinessLayerVo> queryPageList(@Param("page") Page<?> page, @Param("bo") BusinessLayerBo bo);
}

22
dk-modules/business/src/main/java/org/dromara/business/service/IBusinessLayerService.java

@ -0,0 +1,22 @@
package org.dromara.business.service;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
public interface IBusinessLayerService {
/**
* 分页查询工单预约列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 工单预约分页列表
*/
TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery);
Boolean insert(BusinessLayerBo bo);
Boolean update(BusinessLayerBo bo);
Boolean delete(Long id);
}

16
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java

@ -6,6 +6,7 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@ -42,6 +43,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.system.api.RemoteLabelPostService;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteAiLabelPostVo;
import org.dromara.system.api.domain.vo.RemoteUserVo;
@ -85,6 +87,8 @@ import java.util.Base64;
public class BusinessAlertServiceImpl implements IBusinessAlertService {
private final BusinessAlertMapper baseMapper;
@DubboReference(timeout = 30000)
private RemoteSubmailConfigService remoteSubmailConfigService;
@Autowired
private BusinessAlertConstructInfoMapper businessAlertConstructInfoMapper;
@ -153,15 +157,23 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
public void addBusinessAlertList(List<BusinessAlertVo> alertVoList) {
if(!alertVoList.isEmpty()) {
incrementalCount(alertVoList);
//用于短信推送
List<Map<String, Object>> noticeList=new ArrayList<>();
List<RemoteStartProcess> remoteStartProcessList = new ArrayList<>();
for (BusinessAlertVo alertVo : alertVoList) {
Map<String,Object>map=new HashMap<>();
alertVo.setBusinessType(2);
alertVo.setHandleType(BusinessStatusEnum.WAITING.getStatus());
BusinessAlert alert = addBusinessAlert(alertVo);
RemoteStartProcess startProcess = new RemoteStartProcess();
startProcess.setBusinessId(String.valueOf(alert.getId()));
startProcess.setFlowCode("alertChz");
map.put("deptId",alertVo.getDeptId());
map.put("deptName",alertVo.getDeptName());
map.put("labelCn",alertVo.getLabelCn());
map.put("labelEn",alertVo.getLabelEn());
map.put("jobName",alertVo.getJobName());
noticeList.add(map);
remoteStartProcessList.add(startProcess);
}
@ -171,6 +183,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
//批量新增部门区域数据
remoteWorkflowService.startWorkFlowBatch(batch);
});
remoteSubmailConfigService.remoteSend("smsMultixsend",noticeList);
}
}
@ -988,6 +1001,7 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService {
//更新number
this.baseMapper.batchUpdateCaseNumber(alertVoList);
} catch (Exception e) {
log.error(e.getMessage(),e);
}

47
dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessLayerServiceImpl.java

@ -0,0 +1,47 @@
package org.dromara.business.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.convert.impl.MapConverter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.business.domain.BusinessLayer;
import org.dromara.business.domain.bo.BusinessLayerBo;
import org.dromara.business.domain.vo.BusinessLayerVo;
import org.dromara.business.mapper.BusinessLayerMapper;
import org.dromara.business.service.IBusinessLayerService;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
@Slf4j
@RequiredArgsConstructor
@Service
public class BusinessLayerServiceImpl implements IBusinessLayerService {
private final BusinessLayerMapper baseMapper;
@Override
public TableDataInfo<BusinessLayerVo> queryPageList(BusinessLayerBo bo, PageQuery pageQuery) {
Page<BusinessLayerVo> result = baseMapper.queryPageList(pageQuery.build(), bo);
return TableDataInfo.build(result);
}
@Override
public Boolean insert(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
return baseMapper.insert(layerVo)>0;
}
@Override
public Boolean update(BusinessLayerBo bo) {
BusinessLayer layerVo = Convert.convert( BusinessLayer.class,bo);
return baseMapper.updateById(layerVo)>0;
}
@Override
public Boolean delete(Long id) {
return baseMapper.deleteById(id)>0;
}
}

11
dk-modules/business/src/main/resources/mapper/business/BusinessLayerMapper.xml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.business.mapper.BusinessLayerMapper">
<select id="queryPageList" resultType="org.dromara.business.domain.vo.BusinessLayerVo">
</select>
</mapper>

2
dk-modules/system/src/main/java/org/dromara/system/DKSystemApplication.java

@ -4,6 +4,7 @@ import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* 系统模块
@ -12,6 +13,7 @@ import org.springframework.boot.context.metrics.buffering.BufferingApplicationSt
*/
@EnableDubbo
@SpringBootApplication
@EnableAsync
public class DKSystemApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(DKSystemApplication.class);

10
dk-modules/system/src/main/java/org/dromara/system/controller/system/SysUserController.java

@ -274,6 +274,16 @@ public class SysUserController extends BaseController {
return toAjax(userService.updateUserStatus(user.getUserId(), user.getStatus()));
}
/**
* 状态修改
*/
@SaCheckPermission("system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/noticeType")
public R<Void> noticeType(@RequestBody SysUserBo user) {
return toAjax(userService.updateUserNoticeType(user.getUserId(), user.getNoticeType()));
}
/**
* 根据用户编号获取授权角色
*

1
dk-modules/system/src/main/java/org/dromara/system/domain/SysUser.java

@ -98,6 +98,7 @@ public class SysUser extends TenantEntity {
*/
private Date loginDate;
private Integer noticeType;
/**
* 备注
*/

1
dk-modules/system/src/main/java/org/dromara/system/domain/bo/SysUserBo.java

@ -108,6 +108,7 @@ public class SysUserBo extends BaseEntity {
*/
private String excludeUserIds;
private Integer noticeType;
/**
* 平台名称
*/

1
dk-modules/system/src/main/java/org/dromara/system/domain/vo/SysUserVo.java

@ -47,6 +47,7 @@ public class SysUserVo implements Serializable {
* 用户账号
*/
private String userName;
private Integer noticeType;
/**
* 用户昵称

39
dk-modules/system/src/main/java/org/dromara/system/dubbo/RemoteSubmailConfigServiceImpl.java

@ -1,17 +1,27 @@
package org.dromara.system.dubbo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.domain.R;
import org.dromara.system.api.RemoteClientService;
import org.dromara.system.api.RemoteSubmailConfigService;
import org.dromara.system.api.domain.vo.RemoteClientVo;
import org.dromara.system.domain.vo.SysClientVo;
import org.dromara.system.service.ISysClientService;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.service.ISysSubmailConfigService;
import org.dromara.system.service.ISysUserService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* 客户端服务
*
@ -25,6 +35,7 @@ public class RemoteSubmailConfigServiceImpl implements RemoteSubmailConfigServic
private final ISysSubmailConfigService sysSubmailConfigService;
private final ISysUserService userService;
/**
*
@ -36,4 +47,22 @@ public class RemoteSubmailConfigServiceImpl implements RemoteSubmailConfigServic
public R<String> remoteCmdSend(String code, String multiParam) {
return sysSubmailConfigService.cmdSend(code, multiParam);
}
/**
* 根据部门获取部门下的短信推送人员,进行推送
* */
@Override
@Async
public void remoteSend(String code, List<Map<String, Object>> alertList) {
if(!alertList.isEmpty()){
for (Map<String, Object> map : alertList) {
Long deptId = Convert.toLong(map.get("deptId"));
List<SysUserVo> sysUserVos = userService.selectUserListByDept(Convert.toLong(deptId));
Set<String> phones = sysUserVos.stream().filter(u -> u.getNoticeType() == 1 && StrUtil.isNotEmpty(u.getPhonenumber())).map(SysUserVo::getPhonenumber).collect(Collectors.toSet());
sysSubmailConfigService.sendPhone(code,phones, JSON.toJSONString(map));
}
}
}
}

4
dk-modules/system/src/main/java/org/dromara/system/service/ISysSubmailConfigService.java

@ -10,6 +10,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
import java.util.Set;
/**
* 赛邮服务配置Service接口
@ -71,5 +72,8 @@ public interface ISysSubmailConfigService {
R<String> cmdSend(String code, String multiParam);
R<String> sendPhone(String code,Set<String>phones, String multiParam);
String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList);
String submailSendPhone(SysSubmailConfigBo bo, Set<String> phones);
}

1
dk-modules/system/src/main/java/org/dromara/system/service/ISysUserService.java

@ -169,6 +169,7 @@ public interface ISysUserService {
* @return 结果
*/
int updateUserStatus(Long userId, String status);
int updateUserNoticeType(Long userId, Integer noticeType);
/**
* 修改用户基本信息

74
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysSubmailConfigServiceImpl.java

@ -32,10 +32,7 @@ import org.dromara.system.domain.SysSubmailConfig;
import org.dromara.system.mapper.SysSubmailConfigMapper;
import org.dromara.system.service.ISysSubmailConfigService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -189,6 +186,75 @@ public class SysSubmailConfigServiceImpl implements ISysSubmailConfigService {
return R.ok(result);
}
@Override
public R<String> sendPhone(String code, Set<String> phones, String multiParam) {
//找到生效配置
SysSubmailConfigBo bo = new SysSubmailConfigBo();
bo.setCode(code);
List<SysSubmailConfigVo> sysSubmailConfigVoTempList = this.queryList(bo);
if (sysSubmailConfigVoTempList.size() <= 0) {
return R.fail("暂无有效配置");
}
SysSubmailConfigVo firstConfigVo = sysSubmailConfigVoTempList.get(0);
BeanUtil.copyProperties(firstConfigVo,bo);
bo.setMultiParam(multiParam);
String result = submailSendPhone(bo,phones);
return R.ok(result);
}
public String submailSendPhone(SysSubmailConfigBo bo, Set<String> phones) {
if(!phones.isEmpty()){
String subMailSaveFlag = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("submail.log.save");
HashMap<String, Object> postParam = new HashMap<>();
postParam.put("appid", bo.getAppid());
postParam.put("signature", bo.getSignature());
String phonenumber =String.join(",", phones);;
String result = "";
switch (bo.getCode()){
case "smsSend": //短信发送 to/content
postParam.put("to", phonenumber);
postParam.put("content", bo.getContent());
result = HttpUtil.post(bo.getUrl(), postParam); //JSONUtil.parseObj(result).getStr("status")
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsXsend": //短信模板发送 to/project
postParam.put("to", phonenumber);
postParam.put("project", bo.getProject());
postParam.put("vars", bo.getVars());
result = HttpUtil.post(bo.getUrl(), postParam);
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsMultisend": //短信一对多发送 multi
// postParam.put("to", phonenumber);
// postParam.put("project", bo.getProject());
// postParam.put("vars", bo.getVars());
// result = HttpUtil.post(bo.getUrl(), postParam);
// saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
case "smsMultixsend": //短信模板一对多发送 project/multi
postParam.put("to", phonenumber);
postParam.put("project", bo.getProject());
// 拼接multi
JSONArray multiJson = new JSONArray();
for (String phone : phones) {
JSONObject entries = new JSONObject();
entries.set("to",phone);
entries.set("vars", JSONUtil.parseObj(bo.getMultiParam()));
multiJson.add(entries);
}
String multiJsonStr = multiJson.toString();
// postParam.put("multi", multiJson.toString());
postParam.put("multi", multiJsonStr);
result = HttpUtil.post(bo.getUrl(), postParam);
saveConfigLog(bo, subMailSaveFlag, phonenumber, result);
break;
}
return result;
}
return null;
}
public String submailSendUtil(SysSubmailConfigBo bo, List<SysSubmailConfigUserVo> configUserVoList) {
String subMailSaveFlag = SpringUtils.getBean(ISysConfigService.class).selectConfigByKey("submail.log.save");
HashMap<String, Object> postParam = new HashMap<>();

8
dk-modules/system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@ -376,6 +376,14 @@ public class SysUserServiceImpl implements ISysUserService {
.eq(SysUser::getUserId, userId));
}
@Override
public int updateUserNoticeType(Long userId, Integer noticeType) {
return baseMapper.update(null,
new LambdaUpdateWrapper<SysUser>()
.set(SysUser::getNoticeType, noticeType)
.eq(SysUser::getUserId, userId));
}
/**
* 修改用户基本信息
*

2
dk-modules/system/src/main/resources/mapper/system/SysUserMapper.xml

@ -17,7 +17,7 @@
${ew.getSqlSelect}
</if>
<if test="ew.getSqlSelect == null">
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.notice_type,
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.product_name
</if>
from sys_user u

4
dk-visual/nacos/src/main/resources/application.properties

@ -40,9 +40,9 @@ spring.sql.init.platform=mysql
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://114.235.183.147:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.url.0=jdbc:mysql://127.0.0.1:3306/dk_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.user.0=root
db.password.0=dkcy@yf
db.password.0=123456
### the maximum retry times for push
nacos.config.push.maxRetryTime=50

Loading…
Cancel
Save