Browse Source

通知推送

master
刘力 3 years ago
parent
commit
be8a5addf6
  1. 6
      storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java
  2. 7
      storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java
  3. 5
      storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java
  4. 54
      system/src/main/java/com/storeroom/modules/system/controller/NoticeController.java
  5. 47
      system/src/main/java/com/storeroom/modules/system/controller/UserController.java
  6. 73
      system/src/main/java/com/storeroom/modules/system/domain/Notice.java
  7. 47
      system/src/main/java/com/storeroom/modules/system/domain/NoticeDevices.java
  8. 39
      system/src/main/java/com/storeroom/modules/system/domain/NoticeUsers.java
  9. 2
      system/src/main/java/com/storeroom/modules/system/domain/User.java
  10. 8
      system/src/main/java/com/storeroom/modules/system/repository/NoticeDeviceRepository.java
  11. 15
      system/src/main/java/com/storeroom/modules/system/repository/NoticeRepository.java
  12. 10
      system/src/main/java/com/storeroom/modules/system/repository/NoticeUsersRepository.java
  13. 61
      system/src/main/java/com/storeroom/modules/system/service/NoticeService.java
  14. 6
      system/src/main/java/com/storeroom/modules/system/service/UserService.java
  15. 35
      system/src/main/java/com/storeroom/modules/system/service/dto/NoticeDto.java
  16. 28
      system/src/main/java/com/storeroom/modules/system/service/dto/NoticeQueryCriteria.java
  17. 129
      system/src/main/java/com/storeroom/modules/system/service/impl/NoticeServiceImpl.java
  18. 12
      system/src/main/java/com/storeroom/modules/system/service/impl/UserServiceImpl.java
  19. 2
      system/src/main/resources/application.yml

6
storeroom/src/main/java/com/storeroom/modules/device/controller/DeviceController.java

@ -37,6 +37,12 @@ public class DeviceController {
private final OperatingStateService operatingStateService;
private final ArchivesCasesService archivesCaseService;
@ApiOperation("获取所有设备")
@AnonymousGetMapping("all")
public ApiResponse<Object> queryAll() {
return ApiResponse.success(deviceService.queryAll());
}
@ApiOperation("通过id获取设备列表")
@AnonymousGetMapping("list")

7
storeroom/src/main/java/com/storeroom/modules/device/service/DeviceService.java

@ -13,6 +13,13 @@ import java.util.Set;
public interface DeviceService {
/**
* 查询所有设备
* @return /
*/
List<DeviceInfo> queryAll();
/*
* 通过库房id 查询设备
*/

5
storeroom/src/main/java/com/storeroom/modules/device/service/impl/DeviceImpl.java

@ -34,6 +34,11 @@ public class DeviceImpl implements DeviceService {
private final DeviceTypeMapper deviceTypeMapper;
private final AlarmDeseCaBinetLogRepository alarmDeseCaBinetLogRepository;
@Override
public List<DeviceInfo> queryAll() {
return deviceInfoRepository.findAll();
}
@Override
public Object queryStoreroomAndDevice(String storeroomId, String deviceTypeId, Pageable pageable) {
// PageRequest pageRequest = PageSort.pageRequest(pageable.getPageNumber(), pageable.getPageSize(), "sequence", Sort.Direction.ASC);

54
system/src/main/java/com/storeroom/modules/system/controller/NoticeController.java

@ -0,0 +1,54 @@
package com.storeroom.modules.system.controller;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotaion.rest.AnonymousPostMapping;
import com.storeroom.exception.BaseException;
import com.storeroom.modules.system.service.NoticeService;
import com.storeroom.modules.system.service.dto.NoticeDto;
import com.storeroom.modules.system.service.dto.NoticeQueryCriteria;
import com.storeroom.utils.ApiResponse;
import com.storeroom.utils.StringUtils;
import com.storeroom.utils.enums.ResponseStatus;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
@Api(tags = "系统:通知公告")
@RequestMapping("/api/notice/")
public class NoticeController {
private final NoticeService noticeService;
@ApiOperation("添加通知信息")
@AnonymousPostMapping("create")
public ApiResponse<Object> create(@RequestBody NoticeDto noticeDto) {
if (!StringUtils.isEmpty(noticeDto.getId())) {
throw new BaseException("id不为空");
}
if (!ObjectUtils.isEmpty(noticeDto.getDeviceInfoId())) {
noticeService.createDeviceNotice(noticeDto);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
if (!ObjectUtils.isEmpty(noticeDto.getUserId())) {
noticeService.createNotice(noticeDto);
return ApiResponse.success(ResponseStatus.SUCCESS);
}
return ApiResponse.error(ResponseStatus.FAIL);
}
@ApiOperation("通知列表")
@AnonymousGetMapping("list")
public ApiResponse<Object> list(NoticeQueryCriteria criteria, Pageable pageable) {
return ApiResponse.success(noticeService.queryAll(criteria, pageable));
}
}

47
system/src/main/java/com/storeroom/modules/system/controller/UserController.java

@ -2,6 +2,7 @@ package com.storeroom.modules.system.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.storeroom.annotaion.rest.AnonymousGetMapping;
import com.storeroom.annotation.Log;
import com.storeroom.config.RsaProperties;
import com.storeroom.exception.BaseException;
@ -54,7 +55,6 @@ public class UserController {
private final RoleService roleService;
@ApiOperation("导出用户数据")
@GetMapping(value = "/download")
@PreAuthorize("@ys.check('user:list')")
@ -65,7 +65,7 @@ public class UserController {
@ApiOperation("查询用户")
@GetMapping
@PreAuthorize("@ys.check('user:list')")
public ApiResponse<Object> queryUser(UserQueryCriteria criteria, Pageable pageable){
public ApiResponse<Object> queryUser(UserQueryCriteria criteria, Pageable pageable) {
if (!ObjectUtils.isEmpty(criteria.getDeptId())) {
criteria.getDeptIds().add(criteria.getDeptId());
// 先查找是否存在子节点
@ -76,25 +76,25 @@ public class UserController {
// 数据权限
List<Long> dataScopes = dataService.getDeptIds(userService.findByName(SecurityUtils.getCurrentUsername()));
// criteria.getDeptIds() 不为空并且数据权限不为空则取交集
if (!CollectionUtils.isEmpty(criteria.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)){
if (!CollectionUtils.isEmpty(criteria.getDeptIds()) && !CollectionUtils.isEmpty(dataScopes)) {
// 取交集
criteria.getDeptIds().retainAll(dataScopes);
if(!CollectionUtil.isEmpty(criteria.getDeptIds())){
return ApiResponse.success(userService.queryAll(criteria,pageable));
if (!CollectionUtil.isEmpty(criteria.getDeptIds())) {
return ApiResponse.success(userService.queryAll(criteria, pageable));
}
} else {
// 否则取并集
criteria.getDeptIds().addAll(dataScopes);
return ApiResponse.success(userService.queryAll(criteria,pageable));
return ApiResponse.success(userService.queryAll(criteria, pageable));
}
return ApiResponse.success(PageUtil.toPage(null,0));
return ApiResponse.success(PageUtil.toPage(null, 0));
}
@Log("新增用户")
@ApiOperation("新增用户")
@PostMapping
@PreAuthorize("@ys.check('user:add')")
public ApiResponse<Object> createUser(@Validated @RequestBody User resources){
public ApiResponse<Object> createUser(@Validated @RequestBody User resources) {
checkLevel(resources);
// 默认密码 123456
resources.setPassword(passwordEncoder.encode("123456"));
@ -115,8 +115,8 @@ public class UserController {
@Log("修改用户:个人中心")
@ApiOperation("修改用户:个人中心")
@PutMapping(value = "center")
public ApiResponse<Object> centerUser(@Validated(User.Update.class) @RequestBody User resources){
if(!resources.getId().equals(SecurityUtils.getCurrentUserId())){
public ApiResponse<Object> centerUser(@Validated(User.Update.class) @RequestBody User resources) {
if (!resources.getId().equals(SecurityUtils.getCurrentUserId())) {
throw new BaseException("不能修改他人资料");
}
userService.updateCenter(resources);
@ -127,10 +127,10 @@ public class UserController {
@ApiOperation("删除用户")
@DeleteMapping
@PreAuthorize("@ys.check('user:del')")
public ApiResponse<Object> deleteUser(@RequestBody Set<Long> ids){
public ApiResponse<Object> deleteUser(@RequestBody Set<Long> ids) {
for (Long id : ids) {
Integer currentLevel = Collections.min(roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
Integer optLevel = Collections.min(roleService.findByUsersId(id).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
Integer currentLevel = Collections.min(roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
Integer optLevel = Collections.min(roleService.findByUsersId(id).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
if (currentLevel > optLevel) {
throw new BaseException("角色权限不足,不能删除:" + userService.findById(id).getUsername());
}
@ -142,32 +142,39 @@ public class UserController {
@ApiOperation("修改密码")
@PostMapping(value = "/updatePass")
public ApiResponse<Object> updateUserPass(@RequestBody UserPassVo passVo) throws Exception {
String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getOldPass());
String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey,passVo.getNewPass());
String oldPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getOldPass());
String newPass = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, passVo.getNewPass());
UserDto user = userService.findByName(SecurityUtils.getCurrentUsername());
if(!passwordEncoder.matches(oldPass, user.getPassword())){
if (!passwordEncoder.matches(oldPass, user.getPassword())) {
throw new BaseException("修改失败,旧密码错误");
}
if(passwordEncoder.matches(newPass, user.getPassword())){
if (passwordEncoder.matches(newPass, user.getPassword())) {
throw new BaseException("新密码不能与旧密码相同");
}
userService.updatePass(user.getUsername(),passwordEncoder.encode(newPass));
userService.updatePass(user.getUsername(), passwordEncoder.encode(newPass));
return ApiResponse.success(ResponseStatus.SUCCESS);
}
@ApiOperation("修改头像")
@PostMapping(value = "/updateAvatar")
public ApiResponse<Object> updateUserAvatar(@RequestParam MultipartFile avatar){
public ApiResponse<Object> updateUserAvatar(@RequestParam MultipartFile avatar) {
return ApiResponse.success(userService.updateAvatar(avatar));
}
@AnonymousGetMapping("all")
@ApiOperation("获取所有用户")
public ApiResponse<Object> findAll() {
return ApiResponse.success(userService.queryAll());
}
/**
* 如果当前用户的角色级别低于创建用户的角色级别则抛出权限不足的错误
*
* @param resources /
*/
private void checkLevel(User resources) {
Integer currentLevel = Collections.min(roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
Integer currentLevel = Collections.min(roleService.findByUsersId(SecurityUtils.getCurrentUserId()).stream().map(RoleSmallDto::getLevel).collect(Collectors.toList()));
Integer optLevel = roleService.findByRoles(resources.getRoles());
if (currentLevel > optLevel) {
throw new BaseException("角色权限不足");

73
system/src/main/java/com/storeroom/modules/system/domain/Notice.java

@ -0,0 +1,73 @@
package com.storeroom.modules.system.domain;
import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
import java.util.Set;
@Entity
@Getter
@Setter
@Table(name = "sys_notice")
public class Notice extends BaseEntity implements Serializable {
@Id
@Column(name = "id")
@NotNull(groups = BaseEntity.Update.class)
@ApiModelProperty(value = "id", hidden = true)
private String id;
@Column(name = "notice_title")
@ApiModelProperty(value = "公告标题")
private String noticeTitle;
@Column(name = "notice_type")
@ApiModelProperty(value = "公告类型(1通知 2公告)")
private Integer noticeType;
@Column(name = "notice_content")
@ApiModelProperty(value = "公告内容")
private String noticeContent;
@Column(name = "status")
@ApiModelProperty(value = "公告状态(true正常 false关闭)")
private Boolean status;
@Column(name = "push_type")
@ApiModelProperty(value = "推送类型")
private Integer pushType;
@OneToMany(mappedBy = "noticeId",cascade={CascadeType.PERSIST,CascadeType.REMOVE})
private Set<NoticeUsers> noticeUsers;
@OneToMany(mappedBy = "noticeId",cascade={CascadeType.PERSIST,CascadeType.REMOVE})
private Set<NoticeDevices> noticeDevices;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Notice notice = (Notice) o;
return Objects.equals(id, notice.id) && Objects.equals(noticeTitle, notice.noticeTitle) && Objects.equals(noticeType, notice.noticeType) && Objects.equals(noticeContent, notice.noticeContent) && Objects.equals(status, notice.status);
}
@Override
public int hashCode() {
return Objects.hash(id, noticeTitle, noticeType, noticeContent, status);
}
}

47
system/src/main/java/com/storeroom/modules/system/domain/NoticeDevices.java

@ -0,0 +1,47 @@
package com.storeroom.modules.system.domain;
import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Objects;
@Entity
@Getter
@Setter
@Table(name = "sys_notice_devices")
public class NoticeDevices implements Serializable {
@Id
@Column(name = "id")
@NotNull(groups = BaseEntity.Update.class)
@ApiModelProperty(value = "id", hidden = true)
private String id;
@Column(name = "notice_id")
@ApiModelProperty(value = "通知id")
private String noticeId;
@Column(name = "device_info_id")
@ApiModelProperty(value = "设备id")
private String deviceInfoId;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
NoticeDevices that = (NoticeDevices) o;
return Objects.equals(id, that.id) && Objects.equals(noticeId, that.noticeId) && Objects.equals(deviceInfoId, that.deviceInfoId);
}
@Override
public int hashCode() {
return Objects.hash(id, noticeId, deviceInfoId);
}
}

39
system/src/main/java/com/storeroom/modules/system/domain/NoticeUsers.java

@ -0,0 +1,39 @@
package com.storeroom.modules.system.domain;
import com.storeroom.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Entity
@Getter
@Setter
@Table(name = "sys_notice_users")
public class NoticeUsers implements Serializable {
@Id
@Column(name = "id")
@NotNull(groups = BaseEntity.Update.class)
@ApiModelProperty(value = "id", hidden = true)
private String id;
@Column(name = "notice_id")
@ApiModelProperty(value = "通知id")
private String noticeId;
@Column(name = "user_id")
@ApiModelProperty(value = "设备id")
private Long userId;
@Column(name = "is_read")
@ApiModelProperty(value = "阅读状态")
private Boolean isRead;
}

2
system/src/main/java/com/storeroom/modules/system/domain/User.java

@ -84,8 +84,6 @@ public class User extends BaseEntity implements Serializable {
@ApiModelProperty(value = "是否为admin账号", hidden = true)
private Boolean isAdmin = false;
@Column(name = "pwd_reset_time")
@ApiModelProperty(value = "最后修改密码的时间", hidden = true)
private Date pwdResetTime;

8
system/src/main/java/com/storeroom/modules/system/repository/NoticeDeviceRepository.java

@ -0,0 +1,8 @@
package com.storeroom.modules.system.repository;
import com.storeroom.modules.system.domain.NoticeDevices;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface NoticeDeviceRepository extends JpaRepository<NoticeDevices, String>, JpaSpecificationExecutor<NoticeDevices> {
}

15
system/src/main/java/com/storeroom/modules/system/repository/NoticeRepository.java

@ -0,0 +1,15 @@
package com.storeroom.modules.system.repository;
import com.storeroom.modules.system.domain.Notice;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
public interface NoticeRepository extends JpaRepository<Notice, String>, JpaSpecificationExecutor<Notice> {
}

10
system/src/main/java/com/storeroom/modules/system/repository/NoticeUsersRepository.java

@ -0,0 +1,10 @@
package com.storeroom.modules.system.repository;
import com.storeroom.modules.system.domain.NoticeUsers;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface NoticeUsersRepository extends JpaRepository<NoticeUsers, String>, JpaSpecificationExecutor<NoticeUsers> {
}

61
system/src/main/java/com/storeroom/modules/system/service/NoticeService.java

@ -0,0 +1,61 @@
package com.storeroom.modules.system.service;
import com.storeroom.modules.system.domain.Notice;
import com.storeroom.modules.system.service.dto.NoticeDto;
import com.storeroom.modules.system.service.dto.NoticeQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Set;
public interface NoticeService {
/**
* 查询公告信息
*
* @param noticeId 通知id
* @return /
*/
Notice selectNoticeById(String noticeId);
/**
* 创建通知消息
* @param notice
*/
void createNotice(NoticeDto notice);
/**
* 创建设备通知
* @param notice
*/
void createDeviceNotice(NoticeDto notice);
/**
* 查询全部
*
* @return /
*/
Object queryAll(NoticeQueryCriteria criteria, Pageable pageable);
/**
* 修改
*/
void updateNotice(Notice notice);
/**
* 删除
*
* @param notice /
*/
void deleteNotice(Notice notice);
/**
* 批量删除
*
* @param ids id
*/
void deleteByIds(Set<String> ids);
}

6
system/src/main/java/com/storeroom/modules/system/service/UserService.java

@ -83,6 +83,12 @@ public interface UserService {
*/
List<UserDto> queryAll(UserQueryCriteria criteria);
/**
* 获取所有用户
* @return /
*/
List<UserDto> queryAll();
/**
* 导出数据
* @param queryAll 待导出的数据

35
system/src/main/java/com/storeroom/modules/system/service/dto/NoticeDto.java

@ -0,0 +1,35 @@
package com.storeroom.modules.system.service.dto;
import com.storeroom.base.BaseDTO;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.Set;
@Getter
@Setter
public class NoticeDto extends BaseDTO implements Serializable {
private String id;
private String noticeTitle;
private Integer noticeType;
private String noticeContent;
private Boolean status;
private Integer pushType;
private Set<Long> userId;
private Boolean isRead;
private Set<String> deviceInfoId;
}

28
system/src/main/java/com/storeroom/modules/system/service/dto/NoticeQueryCriteria.java

@ -0,0 +1,28 @@
package com.storeroom.modules.system.service.dto;
import com.storeroom.annotaion.Query;
import lombok.Data;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
@Data
public class NoticeQueryCriteria implements Serializable {
@Query
private Long id;
@Query(blurry = "noticeTitle,noticeContent")
private String blurry;
@Query
private Integer status;
@Query
private Integer noticeType;
@Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime;
}

129
system/src/main/java/com/storeroom/modules/system/service/impl/NoticeServiceImpl.java

@ -0,0 +1,129 @@
package com.storeroom.modules.system.service.impl;
import com.storeroom.modules.device.domain.DeviceInfo;
import com.storeroom.modules.device.repository.DeviceInfoRepository;
import com.storeroom.modules.system.domain.Notice;
import com.storeroom.modules.system.domain.NoticeDevices;
import com.storeroom.modules.system.domain.NoticeUsers;
import com.storeroom.modules.system.repository.NoticeDeviceRepository;
import com.storeroom.modules.system.repository.NoticeRepository;
import com.storeroom.modules.system.repository.NoticeUsersRepository;
import com.storeroom.modules.system.service.NoticeService;
import com.storeroom.modules.system.service.dto.NoticeDto;
import com.storeroom.modules.system.service.dto.NoticeQueryCriteria;
import com.storeroom.utils.NanoIdUtils;
import com.storeroom.utils.PageUtil;
import com.storeroom.utils.QueryHelp;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.hibernate.validator.constraints.UniqueElements;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@Service
@RequiredArgsConstructor
public class NoticeServiceImpl implements NoticeService {
private final NoticeRepository noticeRepository;
private final DeviceInfoRepository deviceInfoRepository;
private final NoticeDeviceRepository noticeDeviceRepository;
private final NoticeUsersRepository noticeUsersRepository;
@Override
public Notice selectNoticeById(String noticeId) {
return noticeRepository.findById(noticeId).orElseGet(Notice::new);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void createNotice(NoticeDto noticeDto) {
noticeDto.setId(NanoIdUtils.randomNanoId());
Notice noticeEntity = new Notice();
noticeEntity.setId(noticeDto.getId());
noticeEntity.setNoticeContent(noticeDto.getNoticeContent());
noticeEntity.setNoticeTitle(noticeDto.getNoticeTitle());
noticeEntity.setStatus(false);
noticeEntity.setPushType(noticeDto.getPushType());
Set<Long> deviceInfos = noticeDto.getUserId();
for (Long userid : deviceInfos) {
NoticeUsers noticeUsers = new NoticeUsers();
Set<NoticeUsers> noticeUsersList = new LinkedHashSet<>();
Notice notice = noticeRepository.findById(noticeDto.getId()).orElseGet(Notice::new);
noticeUsers.setId(NanoIdUtils.randomNanoId());
noticeUsers.setIsRead(false);
noticeUsers.setUserId(userid);
noticeUsers.setNoticeId(noticeDto.getId());
noticeEntity.setNoticeUsers(noticeUsersList);
noticeUsersList.add(noticeUsers);
noticeEntity.setNoticeUsers(noticeUsersList);
noticeUsersRepository.save(noticeUsers);
}
noticeRepository.save(noticeEntity);
}
@SneakyThrows
@Override
@Transactional(rollbackFor = Exception.class)
public void createDeviceNotice(NoticeDto noticeDto) {
noticeDto.setId(NanoIdUtils.randomNanoId());
Notice noticeEntity = new Notice();
noticeEntity.setId(noticeDto.getId());
noticeEntity.setNoticeContent(noticeDto.getNoticeContent());
noticeEntity.setNoticeTitle(noticeDto.getNoticeTitle());
noticeEntity.setStatus(false);
noticeEntity.setPushType(noticeDto.getPushType());
Set<String> deviceInfos = noticeDto.getDeviceInfoId();
for (String d : deviceInfos) {
NoticeDevices noticeDevices = new NoticeDevices();
DeviceInfo deviceInfo = deviceInfoRepository.findById(d).orElseGet(DeviceInfo::new);
String url = "http://" + deviceInfo.getDeviceIp() + ":" + deviceInfo.getDevicePort();
HashMap<String, String> body = new HashMap<>();
HashMap<String, String> map = new HashMap<>();
map.put("Content-type", "application/json");
body.put("notice", noticeDto.getNoticeContent());
// HttpResponse response = HttpUtils.doPost(url, "/IntelligentCabinetAPIServer/getNotice", "POST", map, null, body);
// if (response.getStatusLine().getStatusCode() != 200) {
// throw new BaseException("接口调用失败");
// }
noticeDevices.setId(NanoIdUtils.randomNanoId());
noticeDevices.setNoticeId(noticeDto.getId());
noticeDevices.setDeviceInfoId(d);
noticeDeviceRepository.save(noticeDevices);
}
noticeRepository.save(noticeEntity);
}
@Override
public Object queryAll(NoticeQueryCriteria criteria, Pageable pageable) {
Page<Notice> page = noticeRepository.findAll(((root, query, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)), pageable);
return PageUtil.toPage(page);
}
@Override
public void updateNotice(Notice notice) {
}
@Override
public void deleteNotice(Notice notice) {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void deleteByIds(Set<String> ids) {
noticeRepository.deleteAllById(ids);
}
}

12
system/src/main/java/com/storeroom/modules/system/service/impl/UserServiceImpl.java

@ -55,6 +55,12 @@ public class UserServiceImpl implements UserService {
return userMapper.toDto(users);
}
@Override
public List<UserDto> queryAll() {
List<User> users = userRepository.findAll();
return userMapper.toDto(users);
}
@Override
@Cacheable(key = "'id:' + #p0")
@Transactional(rollbackFor = Exception.class)
@ -103,7 +109,7 @@ public class UserServiceImpl implements UserService {
redisUtils.del(CacheKey.ROLE_AUTH + resources.getId());
}
// 如果用户被禁用则清除用户登录信息
if(!resources.getEnabled()){
if (!resources.getEnabled()) {
onlineUserService.kickOutForUsername(resources.getUsername());
}
user.setUsername(resources.getUsername());
@ -172,8 +178,8 @@ public class UserServiceImpl implements UserService {
// 验证文件上传的格式
String image = "gif jpg png jpeg";
String fileType = FileUtil.getExtensionName(multipartFile.getOriginalFilename());
if(fileType != null && !image.contains(fileType)){
throw new BaseException("文件格式错误!, 仅支持 " + image +" 格式");
if (fileType != null && !image.contains(fileType)) {
throw new BaseException("文件格式错误!, 仅支持 " + image + " 格式");
}
User user = userRepository.findByUsername(SecurityUtils.getCurrentUsername());
String oldPath = user.getAvatarPath();

2
system/src/main/resources/application.yml

@ -78,7 +78,7 @@ user-cache:
# 手持机参数
hand-held:
ip: 47.98.148.152:8057
ip: 127.0.0.1:8057
webSocket:
netty:

Loading…
Cancel
Save