修改账号 公司信息

master
bynt 3 years ago
parent 277b61518b
commit c048af80aa

@ -101,6 +101,12 @@
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId> <artifactId>spring-security-web</artifactId>
</dependency> </dependency>
<!-- easyExcel依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
</dependency>
</dependencies> </dependencies>

@ -0,0 +1,15 @@
package com.baiye.model.dto;
import lombok.Data;
import java.util.List;
/**
* @author Enzo
* @date : 2022/1/21
*/
@Data
public class ThreeUserDTO extends UserDto {
private List<ThreeUserDTO> children;
}

@ -39,8 +39,6 @@ public class UserDto extends BaseDTO implements Serializable {
private Set<JobSmallDto> jobs; private Set<JobSmallDto> jobs;
private DeptSmallDto dept;
private Long deptId; private Long deptId;
private String username; private String username;
@ -68,4 +66,6 @@ public class UserDto extends BaseDTO implements Serializable {
private Boolean isManager; private Boolean isManager;
private Boolean isGroup; private Boolean isGroup;
private Boolean isRegistered;
} }

@ -12,27 +12,31 @@ public class UserFavorOfExcel {
/** /**
* *
*/ */
//@ExcelProperty(index = 0)
private String nickName; private String nickName;
/** /**
* *
*/ */
//@ExcelProperty(index = 1)
private String email; private String email;
/** /**
* *
*/ */
//@ExcelProperty(index = 2)
private String phone; private String phone;
/** /**
* *
*/ */
//@ExcelProperty(index = 3)
private String gender; private String gender;
/** /**
* *
*/ */
//@ExcelProperty(index = 4)
private String password; private String password;
} }

@ -101,12 +101,7 @@
<artifactId>swagger-spring-boot-starter</artifactId> <artifactId>swagger-spring-boot-starter</artifactId>
</dependency> </dependency>
<!-- easyExcel依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.7</version>
</dependency>
<!-- &lt;!&ndash; https://mvnrepository.com/artifact/org.apache.poi/poi &ndash;&gt; <!-- &lt;!&ndash; https://mvnrepository.com/artifact/org.apache.poi/poi &ndash;&gt;
<dependency> <dependency>

@ -54,13 +54,12 @@ public class OnlineUserService {
* @param request / * @param request /
*/ */
public void save(JwtUserDto jwtUserDto, String token, HttpServletRequest request){ public void save(JwtUserDto jwtUserDto, String token, HttpServletRequest request){
String dept = jwtUserDto.getUser().getDept().getName();
String ip = StringUtils.getIp(request); String ip = StringUtils.getIp(request);
String browser = StringUtils.getBrowser(request); String browser = StringUtils.getBrowser(request);
String address = StringUtils.getCityInfo(ip); String address = StringUtils.getCityInfo(ip);
OnlineUserDto onlineUserDto = null; OnlineUserDto onlineUserDto = null;
try { try {
onlineUserDto = new OnlineUserDto(jwtUserDto.getUsername(), jwtUserDto.getUser().getNickName(), dept, browser , ip, address, EncryptUtils.desEncrypt(token), new Date()); onlineUserDto = new OnlineUserDto(jwtUserDto.getUsername(), jwtUserDto.getUser().getNickName(), "", browser, ip, address, EncryptUtils.desEncrypt(token), new Date());
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
} }

@ -0,0 +1,62 @@
package com.baiye.modules.system.domain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
import java.io.Serializable;
/**
* @author Enzo
* @date : 2022/1/21
*/
@Setter
@Getter
@Entity
@Table(name = "sys_company")
@ApiModel(value = "公司")
public class Company implements Serializable {
private static final long serialVersionUID = 4841596215574045065L;
@Id
@ApiModelProperty(value = "公司id")
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ApiModelProperty("AppID")
@Column(name = "appid")
private String appid;
@ApiModelProperty("公司名称")
@Column(name = "company_name")
private String companyName;
@ApiModelProperty("公司编码")
@Column(name = "company_code")
private String companyCode;
@ApiModelProperty("营业执照反面")
@Column(name = "business_license_front")
private String businessLicenseFront;
@ApiModelProperty("营业执照反面")
@Column(name = "business_license_reverse")
private String businessLicenseReverse;
@ApiModelProperty("用户id")
@Column(name = "user_id")
private Long userId;
@ApiModelProperty("是否已经注册")
@Column(name = "is_registered")
private Integer isRegistered;
}

@ -106,6 +106,10 @@ public class User extends BaseEntity implements Serializable {
@ApiModelProperty(value = "最后修改密码的时间", hidden = true) @ApiModelProperty(value = "最后修改密码的时间", hidden = true)
private Date pwdResetTime; private Date pwdResetTime;
@Column(name = "which_user_id")
@ApiModelProperty(value = "创建者id")
private Long whichUserId;
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) { if (this == o) {

@ -0,0 +1,35 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baiye.modules.system.repository;
import com.baiye.modules.system.domain.Company;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author Enzo
* @date 2022-1-21
*/
public interface CompanyRepository extends JpaRepository<Company, Long>, JpaSpecificationExecutor<Company> {
/**
* id
* @param id
* @return
*/
Company findByUserId(Long id);
}

@ -190,4 +190,11 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
*/ */
@Query(value = "SELECT u.* FROM sys_user u where u.user_id in ?1 and u.nick_name like concat('%',?2,'%') ", nativeQuery = true) @Query(value = "SELECT u.* FROM sys_user u where u.user_id in ?1 and u.nick_name like concat('%',?2,'%') ", nativeQuery = true)
List<User> findUserIdsByNiceName(List<Long> userIds,String niceName); List<User> findUserIdsByNiceName(List<Long> userIds,String niceName);
/**
*
* @param userId
* @return
*/
List<User> findByWhichUserId(Long userId);
} }

@ -0,0 +1,42 @@
package com.baiye.modules.system.rest;
import com.baiye.modules.system.service.CompanyService;
import com.baiye.modules.system.service.dto.CompanyDto;
import com.baiye.modules.system.service.dto.CompanyQueryCriteria;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
* @author Enzo
* @date : 2022/1/21
*/
@RestController
@Api(tags = "公司管理")
@RequiredArgsConstructor
@RequestMapping("/api/company")
public class CompanyController {
private final CompanyService companyService;
@ApiOperation("新增公司")
@PostMapping
public ResponseEntity<Object> create(@Validated @RequestBody CompanyDto companyDto) {
companyService.saveCompany(companyDto);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@ApiOperation("公司列表")
@GetMapping
public ResponseEntity<Object> create(CompanyQueryCriteria criteria, Pageable pageable) {
return new ResponseEntity<>(companyService.queryAll(criteria, pageable),HttpStatus.OK);
}
}

@ -16,16 +16,13 @@
package com.baiye.modules.system.rest; package com.baiye.modules.system.rest;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.baiye.annotation.Inner; import com.baiye.annotation.Inner;
import com.baiye.config.properties.RsaProperties; import com.baiye.config.properties.RsaProperties;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.RoleNumberConstants; import com.baiye.constant.RoleNumberConstants;
import com.baiye.exception.BadRequestException; import com.baiye.exception.BadRequestException;
import com.baiye.model.dto.UserDto; import com.baiye.model.dto.UserDto;
import com.baiye.model.dto.UserFavorOfExcel;
import com.baiye.modules.system.domain.Dept; import com.baiye.modules.system.domain.Dept;
import com.baiye.modules.system.domain.User; import com.baiye.modules.system.domain.User;
import com.baiye.modules.system.domain.vo.UserPassVo; import com.baiye.modules.system.domain.vo.UserPassVo;
@ -34,6 +31,7 @@ import com.baiye.modules.system.service.DeptService;
import com.baiye.modules.system.service.RoleService; import com.baiye.modules.system.service.RoleService;
import com.baiye.modules.system.service.UserService; import com.baiye.modules.system.service.UserService;
import com.baiye.model.dto.RoleSmallDto; import com.baiye.model.dto.RoleSmallDto;
import com.baiye.modules.system.service.dto.CreateUserDTO;
import com.baiye.modules.system.service.dto.UserQueryCriteria; import com.baiye.modules.system.service.dto.UserQueryCriteria;
import com.baiye.util.PageUtil; import com.baiye.util.PageUtil;
import com.baiye.util.RsaUtils; import com.baiye.util.RsaUtils;
@ -110,6 +108,20 @@ public class UserController {
return new ResponseEntity<>(PageUtil.toPage(null, 0), HttpStatus.OK); return new ResponseEntity<>(PageUtil.toPage(null, 0), HttpStatus.OK);
} }
@ApiOperation("查询用户")
@GetMapping("/userThree")
@PreAuthorize("@el.check('task:source')")
public ResponseEntity<Object> userThree(UserQueryCriteria criteria, Pageable pageable) {
if (SecurityUtils.getCurrentUserId() != DefaultNumberConstants.ONE_NUMBER) {
throw new BadRequestException("非超级管理员不能查询");
}
criteria.setWhichUserId((long) DefaultNumberConstants.ONE_NUMBER);
return new ResponseEntity<>(userService.queryUserThree(criteria, pageable), HttpStatus.OK);
}
@ApiOperation("新增用户") @ApiOperation("新增用户")
@PostMapping @PostMapping
@PreAuthorize("@el.check('user:add')") @PreAuthorize("@el.check('user:add')")
@ -140,22 +152,33 @@ public class UserController {
return new ResponseEntity<>(HttpStatus.NO_CONTENT); return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} }
@ApiOperation("导入用户")
@PostMapping(value = "importUsers")
public ResponseEntity<Object> indexConvert(@RequestParam("file") MultipartFile file) throws IOException {
ExcelReader reader = ExcelUtil.getReader(file.getInputStream()); @ApiOperation("导入用户")
List<UserFavorOfExcel> list = reader.readAll(UserFavorOfExcel.class); @PostMapping(value = "/importUsers")
if (CollUtil.isNotEmpty(list)) { public ResponseEntity<Object> indexConvert(@RequestParam("file") MultipartFile file)
User user; throws IOException {
for (UserFavorOfExcel userFavorOfExcel : list) { if (file != null && !file.isEmpty()) {
user = new User(); userService.fileCreateUser(file, SecurityUtils.getCurrentUserId());
BeanUtil.copyProperties(userFavorOfExcel, user);
if (user.getPassword() == null) {
user.setPassword(passwordEncoder.encode("123456"));
} }
userService.create(user); return new ResponseEntity<>(HttpStatus.OK);
}
@ApiOperation("创建或导入用户")
@PostMapping(value = "/createUsers")
public ResponseEntity<Object> createUsers(@Validated @RequestBody CreateUserDTO userDTO) throws IOException {
Long userId = SecurityUtils.getCurrentUserId();
if (userDTO.getFile() != null && userId != DefaultNumberConstants.ONE_NUMBER) {
throw new BadRequestException("非超级管理员不能创建用户");
} }
userDTO.setWhichUserId(userId);
userDTO.setPassword(passwordEncoder.encode("123456"));
User user = new User();
BeanUtil.copyProperties(userDTO, user);
User userCreateResult = userService.create(user);
MultipartFile file = userDTO.getFile();
if (file != null && !file.isEmpty()) {
userService.fileCreateUser(file, userCreateResult.getId());
} }
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }

@ -1,6 +1,5 @@
package com.baiye.modules.system.rest; package com.baiye.modules.system.rest;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.http.CommonResponse; import com.baiye.http.CommonResponse;
import com.baiye.http.ResponseCode; import com.baiye.http.ResponseCode;
import com.baiye.modules.system.domain.UserMessage; import com.baiye.modules.system.domain.UserMessage;
@ -11,7 +10,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Pageable;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;

@ -0,0 +1,35 @@
package com.baiye.modules.system.service;
import com.baiye.modules.system.domain.Company;
import com.baiye.modules.system.service.dto.CompanyDto;
import com.baiye.modules.system.service.dto.CompanyQueryCriteria;
import org.springframework.data.domain.Pageable;
import java.util.Map;
/**
* @author Enzo
* @date : 2022/1/21
*/
public interface CompanyService {
/**
*
* @param companyDto
*/
void saveCompany(CompanyDto companyDto);
/**
*
* @param criteria
* @param pageable
* @return
*/
Map<String,Object> queryAll(CompanyQueryCriteria criteria, Pageable pageable);
/**
* id
* @param id
* @return
*/
Company findCompanyByUserId(Long id);
}

@ -154,4 +154,20 @@ public interface UserService {
* @return * @return
*/ */
List<UserDto> queryRoleUser(Long roleId); List<UserDto> queryRoleUser(Long roleId);
/**
*
* @param file
* @param baseUserId
* @return
*/
Boolean fileCreateUser(MultipartFile file, Long baseUserId) throws IOException;
/**
*
* @param criteria
* @param pageable
* @return
*/
Map<String, Object> queryUserThree(UserQueryCriteria criteria, Pageable pageable);
} }

@ -0,0 +1,59 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baiye.modules.system.service.dto;
import com.baiye.model.base.BaseDTO;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
@Getter
@Setter
@NoArgsConstructor
public class CompanyDto extends BaseDTO implements Serializable {
private static final long serialVersionUID = 2427763395487448366L;
private Long id;
@NotBlank
private String appid;
@NotBlank
private String companyName;
@NotBlank
private String companyCode;
@NotBlank
private String businessLicenseFront;
@NotBlank
private String businessLicenseReverse;
private Long userId;
private Integer isRegistered;
}

@ -0,0 +1,30 @@
/*
* Copyright 2019-2020 Zheng Jie
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.baiye.modules.system.service.dto;
import com.baiye.annotation.Query;
import lombok.Data;
/**
* @author Zheng Jie
* @date 2019-04-10
*/
@Data
public class CompanyQueryCriteria {
@Query
private Long userId;
}

@ -0,0 +1,85 @@
package com.baiye.modules.system.service.dto;
import com.baiye.model.base.BaseEntity;
import com.baiye.modules.system.domain.Job;
import com.baiye.modules.system.domain.Role;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.Objects;
import java.util.Set;
/**
* @author Enzo
* @date : 2022/1/21
*
*/
@Data
public class CreateUserDTO {
@NotNull(groups = BaseEntity.Update.class)
private Long id;
@ApiModelProperty(value = "用户角色")
private Set<Role> roles;
@ApiModelProperty(value = "用户岗位")
private Set<Job> jobs;
@NotBlank
@ApiModelProperty(value = "用户名称")
private String username;
@NotBlank
@ApiModelProperty(value = "用户昵称")
private String nickName;
@Email
@NotBlank
@ApiModelProperty(value = "邮箱")
private String email;
@NotBlank
@ApiModelProperty(value = "电话号码")
private String phone;
@ApiModelProperty(value = "用户性别")
private String gender;
@ApiModelProperty(value = "头像真实名称",hidden = true)
private String avatarName;
@ApiModelProperty(value = "头像存储的路径", hidden = true)
private String avatarPath;
@ApiModelProperty(value = "密码")
private String password;
@NotNull
@ApiModelProperty(value = "是否启用")
private Boolean enabled;
@ApiModelProperty(value = "最后修改密码的时间", hidden = true)
private Date pwdResetTime;
@ApiModelProperty(value = "创建者id")
private Long whichUserId;
@ApiModelProperty(value = "文件地址")
private MultipartFile file;
@Override
public int hashCode() {
return Objects.hash(id, username);
}
}

@ -47,4 +47,7 @@ public class UserQueryCriteria implements Serializable {
@Query(type = Query.Type.BETWEEN) @Query(type = Query.Type.BETWEEN)
private List<Timestamp> createTime; private List<Timestamp> createTime;
@Query
private Long whichUserId;
} }

@ -0,0 +1,56 @@
package com.baiye.modules.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.modules.system.domain.Company;
import com.baiye.modules.system.repository.CompanyRepository;
import com.baiye.modules.system.service.CompanyService;
import com.baiye.modules.system.service.dto.CompanyDto;
import com.baiye.modules.system.service.dto.CompanyQueryCriteria;
import com.baiye.modules.system.service.mapstruct.CompanyMapper;
import com.baiye.util.PageUtil;
import com.baiye.util.QueryHelp;
import com.baiye.util.SecurityUtils;
import lombok.RequiredArgsConstructor;
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.Map;
/**
* @author Enzo
* @date : 2022/1/21
*/
@Service
@RequiredArgsConstructor
public class CompanyServiceImpl implements CompanyService {
private final CompanyRepository companyRepository;
private final CompanyMapper companyMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void saveCompany(CompanyDto companyDto) {
Company company = new Company();
BeanUtil.copyProperties(companyDto, company);
company.setUserId(SecurityUtils.getCurrentUserId());
company.setIsRegistered(DefaultNumberConstants.ONE_NUMBER);
companyRepository.save(company);
}
@Override
public Map<String, Object> queryAll(CompanyQueryCriteria criteria, Pageable pageable) {
Page<Company> page = companyRepository.findAll
((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
return PageUtil.toPage(page.map(companyMapper::toDto).getContent(), page.getTotalElements());
}
@Override
public Company findCompanyByUserId(Long id) {
return companyRepository.findByUserId(id);
}
}

@ -60,9 +60,6 @@ public class DataServiceImpl implements DataService {
for (RoleSmallDto role : roleSet) { for (RoleSmallDto role : roleSet) {
DataScopeEnum dataScopeEnum = DataScopeEnum.find(role.getDataScope()); DataScopeEnum dataScopeEnum = DataScopeEnum.find(role.getDataScope());
switch (Objects.requireNonNull(dataScopeEnum)) { switch (Objects.requireNonNull(dataScopeEnum)) {
case THIS_LEVEL:
deptIds.add(user.getDept().getId());
break;
case CUSTOMIZE: case CUSTOMIZE:
deptIds.addAll(getCustomize(deptIds, role)); deptIds.addAll(getCustomize(deptIds, role));
break; break;

@ -15,6 +15,8 @@
*/ */
package com.baiye.modules.system.service.impl; package com.baiye.modules.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.DefaultNumberConstants;
@ -105,9 +107,12 @@ public class MessageNotificationServiceImpl implements MessageNotificationServic
} }
if (Boolean.TRUE.equals(userDto.getIsManager())) { if (Boolean.TRUE.equals(userDto.getIsManager())) {
List<Long> longs = organizeUserService.queryUserIdByGroupId(userId); List<Long> longs = organizeUserService.queryUserIdByGroupId(userId);
if (CollUtil.isNotEmpty(longList)){
longList.addAll(longs);
for (Long aLong : longs) { for (Long aLong : longs) {
longList.addAll(organizeUserService.queryUserIdByGroupId(aLong)); longList.addAll(organizeUserService.queryUserIdByGroupId(aLong));
} }
}
messageNotificationDto.setLevel(DefaultNumberConstants.TWO_NUMBER); messageNotificationDto.setLevel(DefaultNumberConstants.TWO_NUMBER);
} }
if (userId == DefaultNumberConstants.ONE_NUMBER) { if (userId == DefaultNumberConstants.ONE_NUMBER) {

@ -36,6 +36,7 @@ import com.baiye.util.QueryHelp;
import com.baiye.util.ValidationUtil; import com.baiye.util.ValidationUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -74,18 +75,25 @@ public class UserMessageServiceImpl implements UserMessageService {
@Override @Override
public Map<String, Object> queryAll(UserMessageQueryCriteria criteria, Integer page, Integer size) { public Map<String, Object> queryAll(UserMessageQueryCriteria criteria, Integer page, Integer size) {
Sort sort = Sort.by(Sort.Direction.ASC, "messageType"). Sort sort =
Sort.by(Sort.Direction.DESC, "updateTime");
if (criteria.getStatus() != null &&
criteria.getStatus() != DefaultNumberConstants.MINUS_ONE_NUMBER){
sort = Sort.by(Sort.Direction.ASC, "messageType").
and(Sort.by(Sort.Direction.ASC, "level")). and(Sort.by(Sort.Direction.ASC, "level")).
and(Sort.by(Sort.Direction.DESC, "isTop")). and(Sort.by(Sort.Direction.DESC, "isTop")).
and(Sort.by(Sort.Direction.ASC, "isRead")). and(Sort.by(Sort.Direction.ASC, "isRead")).
and(Sort.by(Sort.Direction.DESC, "updateTime")). and(Sort.by(Sort.Direction.DESC, "updateTime")).
and(Sort.by(Sort.Direction.DESC, "id")); and(Sort.by(Sort.Direction.DESC, "id"));
List<UserMessage> all = userMessageRepository.findAll( }
(root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), sort); PageRequest pageRequest = PageRequest.of(page, size, sort);
return PageUtil.toPage(PageUtil.toPage Page<UserMessage> pageAll = userMessageRepository.findAll(
(root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder),pageRequest);
return PageUtil.toPage(pageAll.map(userMessageMapper::toDto));
/* return PageUtil.toPage(PageUtil.toPage
(page != null ? page : DefaultNumberConstants.ZERO_NUMBER, (page != null ? page : DefaultNumberConstants.ZERO_NUMBER,
size != null ? size : DefaultNumberConstants.TWENTY_NUMBER, size != null ? size : DefaultNumberConstants.TWENTY_NUMBER,
userMessageMapper.toDto(all)), all.size()); userMessageMapper.toDto(all)), all.size());*/
} }
@ -160,8 +168,8 @@ public class UserMessageServiceImpl implements UserMessageService {
hashMap.put(aLong, userMessageDto); hashMap.put(aLong, userMessageDto);
} }
} }
if (messageNotification.getMessageType() == DefaultNumberConstants.ONE_NUMBER && // TODO 保存消息
messageNotification.getIsReuse() != null && Boolean.TRUE.equals(messageNotification.getIsReuse())) { if (messageNotification.getMessageType() == DefaultNumberConstants.ONE_NUMBER) {
BaseTimeTask baseTimeTask = new BaseTimeTask(); BaseTimeTask baseTimeTask = new BaseTimeTask();
baseTimeTask.setMessageId(messageNotification.getId()); baseTimeTask.setMessageId(messageNotification.getId());
baseTimeTask.setExecuteTime(messageNotification.getPointTime()); baseTimeTask.setExecuteTime(messageNotification.getPointTime());

@ -15,13 +15,20 @@
*/ */
package com.baiye.modules.system.service.impl; package com.baiye.modules.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import com.alibaba.excel.EasyExcelFactory;
import com.baiye.config.properties.FileProperties; import com.baiye.config.properties.FileProperties;
import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.DefaultNumberConstants;
import com.baiye.exception.BadRequestException; import com.baiye.exception.BadRequestException;
import com.baiye.exception.EntityExistException; import com.baiye.exception.EntityExistException;
import com.baiye.exception.EntityNotFoundException; import com.baiye.exception.EntityNotFoundException;
import com.baiye.model.dto.ThreeUserDTO;
import com.baiye.model.dto.UserFavorOfExcel;
import com.baiye.modules.security.service.OnlineUserService; import com.baiye.modules.security.service.OnlineUserService;
import com.baiye.modules.system.domain.Company;
import com.baiye.modules.system.service.CompanyService;
import com.baiye.service.UserCacheClean; import com.baiye.service.UserCacheClean;
import com.baiye.modules.system.domain.Role; import com.baiye.modules.system.domain.Role;
import com.baiye.modules.system.domain.User; import com.baiye.modules.system.domain.User;
@ -37,6 +44,7 @@ import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -56,13 +64,58 @@ import java.util.*;
@CacheConfig(cacheNames = "user") @CacheConfig(cacheNames = "user")
public class UserServiceImpl implements UserService { public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
private final UserMapper userMapper; private final UserMapper userMapper;
private final FileProperties properties;
private final RedisUtils redisUtils; private final RedisUtils redisUtils;
private final FileProperties properties;
private final CompanyService companyService;
private final UserCacheClean userCacheClean; private final UserCacheClean userCacheClean;
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
private final OnlineUserService onlineUserService; private final OnlineUserService onlineUserService;
@Override
public Boolean fileCreateUser(MultipartFile file, Long baseUserId) throws IOException {
List<UserFavorOfExcel> userFavorOfExcels =
EasyExcelFactory.read(file.getInputStream())
.head(UserFavorOfExcel.class)
.sheet().headRowNumber(DefaultNumberConstants.TWO_NUMBER)
.doReadSync();
if (CollUtil.isNotEmpty(userFavorOfExcels)) {
User copyUser;
for (UserFavorOfExcel user : userFavorOfExcels) {
copyUser = new User();
BeanUtil.copyProperties(user, copyUser);
user.setPassword(passwordEncoder.encode
(org.apache.commons.lang3.StringUtils.isEmpty(user.getPassword())
? user.getPassword() : "123456"));
copyUser.setWhichUserId(baseUserId);
userRepository.save(copyUser);
}
return Boolean.TRUE;
}
return Boolean.FALSE;
}
@Override
public Map<String, Object> queryUserThree(UserQueryCriteria criteria, Pageable pageable) {
Page<User> page = userRepository.findAll
((root, criteriaQuery, criteriaBuilder) ->
QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
List<ThreeUserDTO> users =
Convert.toList(ThreeUserDTO.class, page.getContent());
users.forEach(user -> {
List<User> byWhichUserId = userRepository.findByWhichUserId(user.getId());
if (CollUtil.isNotEmpty(byWhichUserId)) {
user.setChildren(Convert.toList(ThreeUserDTO.class, page.getContent()));
}
});
return PageUtil.toPage(page, users);
}
@Override @Override
public Object queryAll(UserQueryCriteria criteria, Pageable pageable) { public Object queryAll(UserQueryCriteria criteria, Pageable pageable) {
Page<User> page = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable); Page<User> page = userRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
@ -108,6 +161,7 @@ public class UserServiceImpl implements UserService {
return userMapper.toDto(userList); return userMapper.toDto(userList);
} }
@Override @Override
public List<Long> queryAllUserIds() { public List<Long> queryAllUserIds() {
return userRepository.findAllUserByEnable(Boolean.TRUE); return userRepository.findAllUserByEnable(Boolean.TRUE);
@ -130,8 +184,7 @@ public class UserServiceImpl implements UserService {
if (userRepository.findByPhone(resources.getPhone()) != null) { if (userRepository.findByPhone(resources.getPhone()) != null) {
throw new EntityExistException(User.class, "phone", resources.getPhone()); throw new EntityExistException(User.class, "phone", resources.getPhone());
} }
User saveUser = userRepository.save(resources); return userRepository.save(resources);
return saveUser;
} }
@Override @Override
@ -165,7 +218,7 @@ public class UserServiceImpl implements UserService {
user.setEmail(resources.getEmail()); user.setEmail(resources.getEmail());
user.setEnabled(resources.getEnabled()); user.setEnabled(resources.getEnabled());
user.setRoles(resources.getRoles()); user.setRoles(resources.getRoles());
// user.setDept(resources.getDept()); //user.setDept(resources.getDept());
user.setJobs(resources.getJobs()); user.setJobs(resources.getJobs());
user.setPhone(resources.getPhone()); user.setPhone(resources.getPhone());
user.setNickName(resources.getNickName()); user.setNickName(resources.getNickName());
@ -213,14 +266,21 @@ public class UserServiceImpl implements UserService {
convert = Convert.convert(UserDto.class, user); convert = Convert.convert(UserDto.class, user);
Set<Role> roles = user.getRoles(); Set<Role> roles = user.getRoles();
convert.setIsManager(Boolean.FALSE); convert.setIsManager(Boolean.FALSE);
Company companyByUserId = companyService.findCompanyByUserId(user.getId());
convert.setIsRegistered(Boolean.FALSE);
if (companyByUserId != null && companyByUserId.getIsRegistered() != null
&& companyByUserId.getIsRegistered() == DefaultNumberConstants.ONE_NUMBER) {
convert.setIsRegistered(true);
}
for (Role role : roles) { for (Role role : roles) {
// TODO 修改管理员id
if (role.getId() == DefaultNumberConstants.EIGHT_NUMBER) { if (role.getId() == DefaultNumberConstants.EIGHT_NUMBER) {
convert.setIsManager(Boolean.TRUE); convert.setIsManager(Boolean.TRUE);
} }
if (role.getId() == DefaultNumberConstants.NINE_NUMBER) { if (role.getId() == DefaultNumberConstants.NINE_NUMBER) {
convert.setIsGroup(Boolean.TRUE); convert.setIsGroup(Boolean.TRUE);
} }
} }
} }
return convert; return convert;

@ -0,0 +1,15 @@
package com.baiye.modules.system.service.mapstruct;
import com.baiye.model.base.BaseMapper;
import com.baiye.modules.system.domain.Company;
import com.baiye.modules.system.service.dto.CompanyDto;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author Zheng Jie
* @date 2019-03-25
*/
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface CompanyMapper extends BaseMapper<CompanyDto, Company> {
}

@ -46,6 +46,7 @@
<captcha.version>1.6.2</captcha.version> <captcha.version>1.6.2</captcha.version>
<lionsoul.version>1.7.2</lionsoul.version> <lionsoul.version>1.7.2</lionsoul.version>
<redisson.version>3.11.1</redisson.version> <redisson.version>3.11.1</redisson.version>
<easyexcel.version>2.2.7</easyexcel.version>
<ip2region.version>2.5.6</ip2region.version> <ip2region.version>2.5.6</ip2region.version>
<fileupload.version>1.3.3</fileupload.version> <fileupload.version>1.3.3</fileupload.version>
<taobao-sdk.version>21.8.18</taobao-sdk.version> <taobao-sdk.version>21.8.18</taobao-sdk.version>
@ -178,6 +179,12 @@
<version>${mapstruct.version}</version> <version>${mapstruct.version}</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<!-- easyExcel依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel.version}</version>
</dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>

@ -38,19 +38,6 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<!-- easyExcel依赖-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.7</version>
</dependency>
<!-- hutool依赖包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.7</version>
</dependency>
<!-- druid数据源驱动 --> <!-- druid数据源驱动 -->
<dependency> <dependency>

Loading…
Cancel
Save