Commit d4a88a98 by 朱淼
parents f8afb831 a4e4b4d3
Showing with 688 additions and 51 deletions
...@@ -131,6 +131,7 @@ public class PlatRoleController { ...@@ -131,6 +131,7 @@ public class PlatRoleController {
@Action(module = "平台端-角色", name = "分配菜单", code = "tnt:role:assignMenuList") @Action(module = "平台端-角色", name = "分配菜单", code = "tnt:role:assignMenuList")
@ApiOperation("分配菜单") @ApiOperation("分配菜单")
@Deprecated
@PostMapping("assignMenuList") @PostMapping("assignMenuList")
public ApiResponseEntity<Void> assignMenuList(@RequestBody PlatRoleMenuDTO roleMenuDTO) { public ApiResponseEntity<Void> assignMenuList(@RequestBody PlatRoleMenuDTO roleMenuDTO) {
platRoleService.assignMenuList(roleMenuDTO); platRoleService.assignMenuList(roleMenuDTO);
......
...@@ -9,6 +9,7 @@ import com.makeit.common.page.PageVO; ...@@ -9,6 +9,7 @@ import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.common.vo.ExcelImportVo; import com.makeit.common.vo.ExcelImportVo;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.global.annotation.Action; import com.makeit.global.annotation.Action;
import com.makeit.module.admin.dto.plat.PlatUserDTOVO; import com.makeit.module.admin.dto.plat.PlatUserDTOVO;
...@@ -161,7 +162,7 @@ public class PlatUserController { ...@@ -161,7 +162,7 @@ public class PlatUserController {
@PostMapping("import") @PostMapping("import")
public ApiResponseEntity<ExcelImportVo> importExcel(@RequestParam(value = "excelFile", required = false) MultipartFile excelFile) throws Exception { public ApiResponseEntity<ExcelImportVo> importExcel(@RequestParam(value = "excelFile", required = false) MultipartFile excelFile) throws Exception {
if(excelFile == null ){ if(excelFile == null ){
throw new BusinessException("请上传excel"); throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_EXCEL_UPLOAD_EXIT);
} }
ExcelImportVo excelImportVo = platUserService.importExcel(excelFile); ExcelImportVo excelImportVo = platUserService.importExcel(excelFile);
return ApiResponseUtils.success(excelImportVo); return ApiResponseUtils.success(excelImportVo);
......
...@@ -120,6 +120,7 @@ public class PlatTenantController { ...@@ -120,6 +120,7 @@ public class PlatTenantController {
@Action(module = "租户管理-租户", name = "租户分配菜单", code = "saas:tenant:assignMenuList") @Action(module = "租户管理-租户", name = "租户分配菜单", code = "saas:tenant:assignMenuList")
@ApiOperation("租户分配菜单") @ApiOperation("租户分配菜单")
@PostMapping("assignMenuList") @PostMapping("assignMenuList")
@Deprecated
public ApiResponseEntity<?> assignMenuList(@RequestBody PlatTenantMenuDTO tntTenantMenuDTO){ public ApiResponseEntity<?> assignMenuList(@RequestBody PlatTenantMenuDTO tntTenantMenuDTO){
platTenantService.assignMenuList(tntTenantMenuDTO); platTenantService.assignMenuList(tntTenantMenuDTO);
return ApiResponseUtils.success(); return ApiResponseUtils.success();
......
...@@ -3,6 +3,8 @@ package com.makeit.controller.saas; ...@@ -3,6 +3,8 @@ package com.makeit.controller.saas;
import com.makeit.common.dto.BaseIdDTO; import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.dto.StatusDTO; import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.global.annotation.Action; import com.makeit.global.annotation.Action;
...@@ -38,14 +40,21 @@ public class SaasRoleController { ...@@ -38,14 +40,21 @@ public class SaasRoleController {
private SaasRoleService saasRoleService; private SaasRoleService saasRoleService;
@Action(module = "saas端-角色", name = "列表", code = "saas:role:list") @Action(module = "saas端-角色", name = "列表", code = "saas:role:list")
@ApiOperation("列表") @ApiOperation("列表不分页")
@PostMapping("list") @PostMapping("list")
public ApiResponseEntity<List<SaasRoleDTOVO>> list(@RequestBody SaasRoleDTOVO dto){ public ApiResponseEntity<List<SaasRoleDTOVO>> list(@RequestBody SaasRoleDTOVO dto){
return ApiResponseUtils.success(saasRoleService.list(dto)); return ApiResponseUtils.success(saasRoleService.list(dto));
} }
@Action(module = "saas端-角色", name = "列表", code = "saas:role:page")
@ApiOperation("列表分页")
@PostMapping("page")
public ApiResponseEntity<PageVO<SaasRoleDTOVO>> page(@RequestBody PageReqDTO<SaasRoleDTOVO> dto){
return ApiResponseUtils.success(saasRoleService.page(dto));
}
@ApiOperation("列表(AuthIgnore)") @ApiOperation("列表不分页(AuthIgnore)")
@PostMapping("listAuthIgnore") @PostMapping("listAuthIgnore")
public ApiResponseEntity<List<SaasRoleDTOVO>> listAuthIgnore(@RequestBody SaasRoleDTOVO dto){ public ApiResponseEntity<List<SaasRoleDTOVO>> listAuthIgnore(@RequestBody SaasRoleDTOVO dto){
return ApiResponseUtils.success(saasRoleService.list(dto)); return ApiResponseUtils.success(saasRoleService.list(dto));
...@@ -109,6 +118,7 @@ public class SaasRoleController { ...@@ -109,6 +118,7 @@ public class SaasRoleController {
@Action(module = "saas端-角色", name = "分配菜单", code = "saas:role:assignMenuList") @Action(module = "saas端-角色", name = "分配菜单", code = "saas:role:assignMenuList")
@ApiOperation("分配菜单") @ApiOperation("分配菜单")
@PostMapping("assignMenuList") @PostMapping("assignMenuList")
@Deprecated
public ApiResponseEntity<?> assignMenuList(@RequestBody SaasRoleMenuDTO roleMenuDTO){ public ApiResponseEntity<?> assignMenuList(@RequestBody SaasRoleMenuDTO roleMenuDTO){
saasRoleService.assignMenuList(roleMenuDTO); saasRoleService.assignMenuList(roleMenuDTO);
return ApiResponseUtils.success(); return ApiResponseUtils.success();
......
...@@ -36,8 +36,9 @@ public class SwaggerCommonConfig { ...@@ -36,8 +36,9 @@ public class SwaggerCommonConfig {
ApiSelectorBuilder builder = docket.select(); ApiSelectorBuilder builder = docket.select();
//api过滤 //api过滤
builder = builder.apis(RequestHandlerSelectors.basePackage("com.makeit.controller") builder = builder.apis(RequestHandlerSelectors.basePackage("com.makeit.controller")
//.or(RequestHandlerSelectors.basePackage("com.makeit.common.controller") .or(RequestHandlerSelectors.basePackage("com.makeit.module.controller"))
); );
return builder.build(); return builder.build();
} }
......
...@@ -109,7 +109,11 @@ public enum CodeMessageEnum { ...@@ -109,7 +109,11 @@ public enum CodeMessageEnum {
SYSTEM_ERROR_TENANT_NOT_EXIST(510, "SYSTEM.ERROR.TENANT.NOT.EXIST"), SYSTEM_ERROR_TENANT_NOT_EXIST(510, "SYSTEM.ERROR.TENANT.NOT.EXIST"),
SYSTEM_ERROR_ROLE_ADMIN_CANT_ADD(500, "SYSTEM.ERROR.ROLE.ADMIN.CANT.ADD"), SYSTEM_ERROR_ROLE_ADMIN_CANT_ADD(500, "SYSTEM.ERROR.ROLE.ADMIN.CANT.ADD"),
SYSTEM_ERROR_ROLE_ADMIN_CANT_EDIT(500, "SYSTEM.ERROR.ROLE.ADMIN.CANT.EDIT"), SYSTEM_ERROR_ROLE_ADMIN_CANT_EDIT(500, "SYSTEM.ERROR.ROLE.ADMIN.CANT.EDIT"),
;
PLATFORM_ERROR_ALARM_NOT_FOUND_SPACE(500,"PLATFORM.ERROR.ALARM.NOT.FOUND.SPACE"),
PLATFORM_ERROR_ALARM_NOT_FOUND_ELDER(500,"PLATFORM.ERROR.ALARM.NOT.FOUND.ELDER"),
; ;
/** /**
......
...@@ -32,4 +32,10 @@ public class PlatRoleDTOVO extends BaseOrgDTO implements Serializable { ...@@ -32,4 +32,10 @@ public class PlatRoleDTOVO extends BaseOrgDTO implements Serializable {
@ApiModelProperty(value = "角色名称集合") @ApiModelProperty(value = "角色名称集合")
private List<String> nameList; private List<String> nameList;
@ApiModelProperty(value = "菜单集合id")
private List<String> menuIdList;
@ApiModelProperty(value = "菜单集合")
private List<PlatMenuDTOVO> menuList;
} }
...@@ -51,4 +51,7 @@ public class PlatTenantDTOVO extends BaseIdDTO { ...@@ -51,4 +51,7 @@ public class PlatTenantDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "告警渠道") @ApiModelProperty(value = "告警渠道")
private String alertChannel; private String alertChannel;
@ApiModelProperty(value = "菜单id集合")
private List<String> menuIdList;
} }
...@@ -11,6 +11,7 @@ import javax.validation.constraints.Pattern; ...@@ -11,6 +11,7 @@ import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
@ApiModel("SAAS端角色 列表 新增 编辑 详情") @ApiModel("SAAS端角色 列表 新增 编辑 详情")
@Data @Data
...@@ -52,5 +53,11 @@ public class SaasRoleDTOVO extends BaseIdDTO implements Serializable { ...@@ -52,5 +53,11 @@ public class SaasRoleDTOVO extends BaseIdDTO implements Serializable {
@ApiModelProperty(value = "关键词 查询用") @ApiModelProperty(value = "关键词 查询用")
private String keyword; private String keyword;
@ApiModelProperty(value = "菜单id集合")
private List<String> menuIdList;
@ApiModelProperty(value = "菜单集合")
private List<SaasMenuDTOVO> menuDTOVOList;
} }
...@@ -65,4 +65,8 @@ public class SaasUserDTOVO extends BaseIdDTO implements Serializable { ...@@ -65,4 +65,8 @@ public class SaasUserDTOVO extends BaseIdDTO implements Serializable {
@TableField(exist = false) @TableField(exist = false)
@ApiModelProperty(value = "角色集合") @ApiModelProperty(value = "角色集合")
private List<SaasRoleDTOVO> roleList; private List<SaasRoleDTOVO> roleList;
@TableField(exist = false)
@ApiModelProperty(value = "角色id集合")
private List<String> roleIdList;
} }
package com.makeit.module.admin.vo.plat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.makeit.common.dto.BaseTenantDTO;
import lombok.Data;
/**
* 租户端角色菜单关联表
* @TableName plat_role_menu
*/
@TableName(value ="plat_role_menu")
@Data
public class PlatRoleMenuVO extends BaseTenantDTO {
/**
* 角色id
*/
private String roleId;
/**
* 菜单id
*/
private String menuId;
@TableField(exist = false)
private String menuName;
}
\ No newline at end of file
package com.makeit.utils.msg;
import org.springframework.stereotype.Component;
import java.util.Collection;
@Component
public class MsgUtil {
/**
* 发送消息并保存记录
*/
public void send(SendTypeEnum sendTypeEnum, Collection<String> receiverList, String content){
switch (sendTypeEnum){
case SMS:
break;
case MAIL:
break;
case VOICE_SMS:
break;
case JINGQI:
break;
case YUNLING:
break;
}
}
}
package com.makeit.utils.msg;
import com.makeit.enums.BaseEnum;
import com.makeit.utils.sys.SysDictUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;
@AllArgsConstructor
@Getter
public enum SendTypeEnum implements BaseEnum {
//1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单 6-子女端小程序
SMS("alarm.sendType.sms"),
MAIL("alarm.sendType.mail"),
VOICE_SMS("alarm.sendType.voiceSms"),
YUNLING("alarm.sendType.yunling"),
JINGQI("alarm.sendType.jingqi"),
CHILD_WECHAT("alarm.sendType.childWechat")
;
private String code;
public String getValue() {
return SysDictUtil.getValue(code);
}
public static SendTypeEnum getByValue(String value){
SendTypeEnum byValue =(SendTypeEnum)BaseEnum.getByValue(SendTypeEnum.class, value);
return byValue;
}
}
package com.makeit.utils.msg.dto;
import com.makeit.utils.msg.SendTypeEnum;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MsgDTO {
private SendTypeEnum sendTypeEnum;
private String subject;
private List<String> receiverList;
private String oriContent;
private String[] param;
private String sendContent;
public void setParam(String... param) {
this.param = param;
}
public String getSendContent() {
replaceParam();
return sendContent;
}
private void replaceParam(){
if(StringUtils.isNotBlank(sendContent)){
return;
}
Pattern p = Pattern.compile("\\[#\\d+\\]|\\[#[\\p{IsHan}]+\\]|\\[#[^\\]]*\\]");
Matcher m = p.matcher(oriContent);
StringBuffer sb = new StringBuffer();
if(!m.find()){
sendContent= oriContent;
}
m.reset();
int i = 0;
while (m.find()) {
m.appendReplacement(sb, param[i]);
i++;
}
m.appendTail(sb);
sendContent=sb.toString();
}
}
package com.makeit.utils.msg.dto;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
/**
* <pre>
* 发送结果
* </pre>
*
* @author <a href="https://github.com/rememberber">RememBerBer</a>
* @since 2019/6/15.
*/
@Getter
@Setter
@ToString
public class SendResult {
private boolean success = false;
private String info;
}
package com.makeit.utils.msg.sender;
import com.makeit.utils.msg.dto.MsgDTO;
import com.makeit.utils.msg.dto.SendResult;
public interface IMsgSender {
/**
* 发送消息
* @param msgData 消息数据
*/
SendResult send(MsgDTO MsgDTO);
}
package com.makeit.utils.msg.sender;
import com.makeit.utils.msg.dto.MsgDTO;
import com.makeit.utils.msg.dto.SendResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage;
@Component
@Slf4j
public class MailMsgSender implements IMsgSender {
@Value("${spring.mail.username}")
private String from;
@Autowired
private JavaMailSender mailSender;
@Override
public SendResult send(MsgDTO msgDTO) {
SendResult sendResult = new SendResult();
try {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(from);
helper.setTo(msgDTO.getReceiverList().toArray(new String[msgDTO.getReceiverList().size()]));
helper.setSubject(msgDTO.getSubject());
helper.setText(msgDTO.getOriContent(), false);
mailSender.send(message);
} catch (Exception e) {
sendResult.setSuccess(false);
sendResult.setInfo(e.getMessage());
}
sendResult.setSuccess(true);
return sendResult;
}
}
...@@ -103,3 +103,7 @@ PLATFORM.ERROR.ROOM.OTHER.USED.NOT.DEL=该房间下有床位有其他长者入 ...@@ -103,3 +103,7 @@ PLATFORM.ERROR.ROOM.OTHER.USED.NOT.DEL=该房间下有床位有其他长者入
SYSTEM.ERROR.ROLE.ADMIN.CANT.ADD=不能在该节点下新增非管理员角色 SYSTEM.ERROR.ROLE.ADMIN.CANT.ADD=不能在该节点下新增非管理员角色
SYSTEM.ERROR.ROLE.ADMIN.CANT.EDIT=管理员角色不能修改 SYSTEM.ERROR.ROLE.ADMIN.CANT.EDIT=管理员角色不能修改
PLATFORM.ERROR.ALARM.NOT.FOUND.SPACE=设备未绑定空间
PLATFORM.ERROR.ALARM.NOT.FOUND.ELDER=设备空间下无长者
...@@ -51,14 +51,14 @@ public class PlatAlarmConfigController { ...@@ -51,14 +51,14 @@ public class PlatAlarmConfigController {
@ApiOperation("编辑(审核)") @ApiOperation("编辑(审核)")
@PostMapping("editAudit") @PostMapping("editAudit")
public ApiResponseEntity<?> editAudit(PlatAlarmConfigDTOVO dto) { public ApiResponseEntity<?> editAudit(@RequestBody PlatAlarmConfigDTOVO dto) {
platAlarmConfigService.editAudit(dto); platAlarmConfigService.editAudit(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@ApiOperation("编辑(不审核)") @ApiOperation("编辑(不审核)")
@PostMapping("edit") @PostMapping("edit")
public ApiResponseEntity<?> edit(PlatAlarmConfigDTOVO dto) { public ApiResponseEntity<?> edit(@RequestBody PlatAlarmConfigDTOVO dto) {
platAlarmConfigService.edit(dto); platAlarmConfigService.edit(dto);
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
......
...@@ -8,6 +8,8 @@ import com.makeit.common.response.ApiResponseEntity; ...@@ -8,6 +8,8 @@ import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.msg.dto.MsgDTO;
import com.makeit.utils.msg.sender.MailMsgSender;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO; import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -17,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -17,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
@Api(tags = "告警记录") @Api(tags = "告警记录")
@RestController @RestController
@RequestMapping("/plat/alarm-record") @RequestMapping("/plat/alarm-record")
...@@ -44,9 +48,22 @@ public class PlatAlarmRecordController { ...@@ -44,9 +48,22 @@ public class PlatAlarmRecordController {
@ApiOperation("通知家属") @ApiOperation("通知家属")
@PostMapping("notice") @PostMapping("notice")
public ApiResponseEntity<Void> notice(@RequestBody BaseIdDTO dto) { public ApiResponseEntity<Void> notice(@RequestBody BaseIdDTO dto) {
platAlarmRecordService.notice(dto.getId()); platAlarmRecordService.noticeRelation(dto.getId());
return ApiResponseUtils.success(); return ApiResponseUtils.success();
} }
@Autowired
private MailMsgSender mailMsgSender;
@ApiOperation("测试消息")
@PostMapping("testMsg")
public ApiResponseEntity<Void> testMsg(@RequestBody BaseIdDTO dto) {
MsgDTO msgDTO = new MsgDTO();
msgDTO.setSubject("测试消息");
msgDTO.setReceiverList(Collections.singletonList("994997968@qq.com"));
msgDTO.setOriContent("测试发送邮箱");
mailMsgSender.send(msgDTO);
return ApiResponseUtils.success();
}
} }
package com.makeit.module.controller.wechat.alarm;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.msg.dto.MsgDTO;
import com.makeit.utils.msg.sender.MailMsgSender;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
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;
import java.util.Collections;
@Api(tags = "小程序-告警记录")
@RestController
@RequestMapping("/wechat/plat/alarm-record")
public class WechatPlatAlarmRecordController {
@Autowired
private PlatAlarmRecordService platAlarmRecordService;
@ApiOperation("列表")
@PostMapping("page")
public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
return ApiResponseUtils.success(platAlarmRecordService.page(dto));
}
@ApiOperation("查看")
@PostMapping("view")
public ApiResponseEntity<PlatAlarmRecordVO> view(@RequestBody BaseIdDTO dto) {
return ApiResponseUtils.success(platAlarmRecordService.view(dto.getId()));
}
@ApiOperation("处理")
@PostMapping("deal")
public ApiResponseEntity<Void> deal(@RequestBody BaseIdDTO dto) {
platAlarmRecordService.deal(dto.getId());
return ApiResponseUtils.success();
}
@ApiOperation("通知家属")
@PostMapping("notice")
public ApiResponseEntity<Void> notice(@RequestBody BaseIdDTO dto) {
platAlarmRecordService.noticeRelation(dto.getId());
return ApiResponseUtils.success();
}
@Autowired
private MailMsgSender mailMsgSender;
@ApiOperation("测试消息")
@PostMapping("testMsg")
public ApiResponseEntity<Void> testMsg(@RequestBody BaseIdDTO dto) {
MsgDTO msgDTO = new MsgDTO();
msgDTO.setSubject("测试消息");
msgDTO.setReceiverList(Collections.singletonList("994997968@qq.com"));
msgDTO.setOriContent("测试发送邮箱");
mailMsgSender.send(msgDTO);
return ApiResponseUtils.success();
}
}
...@@ -56,6 +56,8 @@ public class PlatAlarmRecord extends BaseBusEntity { ...@@ -56,6 +56,8 @@ public class PlatAlarmRecord extends BaseBusEntity {
private String orgId; private String orgId;
private String deviceId;
} }
package com.makeit.entity.platform.auth; package com.makeit.entity.platform.auth;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.makeit.common.entity.BaseBusEntity; import com.makeit.common.entity.BaseBusEntity;
import lombok.Data; import lombok.Data;
...@@ -13,11 +12,6 @@ import lombok.Data; ...@@ -13,11 +12,6 @@ import lombok.Data;
@TableName(value ="plat_role_menu") @TableName(value ="plat_role_menu")
@Data @Data
public class PlatRoleMenu extends BaseBusEntity { public class PlatRoleMenu extends BaseBusEntity {
/**
* id
*/
@TableId
private String id;
/** /**
* 租户id * 租户id
......
...@@ -20,5 +20,5 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> { ...@@ -20,5 +20,5 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
void deal(String recordId); void deal(String recordId);
void notice(String recordId); void noticeRelation(String recordId);
} }
...@@ -7,22 +7,41 @@ import com.makeit.common.entity.BaseEntity; ...@@ -7,22 +7,41 @@ import com.makeit.common.entity.BaseEntity;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO; import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import com.makeit.entity.platform.alarm.PlatAlarmRecord; import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.elder.PlatElderSocialRelation;
import com.makeit.entity.platform.space.PlatRoomBedDevice;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum; import com.makeit.enums.CommonEnum;
import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper; import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper;
import com.makeit.service.platform.alarm.PlatAlarmConfigService;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.service.platform.elder.PlatElderSocialRelationService;
import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil; import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.msg.MsgUtil;
import com.makeit.utils.msg.SendTypeEnum;
import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.utils.user.common.CommonUserUtil; import com.makeit.utils.user.common.CommonUserUtil;
import com.makeit.utils.user.common.CommonUserVO; import com.makeit.utils.user.common.CommonUserVO;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO; import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* @author lixl * @author lixl
...@@ -32,6 +51,17 @@ import java.util.Objects; ...@@ -32,6 +51,17 @@ import java.util.Objects;
@Service @Service
public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMapper, PlatAlarmRecord> public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMapper, PlatAlarmRecord>
implements PlatAlarmRecordService{ implements PlatAlarmRecordService{
@Autowired
private PlatAlarmConfigService platAlarmConfigService;
@Autowired
private PlatRoomBedDeviceService platRoomBedDeviceService;
@Autowired
private PlatElderService platElderService;
@Autowired
private PlatElderSocialRelationService platElderSocialRelationService;
@Autowired
private MsgUtil msgUtil;
@Override @Override
public PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto) { public PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
...@@ -41,6 +71,11 @@ implements PlatAlarmRecordService{ ...@@ -41,6 +71,11 @@ implements PlatAlarmRecordService{
Page<PlatAlarmRecord> page = page(mpPage, lambdaQueryWrapper); Page<PlatAlarmRecord> page = page(mpPage, lambdaQueryWrapper);
List<PlatAlarmRecord> records = page.getRecords(); List<PlatAlarmRecord> records = page.getRecords();
List<PlatAlarmRecordVO> dtos = BeanDtoVoUtils.listVo(records, PlatAlarmRecordVO.class); List<PlatAlarmRecordVO> dtos = BeanDtoVoUtils.listVo(records, PlatAlarmRecordVO.class);
JoinUtil.join(dtos,platAlarmConfigService,PlatAlarmRecordVO::getAlarmId,BaseEntity::getId,(t,m)->{
t.setNotifyRelation(m.getNotifyRelation());
});
return PageUtil.toPageVO(dtos,page); return PageUtil.toPageVO(dtos,page);
} }
...@@ -61,6 +96,9 @@ implements PlatAlarmRecordService{ ...@@ -61,6 +96,9 @@ implements PlatAlarmRecordService{
public PlatAlarmRecordVO view(String recordId) { public PlatAlarmRecordVO view(String recordId) {
PlatAlarmRecord platAlarmRecord = getById(recordId); PlatAlarmRecord platAlarmRecord = getById(recordId);
PlatAlarmRecordVO vo = BeanDtoVoUtils.convert(platAlarmRecord, PlatAlarmRecordVO.class); PlatAlarmRecordVO vo = BeanDtoVoUtils.convert(platAlarmRecord, PlatAlarmRecordVO.class);
JoinUtil.join(Arrays.asList(vo),platAlarmConfigService,PlatAlarmRecordVO::getAlarmId,BaseEntity::getId,(t,m)->{
t.setNotifyRelation(m.getNotifyRelation());
});
return vo; return vo;
} }
...@@ -77,7 +115,44 @@ implements PlatAlarmRecordService{ ...@@ -77,7 +115,44 @@ implements PlatAlarmRecordService{
@Override @Override
@Transactional @Transactional
public void notice(String recordId) { public void noticeRelation(String recordId) {
//todo //todo
PlatAlarmRecord platAlarmRecord = this.getById(recordId);
PlatAlarmConfig platAlarmConfig = platAlarmConfigService.getById(platAlarmRecord.getAlarmId());
String deviceId = platAlarmRecord.getDeviceId();
LambdaQueryWrapper<PlatRoomBedDevice> roomBedDeviceLambdaQueryWrapper = new LambdaQueryWrapper<PlatRoomBedDevice>()
.eq(PlatRoomBedDevice::getEquipmentId, deviceId).orderByDesc(BaseEntity::getUpdateDate);
PlatRoomBedDevice platRoomBedDevice = platRoomBedDeviceService.getOne(roomBedDeviceLambdaQueryWrapper, false);
//绑定房间的设备要通知 全部老人的家属
if(platRoomBedDevice == null){
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_ALARM_NOT_FOUND_SPACE);
}
String bedId = platRoomBedDevice.getBedId();
String roomId = platRoomBedDevice.getRoomId();
LambdaQueryWrapper<PlatElder> elderLambdaQueryWrapper = new LambdaQueryWrapper<PlatElder>().eq(StringUtils.isNotBlank(bedId), PlatElder::getBedId, bedId)
.eq(PlatElder::getRoomId, roomId);
List<PlatElder> elderList = platElderService.list(elderLambdaQueryWrapper);
if(CollectionUtils.isEmpty(elderList)){
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_ALARM_NOT_FOUND_ELDER);
}
Set<String> elderIdSet = elderList.stream().map(BaseEntity::getId).collect(Collectors.toSet());
List<PlatElderSocialRelation> relations = platElderSocialRelationService.list(new LambdaQueryWrapper<PlatElderSocialRelation>().in(PlatElderSocialRelation::getElderId, elderIdSet));
Set<String> phoneList = relations.stream().map(PlatElderSocialRelation::getPhone).collect(Collectors.toSet());
String notifyChannel = platAlarmConfig.getNotifyChannel();
String[] split = notifyChannel.split(",");
List<String> notifyChannelList = Arrays.asList(SendTypeEnum.SMS.getValue(), SendTypeEnum.VOICE_SMS.getValue(),SendTypeEnum.CHILD_WECHAT.getValue());
Set<String> sendTypeList = Stream.of(split).filter(vo -> notifyChannelList.contains(vo)).collect(Collectors.toSet());
for (String sendType: sendTypeList) {
SendTypeEnum sendTypeEnum = SendTypeEnum.getByValue(sendType);
msgUtil.send(sendTypeEnum,phoneList,platAlarmRecord.getContent());
}
platAlarmRecord.setNoticeStatus(CommonEnum.YES.getValue());
updateById(platAlarmRecord);
} }
} }
...@@ -12,6 +12,7 @@ import com.makeit.dto.platform.auth.PlatUserRoleDTO; ...@@ -12,6 +12,7 @@ import com.makeit.dto.platform.auth.PlatUserRoleDTO;
import com.makeit.entity.platform.auth.PlatRole; import com.makeit.entity.platform.auth.PlatRole;
import com.makeit.entity.platform.auth.PlatRoleMenu; import com.makeit.entity.platform.auth.PlatRoleMenu;
import com.makeit.entity.platform.auth.PlatRoleOrg; import com.makeit.entity.platform.auth.PlatRoleOrg;
import com.makeit.module.admin.dto.plat.PlatMenuDTOVO;
import com.makeit.module.admin.dto.plat.PlatRoleDTOVO; import com.makeit.module.admin.dto.plat.PlatRoleDTOVO;
import java.util.List; import java.util.List;
...@@ -46,6 +47,8 @@ public interface PlatRoleService extends IService<PlatRole> { ...@@ -46,6 +47,8 @@ public interface PlatRoleService extends IService<PlatRole> {
void assignDeptList(PlatRoleDeptDTOVO tntRoleDeptDTO); void assignDeptList(PlatRoleDeptDTOVO tntRoleDeptDTO);
List<PlatMenuDTOVO> getAssignMenuDTO(String id);
List<PlatRoleOrg> getDeptListByRoleId(String roleId); List<PlatRoleOrg> getDeptListByRoleId(String roleId);
......
...@@ -21,8 +21,11 @@ import com.makeit.entity.saas.PlatMenu; ...@@ -21,8 +21,11 @@ import com.makeit.entity.saas.PlatMenu;
import com.makeit.enums.CodeMessageEnum; import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum; import com.makeit.enums.CommonEnum;
import com.makeit.enums.IsTenantAccountEnum; import com.makeit.enums.IsTenantAccountEnum;
import com.makeit.enums.id.TreeConst;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.global.aspect.tenant.TenantIdUtil;
import com.makeit.mapper.platform.auth.PlatRoleMapper; import com.makeit.mapper.platform.auth.PlatRoleMapper;
import com.makeit.module.admin.dto.plat.PlatMenuDTOVO;
import com.makeit.module.admin.dto.plat.PlatRoleDTOVO; import com.makeit.module.admin.dto.plat.PlatRoleDTOVO;
import com.makeit.service.platform.auth.PlatOrgService; import com.makeit.service.platform.auth.PlatOrgService;
import com.makeit.service.platform.auth.PlatRoleMenuService; import com.makeit.service.platform.auth.PlatRoleMenuService;
...@@ -160,7 +163,9 @@ implements PlatRoleService { ...@@ -160,7 +163,9 @@ implements PlatRoleService {
@Override @Override
public String add(PlatRoleDTOVO dto) { public String add(PlatRoleDTOVO dto) {
check(dto); check(dto);
save(BeanDtoVoUtils.convert(dto, PlatRole.class)); PlatRole platRole = BeanDtoVoUtils.convert(dto, PlatRole.class);
save(platRole);
assignMenuList(platRole.getId(),dto.getMenuIdList());
return dto.getId(); return dto.getId();
} }
...@@ -169,7 +174,9 @@ implements PlatRoleService { ...@@ -169,7 +174,9 @@ implements PlatRoleService {
public void edit(PlatRoleDTOVO dto) { public void edit(PlatRoleDTOVO dto) {
adminRoleCantDo(dto.getId()); adminRoleCantDo(dto.getId());
check(dto); check(dto);
updateById(BeanDtoVoUtils.convert(dto, PlatRole.class)); PlatRole platRole = BeanDtoVoUtils.convert(dto, PlatRole.class);
updateById(platRole);
assignMenuList(platRole.getId(),dto.getMenuIdList());
} }
@Override @Override
...@@ -179,9 +186,32 @@ implements PlatRoleService { ...@@ -179,9 +186,32 @@ implements PlatRoleService {
JoinUtil.join(Arrays.asList(vo), platOrgService, PlatRoleDTOVO::getOrgId, PlatOrg::getId, (r, e) -> r.setDeptName(e.getName())); JoinUtil.join(Arrays.asList(vo), platOrgService, PlatRoleDTOVO::getOrgId, PlatOrg::getId, (r, e) -> r.setDeptName(e.getName()));
List<PlatMenuDTOVO> assignMenuDTO = getAssignMenuDTO(id);
List<PlatMenuDTOVO> tree = tree(assignMenuDTO);
vo.setMenuList(tree);
return vo; return vo;
} }
public List<PlatMenuDTOVO> tree(List<PlatMenuDTOVO> platMenuList) {
Map<String, PlatMenuDTOVO> map = StreamUtil.toMap(platMenuList, PlatMenuDTOVO::getId);
List<PlatMenuDTOVO> topList = StreamUtil.filter(platMenuList, e -> TreeConst.TOP_LEVEL.equals(e.getParentId()));
platMenuList.forEach(e -> {
PlatMenuDTOVO parent = map.get(e.getParentId());
if (parent != null) {
List<PlatMenuDTOVO> children = parent.getChildren();
if (children == null) {
children = new ArrayList<>(10);
parent.setChildren(children);
}
children.add(e);
}
});
return topList;
}
@Transactional @Transactional
@Override @Override
public void del(String id) { public void del(String id) {
...@@ -233,16 +263,23 @@ implements PlatRoleService { ...@@ -233,16 +263,23 @@ implements PlatRoleService {
@Override @Override
public void assignMenuList(PlatRoleMenuDTO roleMenuDTO) { public void assignMenuList(PlatRoleMenuDTO roleMenuDTO) {
adminRoleCantDo(roleMenuDTO.getRoleId()); assignMenuList(roleMenuDTO.getRoleId(),roleMenuDTO.getMenuIdList());
}
@Transactional
public void assignMenuList(String roleId,List<String> menuIdList) {
String tenantId = TenantIdUtil.getTenantId();
//adminRoleCantDo(roleId);
platRoleMenuService.remove(new QueryWrapper<PlatRoleMenu>().lambda() platRoleMenuService.remove(new QueryWrapper<PlatRoleMenu>().lambda()
.eq(PlatRoleMenu::getRoleId, roleMenuDTO.getRoleId())); .eq(PlatRoleMenu::getRoleId, roleId));
List<PlatRoleMenu> roleMenuList = StreamUtil.map(roleMenuDTO.getMenuIdList(), e -> { List<PlatRoleMenu> roleMenuList = StreamUtil.map(menuIdList, e -> {
PlatRoleMenu tntRoleMenu = new PlatRoleMenu(); PlatRoleMenu tntRoleMenu = new PlatRoleMenu();
tntRoleMenu.setRoleId(roleMenuDTO.getRoleId()); tntRoleMenu.setRoleId(roleId);
tntRoleMenu.setMenuId(e); tntRoleMenu.setMenuId(e);
tntRoleMenu.setTenantId(roleMenuDTO.getTenantId()); tntRoleMenu.setTenantId(tenantId);
return tntRoleMenu; return tntRoleMenu;
}); });
...@@ -275,6 +312,27 @@ implements PlatRoleService { ...@@ -275,6 +312,27 @@ implements PlatRoleService {
return newList; return newList;
} }
@Override
public List<PlatMenuDTOVO> getAssignMenuDTO(String id) {
List<String> menuIdList = new ArrayList<>(10);
menuIdList.add(-1 + "");
if (StringUtils.isNotBlank(id)) {
List<PlatRoleMenu> platRoleList = platRoleMenuService.list(new QueryWrapper<PlatRoleMenu>().lambda()
.in(PlatRoleMenu::getRoleId, id));
menuIdList.addAll(StreamUtil.map(platRoleList, PlatRoleMenu::getMenuId));
}
List<PlatMenu> platMenuList = platMenuService.list(new QueryWrapper<PlatMenu>().lambda()
.in(StringUtils.isNotBlank(id), PlatMenu::getId, menuIdList)
//.orderByAsc(PlatMenu::getParentId)
.orderByAsc(PlatMenu::getSort)
.orderByAsc(PlatMenu::getCreateDate)
);
return BeanDtoVoUtils.listVo(platMenuList, PlatMenuDTOVO.class);
}
@Transactional @Transactional
@Override @Override
public void assignDeptList(PlatRoleDeptDTOVO tntRoleDeptDTO) { public void assignDeptList(PlatRoleDeptDTOVO tntRoleDeptDTO) {
......
...@@ -756,10 +756,10 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser> ...@@ -756,10 +756,10 @@ public class PlatUserServiceImpl extends ServiceImpl<PlatUserMapper, PlatUser>
platUserRoleService.remove(new QueryWrapper<PlatUserRole>().lambda() platUserRoleService.remove(new QueryWrapper<PlatUserRole>().lambda()
.eq(PlatUserRole::getUserId, dto.getId())); .eq(PlatUserRole::getUserId, dto.getId()));
if (dto.getRoleList() != null) { if (dto.getRoleList() != null) {
List<PlatUserRole> userRoleList = StreamUtil.map(dto.getRoleList(), e -> { List<PlatUserRole> userRoleList = StreamUtil.map(dto.getRoleIdList(), e -> {
PlatUserRole tntUserRole = new PlatUserRole(); PlatUserRole tntUserRole = new PlatUserRole();
tntUserRole.setUserId(dto.getId()); tntUserRole.setUserId(dto.getId());
tntUserRole.setRoleId(e.getId()); tntUserRole.setRoleId(e);
return tntUserRole; return tntUserRole;
}); });
......
...@@ -187,6 +187,27 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder ...@@ -187,6 +187,27 @@ public class PlatElderServiceImpl extends ServiceImpl<PlatElderMapper, PlatElder
return vo; return vo;
}); });
JoinUtil.join(list, platSpaceService, Arrays.asList(
PlatElderExportVO::getStreetSpaceId,
PlatElderExportVO::getBuildingSpaceId,
PlatElderExportVO::getUnitSpaceId,
PlatElderExportVO::getFloorSpaceId
), Arrays.asList(
(e, s) -> e.setStreetSpaceName(s.getName()),
(e, s) -> e.setBuildingSpaceName(s.getName()),
(e, s) -> e.setUnitSpaceName(s.getName()),
(e, s) -> e.setFloorSpaceName(s.getName())
));
JoinUtil.join(list, platRoomService, PlatElderExportVO::getRoomId, (e, l) -> {
e.setRoomName(l.getName());
});
JoinUtil.join(list, platBedService, PlatElderExportVO::getBedId, (e, l) -> {
e.setBedName(l.getName());
});
ExcelUtil.export(response, "长者信息" + FileSuffixEnum.EXCEL.getSuffix(), PlatElderExportVO.class, list); ExcelUtil.export(response, "长者信息" + FileSuffixEnum.EXCEL.getSuffix(), PlatElderExportVO.class, list);
} }
......
...@@ -2,6 +2,8 @@ package com.makeit.service.saas; ...@@ -2,6 +2,8 @@ package com.makeit.service.saas;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.dto.StatusDTO; import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.entity.saas.SaasRole; import com.makeit.entity.saas.SaasRole;
import com.makeit.module.admin.dto.saas.SaasRoleDTOVO; import com.makeit.module.admin.dto.saas.SaasRoleDTOVO;
import com.makeit.module.admin.dto.saas.SaasRoleMenuDTO; import com.makeit.module.admin.dto.saas.SaasRoleMenuDTO;
...@@ -18,6 +20,8 @@ public interface SaasRoleService extends IService<SaasRole> { ...@@ -18,6 +20,8 @@ public interface SaasRoleService extends IService<SaasRole> {
List<SaasRoleDTOVO> list(SaasRoleDTOVO dto); List<SaasRoleDTOVO> list(SaasRoleDTOVO dto);
PageVO<SaasRoleDTOVO> page(PageReqDTO<SaasRoleDTOVO> dto);
void add(SaasRoleDTOVO dto); void add(SaasRoleDTOVO dto);
void edit(SaasRoleDTOVO dto); void edit(SaasRoleDTOVO dto);
......
...@@ -175,19 +175,24 @@ implements PlatTenantService { ...@@ -175,19 +175,24 @@ implements PlatTenantService {
@Override @Override
public void assignMenuList(PlatTenantMenuDTO tntTenantMenuDTO) { public void assignMenuList(PlatTenantMenuDTO tntTenantMenuDTO) {
assignMenuList(tntTenantMenuDTO.getTenantId(),tntTenantMenuDTO.getMenuIdList());
}
@Transactional
public void assignMenuList(String tenantId,List<String> menuIdList) {
platTenantMenuService.remove(new QueryWrapper<PlatTenantMenu>().lambda() platTenantMenuService.remove(new QueryWrapper<PlatTenantMenu>().lambda()
.eq(PlatTenantMenu::getTenantId, tntTenantMenuDTO.getTenantId())); .eq(PlatTenantMenu::getTenantId, tenantId));
List<PlatTenantMenu> tntTenantMenuList = StreamUtil.map(tntTenantMenuDTO.getMenuIdList(), e -> { List<PlatTenantMenu> tntTenantMenuList = StreamUtil.map(menuIdList, e -> {
PlatTenantMenu tntTenantMenu = new PlatTenantMenu(); PlatTenantMenu tntTenantMenu = new PlatTenantMenu();
tntTenantMenu.setMenuId(e); tntTenantMenu.setMenuId(e);
tntTenantMenu.setTenantId(tntTenantMenuDTO.getTenantId()); tntTenantMenu.setTenantId(tenantId);
return tntTenantMenu; return tntTenantMenu;
}); });
platTenantMenuService.saveBatch(tntTenantMenuList); platTenantMenuService.saveBatch(tntTenantMenuList);
} }
...@@ -216,6 +221,8 @@ implements PlatTenantService { ...@@ -216,6 +221,8 @@ implements PlatTenantService {
PlatOrg platOrg = convertToPlatOrg(tntTenant); PlatOrg platOrg = convertToPlatOrg(tntTenant);
platOrgService.save(platOrg); platOrgService.save(platOrg);
//分配菜单
assignMenuList(tntTenant.getId(),dto.getMenuIdList());
return tntTenant.getId(); return tntTenant.getId();
} }
...@@ -238,6 +245,9 @@ implements PlatTenantService { ...@@ -238,6 +245,9 @@ implements PlatTenantService {
//更新组织表 //更新组织表
platOrgService.edit(platOrg); platOrgService.edit(platOrg);
//分配菜单
assignMenuList(tntTenant.getId(),dto.getMenuIdList());
saasOperationLogService.add("saas端-租户账号-编辑", dto.getId()); saasOperationLogService.add("saas端-租户账号-编辑", dto.getId());
} }
......
...@@ -49,7 +49,7 @@ import java.util.stream.Collectors; ...@@ -49,7 +49,7 @@ import java.util.stream.Collectors;
public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> implements SaasMenuService { public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> implements SaasMenuService {
@Autowired @Autowired
private SaasRoleMenuService platRoleMenuService; private SaasRoleMenuService saasRoleMenuService;
private static final Logger logger = LoggerFactory.getLogger(SaasMenuServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(SaasMenuServiceImpl.class);
...@@ -73,7 +73,7 @@ public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> i ...@@ -73,7 +73,7 @@ public class SaasMenuServiceImpl extends ServiceImpl<SaasMenuMapper, SaasMenu> i
List<String> menuIdList = new ArrayList<>(10); List<String> menuIdList = new ArrayList<>(10);
menuIdList.add(-1 + ""); menuIdList.add(-1 + "");
if (StringUtils.isNotBlank(dto.getRoleId())) { if (StringUtils.isNotBlank(dto.getRoleId())) {
List<SaasRoleMenu> platRoleList = platRoleMenuService.list(new QueryWrapper<SaasRoleMenu>().lambda() List<SaasRoleMenu> platRoleList = saasRoleMenuService.list(new QueryWrapper<SaasRoleMenu>().lambda()
.in(SaasRoleMenu::getRoleId, dto.getRoleId())); .in(SaasRoleMenu::getRoleId, dto.getRoleId()));
menuIdList.addAll(StreamUtil.map(platRoleList, SaasRoleMenu::getMenuId)); menuIdList.addAll(StreamUtil.map(platRoleList, SaasRoleMenu::getMenuId));
} }
......
package com.makeit.service.saas.impl; package com.makeit.service.saas.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.StatusDTO; import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.entity.saas.SaasRole; import com.makeit.entity.saas.SaasRole;
import com.makeit.entity.saas.SaasRoleMenu; import com.makeit.entity.saas.SaasRoleMenu;
import com.makeit.entity.saas.SaasUserRole; import com.makeit.entity.saas.SaasUserRole;
...@@ -10,13 +14,17 @@ import com.makeit.enums.CodeMessageEnum; ...@@ -10,13 +14,17 @@ import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum; import com.makeit.enums.CommonEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.mapper.saas.SaasRoleMapper; import com.makeit.mapper.saas.SaasRoleMapper;
import com.makeit.module.admin.dto.saas.SaasMenuDTOVO;
import com.makeit.module.admin.dto.saas.SaasMenuQueryDTO;
import com.makeit.module.admin.dto.saas.SaasRoleDTOVO; import com.makeit.module.admin.dto.saas.SaasRoleDTOVO;
import com.makeit.module.admin.dto.saas.SaasRoleMenuDTO; import com.makeit.module.admin.dto.saas.SaasRoleMenuDTO;
import com.makeit.module.admin.dto.saas.SaasUserRoleDTO; import com.makeit.module.admin.dto.saas.SaasUserRoleDTO;
import com.makeit.service.saas.SaasMenuService;
import com.makeit.service.saas.SaasRoleMenuService; import com.makeit.service.saas.SaasRoleMenuService;
import com.makeit.service.saas.SaasRoleService; import com.makeit.service.saas.SaasRoleService;
import com.makeit.service.saas.SaasUserRoleService; import com.makeit.service.saas.SaasUserRoleService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil; import com.makeit.utils.data.convert.StreamUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -43,9 +51,19 @@ implements SaasRoleService{ ...@@ -43,9 +51,19 @@ implements SaasRoleService{
@Autowired @Autowired
private SaasRoleMenuService saasRoleMenuService; private SaasRoleMenuService saasRoleMenuService;
@Autowired
private SaasMenuService saasMenuService;
@Override @Override
public List<SaasRoleDTOVO> list(SaasRoleDTOVO dto) { public List<SaasRoleDTOVO> list(SaasRoleDTOVO dto) {
List<SaasRole> platRoleList = list(new QueryWrapper<SaasRole>().lambda() List<SaasRole> platRoleList = list(getQueryWrapper(dto)
);
return BeanDtoVoUtils.listVo(platRoleList, SaasRoleDTOVO.class);
}
private LambdaQueryWrapper<SaasRole> getQueryWrapper(SaasRoleDTOVO dto) {
return new QueryWrapper<SaasRole>().lambda()
.like(StringUtils.isNotBlank(dto.getName()), SaasRole::getName, dto.getName()) .like(StringUtils.isNotBlank(dto.getName()), SaasRole::getName, dto.getName())
.like(StringUtils.isNotBlank(dto.getCode()), SaasRole::getCode, dto.getCode()) .like(StringUtils.isNotBlank(dto.getCode()), SaasRole::getCode, dto.getCode())
.and(StringUtils.isNotBlank(dto.getKeyword()), qw -> { .and(StringUtils.isNotBlank(dto.getKeyword()), qw -> {
...@@ -54,10 +72,17 @@ implements SaasRoleService{ ...@@ -54,10 +72,17 @@ implements SaasRoleService{
.like(StringUtils.isNotBlank(dto.getKeyword()), SaasRole::getCode, dto.getKeyword()); .like(StringUtils.isNotBlank(dto.getKeyword()), SaasRole::getCode, dto.getKeyword());
}) })
.eq(StringUtils.isNotBlank(dto.getStatus()), SaasRole::getStatus, dto.getStatus()) .eq(StringUtils.isNotBlank(dto.getStatus()), SaasRole::getStatus, dto.getStatus())
.orderByDesc(SaasRole::getCreateDate) .orderByDesc(SaasRole::getCreateDate);
); }
return BeanDtoVoUtils.listVo(platRoleList, SaasRoleDTOVO.class); @Override
public PageVO<SaasRoleDTOVO> page(PageReqDTO<SaasRoleDTOVO> pageReqDTO) {
SaasRoleDTOVO data = pageReqDTO.getData();
Page<SaasRole> mpPage = PageUtil.toMpPage(pageReqDTO);
Page<SaasRole> page = page(mpPage, getQueryWrapper(data));
List<SaasRole> records = page.getRecords();
List<SaasRoleDTOVO> saasRoleDTOVOS = BeanDtoVoUtils.listVo(records, SaasRoleDTOVO.class);
return PageUtil.toPageVO(saasRoleDTOVOS,page);
} }
private void check(SaasRoleDTOVO dto) { private void check(SaasRoleDTOVO dto) {
...@@ -78,19 +103,28 @@ implements SaasRoleService{ ...@@ -78,19 +103,28 @@ implements SaasRoleService{
@Override @Override
public void add(SaasRoleDTOVO dto) { public void add(SaasRoleDTOVO dto) {
check(dto); check(dto);
save(BeanDtoVoUtils.convert(dto, SaasRole.class)); SaasRole saasRole = BeanDtoVoUtils.convert(dto, SaasRole.class);
save(saasRole);
assignMenuList(saasRole.getId(),dto.getMenuIdList());
} }
@Transactional @Transactional
@Override @Override
public void edit(SaasRoleDTOVO dto) { public void edit(SaasRoleDTOVO dto) {
check(dto); check(dto);
updateById(BeanDtoVoUtils.convert(dto, SaasRole.class)); SaasRole saasRole = BeanDtoVoUtils.convert(dto, SaasRole.class);
updateById(saasRole);
assignMenuList(saasRole.getId(),dto.getMenuIdList());
} }
@Override @Override
public SaasRoleDTOVO view(String id) { public SaasRoleDTOVO view(String id) {
return BeanDtoVoUtils.convert(getById(id), SaasRoleDTOVO.class); SaasRoleDTOVO saasRoleDTOVO = BeanDtoVoUtils.convert(getById(id), SaasRoleDTOVO.class);
SaasMenuQueryDTO saasMenuQueryDTO = new SaasMenuQueryDTO();
saasMenuQueryDTO.setRoleId(id);
List<SaasMenuDTOVO> tree = saasMenuService.tree(saasMenuQueryDTO);
saasRoleDTOVO.setMenuDTOVOList(tree);
return saasRoleDTOVO;
} }
@Transactional @Transactional
...@@ -142,11 +176,16 @@ implements SaasRoleService{ ...@@ -142,11 +176,16 @@ implements SaasRoleService{
public void assignMenuList(SaasRoleMenuDTO roleMenuDTO) { public void assignMenuList(SaasRoleMenuDTO roleMenuDTO) {
//removeAssignMenuList(roleMenuDTOList); //removeAssignMenuList(roleMenuDTOList);
saasRoleMenuService.remove(new QueryWrapper<SaasRoleMenu>().lambda().eq(SaasRoleMenu::getRoleId, roleMenuDTO.getRoleId())); assignMenuList(roleMenuDTO.getRoleId(),roleMenuDTO.getMenuIdList());
}
@Transactional
public void assignMenuList(String roleId,List<String> menuIdList) {
saasRoleMenuService.remove(new QueryWrapper<SaasRoleMenu>().lambda().eq(SaasRoleMenu::getRoleId, roleId));
List<SaasRoleMenu> roleMenuList = StreamUtil.map(roleMenuDTO.getMenuIdList(), e -> { List<SaasRoleMenu> roleMenuList = StreamUtil.map(menuIdList, e -> {
SaasRoleMenu platRoleMenu = new SaasRoleMenu(); SaasRoleMenu platRoleMenu = new SaasRoleMenu();
platRoleMenu.setRoleId(roleMenuDTO.getRoleId()); platRoleMenu.setRoleId(roleId);
platRoleMenu.setMenuId(e); platRoleMenu.setMenuId(e);
return platRoleMenu; return platRoleMenu;
}); });
......
...@@ -187,12 +187,12 @@ implements SaasUserService{ ...@@ -187,12 +187,12 @@ implements SaasUserService{
saasUserRoleService.remove(new QueryWrapper<SaasUserRole>().lambda() saasUserRoleService.remove(new QueryWrapper<SaasUserRole>().lambda()
.eq(SaasUserRole::getUserId, dto.getId())); .eq(SaasUserRole::getUserId, dto.getId()));
if (CollectionUtils.isNotEmpty(dto.getRoleList())) { if (CollectionUtils.isNotEmpty(dto.getRoleList())) {
List<SaasUserRole> userRoleList = StreamUtil.map(dto.getRoleList(), e -> { List<SaasUserRole> userRoleList = StreamUtil.map(dto.getRoleIdList(), e -> {
SaasUserRole platUserRole = new SaasUserRole(); SaasUserRole saasUserRole = new SaasUserRole();
platUserRole.setUserId(dto.getId()); saasUserRole.setUserId(dto.getId());
platUserRole.setRoleId(e.getId()); saasUserRole.setRoleId(e);
return platUserRole; return saasUserRole;
}); });
saasUserRoleService.saveBatch(userRoleList); saasUserRoleService.saveBatch(userRoleList);
......
...@@ -90,6 +90,7 @@ public class IotSyncTask { ...@@ -90,6 +90,7 @@ public class IotSyncTask {
if(platDevice==null){ if(platDevice==null){
platDevice=new PlatDevice(); platDevice=new PlatDevice();
platDevice.setTenantId(tenantId); platDevice.setTenantId(tenantId);
deviceMap.put(iotDevice.getId(),platDevice);
} }
platDevice.setOriDeviceId(iotDevice.getId()); platDevice.setOriDeviceId(iotDevice.getId());
platDevice.setName(iotDevice.getName()); platDevice.setName(iotDevice.getName());
...@@ -100,6 +101,9 @@ public class IotSyncTask { ...@@ -100,6 +101,9 @@ public class IotSyncTask {
platDevice.setDescription(iotDevice.getDescribe()); platDevice.setDescription(iotDevice.getDescribe());
String state = iotDevice.getState(); String state = iotDevice.getState();
platDevice.setStatus(StringUtils.equals("online",state)?CommonEnum.YES.getValue() : CommonEnum.NO.getValue()); platDevice.setStatus(StringUtils.equals("online",state)?CommonEnum.YES.getValue() : CommonEnum.NO.getValue());
//todo 根据类型名称来匹配
// platDevice.setCategory();
// platDevice.setFirmwareVersion(); // platDevice.setFirmwareVersion();
// platDevice.setLastOnlineData(); // platDevice.setLastOnlineData();
// platDevice.setOrgId(); // platDevice.setOrgId();
...@@ -114,7 +118,7 @@ public class IotSyncTask { ...@@ -114,7 +118,7 @@ public class IotSyncTask {
// platDevice.setCreateBy(); // platDevice.setCreateBy();
// platDevice.setUpdateBy(); // platDevice.setUpdateBy();
deviceMap.put(iotDevice.getId(),platDevice);
}); });
return deviceMap.values(); return deviceMap.values();
} }
......
...@@ -22,7 +22,13 @@ import java.util.Date; ...@@ -22,7 +22,13 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ApiModel(value="PlatAlarmRecord对象", description="告警记录") @ApiModel(value="PlatAlarmRecord对象", description="告警记录")
public class PlatAlarmRecordVO extends BaseTenantDTO { public class PlatAlarmRecordVO extends BaseTenantDTO {
/**
* 关联告警配置
*/
private String alarmId;
@ApiModelProperty(value = "通知家属 数据字典 1、同步通知 2 可选通知 3 不通知")
private String notifyRelation;
@ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常") @ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常")
private String alarmType; private String alarmType;
......
...@@ -77,4 +77,8 @@ public class PlatPersonDTOVO extends BaseIdDTO { ...@@ -77,4 +77,8 @@ public class PlatPersonDTOVO extends BaseIdDTO {
@ApiModelProperty(value = "角色集合") @ApiModelProperty(value = "角色集合")
private List<PlatRoleDTOVO> roleList; private List<PlatRoleDTOVO> roleList;
@TableField(exist = false)
@ApiModelProperty(value = "角色Id集合")
private List<String> roleIdList;
} }
...@@ -32,6 +32,24 @@ spring: ...@@ -32,6 +32,24 @@ spring:
#redis库 #redis库
database: 1 database: 1
#邮件发送配置
mail:
host: smtp.qq.com
username: 994997968@qq.com
password: jctyarhjddstbfef
protocol: smtps
default-encoding: UTF-8
properties:
default-encoding: utf-8
mail:
smtp:
port: 587
auth: true
starttls:
enable: true
required: true
sign: sign:
flag: false flag: false
...@@ -100,4 +118,13 @@ mqtt: ...@@ -100,4 +118,13 @@ mqtt:
clientId: ab3a2fd694c8c838aba2686df3a80e7b clientId: ab3a2fd694c8c838aba2686df3a80e7b
defaultTopic: defaultTopic:
timeout: 10 timeout: 10
keepalive: 60 keepalive: 60
\ No newline at end of file
wx:
miniapp:
config:
appid: wx48720402e3fdbe0f #微信小程序的appid
secret: 2ebae648f45716e70c75b7d78d0660cc #微信小程序的Secret
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
\ No newline at end of file
...@@ -31,6 +31,21 @@ spring: ...@@ -31,6 +31,21 @@ spring:
connectTimeout: 10000 connectTimeout: 10000
#redis库 #redis库
database: 1 database: 1
mail:
host: smtp.qq.com
username: 994997968@qq.com
password: jctyarhjddstbfef
protocol: smtps
default-encoding: UTF-8
properties:
default-encoding: utf-8
mail:
smtp:
port: 587
auth: true
starttls:
enable: true
required: true
sign: sign:
flag: false flag: false
...@@ -91,4 +106,22 @@ libreOffice: /home/group1_lzy/iot-server/LibreOffice/program/soffice ...@@ -91,4 +106,22 @@ libreOffice: /home/group1_lzy/iot-server/LibreOffice/program/soffice
iot: iot:
url: http://iot.meiqicloud.com/api/ url: http://iot.meiqicloud.com/api/
clientId: fyxmb5h52iKwE2Hi clientId: fyxmb5h52iKwE2Hi
secureKey: 22fZbnH36wdHn7ZTyKKHraFw233npcez secureKey: 22fZbnH36wdHn7ZTyKKHraFw233npcez
\ No newline at end of file
mqtt:
username: admin|1693982115969
password: 8e3795ef7b5e95869fa8c323b865b3a9
hostUrl: tcp://124.71.33.17:11883
clientId: ab3a2fd694c8c838aba2686df3a80e7b
defaultTopic:
timeout: 10
keepalive: 60
wx:
miniapp:
config:
appid: wx48720402e3fdbe0f #微信小程序的appid
secret: 2ebae648f45716e70c75b7d78d0660cc #微信小程序的Secret
token: #微信小程序消息服务器配置的token
aesKey: #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment