Commit 3231a48a31e1128d83ffe5bc2b26aa4e18dfe33e
Merge branch '20220922' into 'master'
20220922 See merge request huang/thingsboard3.3.2!135
Showing
7 changed files
with
132 additions
and
62 deletions
@@ -2,14 +2,12 @@ package org.thingsboard.server.controller.yunteng; | @@ -2,14 +2,12 @@ package org.thingsboard.server.controller.yunteng; | ||
2 | 2 | ||
3 | import io.swagger.annotations.Api; | 3 | import io.swagger.annotations.Api; |
4 | import io.swagger.annotations.ApiOperation; | 4 | import io.swagger.annotations.ApiOperation; |
5 | +import io.swagger.annotations.ApiParam; | ||
5 | import lombok.RequiredArgsConstructor; | 6 | import lombok.RequiredArgsConstructor; |
6 | import org.springframework.http.HttpStatus; | 7 | import org.springframework.http.HttpStatus; |
7 | import org.springframework.http.ResponseEntity; | 8 | import org.springframework.http.ResponseEntity; |
8 | import org.springframework.security.access.prepost.PreAuthorize; | 9 | import org.springframework.security.access.prepost.PreAuthorize; |
9 | -import org.springframework.web.bind.annotation.GetMapping; | ||
10 | -import org.springframework.web.bind.annotation.RequestMapping; | ||
11 | -import org.springframework.web.bind.annotation.RequestParam; | ||
12 | -import org.springframework.web.bind.annotation.RestController; | 10 | +import org.springframework.web.bind.annotation.*; |
13 | import org.springframework.web.context.request.async.DeferredResult; | 11 | import org.springframework.web.context.request.async.DeferredResult; |
14 | import org.thingsboard.server.common.data.exception.ThingsboardException; | 12 | import org.thingsboard.server.common.data.exception.ThingsboardException; |
15 | import org.thingsboard.server.common.data.query.TsValue; | 13 | import org.thingsboard.server.common.data.query.TsValue; |
@@ -18,6 +16,7 @@ import org.thingsboard.server.common.data.yunteng.dto.HomePageLeftTopDTO; | @@ -18,6 +16,7 @@ import org.thingsboard.server.common.data.yunteng.dto.HomePageLeftTopDTO; | ||
18 | import org.thingsboard.server.common.data.yunteng.dto.TenantDTO; | 16 | import org.thingsboard.server.common.data.yunteng.dto.TenantDTO; |
19 | import org.thingsboard.server.common.data.yunteng.dto.TenantTransportMessageDTO; | 17 | import org.thingsboard.server.common.data.yunteng.dto.TenantTransportMessageDTO; |
20 | import org.thingsboard.server.common.data.yunteng.dto.statistics.HomePageAppDTO; | 18 | import org.thingsboard.server.common.data.yunteng.dto.statistics.HomePageAppDTO; |
19 | +import org.thingsboard.server.common.data.yunteng.enums.DeviceTypeEnum; | ||
21 | import org.thingsboard.server.common.data.yunteng.enums.TrendType; | 20 | import org.thingsboard.server.common.data.yunteng.enums.TrendType; |
22 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; | 21 | import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; |
23 | import org.thingsboard.server.controller.BaseController; | 22 | import org.thingsboard.server.controller.BaseController; |
@@ -103,13 +102,13 @@ public class HomePageController extends BaseController { | @@ -103,13 +102,13 @@ public class HomePageController extends BaseController { | ||
103 | 102 | ||
104 | @GetMapping("app") | 103 | @GetMapping("app") |
105 | @ApiOperation(value = "小程序首页统计信息") | 104 | @ApiOperation(value = "小程序首页统计信息") |
106 | - public ResponseEntity<HomePageAppDTO> appStatistics() | 105 | + public ResponseEntity<HomePageAppDTO> appStatistics(@ApiParam(value = "只取告警数据") @RequestParam("login") Boolean login) |
107 | throws ThingsboardException, ExecutionException, InterruptedException { | 106 | throws ThingsboardException, ExecutionException, InterruptedException { |
108 | SecurityUser user = getCurrentUser(); | 107 | SecurityUser user = getCurrentUser(); |
109 | if(user == null){ | 108 | if(user == null){ |
110 | return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); | 109 | return ResponseEntity.status(HttpStatus.FORBIDDEN).build(); |
111 | } | 110 | } |
112 | - HomePageAppDTO app = homePageService.app(user.isPtSysadmin(),user.isPtAdmin(),user.isPtTenantAdmin(),user.getTenantId(),user.getCustomerId()); | 111 | + HomePageAppDTO app = homePageService.app(login,user.isPtSysadmin(),user.isPtAdmin(),user.isPtTenantAdmin(),user.getTenantId(),user.getCustomerId()); |
113 | return ResponseEntity.ok(app); | 112 | return ResponseEntity.ok(app); |
114 | } | 113 | } |
115 | } | 114 | } |
@@ -37,9 +37,9 @@ public enum ErrorMessage { | @@ -37,9 +37,9 @@ public enum ErrorMessage { | ||
37 | USER_NOT_EXISTS(400015,"用户不存在"), | 37 | USER_NOT_EXISTS(400015,"用户不存在"), |
38 | ENABLED_CONFIG_IS_EXISTED(400016,"已启用同类型配置"), | 38 | ENABLED_CONFIG_IS_EXISTED(400016,"已启用同类型配置"), |
39 | USERNAME_IS_IMMUTABLE(400017,"用户账号不可变"), | 39 | USERNAME_IS_IMMUTABLE(400017,"用户账号不可变"), |
40 | - CONFIG_IS_DISABLE(400018,"配置未启用"), | 40 | + MESSAGE_CONFIG_NOT_EXISTS(400018,"消息配置不存在或未启用"), |
41 | IT_CANT_EQUAL_ITSELF(400019,"父级组织不可以为本身"), | 41 | IT_CANT_EQUAL_ITSELF(400019,"父级组织不可以为本身"), |
42 | - TARGET_TEMPLATE_NOT_EXISTS(400020,"不存在可用的消息模板"), | 42 | + MESSAGE_TEMPLATE_NOT_EXISTS(400020,"消息模板不存在或未启用!"), |
43 | DEVICE_NOT_EXISTENCE_IN_TENANT(400021,"当前租户下不存在该设备"), | 43 | DEVICE_NOT_EXISTENCE_IN_TENANT(400021,"当前租户下不存在该设备"), |
44 | DEVICE_RELATION_IS_ABSENT(400022,"设备关联关系已不存在"), | 44 | DEVICE_RELATION_IS_ABSENT(400022,"设备关联关系已不存在"), |
45 | DATA_IS_DELETED(400023,"数据已经删除"), | 45 | DATA_IS_DELETED(400023,"数据已经删除"), |
@@ -115,7 +115,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -115,7 +115,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
115 | } | 115 | } |
116 | 116 | ||
117 | @Override | 117 | @Override |
118 | - public HomePageAppDTO app(boolean isPtSysAdmin, boolean isPtAdmin, boolean isTenantAdmin, EntityId tenantId, EntityId customerId) { | 118 | + public HomePageAppDTO app(Boolean login,boolean isPtSysAdmin, boolean isPtAdmin, boolean isTenantAdmin, EntityId tenantId, EntityId customerId) { |
119 | /** | 119 | /** |
120 | * 如果当前用户是超级管理员或平台管理员,查询所有的租户数量、客户、设备 | 120 | * 如果当前用户是超级管理员或平台管理员,查询所有的租户数量、客户、设备 |
121 | * 如果当前用户是租户管理员,查询租户下的所有 客户、设备、告警、消息量 | 121 | * 如果当前用户是租户管理员,查询租户下的所有 客户、设备、告警、消息量 |
@@ -135,6 +135,15 @@ public class HomePageServiceImpl implements HomePageService { | @@ -135,6 +135,15 @@ public class HomePageServiceImpl implements HomePageService { | ||
135 | Map<String, Object> todayFilter = buildCountFilter(entityId,startTime,endTime); | 135 | Map<String, Object> todayFilter = buildCountFilter(entityId,startTime,endTime); |
136 | 136 | ||
137 | HomePageAppDTO app = new HomePageAppDTO(); | 137 | HomePageAppDTO app = new HomePageAppDTO(); |
138 | + | ||
139 | + if (!isPtSysAdmin && !isPtAdmin ) { | ||
140 | + app.setTotalAlarm(getAlarmInfo(totalFilter)); | ||
141 | + app.setTodayAlarm(getAlarmInfo(todayFilter)); | ||
142 | + } | ||
143 | + if(login){ | ||
144 | + return app; | ||
145 | + } | ||
146 | + | ||
138 | if (isPtSysAdmin || isPtAdmin) { | 147 | if (isPtSysAdmin || isPtAdmin) { |
139 | List<TenantDTO> tenants = getTenantInfo(); | 148 | List<TenantDTO> tenants = getTenantInfo(); |
140 | AtomicInteger totalExpired = new AtomicInteger(); | 149 | AtomicInteger totalExpired = new AtomicInteger(); |
@@ -192,10 +201,7 @@ public class HomePageServiceImpl implements HomePageService { | @@ -192,10 +201,7 @@ public class HomePageServiceImpl implements HomePageService { | ||
192 | app.setTodayCustomer(today); | 201 | app.setTodayCustomer(today); |
193 | } | 202 | } |
194 | 203 | ||
195 | - if (!isPtSysAdmin && !isPtAdmin ) { | ||
196 | - app.setTotalAlarm(getAlarmInfo(totalFilter)); | ||
197 | - app.setTodayAlarm(getAlarmInfo(todayFilter)); | ||
198 | - } | 204 | + |
199 | 205 | ||
200 | if (!isPtSysAdmin && !isPtAdmin ) { | 206 | if (!isPtSysAdmin && !isPtAdmin ) { |
201 | app.setTotalMsg(getFlowStatistics(totalFilter)); | 207 | app.setTotalMsg(getFlowStatistics(totalFilter)); |
1 | package org.thingsboard.server.dao.yunteng.impl; | 1 | package org.thingsboard.server.dao.yunteng.impl; |
2 | 2 | ||
3 | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | ||
3 | import com.fasterxml.jackson.databind.JsonNode; | 4 | import com.fasterxml.jackson.databind.JsonNode; |
4 | import jakarta.mail.*; | 5 | import jakarta.mail.*; |
5 | import jakarta.mail.internet.InternetAddress; | 6 | import jakarta.mail.internet.InternetAddress; |
@@ -14,6 +15,7 @@ import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | @@ -14,6 +15,7 @@ import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants; | ||
14 | import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; | 15 | import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; |
15 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 16 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
16 | import org.thingsboard.server.common.data.yunteng.dto.request.EmailReqDTO; | 17 | import org.thingsboard.server.common.data.yunteng.dto.request.EmailReqDTO; |
18 | +import org.thingsboard.server.common.data.yunteng.enums.AssetStatusEnum; | ||
17 | import org.thingsboard.server.common.data.yunteng.enums.EmailFormatEnum; | 19 | import org.thingsboard.server.common.data.yunteng.enums.EmailFormatEnum; |
18 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; | 20 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; |
19 | import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; | 21 | import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; |
@@ -45,15 +47,38 @@ public class YtMailServiceImpl implements YtMailService { | @@ -45,15 +47,38 @@ public class YtMailServiceImpl implements YtMailService { | ||
45 | @Override | 47 | @Override |
46 | public boolean sendEmail(EmailReqDTO emailReqDTO) { | 48 | public boolean sendEmail(EmailReqDTO emailReqDTO) { |
47 | boolean result =false; | 49 | boolean result =false; |
48 | - //查询模板信息 | ||
49 | - MessageTemplate messageTemplate = messageTemplateMapper.selectById(emailReqDTO.getId()); | ||
50 | - if(null == messageTemplate){ | ||
51 | - throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | ||
52 | - } | ||
53 | - MessageConfig messageConfig =messageConfigMapper.selectById(messageTemplate.getMessageConfigId()); | ||
54 | - if (messageConfig.getStatus() != FastIotConstants.StateValue.ENABLE) { | ||
55 | - throw new YtDataValidationException(ErrorMessage.CONFIG_IS_DISABLE.getMessage()); | ||
56 | - } | 50 | + |
51 | + | ||
52 | + | ||
53 | + /**消息模板是否可用*/ | ||
54 | + QueryWrapper<MessageTemplate> messageTemplateQueryWrapper = new QueryWrapper<MessageTemplate>(); | ||
55 | + messageTemplateQueryWrapper.lambda() | ||
56 | + .eq(MessageTemplate::getId, emailReqDTO.getId()) | ||
57 | + .eq(MessageTemplate::getStatus, AssetStatusEnum.ENABLE.ordinal()); | ||
58 | + MessageTemplate messageTemplate = messageTemplateMapper.selectOne(messageTemplateQueryWrapper); | ||
59 | + if (null == messageTemplate) { | ||
60 | + throw new YtDataValidationException(ErrorMessage.MESSAGE_TEMPLATE_NOT_EXISTS.getMessage()); | ||
61 | + } | ||
62 | + | ||
63 | + /**消息配置是否可用*/ | ||
64 | + QueryWrapper<MessageConfig> configQueryWrapper = new QueryWrapper<>(); | ||
65 | + configQueryWrapper.lambda() | ||
66 | + .eq(MessageConfig::getId, messageTemplate.getMessageConfigId()) | ||
67 | + .eq(MessageConfig::getStatus, AssetStatusEnum.ENABLE.ordinal()); | ||
68 | + MessageConfig messageConfig = | ||
69 | + messageConfigMapper.selectOne(configQueryWrapper); | ||
70 | + if (null == messageConfig) { | ||
71 | + throw new YtDataValidationException(ErrorMessage.MESSAGE_CONFIG_NOT_EXISTS.getMessage()); | ||
72 | + } | ||
73 | + | ||
74 | + | ||
75 | + | ||
76 | + | ||
77 | + | ||
78 | + | ||
79 | + | ||
80 | + | ||
81 | + | ||
57 | JsonNode configNode = messageConfig.getConfig(); | 82 | JsonNode configNode = messageConfig.getConfig(); |
58 | EmailConfiguration emailConfiguration = JacksonUtil.convertValue(configNode, EmailConfiguration.class); | 83 | EmailConfiguration emailConfiguration = JacksonUtil.convertValue(configNode, EmailConfiguration.class); |
59 | if(emailConfiguration !=null){ | 84 | if(emailConfiguration !=null){ |
@@ -19,6 +19,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidatio | @@ -19,6 +19,7 @@ import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidatio | ||
19 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; | 19 | import org.thingsboard.server.common.data.yunteng.core.message.ErrorMessage; |
20 | import org.thingsboard.server.common.data.yunteng.dto.request.CodeTTL; | 20 | import org.thingsboard.server.common.data.yunteng.dto.request.CodeTTL; |
21 | import org.thingsboard.server.common.data.yunteng.dto.request.SmsReqDTO; | 21 | import org.thingsboard.server.common.data.yunteng.dto.request.SmsReqDTO; |
22 | +import org.thingsboard.server.common.data.yunteng.enums.AssetStatusEnum; | ||
22 | import org.thingsboard.server.common.data.yunteng.enums.MessageTypeEnum; | 23 | import org.thingsboard.server.common.data.yunteng.enums.MessageTypeEnum; |
23 | import org.thingsboard.server.common.data.yunteng.enums.MsgTemplatePurposeEnum; | 24 | import org.thingsboard.server.common.data.yunteng.enums.MsgTemplatePurposeEnum; |
24 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; | 25 | import org.thingsboard.server.common.data.yunteng.enums.ResponseCodeEnum; |
@@ -65,43 +66,59 @@ public class YtSmsServiceImpl implements YtSmsService { | @@ -65,43 +66,59 @@ public class YtSmsServiceImpl implements YtSmsService { | ||
65 | if (StringUtils.isEmpty(phoneNumbers) || StringUtils.isEmpty(templateId)) { | 66 | if (StringUtils.isEmpty(phoneNumbers) || StringUtils.isEmpty(templateId)) { |
66 | throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); | 67 | throw new YtDataValidationException(ErrorMessage.INVALID_PARAMETER.getMessage()); |
67 | } | 68 | } |
68 | - MessageTemplate messageTemplate = messageTemplateMapper.selectById(templateId); | ||
69 | - if (null != messageTemplate) { | ||
70 | - MessageConfig messageConfig = | ||
71 | - messageConfigMapper.selectById(messageTemplate.getMessageConfigId()); | ||
72 | - JsonNode configJsonNode = messageConfig.getConfig(); | ||
73 | - ObjectNode configObjectNode = (ObjectNode) configJsonNode; | ||
74 | - configObjectNode.put("type", messageConfig.getPlatformType()); | ||
75 | - SmsProviderConfiguration smsProviderConfiguration = | ||
76 | - JacksonUtil.convertValue(configObjectNode, SmsProviderConfiguration.class); | ||
77 | - if (null != smsProviderConfiguration) { | ||
78 | - SmsSender smsSender = ytDefaultSmsSenderFactory.createSmsSender(smsProviderConfiguration); | ||
79 | - String result = | ||
80 | - smsSender.sendSms( | ||
81 | - phoneNumbers, | ||
82 | - messageTemplate.getTemplateCode(), | ||
83 | - templateParam, | ||
84 | - messageTemplate.getSignName()); | ||
85 | - // 记录短信日志 | ||
86 | - String status = ResponseCodeEnum.SUCCESS.name(); | ||
87 | - String remark = smsReqDTO.getRemark()==null?"":smsReqDTO.getRemark(); | ||
88 | - if(!ResponseCodeEnum.SUCCESS.name().equals(result)){ | ||
89 | - status = ResponseCodeEnum.FAILED.name(); | ||
90 | - remark += result; | ||
91 | - } | ||
92 | - SmsLog smsLog = new SmsLog(); | ||
93 | - smsLog.setToPhone(phoneNumbers); | ||
94 | - smsLog.setType(messageConfig.getPlatformType()); | ||
95 | - smsLog.setStatus(status); | ||
96 | - smsLog.setRemark(remark); | ||
97 | - smsLog.setMessageTemplateId(messageTemplate.getId()); | ||
98 | - smsLog.setTemplateParam(JacksonUtil.toJsonNode(JacksonUtil.toString(templateParam))); | ||
99 | - smsLog.setSendTime(LocalDateTime.now()); | ||
100 | - smsLog.setTenantId(messageTemplate.getTenantId()); | ||
101 | - smsLog.setTemplatePurpose(smsReqDTO.getTemplatePurpose()); | ||
102 | - smsLogMapper.insert(smsLog); | ||
103 | - return ResponseCodeEnum.SUCCESS.name().equals(result); | 69 | + /**消息模板是否可用*/ |
70 | + QueryWrapper<MessageTemplate> messageTemplateQueryWrapper = new QueryWrapper<MessageTemplate>(); | ||
71 | + messageTemplateQueryWrapper.lambda() | ||
72 | + .eq(MessageTemplate::getId, templateId) | ||
73 | + .eq(MessageTemplate::getStatus, AssetStatusEnum.ENABLE.ordinal()); | ||
74 | + MessageTemplate messageTemplate = messageTemplateMapper.selectOne(messageTemplateQueryWrapper); | ||
75 | + if (null == messageTemplate) { | ||
76 | + throw new YtDataValidationException(ErrorMessage.MESSAGE_TEMPLATE_NOT_EXISTS.getMessage()); | ||
77 | + } | ||
78 | + | ||
79 | + /**消息配置是否可用*/ | ||
80 | + QueryWrapper<MessageConfig> configQueryWrapper = new QueryWrapper<>(); | ||
81 | + configQueryWrapper.lambda() | ||
82 | + .eq(MessageConfig::getId, messageTemplate.getMessageConfigId()) | ||
83 | + .eq(MessageConfig::getStatus, AssetStatusEnum.ENABLE.ordinal()); | ||
84 | + MessageConfig messageConfig = | ||
85 | + messageConfigMapper.selectOne(configQueryWrapper); | ||
86 | + if (null == messageConfig) { | ||
87 | + throw new YtDataValidationException(ErrorMessage.MESSAGE_CONFIG_NOT_EXISTS.getMessage()); | ||
88 | + } | ||
89 | + | ||
90 | + JsonNode configJsonNode = messageConfig.getConfig(); | ||
91 | + ObjectNode configObjectNode = (ObjectNode) configJsonNode; | ||
92 | + configObjectNode.put("type", messageConfig.getPlatformType()); | ||
93 | + SmsProviderConfiguration smsProviderConfiguration = | ||
94 | + JacksonUtil.convertValue(configObjectNode, SmsProviderConfiguration.class); | ||
95 | + if (null != smsProviderConfiguration) { | ||
96 | + SmsSender smsSender = ytDefaultSmsSenderFactory.createSmsSender(smsProviderConfiguration); | ||
97 | + String result = | ||
98 | + smsSender.sendSms( | ||
99 | + phoneNumbers, | ||
100 | + messageTemplate.getTemplateCode(), | ||
101 | + templateParam, | ||
102 | + messageTemplate.getSignName()); | ||
103 | + // 记录短信日志 | ||
104 | + String status = ResponseCodeEnum.SUCCESS.name(); | ||
105 | + String remark = smsReqDTO.getRemark()==null?"":smsReqDTO.getRemark(); | ||
106 | + if(!ResponseCodeEnum.SUCCESS.name().equals(result)){ | ||
107 | + status = ResponseCodeEnum.FAILED.name(); | ||
108 | + remark += result; | ||
104 | } | 109 | } |
110 | + SmsLog smsLog = new SmsLog(); | ||
111 | + smsLog.setToPhone(phoneNumbers); | ||
112 | + smsLog.setType(messageConfig.getPlatformType()); | ||
113 | + smsLog.setStatus(status); | ||
114 | + smsLog.setRemark(remark); | ||
115 | + smsLog.setMessageTemplateId(messageTemplate.getId()); | ||
116 | + smsLog.setTemplateParam(JacksonUtil.toJsonNode(JacksonUtil.toString(templateParam))); | ||
117 | + smsLog.setSendTime(LocalDateTime.now()); | ||
118 | + smsLog.setTenantId(messageTemplate.getTenantId()); | ||
119 | + smsLog.setTemplatePurpose(smsReqDTO.getTemplatePurpose()); | ||
120 | + smsLogMapper.insert(smsLog); | ||
121 | + return ResponseCodeEnum.SUCCESS.name().equals(result); | ||
105 | } | 122 | } |
106 | return false; | 123 | return false; |
107 | } | 124 | } |
@@ -136,6 +153,8 @@ public class YtSmsServiceImpl implements YtSmsService { | @@ -136,6 +153,8 @@ public class YtSmsServiceImpl implements YtSmsService { | ||
136 | if (!canSend) { | 153 | if (!canSend) { |
137 | throw new YtDataValidationException(ErrorMessage.MESSAGE_SEND_TOO_FAST.getMessage()); | 154 | throw new YtDataValidationException(ErrorMessage.MESSAGE_SEND_TOO_FAST.getMessage()); |
138 | } | 155 | } |
156 | + | ||
157 | + /**消息模板是否可用*/ | ||
139 | List<MessageTemplate> messageTemplates = | 158 | List<MessageTemplate> messageTemplates = |
140 | messageTemplateMapper.selectList( | 159 | messageTemplateMapper.selectList( |
141 | new QueryWrapper<MessageTemplate>() | 160 | new QueryWrapper<MessageTemplate>() |
@@ -145,12 +164,25 @@ public class YtSmsServiceImpl implements YtSmsService { | @@ -145,12 +164,25 @@ public class YtSmsServiceImpl implements YtSmsService { | ||
145 | .eq(MessageTemplate::getTemplatePurpose, purpose.name()) | 164 | .eq(MessageTemplate::getTemplatePurpose, purpose.name()) |
146 | .eq(MessageTemplate::getMessageType, MessageTypeEnum.PHONE_MESSAGE.name())); | 165 | .eq(MessageTemplate::getMessageType, MessageTypeEnum.PHONE_MESSAGE.name())); |
147 | if (messageTemplates.isEmpty()) { | 166 | if (messageTemplates.isEmpty()) { |
148 | - throw new YtDataValidationException(ErrorMessage.TARGET_TEMPLATE_NOT_EXISTS.getMessage()); | 167 | + throw new YtDataValidationException(ErrorMessage.MESSAGE_TEMPLATE_NOT_EXISTS.getMessage()); |
149 | } | 168 | } |
169 | + | ||
170 | + /**消息配置是否可用*/ | ||
171 | + | ||
172 | + MessageTemplate messageTemplate = messageTemplates.get(0); | ||
173 | + QueryWrapper<MessageConfig> configQueryWrapper = new QueryWrapper<>(); | ||
174 | + configQueryWrapper.lambda() | ||
175 | + .eq(MessageConfig::getId, messageTemplate.getMessageConfigId()) | ||
176 | + .eq(MessageConfig::getStatus, AssetStatusEnum.ENABLE.ordinal()); | ||
177 | + MessageConfig messageConfig = | ||
178 | + messageConfigMapper.selectOne(configQueryWrapper); | ||
179 | + if (null == messageConfig) { | ||
180 | + throw new YtDataValidationException(ErrorMessage.MESSAGE_CONFIG_NOT_EXISTS.getMessage()); | ||
181 | + } | ||
182 | + | ||
150 | String code = RandomStringUtils.randomNumeric(6); | 183 | String code = RandomStringUtils.randomNumeric(6); |
151 | LinkedHashMap<String, String> params = new LinkedHashMap<>(); | 184 | LinkedHashMap<String, String> params = new LinkedHashMap<>(); |
152 | params.put("code", code); | 185 | params.put("code", code); |
153 | - MessageTemplate messageTemplate = messageTemplates.get(0); | ||
154 | SmsReqDTO smsReqDTO = new SmsReqDTO(); | 186 | SmsReqDTO smsReqDTO = new SmsReqDTO(); |
155 | smsReqDTO.setParams(params); | 187 | smsReqDTO.setParams(params); |
156 | smsReqDTO.setPhoneNumbers(phoneNumber); | 188 | smsReqDTO.setPhoneNumbers(phoneNumber); |
@@ -297,6 +297,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> | @@ -297,6 +297,7 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> | ||
297 | user.setEmail(userDTO.getEmail()); | 297 | user.setEmail(userDTO.getEmail()); |
298 | user.setAccountExpireTime(userDTO.getAccountExpireTime()); | 298 | user.setAccountExpireTime(userDTO.getAccountExpireTime()); |
299 | user.setRemark(userDTO.getRemark()); | 299 | user.setRemark(userDTO.getRemark()); |
300 | + user.setUpdateTime(LocalDateTime.now()); | ||
300 | if (userDTO.getPassword() != null && !userDTO.getPassword().equals("******")) { | 301 | if (userDTO.getPassword() != null && !userDTO.getPassword().equals("******")) { |
301 | user.setPassword(passwordEncoder.encode(userDTO.getPassword())); | 302 | user.setPassword(passwordEncoder.encode(userDTO.getPassword())); |
302 | } | 303 | } |
@@ -572,7 +573,14 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> | @@ -572,7 +573,14 @@ public class YtUserServiceImpl extends AbstractBaseService<UserMapper, User> | ||
572 | .stream() | 573 | .stream() |
573 | .map(UserRole::getRoleId) | 574 | .map(UserRole::getRoleId) |
574 | .collect(Collectors.toList()); | 575 | .collect(Collectors.toList()); |
575 | - return roleIds.toArray(new String[roleIds.size()]); | 576 | + List<String> enableRoles = roleMapper.selectList(new QueryWrapper<Role>().lambda() |
577 | + .eq(Role::isEnabled, true).in(Role::getId,roleIds)) | ||
578 | + .stream().map(m -> m.getId()) | ||
579 | + .collect(Collectors.toList()); | ||
580 | + if(enableRoles.size() == 0){ | ||
581 | + return null; | ||
582 | + } | ||
583 | + return roleIds.toArray(new String[enableRoles.size()]); | ||
576 | } | 584 | } |
577 | if (roleOrGroupReqDTO.isQueryOrganization()) { | 585 | if (roleOrGroupReqDTO.isQueryOrganization()) { |
578 | List<String> organizationIds = | 586 | List<String> organizationIds = |
@@ -81,7 +81,7 @@ public interface HomePageService { | @@ -81,7 +81,7 @@ public interface HomePageService { | ||
81 | * @param customerId | 81 | * @param customerId |
82 | * @return | 82 | * @return |
83 | */ | 83 | */ |
84 | - HomePageAppDTO app(boolean isPtSysAdmin, boolean isPtAdmin, boolean isTenantAdmin, EntityId tenantId, EntityId customerId); | 84 | + HomePageAppDTO app(Boolean login,boolean isPtSysAdmin, boolean isPtAdmin, boolean isTenantAdmin, EntityId tenantId, EntityId customerId); |
85 | } | 85 | } |
86 | 86 | ||
87 | 87 |